takeda_san’s blog

KotlinとVRを頑張っていく方向。

パーセプトロンプログラムの理解 その1

前回のあらすじ

なぜ4層以上がDeep Learningなのかをふわっと理解。

takeda-san.hatenablog.com

やったこと

パーセプトロンの実装例のプログラムを読む

ここのパーセプトロンの実装プログラム(Perceptron.java)を読んでいきます。

Java DeepLearning4j 基本的な利用方法|軽Lab

入力と出力から見るにOR演算のプログラムらしい。
活性化関数にシグモイド関数を…、ん、「シグモイド関数」ってなんだ。

シグモイド関数

次のような関数をシグモイド関数と呼ぶらしい。


\displaystyle σ(x) = \frac{1}{1 - e ^ -x}

え、高校数学の範囲なの…?

シグモイド関数の意味と簡単な性質 | 高校数学の美しい物語

eってなんだっけ…(自然対数久しぶりに思い出しました)
気をとりなおして…
シグモイド関数とは、任意の実数を0~1にする関数。

誤差関数MSEとは

誤差関数には 
\displaystyle MSE( \sum (t-o) ^ 2 )
を使う…?
MSE(mean square error)は平均二乗誤差を意味するらしい。
平均二乗誤差、昔に勉強したような…

助けてgoogle先生
いくつか、見てみましたがこの説明が一番ピンときました。
そもそも、誤差ってなんだっけからわかりやすく説明されていました。

http://012.o.oo7.jp/2016hyoujyunhensa_heikinjijyougosa.pdf

測定値と真値の差を二乗することで、その測定値の正確さを示す指標を求めるということなのだろうか。
とすると誤差関数としては適当に思える。
まだ、少しもやもやするが、このあたりは別途調べるとしよう。

いろいろと過去の不勉強が一度に襲い掛かってきている。 が、プログラム全体の理解までもう少し。

今後の予定

・プログラミングのための線形代数を読む
・サンプルプログラム(Perceptron/LenetMnistExample)を読む
Mavenのpomの読み方