2022年10月12日

Summer Internship 2022 –Wakai–Investigate the possibility of anomaly classification on quantized neural networks

サマーインターン

こんにちは。LeapMind インターン運営担当です。 本日は、2022年サマーインターンに参加されたインターン生の成果発表について記事にまとめたいと思います。

LeapMindで2ヶ月間インターンシップに参加した若井です。 インターンシップでは、Anomaly Detectionチームに所属し、異常分類(anomaly classification)のプロジェクトに取り組みました。

プロジェクトについて

インターンシップのプロジェクトとして、異常分類の研究に取り組み、 量子化されたニューラルネットワークを用いて異常分類モデルの実装と精度検証を行いました。

異常検知(anomaly detection)は異常の有無の推定や異常の箇所の特定を行うのに対し、 異常分類(anomaly classification)はこれらに加えて異常の種類の特定を行います。

検知対象の異常は軽微なものから深刻なものまで様々ですが、異常の種類が特定できれば検知後の対応を変更できるため、外観検査や故障予知等の様々な場面で異常分類技術が役立つと考えられます。

本プロジェクトでは、あらかじめ異常有無推定と異常箇所特定が行われたデータに対して異常分類を行う、という問題設定でモデルを設計しました。 異常検知段階と異常分類段階の二段階で異常分類を行うことにより、異常検知段階で異常が無いと推定された場合、異常分類の推論を打ち切ることで全体の速度向上が期待できます。

したがって、正常データ・異常データの両方に対して一気通貫で異常分類を行うのではなく、異常検知後のデータに対して異常分類を行いました。

手法について

異常検知分野では、正常データのみを用いて学習する手法も頻繁に利用されていますが、本プロジェクトでは異常の分類を目標としたため、異常データを用いて学習した画像分類モデルを利用する方針としました。

また、異常検知分野での前提として、「異常データは非常に稀である」という性質があります。

この性質により、以下の3つが問題となります。 問題1 学習用の異常データが不十分である 問題2 異常データがすべての異常例を網羅できているとは限らない 問題3 正常データと異常データが不均衡である

1の問題に対しては転移学習(transfer learning)やfew-shot learningの手法を、 2の問題に対してはOOD(out-of-distribution)検出手法を用いてモデルを設計しました。

本プロジェクトの問題設定では、異常有無は既に推定されており、分類を行うデータは異常が検知されたデータに限られるため、3の問題については対象外としました。

few-shot learningの手法は、この論文(https://arxiv.org/abs/1904.04232)を参考にしました。 この論文では、ニューラルネットワークの全結合層にcosine distanceを適用することによりfew-shot時の精度向上を図っています。

OOD検出手法は、この論文(https://arxiv.org/abs/2205.09310)を参考にしました。 画像分類モデルは学習が進むにつれsoftmax関数の出力値がクラス間で極端な分布になりがちですが、この論文ではlogit normという誤差関数を用いてsoftmax関数の出力値をなだらかにすることで「自信過剰」な推定の防止を図っています。

以上の手法をベースとして異常分類モデルを改善し、量子化されたニューラルネットワーク上で精度検証を行いました。

2ヶ月という限られた期間ではありましたが、メンターの方とディスカッションを行いながら実験を進めることができ、インターンシップでの成果として仕上げることができました。

インターンシップについて

インターンシップでの勤務形態は、フレックスタイム・コアタイム無し・フルリモートと非常に自由度が高かったです。夏休み中も卒業研究の関係で度々大学に行くことがあったため、この勤務形態は大変ありがたかったです。

フルリモートではありましたが、coffee break timeや社内勉強会等の機会に恵まれ多くの社員の方々と交流できました。coffee break timeはメンターの方が中心になって企画してくださったのですが、個性的な社員の方々とチームや立場を超えて交流でき、自身の進路や将来を考えるうえで非常に参考になりました。

2ヶ月間のインターンシップでは、メンターの方々に大変お世話になりました。 プロジェクトに取り組むまでのキャッチアップ期間では、開発手法や異常検知分野の基礎知識について丁寧に教えていただきました。 プロジェクトに取り組み始めてからは、毎日のチームミーティングで、プロジェクトの進め方をはじめ幅広く意見をいただくとともに、思うように進捗が出せなかった時も優しく励ましていただきました。また、頻繁にディスカッションをさせていただき、一人で途方に暮れることなくプロジェクトを進めることができました。

最後に

短い期間でしたが、LeapMindのインターンシップでは貴重な経験ができ、非常に大きな財産になりました。 2ヶ月間、大変お世話になりました。