Back to all updates

about 8 years ago

Einstein Platform Services: モデル作成のTips


株式会社セールスフォース・ドットコム リードソリューションエンジニア 稲葉 洋幸によるEinstein Platform Servicesのモデル作成にあたってのTipsを共有します。ぜひ参考にしてみてください。

----

【Einstein Platform Services: モデル作成のTips】

東京・福岡・大阪で実施したハンズオンセミナーでいくつか聞かれた質問の中で、なんとなくまだ不明点が多いのが”モデルの作り方”のようでした。いくつか作って試してみるのが一番理解が早いのですが、公開されているドキュメントにいくつか Tips があります。日本語訳したものに、多少私目線の補足を加えたものを共有します。

■モデル作成に関するオンラインドキュメントおよびHelpの日本語訳

  • ラベルごとに1,000程度の学習用画像データがあると良い(お試しでモデルを作成するのであればラベルごとに50枚程度でも作成できるが、ある程度精度を求めるならば、400〜1000枚以上が良い)
  • データセットに含まれる各ラベルの学習用画像データファイル数は、同数(限りなくそれに近い)であることが望ましい
  • それぞれのラベルに含まれる学習用画像データは、種類が豊富であることが良い
    • カラー/グレーススケール/ボケている/よく映るであろう他の物体を含む/文字あり・なし
  • 例えば”建物”というラベルに含める学習用画像データには、様々なスタイルの建物(アジア、中世、ルネサンス、現代など)が含まれる方が良い(稲葉注: これは、様々な種類の建物を”建物”として識別したい場合)
  • A or B もしくは OK or NG など、バイナリとなるラベルの場合は、片方の学習用画像データと同様の学習用画像データをもう片方にも含めるようにする。例えば「オレンジかそうでないか」を仕分けするモデルを作成する場合、”オレンジではない”ラベルの学習用画像データに、グレープフルーツ、タンジェリン、レモンなどの他の柑橘系の画像データを含める
  • モデルの精度をテストした際に、false positive (正解のものを間違いと識別) したものと false negative (間違いのものを正解と判断したもの)した画像を、データセットに加えてモデルを再トレーニングすることで、より精度の高いモデルを作成できる
  • データセットが変更された場合(学習用画像データが追加・削除・入れ替えられたなど) モデルは再トレーニングする必要がある
  • マルチラベルのモデルを作成する際の注意点として、学習用画像データに含まれるラベルを意味する対象物は、それぞれの画像ごとに違う場所に位置する方が良い
  • Language の Sentiment および Intent のラベルは500以下であることが望ましい。それ以上になる場合は、階層構造にする
  • 階層構造は Vision でもパフォーマンスや精度の面で考慮する。例えば、まず動物タイプ(哺乳類、鳥、魚など)識別モデルを使用したのちに、各動物タイプ内の分類を識別モデルを使用する、等
  • 同様に識別する対象の階層(レベル感)がそろっているかも考慮する。例えば、”魚”と”サーモン”を識別するモデルは意味をなさない。”サーモン”もしくは”鯖”、あるいは”サーモン”もしくは”それ以外の魚”を識別するモデルとなるよう設計する

■原文

その他、4/5に実施したWebセミナーでもいくつか学習用画像データ収集のコツに言及させていただきましたので、ご参照くださいませ。

https://success.salesforce.com/0D53A00003YizyQ

 とはいえ、正直試してみないとわからないことも多いです。先週も、ある不良のタイプA or Bを見分けるモデルを作成したのですが、提供してもらった学習用画像データのぱっと見は「これはさすがにどうだろう?」というもでした。しかしながら、精度確認用の画像データに間違ったものがあった(Bの画像として提供されたある画像を Einstein Vision は A と識別したが、実は本当は A の画像だった(フォルダ/ファイル名が間違っていた))のを正確に識別できたりと、今更ながら驚いたりすることもあります。 

ぜひ、まずは身近なもので試してみて、感触を掴んでいただくことをおすすめします。(無償ライセンスでの予測・識別APIコール数上限(2,000回/月)にはお気をつけください)