こんにちは。株式会社マックスネット 人工知能・AI開発チームのIsoです。
今回はディープラーニングのニューラルネットワークを実装してみましょう。
**********
さて、今回はニューラルネットワークの順方向での最初の部分を実装してみよう。
まずはお決まりのニューラルネットワークの参照図です。
上記画像の赤枠の中を実装します。
x1とx2から出ている水色の線は「重み」を表しています。
これをW1とします。
また、オレンジの線はバイアスから出ているもので、これをB1とします。
Xからの入力値を2層目で受け取り、入力値と重みを乗じたものの総和を取り、バイアスを加えて、シグモイド関数を通して出力する。
この部分をpythonで実装してみましょう。
では、pythonコードです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#シグモイド関数 def sigmoid(x): return 1 / (1 + np.exp(-x)) # Xに入力値を入れる X = np.array([1.0,2.0]) # 重みに値を入れる W1 = np.array([[0.1,0.3,0.5],[0.2,0.4,0.6]]) # バイアスに値を入れる B1 = np.array([0.2,0.3,0.4]) # Xと重みの内積を出して、バイアスを加える A = np.dot(X,W1)+B1 # Aをシグモイド関数に通す Z = sigmoid(A) |
どうでしょう。
上記を繰り返していけば、何層にも渡って、順方向のニューラルネットワークを作ることができます。
(最終層である出力層のところは、関数を通さずに、そのまま出力することが多いです。ここら辺はまた後ほど)
まずは上記のコードをよく読んで、ニューラルネットワークの基礎を習得しましょう。