ディープラーニング

【python】1日30分のディープラーニング -16日目- ~ニューロンの実装~

ニューロンの実装

import numpy as np
import matplotlib.pyplot as plt

X = np.arange(-1.0,1.0, 0.2)
Y = np.arange(-1.0,1.0, 0.2)

Z= np.zeros((10,10)) #10*10のグリッドを生成

w_x = 2.5
w_y = 3.0

bias = 0.1

for i in range(10):
    for j in range(10):
        
        u = X[i]*w_x + Y[j]*w_y  + bias
        y = 1/(1+np.exp(-u)) #シグモイド関数
        Z[j][i] = y
        
plt.imshow(Z, "gray", vmin=0.0, vmax=1.0)
plt.colorbar()
plt.show()
解説

今回はシグモイド関数を使用してニューロン処理を実装しています。(シグモイド関数はinputが-無限大に向かうにつれて0に収束,無限大に向かうにつれて1に収束する
X = np.arange(-1.0,1.0, 0.2), Y = np.arange(-1.0,1.0, 0.2)としていて各値の重みに正の値を設定しているのでシグモイド関数の性質上x,yの値が大きくなるにつれて出力結果も1に近ずいていくことがわかる。
シグモイド関数の特徴として、出力結果が必ず0から1の間で出力されます。
今回のグリッドでは出力が0に近いほど黒色、1に近いほど白色で表現されています。シグモイド関数を使用しているからこそ実現できます。
さらに、今回重要なのは重みとバイアスですがこちらに関しては次回に説明します。