标签:0.9 sigmoid 算法 实例 BP w2 w1 np array
# -*- coding: utf-8 -*-
import numpy as np
def sigmoid(x):#激活函数
return 1/(1+np.exp(-x))
input = np.array([[0.35], [0.9]]) #输入数据
w1 = np.array([[0.1, 0.8], [0.4, 0.6]])#第一层权重参数
w2 = np.array([0.3, 0.9])#第二层权重参数
real = np.array([[0.5]])#真实值
for s in range(0,100,1):
pq = sigmoid(np.dot(w1,input))#第一层输出
output = sigmoid(np.dot(w2,pq))#第二层输出,也即是最终输出
e = output-real #误差
if np.square(e)/2<0.01:
break
else:
#否则,按照梯度下降计算权重参数
#其中,应用链式法则计算权重参数的更新量
w2 = w2 - e*output*(1-output)*pq.T
w1 = w1 - e*output*(1-output)*w2*pq.T*(1-pq.T)*input
print(w1,'\n',w2) #输出最终结果
print (output)
[[ 0.09606536 0.78371966]
[ 0.38988235 0.55813627]]
[[ 0.12472196 0.72965595]]
[[ 0.63690405]]
标签:0.9,sigmoid,算法,实例,BP,w2,w1,np,array 来源: https://blog.51cto.com/u_14540820/2759536
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。