しろあんのさかな

ふーちゃのエンジニアブログ

Deep Learningを学び始めた女子大学院生がCourseraのStructuring Machine Learning Projectsを受けて習ったことをまとめてみた

CourseraのDeep Learningの3つ目の授業が終わったのでまとめです。今回受講したのはStructuring Machine Learning Projectsという授業です。時間的、空間的、金銭的な制約のある中でどのようにデータを選択し、モデルの精度を効率よく上げるためにどのような視点で考察すればいいかを学びました。先生も言っていましたが今回の授業のテーマは実践的な場面で役にたつ技術をまとめたものだったので、私の経験が少ないこともあり、あまり具体的な想像ができませんでした。私にとってはひとつひとつ理解しながら聞くというよりは、素早く本を読むような感じで、将来役にたつかもしれないことをざっくりと頭に入れるという感じでした。

f:id:taiyaki_future:20190516151020p:plain
3つめの修了証

内容

1週目は時間を無駄にしないための、モデルの評価の設定方法の話と、モデルの精度を改善するときにどこを見ればいいかの授業でした。評価として、まずprecision, recallなどの基本的なevaluation metricsの説明がありました。そして、モデルの正しさを測るために、単なる機械的な精度だけでは不十分な場合があることを学びました。

たとえば分類だけで見れば精度がいいモデルがあっても、それがユーザーを不快にさせるような出力をする場合などは、分類の精度が下がっても不適切な出力がないほうが選択されるべきなので、評価方法を変えるべきという話がありました。似たような話は私も聞いたことがあって、ユーザーへのレコメンド機能などはユーザーが不快にならないようにわざと精度を下げる、購買効果を高めるために、ユーザーの検索ワード以外も候補として表示するなどを連想しました。

ゴールにたどり着くためには、モデルがゴールに近い出力を生成するためのメトリクスを探さなければならないし、生成したモデルの評価関数と実際の目的がずれてしまうと再び設定からやり直さなければならず時間を無駄にするということでした。

モデルの改善に対しては、Avoidable bias(正解ラベルとトレーニングセットの予測に対するエラーの差分)とvariance(トレーニングセットの予測に対するエラーとDevセットの予測に対するエラーの差分)で二つのエラーのうち高い方あるいはAvoidable biasが大きすぎる場合はAvoidable biasを優先して改善すればいいということでした。長くなるので説明しませんが、下の写真のノートにはそれぞれの削減に際してどのような方法で対処すればよいかをメモしています。

f:id:taiyaki_future:20190519132134j:plain
avoidable biasとvarianceの削減方法

2週目は学習データが十分に手に入らない場合にどのような追加データを選択すればいいかを学びました。まずtrain/dev/testデータのうち、dev,testは同じ分布にしなければ目標がずれて時間を浪費してしまいますが、trainに関してはランダムに起きる少しの違いは修正されていくという話がありました。よって、trainデータとdev/testデータの分布は必ずしも一致する必要はなく、trainデータが足りないときには似たような構造のデータを学習に使える場合があるという話でした。

たとえば運転時の音声認識のためのモデルを構築するのに十分なデータがない場合は、他のアプリケーションなどで利用している音声データを使ってtrainデータを増やせる可能性があります。使えるかどうかは、trainデータの分布のまま、一部をtrain-dev setとします。そして、dev setとの予測エラーの差分(data mismatch)が小さいかどうかで判断できます。

f:id:taiyaki_future:20190519150854j:plain
data mismatchについて

私はGANやpix2pixを使ってデータを増やそうとする研究があるのを知っていますが、その際も、増やしたデータがtestセットにマッチするかどうかを確かめるべきなのかもしれません。

その他、Transfer learning(似たデータでのモデルを事前に作成した上でそれを目的のデータの学習に利用する)/ Multi-task learning(欠損があるときに他のものも一緒に認識するようにモデルを学習する)/end-to-end deep learning(データが多い時は最初からゴールを目指して学習できる)を学びました。このあたりはまだしっくりと来てない部分が多いので、名前と簡単な説明だけを覚えておこうと思いました。

感想

今回の授業は実践的な問題と対策を説明していく内容だったので、新しい視点を知り、少し考えることができました。最初にも書きましたが、この授業は実務的な部分も多いと感じたので必要になったら戻ってこられるようにメモとして残します。

関連記事

taiyaki-future.hatenablog.com

taiyaki-future.hatenablog.com