こんにちは､ 今日もディープラーニングの講座にようこそ｡
バックプロパゲーションで締めくくる｡
わかりました｡
つまり､ ニューラルネットワークの中で何が起こっているのか､ 知るべきことはもうほとんど分かっているのです｡
入力層に情報が入力され､ それが前方に伝搬されてYハット､ つまり出力値が得られるという､
順伝播というプロセスがあることが分かっています｡
そして､ それらをトレーニングセットの実際の値と比較し､ 誤差を計算します｡
そして､ その誤差を逆向きにネットワークに逆伝播することで､ 重みを調整することでネットワークを学習させることができるのです｡
ここで覚えておくべき重要なことは､ 逆伝播は非常に興味深く洗練された数学によって駆動される高度なアルゴリズムであり､
重みの調整､ すべての重みを同時に調整することができる､ ということです｡
ですから､ 手作業でやっている場合､ あるいは別のタイプのアルゴリズムを考えている場合､
誤差を計算して､ それぞれの重みが誤差に与える影響を理解しようとしても､
それぞれの重みを独立して､ あるいは個別に調整しなければならないのです｡
逆伝播の大きな利点は､ これは覚えておくべき重要なことですが､ 逆伝播のプロセスの間､
単にアルゴリズムの構造上の理由から､ です｡
すべての重みを同時に調整することができるので､ 基本的にはニューラルネットワークの各重みがどの部分の誤差を担っているかを知ることができます｡
これが､ バックプロパゲーションの重要な基本原理で､ 1980年代に急速に普及した理由です｡
そして､ これが大きなブレイクスルーとなった｡
もしあなたがそのことをもっと知りたいなら､ そして､ バックグラウンドで数学がどのように機能しているかを正確に知りたいなら､
すでに述べたように､ ニューラルネットワークとディープラーニングは､ 実はマイケル・ニールセンの本で､
数学が書き出されていて､ まさにこれがどのように可能なのかを理解するのに役立つ良い記事です｡
しかし､ 今のところ､ 直感的に考えれば､ 重要なのは､ 「逆伝播はこういうことだ」と覚えておくことです｡
すべてのウェイトを同時に調整するのです｡
そして､ ニューラルネットワークのトレーニングで何が起こるのか､ 順を追って説明し､ すべてをまとめたいと思います｡
わかりました｡
そこでステップ1では､ 重みをゼロに近い､ しかしゼロではない小さな数値にランダムに初期化する｡
直感チュートリアルでは重みの初期化にはあまりこだわりませんでしたが､ 重みはどこかで始めなければならないので､
0に近いランダムな値で初期化されます｡
そして､ そこから四伝搬､ 逆伝搬のプロセスを通じて､ 誤差が最小になるまで､
コスト関数が最小になるまで､ これらの重みが調整される｡
次に､ ステップ2は､ データセットの最初の観測値を入力します｡
つまり､ 入力層への最初の行は､ 各特徴が1つの入力ノードとなる｡
だから､ 基本的には列をとって入力ノードに入れる｡
ステップ3 左から右への伝搬のため､ 各ニューロンの活性化の影響が重みで制限されるように､
ニューロンを活性化する｡
つまり､ 重みは基本的に各ニューロンの活性化がどの程度重要であるかを決定し､ 予測される結果y
hatが得られるまで活性化を伝播させるのです｡
つまり､ 基本的には左から右へ伝搬していくわけです｡
最後まで行くと､ Y字ハットがもらえます｡
そして､ 予測結果と実際の結果を比較して､ 発生した誤差を測定し､ 右から左へ誤差を逆伝播するのです｡
誤差の原因に応じて重みを更新する｡
これも､ 摂動による逆伝播アルゴリズムの構造上､ 重みをどれだけ更新するかで学習率が決まるので､
計算できるのですね｡
学習率は､ ニューラルネットワークで制御できるパラメータです｡
ステップ 6 ステップ 1 から 5 を繰り返し､ 各観測後に重みを更新する｡
それが強化学習と呼ばれるものです｡
私たちの場合は､ 確率的勾配降下法､ つまり1から5までのステップを繰り返しながら､ 観測のバッチが終わった後にのみ重みを更新しています｡
バッチ学習では､ 完全勾配降下法､ バッチ勾配降下法､ ミニバッチ勾配降下法のいずれかを使用します｡
そして､ ステップ7は､ エポックよりエポックやり直しをする人工ニューラルネットワークを介して全体のトレーニングセットのパスをするとき｡
つまり､ 基本的にはそれを繰り返していくことで､ ニューラルネットワークがより良く訓練され､
コスト関数を最小化しながら常に自己調整していくのです｡
そうそう､ そうなんです｡
以上が､ 人工ニューラルネットワークを構築し､ 学習させるために必要なステップです｡
そして､ これらは一緒に歩んでいくことになるのです｡
実践的なチュートリアルで学ばれたのですね､ 頑張ってください､ 次回も楽しみにしています｡
それまでは､ ディープラーニングを楽しんでください｡