catch-img

Survey論文のご紹介:Active Learning


目次[非表示]

  1. 1.はじめに
  2. 2.Active Learning?
  3. 3.価値のあるデータの選択基準
  4. 4.Deep Learning + Active Learningの課題
  5. 5.Deep Active Learningの課題への対応
    1. 5.1.データ選択基準の最適化
    2. 5.2.データの不足への対策
    3. 5.3.Deep Learningへの最適化
    4. 5.4.Deep Active Learningの残課題
    5. 5.5.実際にやってみた
  6. 6.まとめ
  7. 7.引用

はじめに

はじめましてこんにちは,AI技術開発部の指田と申します.

私たちのチームは主に工業製品の外観検査を対象とした技術の開発を行っています.

近年AI技術,特にDeep Learningの勢いはすさまじく外観検査への適用も多く発表されていますが,実際の生産現場に使うとなるとまだまだ多くの課題があります.

その一つが学習用データの確保です.

機械学習を行うには正解ラベル付きのデータが必要なので,生産現場で画像取得後にラベル付けを行う必要があります.

しかし外観検査は一般にOK品に較べてNG品は数が極端に少なく欠陥内のバリエーションも多様,レアなNG品となるとたとえば数か月分のデータを調べないと観測できない,ということも起こります.

そのため,やみくもにラベル付けしても中々性能が得られないことが起こり得ます.

こうした問題に対して,UnsupervisedやFewShot等,ラベルデータが無い/極少数でも検査を行える様にする様々なアプローチが提案されています.

今回はそうしたアプローチの中の一つ,Deep LearningにおけるActive Learningについてサーベイ論文"A Survey of Deep Active Learning"[1]を基にご紹介したいと思います.

なお,サーベイの内容は多岐に渡っており大分かいつまんだ説明になっていることはご了承ください.

Active Learning?

Active Learningは簡単に言えば,

”価値のあるデータにだけラベル付けをして効率的に性能を上げよう”

というアプローチです.

ラベル無しのデータ群に対して何らかの方法でラベル付けする価値があるかどうかを判定し,有用性が高いものだけをラベル付けし学習データに追加して再学習,

再学習後に同じ工程を繰り返していくことでランダムにデータをラベル付けするよりも効率的に性能を上げていくことが可能になります.

価値のあるデータの選択基準

Active Learningにおいて重要なことは,”どうやってデータの価値を測るか?” です.

その基準が明確でなければ結局はランダムに選ぶのと変わらない,むしろランダムに選ぶよりも性能が上がらないことも十分に考えられます.

論文中では以下の選択基準が提示されています

1.Uncertainty-Based

出力が不確実になるデータほど学習価値が高いと見なす戦略

2.Diversity-Based

サンプリングの際に特徴分布をみてバリエーションを増やす様にデータを選択する戦略

3.Expected Model Change

データのモデルへの影響度合いを推定して選択する戦略

Deep Learning + Active Learningの課題

Active LearningはDeep Learningだけのためのアプローチではなく,従来の機械学習でも多く行われてきました.

Deep Learningは従来の機械学習に較べて多量のデータが必要であることが知られており,必要なデータ量を減らせるActive Learningとの組み合わせはとても魅力的に思えます.ですが,従来のActive Learning手法ではDeep Learningに十分に対応できないそうです.

なぜなのでしょう?

論文では以下の点を挙げています.

1.Deep Learningにおけるデータ選択基準が分からない

従来のActive Learning手法はデータの価値を1データずつ独立に評価するのが基本であり, Batch単位で学習を行うDeep Learningの仕組みから考えると不十分な評価方法であるといえます.

更にデータ選択基準についてもこれまでのActive Learningの取り組みを見るとDLの出力はデータの評価に向いているとは言えないようです.たとえばDeep LearningにおけるClassificationでは出力にSoftMax関数が使われることが多いですが、これをそのままデータ選択の基準に用いた場合,性能的にRandom Samplingに劣る事例も報告されているそうです.

2.得られるラベル付きデータの不足

Deep Learningで必要なデータ量は桁違いに多いため,従来の機械学習を想定したActive Learning手法ではDeep Learningに必要なデータ量を賄えない可能性が指摘されています.

3.前提条件の不一致

従来のActive Learning手法は基本的に特徴量固定でその特徴量を基にデータを選別するのですが、Deep Learningは特徴の学習も行うためそのままでは組み合わせることが出来ません.

以降ではこれらの課題に対してどう対処しているのか,論文から抜粋してご紹介します.


Deep Active Learningの課題への対応

データ選択基準の最適化

まずはDeep Learningに適したデータを選ぶには必須のBatch単位での判定についてです.この処理をシンプルに実装したのがBatchBALD[2]です.

ベースとなる手法BALD(Baysian Active Learning by Disagreement)[3]では,予測値 のエントロピーが高く(=レアなデータ)かつDLモデルパラメータの事後分布の予測エントロピーが低い(=パラメータの不確実性が低く影響が明確)なクエリーを選びます.しかしBALDでは同じようなデータばかりを選んでしまうことが確認されています.同じ様なデータなら同じ様な出力を返すはずなのでそれは妥当ではありますが,これでは学習に適したデータを選んでいるとは言えません.そこでBatchBALDではデータ間の関係性を考慮するようにデータの評価をBatch単位で行う様にしています.データ単位での評価からBatch単位での評価に変えただけとも言えますが,BatchBALDはDeep Learning+Active Learningの組み合わせでは基本ともいえる形で関連研究も多数存在するとのことです.

次にデータの選択基準についてです.データ選択基準の一つUncertaintyはDeep Learningでも複数提案されています.例として論文中では以下の様なUncertainty指標が述べられています

  • MargeSampling:尤度1位と2位の差が小さい程Uncertain
  • InformationEntropy[4]:推論の尤度が複数クラスに散る程Uncertain

イメージとしては,クラス間の判断に迷う,識別境界付近のデータが選択されるようなものでしょうか.

ただしUncertaintyだけではデータの分布が考慮されず,結果的に同じようなデータばかり選ばれる可能性があります.先ほど述べたBatchBALDではBatchで評価する分,多少はデータの分布が考慮されますが,特徴空間全体の分布を考慮することはできません.DeepLearningは特徴を学習で取得する以上,多様なVariationのデータを得ることは重要です.

そのため,データの分布を考慮した手法との組み合わせが必要です.

その一つ,Exploration-P[5]では特徴量からデータ間の類似性を求め不確実性が高くかつ互いに類似性が低いBatchを選ぶことで,特徴分布の多様性を考慮しています.


それではUncertaintyと多様性,どちらが重要なのでしょう?それはデータセットにより異なります.論文では大規模データなら多様性,小規模データならUncertaintyが有効な場合が多いと述べていますが,結局は”やってみないとわからない”様です.そこでUncertaintyと多様性のバランスを取れるようなアプローチも提案されています.

その一つがVAAL(Variational Adversarial Active Learning)[6]やその発展形TA-VAAL(Task-Aware Variational Adversarial Active Learning)[7]です.この手法ではVAEでデータの特徴表現を取得,Discriminatorでデータがラベル有無どちらかを推定させ,ラベル無と判断された画像をラベル付けしていきます.

ラベル無と判断された=今までにラベル付けしたデータとは似ていない特徴を有しているということであり,Uncertainty, 分布両方を考慮した判断をすることができます.

他にも論文中ではBayesian CNNをベースネットワークとして,データが加わった場合のモデルへの影響を定量化することでデータ選択を行うDeep Bayesian Active Learning,コアとなるデータの特徴分布を判断基準として類似の特徴分布を有するデータを足していくDensity-based Methods,強化学習を用いてデータ選択の戦略をアップデートしていくAutomated Design of Deep AL等,いくつかのデータ選択基準が記載されていますが,王道はやはりUncertaintyと多様性の様です.

データの不足への対策

Active Learningでも足りないデータを補う手段として,なんとかして人手をかけずにラベル付きデータを取得するしかありません.

その一つとしてCEAL(Cost-Effective Active Learning)[8]が紹介されています.この手法では,推論の信頼度が高いデータは推論の結果を疑似ラベルとして学習データに追加,

Uncertainなデータは従来通りラベル付けするという構造をとることで,ラベル付きデータを効率的に増やしています.

そのほか,中にはGANでラベル付きデータを生成する手法GAAL(Generative Adversarial Active Learning)[9]なども提案されていますが,GANで生成されたデータが学習に適したものであることを保証することは難しい様です.

そのため,クラス損失を加えることで”特徴は似ているがクラスは違う”様な画像をある程度狙って作れるようにしたBGADL(Bayesian Generative Active Deep Learning)[10]も提案されています.

初期のデータが不足している場合,データ選択基準のUncertainty/多様性がまともに計算できないことも起こり得ます.その意味で,まだまだ不十分ではあるもののデータ数を補えるGANベース手法が求められる場面はあるかもしれません.

Deep Learningへの最適化

Deep Learningによる特徴生成とActive Learningによるデータの評価は別々の処理ですが,最適化のためには両者を統合して考える方が効率的です.

とはいえ,Deep Learningの各モデルや解くタスクに特化したActive Learningを都度設計するのは非効率的です.

そこで,Deep Learningに広く適用可能な一般化したDeep Learning + Active Learning手法が求められています.

その一つが先ほども登場した,CEALです.単純に(1.Deep Learningの学習ラベル無しデータの推論, 2.データ選択/擬似ラベル追加)を繰り返すだけですが,タスクやネットワーク構造に依存せずに適用可能な優れた手法であると言えます.

しかし,まだまだ考慮すべき点はあります.たとえばCEALでは推論の尤度に基づいてデータの選択をしていますが,果たしてDeep Learningに適したデータを考える際,最終出力だけで判断できるものでしょうか?

やはり中間層のデータも必要だという考え方に基づいて作られたのがLearning Loss for Active Learning[11]です.

この手法ではネットワークの中間特徴を入力としてLossの予測を行うLossPredictionModuleを用意します.

ラベル無しデータに対しても中間特徴量からLossの予測値が取得可能になることで追加する価値のある(=Lossが大きい)データを的確に取得できるとしています.

Deep Active Learningの残課題

Deep Active Learningは特に専門知識が必要で大量ラベルの入手が難しいシーン等,実利用シーンでとても魅力的ですがまだまだ発展途上です.

そのため,一般的なタスクに較べて公正な比較評価が十分にされていないという指摘もあります.また,どんな場面で有効なのかと言えばNoであり,ランダムとの性能差がほぼ見られない場合もある様です.実際に私も幾つか確認しましたがデータセットによって効果の差はかなり大きく,このことが公正な比較をより難しくているように思えます.

さらにどういった場面で有効なのかといえば明確な方針は示されていません.

このような状況を見ると,使用にあたってドメインやデータに関するしっかりとした理解が求められることはこれまでと変わらない様です.

実際にやってみた

さて,ここまでサーベイ論文の紹介をさせて頂きましたが,その中で紹介された手法を実際に試してみたので最後にご紹介したいと思います.

試したのはLearning Loss for Active Learningです.

タスクは6クラスのClassificationでDeep LearningモデルはVGGベース,使用データは弊社内の独自データで初期データとしてRandomに200枚,以降学習が収束するたびに200枚追加していくのですが,その際にRandom選択とActive Learningの2パターンで行い,両者の性能差や傾向を比較しました.データの詳細はお見せ出来ないため,結果のみ提示させて頂きます.

結果をみると3~10%程度Active Learningを用いた場合の性能が高くなっています.

更に各クラスのデータに着目すると,選ばれるクラスに差が生じていることが確認できました.ここでは6クラスの内2クラスについて,データが追加される毎に枚数がどのように変化したかを提示します.

これを見るとRandomで40-50%を占めているClass1がActive Learningでは30-40%に低下し,その代わりとしてClass2の割合が大きく上昇しています.このことから,Randomとは全く別の基準でデータが選ばれていることが分かります.

では,更にデータを足していった場合はどうなるのでしょう?このままActive Learningが優位のまま進むのでしょうか.

初期データを1000枚に変え,1000枚ずつ追加する形に設定を変えて試してみた結果が以下です.縦軸のスケールが変わっていますがご了承ください.

結果を見ると2000枚時点ではActive Learningが優位ですが以降はRandomが逆転しています.原因の仮説としては予測Lossが大きいものを選ぶと言う事は難しいサンプルや外れ値を優先して学習することになり結果的に本質的な特徴の学習が不十分なまま難しいサンプルばかり学習し精度が上がらない可能性や特徴量の多様性が十分に考慮できていない可能性等が考えられます.たとえばCEALに用いられる擬似ラベルに追加や多様性指標の追加などしていけば傾向は変わるのではと考えています.

まとめ

今回サーベイ論文に基づいてActive Learningについてさせて頂きました.

また,簡単ですが実データで試した際の結果について紹介させて頂きました.

Active Learningはまだまだ発展途上で,実際ただ既存手法を当てはめただけでは中々上手く行きません.しかし,特殊なドメインでラベル付けを出来るのが有識者しかいない場合など,必要とされるシーンは多くあります.

我々としても継続的に調査を行っていき,機会があればまた何か紹介させて頂ければと思います.

それでは.




コニカミノルタは画像IoTプラットフォームFORXAIを通じて、お客様やパートナー様との共創を加速させ、技術・ソリューションの提供により人間社会の進化に貢献してまいります。


引用

[1]Ren, P., Xiao, Y., Chang, X., Huang, P., Li, Z., Chen, X., & Wang, X. (2022). A Survey of Deep Active Learning. ACM Computing Surveys (CSUR), 54, 1 - 40.

[2]Andreas Kirsch, Joost van Amersfoort, and Yarin Gal. 2019. BatchBALD: Efficient and Diverse Batch Acquisition

for Deep Bayesian Active Learning. In Advances in Neural Information Processing Systems 32: Annual Conference on

Neural Information Processing Systems 2019, NeurIPS 2019, December 8-14, 2019, Vancouver, BC, Canada. 7024–7035.

[3]Neil Houlsby, Ferenc Huszar, Zoubin Ghahramani, and Máté Lengyel. 2011. Bayesian Active Learning for Classification

and Preference Learning. CoRR abs/1112.5745 (2011).

[4]Burr Settles. 2009. Active learning literature survey. Technical Report. University of Wisconsin-Madison Department

of Computer Sciences.

[5]C. Yin, B. Qian, S. Cao, X. Li, J. Wei, Q. Zheng, and I. Davidson. 2017. Deep Similarity-Based Batch Mode Active

Learning with Exploration-Exploitation. In 2017 IEEE International Conference on Data Mining (ICDM). 575–584.

[6]Samarth Sinha, Sayna Ebrahimi, and Trevor Darrell. 2019. Variational Adversarial Active Learning. In 2019 IEEE/CVF

International Conference on Computer Vision, ICCV 2019, Seoul, Korea (South), October 27 - November 2, 2019. IEEE,

5971–5980.

[7]Kwanyoung Kim, Dongwon Park, Kwang In Kim, and Se Young Chun. 2020. Task-Aware Variational Adversarial

Active Learning. arXiv: Learning (2020).

[8]K. Wang, D. Zhang, Y. Li, R. Zhang, and L. Lin. 2017. Cost-Effective Active Learning for Deep Image Classification.

IEEE Transactions on Circuits and Systems for Video Technology 27, 12 (2017), 2591–2600.

[9]Jia-Jie Zhu and José Bento. 2017. Generative adversarial active learning. arXiv preprint arXiv:1702.07956 (2017).

[10]Toan Tran, Thanh-Toan Do, Ian D. Reid, and Gustavo Carneiro. 2019. Bayesian Generative Active Deep Learning. In

Proceedings of the 36th International Conference on Machine Learning, ICML 2019, 9-15 June 2019, Long Beach, California,

USA (Proceedings of Machine Learning Research, Vol. 97). PMLR, 6295–6304.

[11]Donggeun Yoo and In So Kweon. 2019. Learning Loss for Active Learning. In IEEE Conference on Computer Vision and

Pattern Recognition, CVPR 2019, Long Beach, CA, USA, June 16-20, 2019. Computer Vision Foundation / IEEE, 93–102.


Takehiko Sashida
Takehiko Sashida
技術開発本部 FORXAI開発センター AI技術開発部 第2グループ 所属 工業製品の外観検査を対象とした技術の開発を行っています


pagetop