Coursera Deep Learning専門講座の受講メモ (コース1 - Neural Networks and Deep Learning - Week 4)
この記事のまとめ:
- CourseraのDeep Learning専門講座のコース1: Neural Networks and Deep LearningのWeek 4の受講メモとして、要点とよくわからなかったところを補完のために調べたことなどを備忘録としてまとめています。
Week 4の概要
コース1のNeural Networks and Deep Learningコースは次のような4週構成になっており、Week 3は隠れ層が1層のニューラルネットワークを扱いましたが、Week 4はニューラルネットワークを一般化して任意の隠れ層の数を扱います。Week 3が理解できていれば大差ありません。
なお、狭義には4層以上のニューラルネットワークを深層ニューラルネットワークというそうです。
- Week 1:Deep Learningの前提的な話
- Week 2:ロジスティック回帰、使用する数式表現、Pythonの使い方
- Week 3:隠れ層の少ないニューラルネットワーク、活性化関数、ランダム初期化
- Week 4:隠れ層が多いニューラルネットワーク(=ディープラーニング)
隠れ層の多いニューラルネットワーク
Week 3では間に1層の隠れ層 (Hidden Layer)があるニューラルネットワークを扱いましたが、Week 4では任意の数の隠れ層を扱います。図で表すと次のおりです。
出力層 (Output layer)を含めて 層の多層ニューラルネットワークについて、 層目のニューロンの数を として学習を行います。学習方法の流れはWeek 3で行ったものとほとんど同じですが、各層での処理を一般化することで、各層の処理を一つ一つ記述せず、forループの処理で記述できるようにします。Week 3の内容が理解できていれば、理解はたやすいです。
順伝搬 (Forward Propagation)
順伝搬においては、各層では次の処理を行います。
-
入力:
- 層からの順伝搬:
-
出力
- 層への順伝搬:
- 層の逆伝搬へのキャッシュ:
上記出力用の順伝搬は計算は次の通りに表せます。
なお、入力層の訓練データと出力層の出力 は、一般化するために次のようにしております。
また、 は層目の活性化関数を表しており、各層で任意の活性化関数を選択します。
上式の通り、順伝搬では 層から を受け取り、 層に を渡します。 また、逆伝搬の処理を減らすために をキャッシュしておきます。
逆伝搬 (2Bbackward Propagation)
逆伝搬においては、各層では次の処理を行います。
- 入力:
- 層からの逆伝搬:
- 層の順伝搬からのキャッシュ:
- 処理:
- 重みの傾き:
- バイアスの傾き:
- 出力
- 層への逆伝搬:
逆伝搬における各層の処理は一般化すると次のように表すことができます。
Week 4の要点はこの手順を理解することです。この流れでWeek 3で行ったのと同様の手順ですべての隠れ層の重み、バイアスを更新すれば隠れ層が多くなっても特別なことを考える必要がありません。
今回は以上です。 最後まで読んでいただき、ありがとうございます。
CourseraのDeep Learning専門講座の他のコースの受講メモ
- コース1: Neural Networks and Deep Learning
- コース2: Improving Deep Neural networks
- コース3: Structuring Machine Learning Projects
- コース4: Convolutional Neural Network
- コース5: Sequence Models
コメント
コメントを投稿