社内勉強会レポート|Standford CS230 ディープラーニングのフルサイクルについてご紹介
こんにちは。
Airitechのビッグデータ・AI活用グループのタンルインウーです。Pythonで自動化開発をしています。
今回は、ディープラーニングプロジェクト講義「Deep Learning Project Lecture」のフルサイクルについてご紹介します。
映像のリンクはこちらです。
出典:Stanford CS230: Deep Learning | Autumn 2018 | Lecture 3 - Full-Cycle Deep Learning Projects
これまでの講義
第1回のStandford CS230の紹介の記事へのリンクはこちらです。
第2回は、「Deep Learning Introduction」の動画を紹介しました。
記事へのリンクはこちらです。
ディープラーニングプロジェクトのフルサイクル
まず、先生が機械学習プロジェクトを利用しているアプリの必要なステップについて説明しました。
ステップは、次の通りです。
1. 問題の選択
2. データ取得
3. モデル設計
4. モデルトレーニング
5. テストモデル
6. 配備
7. メンテナンス
機械学習製品の構築や販売を計画している場合、プロセスを開始するための7つのステップがありことを学びました。
データ取得、モデル設計、モデルトレーニング
研究によると、モデルをトレーニングする場合は、モデルトレーニングをしばしば繰り返されて実施する必要があります。
実際にカスタム機械学習を練習するには通常とおりにうまく行けなかったこともよくあります。少なくとも最初のうちは失敗する可能性もあります。
最初によく動いてないこと、希望した結果を得られない可能性があることなどの原因があります。
解決するには、フルサイクルディープラーニングプロジェクトの全ステップ(Full Cycle Deep Learning Project Steps)の中にあるモデルの2、3、4番目ステップとして
●デザインを再設計する
●データ収集についてレビューする(必要に応じてさらにデータを収集)
●モデルを再トレーニングする
の改修を考えるようになります。
上記の3つのステップを、解決したい問題セットに応じて、何度も繰り返す必要があります。
機械学習を学ぶ人として、データ取得(Get Data)、モデルデザイン(Design model)、モデルトレーニング(Train model)、テストモデル(Test model)、その4つのステップは、プロジェクトを構築する際の注意深い設計の基本的な基盤です。
データの収集に費やされる時間を示するため、フィボナッチ数列を例として使いながら説明し、そのような数値を選択する必要なことについて説明しました。
続いては、データを収集するために何時間ぐらい使うかと何日ぐらいが使用されるかなど、データを収集する方法について学生たちから話し合うように求められました。
学生たちからの回答は通常10日、5日、365日の ラボ、Google検索で検索と既存のデータセットを使用することなど、それそれ多くの違いがありました。
それが最初のプロジェクトになる場合、どの部分が難しいですかどの部分が簡単かを判断するのが難しいです。そのため、先生がデータを収集するのに最大20日、モデルの組み立てに2日かかるものを2日を無駄にする代わりに、モデルをトレーニングするように示しました。
それなら、どの例が間違っているかを簡単に確認できるし、データ収集時間も短縮できれば、モデルトレーニングをすばやく繰り返してできてモデルを改善することはできます。
テストモデル
以前のステップを全部準備し終わって、モデルのテストフェーズになったら、各テストステップの結果を記憶する必要があります。
なぜかというと、これはMLモデルをトレーニングする時に、パラメーターを変更して何回か繰り返してテストしたモデルの結果を比較して何度も試行する必要があるためです。
各ステップを注意して深く覚えておけば、変更したモデルのどれが現在の問題に最適であるかメモ、記録などで判断できます。スプレッドシートを使用してメモを作成しているグループなどもいます。メモをうまく管理すれば、時間判断を節約することもできます。
展開
上記のステップを経た後、ユーザーが使用できるように展開する必要があります。エッジとクラウドでは、どちらが簡単かというデプロイに関して相談しました。ほとんどの学生がクラウドでのデプロイがより簡単だと選択しました。
ユーザーのプライバシーに関わるセキュリティ上の懸念に加えて、クラウド上に展開する際には、以下のような点がより参考になります。
● 検出
● 学習用データ
● モデルのバックアップ
音声認識システム
例えば、音声認識システムを作る際には、次の2点を考慮する必要があります。1つ目は、入力されたコマンドに対応するセクションを開発すること、2つ目は、入力されたコマンドの判定を開始することです。
2つ目の開発タイプは、音声認識システムにおけるVAD(Voice Activities Detection)と呼ばれるものです。音声認識システムに音声製品のVADのような処理を実装するには、2つの考え方があります。
1. よりシンプルなアルゴリズムをベースにした非機械学習を使う
2. 人間の音声で学習した小さなニューラルネットワークシステムと、システムを使い分けるかどうか
ほとんどの学生が、選択肢2を選びました。Option1はシンプルですが、さまざまな音を検出する機能があります。非常に騒がしい環境での使用は容易ではありません。そのため、特定の音をトレーニングするオプション2が選ばれました。
ここには長所と短所があるので、先生と学生がお互いに話し合いました。音声認識システムを使ったことがない人は、シンプルなので選択肢1を選ぶかもしれません。しかし、先生はそのようなシステムを使った経験があるので、選択肢2を選んだと言います。
オプション1はシンプルですが多音です。ノイズは検出されません。騒がしい環境ではオプション2が良いです。しかし、先生は、十分な予算がある場合にのみ、選択肢2を選択するのが良いと説明しました。
メンテナンス
メンテナンスの説明の場合例としてUSスピーカーからUKスピーカーに変更するとしたら、「Non-MLシステム」と「Learned Small NNシステム」では、どちらのシステムが有効でしょうかを相談しました。
ほとんどの学生がNon-ML Systemを選択しました。Learned Small NNシステムでは、学習したモデルの音声は米国のものですが、ユーザーのアクセントは異なり、発音がはっきりしない場合もあります。新しいアクセントがあるかもしれません。また、バックグラウンドノイズが発生したり、品質の低いマイクを使用すると問題が発生することもあります。
このような場合、メンテナンスは困難です。そのため、米国から英国への乗り換えの際には、シンプルな非ML方式が効果的です。先生は、「学んだ小さなNNを選ぶときは、もっと具体的なルールを決める必要がある」と説明しました。
このような音声認識システムは、継続的なプロジェクトであり、メンテナンスが必要です。メンテナンスは、統計的手法を用いて測定できます。QAプロセスに携わる企業は、95%の使用可能性があれば、そのシステムは良い成功を収めたシステムと言えると説明しました。
まとめ
この記事では、ディープラーニングプロジェクトを構築する方法を学び、その手順を説明しました。
データ収集やモデルトレーニングをどのように行うか、学習したモデルをテストする際には、メモを取る必要があるか、導入段階で、なぜクラウドを選ぶのか、メンテナンスの難しさも勉強になりました。
Airitechでは定期的に社内勉強会を行っています
採用情報はこちら
この記事が気に入ったらサポートをしてみませんか?