無限不可能性ドライブ

『ニューラルネットワーク自作入門』に刺激されてExcelVBAでニューラルネットワークを作ってみたものの、やっぱり数学やらなきゃと思い少しずつやってきたのもあって、自分の知識の整理とかそういった感じです。

2018-10-01から1ヶ月間の記事一覧

【VBA編】どんなものを作っていくか

今回作るニューラルネットワーク 入力:4 出力:3 隠れ層の活性化関数:ReLU 出力層の活性化関数:Softmax 損失関数:クロスエントロピー 学習方法:教師あり学習 教師データ:one-hot 表現 扱う問題:分類問題 データセット:アイリス データセット さん…

【数式編】(逆伝播)のまとめ 2

逆伝播の更新式を一覧でまとめたものを載せておきます。 VBA編ではこれを元に実装していきます。

【数式編】(逆伝播)のまとめ 1

逆伝播についてはそれぞれの重みとバイアスの (勾配)の部分を載せます。 重みやバイアスは、 (勾配)に学習率を掛け、現在の重みやバイアスの値から引くことで更新していきます。 出力層 出力層についても共通部分を で表すことにしましょう。 ユニットo1…

【数式編】(順伝播)のまとめ、あと(損失関数)

いままでに求めた順伝播の式をまとめておきます。 隠れ層1層め ユニットh11 ユニットh12 ユニットh13 隠れ層2層め ユニットh21 ユニットh22 ユニットh23 ユニットh24 出力層 ユニットo11 ユニットo12 ユニットo13 損失関数(クロスエントロピーエラー)

【数式編】(逆伝播)1つめの隠れ層の重みとバイアスを更新する 3-(3)

ユニットh12 の重みとバイアスの更新式 もう一度、前回までで求めた更新式を見てみましょう。(再掲) よく見ると、 という構造になっていることがわかります。 それを踏まえると以下のようになると思います。 今回の共通部は としましょう。 ユニットh13 の…

【数式編】(逆伝播)1つめの隠れ層の重みとバイアスを更新する 3-(2)

ユニットh11 の残りの重みとバイアスの更新式 では、残りの の更新式についてみていきましょう。 ・まずは の更新式 前回求めた の更新式と見比べると、 の部分が共通していることがわかると思います。 (再掲) なので、 の部分だけ計算すればいいですね。 …

【数式編】(逆伝播)1つめの隠れ層の重みとバイアスを更新する 3-(1)

隠れ層1層めの重みの更新式 さて、いよいよ隠れ層1層めの重みとバイアスの更新式についてみていきましょう。 今回は、隠れ層1層めの1つめのユニット ユニットh11 の重み についてみていきます。 隠れ層1層めともなると、その出力が影響を及ぼした値はか…

【VBA】FizzBuzzをクラスを使って書いてみる【GAS】

最近GAS(Google Apps Script)の勉強を始めたので、 某所のお題であったFizzBuzz問題をVBAとGASでクラスを使って(GASというかJavaScriptではクラスという言い方はしないらしい…)書いてみました。 VBAはコンストラクタ(Class_Initialize())で引数をとれ…

【数式編】(逆伝播)2つめの隠れ層の重みとバイアスを更新する 2-(3)

おさらい 前回までで ユニットh21 と ユニットh22 についての必要な更新式が求まりました。 以下に再掲してみます。 ・ユニットh21 ・ユニットh22 見比べてみると以下のことがわかると思います。 かっこの部分はユニットごとに共通 最後に掛け合わされている…

【数式編】(逆伝播)2つめの隠れ層の重みとバイアスを更新する 2-(2)

前回のおさらい 前回求めた の更新式は以下の通りです。 今回はその他の重み とバイアス の更新部分の式(勾配)を求めていきます。 それぞれの更新式 それぞれの更新式を並べてみます。 ・・・(1) ・・・(2) ・・・(3) それぞれで の部分は同じこ…

【数式編】(逆伝播)2つめの隠れ層の重みとバイアスを更新する 2-(1)

重みの更新式 大まかなところは1つめのユニットと変わりません。 今回は2つめのユニット(ユニットh22)なので、 が になっていることに注意してください。 連鎖率(チェインルール) ユニットh21 と同様の考え方で、 を求める式を立ててみます。 (再掲)…

【数式編】(逆伝播)2つめの隠れ層の重みとバイアスを更新する 1-(2)

前回のおさらい 前回求めた の更新式は以下の通りです。 今回はその他の重み とバイアス の更新部分の式(勾配)を求めていきます。 まずは2つめの重み について については以下の式を求めます。 ただ、 の式と見比べると、 の部分は同じことがわかります。…

【数式編】(逆伝播)2つめの隠れ層の重みとバイアスを更新する 1-(1)

隠れ層の重みの更新式 今回から、隠れ層の重みとバイアスの更新式についてみていきます。 今回は、2層目の隠れ層の1つめのユニット ユニットh21 の重み についてみていきましょう。 隠れ層でも重みの更新式は以下のようにあらわすことができます。 連鎖率…

【数式編】(逆伝播)出力層の重みとバイアスを更新する 3

前回までのおさらい 前回までで、ユニットo11 と ユニットo12 の更新部分の式(勾配)を求めました。 ユニットo11 の重みとバイアスの勾配() ユニットo12 の重みとバイアスの勾配() 見比べてみると、(そのユニットの出力 - 該当する教師データ(ラベル…

【数式編】(逆伝播)出力層の重みとバイアスを更新する 2-(2)

前回のおさらい 前回求めた の更新式はこのようなものでした。 今回はその他の重み とバイアス の更新式を求めていきます。 まずは2つめの重み については以下の式を求めます。 の式と見比べると の部分は同じことがわかります。なので、 についてのみ考え…

【数式編】(逆伝播)出力層の重みとバイアスを更新する 2-(1)

ユニットo12 の重みの更新式 今回は ユニットo12 の重み の更新式を見ていきます。 以前求めた の更新式を参考にすると… となることがわかると思います。 今回は ユニットo12 を対象としているので、 となっていることに注意してください。 計算手順は ユニ…

【数式編】(逆伝播)出力層の重みとバイアスを更新する 1-(2)

前回のおさらい 前回求めた の更新式はこのようなものでした。 今回はその他の重み とバイアス の更新式を求めていきます。 まずは2つめの重み まずは について見ていきましょう。 更新式は次のようになります。 の式と見比べると の部分は同じことがわかり…