python搭建如下图一个三层神经网络,简单的单向传播。
激活函数的选取,要满足的条件:(1)单调性。(2)可微性。(3)非线性。
附代码:
##搭建一个三层神经网络
#选用sigmoid函数作为该神经网络的阈值函数
def sigmoid(x): #S型生长曲线,可作为激活函数
return 1/(1+np.exp(-x))
#权重
w1 = np.array([[0.1,0.3,0.5],[0.2,0.4,0.6]])
w2 = np.array([[0.1,0.4],[0.2,0.5],[0.3,0.6]])
w3 = np.array([[0.1,0.3],[0.2,0.4]])
#偏置项
b1 = np.array([0.1,0.2,0.3])
b2 = np.array([0.1,0.2])
b3 = np.array([0.1,0.2])
#输入值
x = np.array([1.0,0.5])
#矩阵乘法numpy.dot(A,B)
a1 = np.dot(x,w1) + b1
z1 = sigmoid(a1)# 第一层神经元输出
a2 = np.dot(z1,w2) + b2
z2 = sigmoid(a2)# 第二层神经元输出
a3 = np.dot(z2,w3) + b3
z3 = sigmoid(a3)# 第三层神经元输出
print(z3)