【Coursera】「Machine Learning(機械学習) Week 5」〜ニューラルネットワークの実装方法を学びたい〜
前回(Machine Learning(機械学習) Week 4)は、ニューラルネットワークの概念を学びました。
今回は、ニューラルネットワークの具体的な実装方法について学びます。
<過去の記事>
【Coursera】「Machine Learning(機械学習) Week 1」〜機械学習の種類を学びたい〜 - 継続力
【Coursera】「Machine Learning(機械学習) Week 2」〜複雑なケースでの回帰分析を学びたい〜 - 継続力
【Coursera】「Machine Learning(機械学習) Week 3」〜分類の具体的なアルゴリズムを学びたい〜 - 継続力
【Coursera】「Machine Learning(機械学習) Week 4」〜ニューラルネットワークの概要を学びたい〜 - 継続力
講師
アンドリュー・エン(Andrew Ng)氏です。
人工知能研究の第一人者であり、Google Brainの共同設立者、 Baiduの元副社長兼チーフサイエンティスト、スタンフォード大学の教授という凄い経歴の持ち主です。
講義の概要
「Week 5」では、以下の内容が、約5時間程度で学べます。
- ニューラルネットワークの目的関数の最適化アルゴリズムであるバックプロパゲーションの概念
- バックプロパゲーションの実装方法
講義の内訳
講義の内訳は以下の通りです。
<ニューラルネットワークの目的関数の最適化アルゴリズムであるバックプロパゲーションの概念>
■Cost Function
- ニューラルネットワークのCost function(目的関数)について説明。
■Backpropagation Algorithm
- ニューラルネットワークのCost function(目的関数)を最小化するために、バックプロパゲーション(Backpropagation Algorithm)を使用する。
- バックプロパゲーションのアルゴリズムについて説明。
■Backpropagation Intuition
- バックプロパゲーションの計算イメージを説明。
<バックプロパゲーションの実装方法>
■Implementation Note: Unrolling Parameters
■Gradient Checking
- バックプロパゲーションの算出値をチェックする方法として、Gradient Checkingを説明。
- Gradient Checkingは遅いため、Gradient Checkingでバックプロパゲーションアルゴリズムの確からしさをチェックした後は、Gradient Checkingはオフした方がいい。
■Random Initialization
- ニューラルネットワークの重み付けパラメータθの初期値を全て0にすると、バックプロパゲーションで計算したアクティベーションユニットが全て同一値になってしまい、うまく計算できない。
この問題を防ぐために、重み付けパラメータθの初期値はランダムな値を用いる (Symmetry breaking)。
■Putting It Together
- ニューラルネットワークのトレーニング順序を説明。
- ニューラルネットワークの隠れ層、クラス数等の構造を決める
→重み付けバラメータの初期値にランダム値を設定
→仮定関数を計算するためにフォワードプロパゲーションを実装
→目的関数を計算する処理を実装
→導関数を算出するためにバックプロバゲーションを実装
→Gradient Checkingでバックプロバゲーションの確からしさをチェック
→確からしさがチェックできたら、Gradient Checkingはオフする
→目的関数を最小化するために最急降下法や高度な最適化手法とバックプロバゲーションを組み合わせて使用
■Autonomous Driving
- ニューラルネットワークを自動運転に適用した例を紹介。
- 最初は手動で運転し、AIにハンドル操作を学習させる
→AIの学習が終わった後は、AIに運転させる。
どういう人におすすめか
「ニューラルネットワークを使って、どうやって予測しているのか?」と疑問を抱えている人に対して、「最適化アルゴリズムの学習を通じて、ニューラルネットワークによる予測のイメージ」を掴める良い授業だと思います。
「Andrew Ng」氏の説明はとても分かりやすいため、是非動画を見てみてください。