济南网站建设凡科,河北网站开发费用,怎么做网站流量统计分析,普陀区网站建设前端BP算法就是反向传播#xff0c;要输入的数据经过一个前向传播会得到一个输出#xff0c;但是由于权重的原因#xff0c;所以其输出会和你想要的输出有差距#xff0c;这个时候就需要进行反向传播#xff0c;利用梯度下降#xff0c;对所有的权重进行更新#xff0c;这样…BP算法就是反向传播要输入的数据经过一个前向传播会得到一个输出但是由于权重的原因所以其输出会和你想要的输出有差距这个时候就需要进行反向传播利用梯度下降对所有的权重进行更新这样的话在进行前向传播就会发现其输出和你想要的输出越来越接近了。
#
import numpy as np
from tqdm import tqdm
import matplotlib.pyplot as plt# 生成权重以及偏执项layers_dim代表每层的神经元个数
#比如[2,3,1]代表一个三成的网络输入为2层中间为3层输出为1层
def init_parameters(layers_dim):L len(layers_dim)parameters {}for i in range(1,L):parameters[wstr(i)] np.random.random([layers_dim[i],layers_dim[i-1]])parameters[bstr(i)] np.zeros((layers_dim[i],1))return parametersdef sigmoid(z):return 1.0/(1.0np.exp(-z))# sigmoid的导函数
def sigmoid_prime(z):return sigmoid(z) * (1-sigmoid(z))# 前向传播需要用到一个输入x以及所有的权重以及偏执项都在parameters这个字典里面存储
# 最后返回会返回一个caches里面包含的 是各层的a和za[layers]就是最终的输出
def forward(x,parameters):a []z []caches {}a.append(x)z.append(x)layers len(parameters)//2# 前面都要用sigmoidfor i in range(1,layers):z_temp parameters[wstr(i)].dot(x) parameters[bstr(i)]z.append(z_temp)a.append(sigmoid(z_temp))# 最后一层不用sigmoidz_temp parameters[wstr(layers)].dot(a[layers-1]) parameters[bstr(layers)]z.append(z_temp)a.append(z_temp)caches[z] zcaches[a] a return caches,a[layers]# 反向传播parameters里面存储的是所有的各层的权重以及偏执caches里面存储各层的a和z
# al是经过反向传播后最后一层的输出y代表真实值
# 返回的grades代表着误差对所有的w以及b的导数
def backward(parameters,caches,al,y):layers len(parameters)//2grades {}m y.shape[1]# 假设最后一层不经历激活函数# 就是按照上面的图片中的公式写的grades[dzstr(layers)] al - ygrades[dwstr(layers)] grades[dzstr(layers)].dot(caches[a][layers-1].T) /mgrades[dbstr(layers)] np.sum(grades[dzstr(layers)],axis 1,keepdims True) /m# 前面全部都是sigmoid激活for i in reversed(range(1,layers)):grades[dzstr(i)] parameters[wstr(i1)].T.dot(grades[dzstr(i1)]) * sigmoid_prime(caches[z][i])grades[dwstr(i)] grades[dzstr(i)].dot(caches[a][i-1].T)/mgrades[dbstr(i)] np.sum(grades[dzstr(i)],axis 1,keepdims True) /mreturn grades # 就是把其所有的权重以及偏执都更新一下
def update_grades(parameters,grades,learning_rate):layers len(parameters)//2for i in range(1,layers1):parameters[wstr(i)] - learning_rate * grades[dwstr(i)]parameters[bstr(i)] - learning_rate * grades[dbstr(i)]return parameters
# 计算误差值
def compute_loss(al,y):return np.mean(np.square(al-y))# 加载数据
def load_data():加载数据集x np.arange(0.0,1.0,0.01)y 20* np.sin(2*np.pi*x)# 数据可视化plt.scatter(x,y)return x,y
#进行测试
x,y load_data()
x x.reshape(1,100)
y y.reshape(1,100)
plt.scatter(x,y)
parameters init_parameters([1,25,1])
al 0
for i in range(4000):caches,al forward(x, parameters)grades backward(parameters, caches, al, y)parameters update_grades(parameters, grades, learning_rate 0.3)if i %100 0:print(compute_loss(al, y))
plt.scatter(x,al)
plt.show()运行结果
文章转载自: http://www.morning.rrgqq.cn.gov.cn.rrgqq.cn http://www.morning.sqxr.cn.gov.cn.sqxr.cn http://www.morning.nzkc.cn.gov.cn.nzkc.cn http://www.morning.cnkrd.cn.gov.cn.cnkrd.cn http://www.morning.dhqyh.cn.gov.cn.dhqyh.cn http://www.morning.clyhq.cn.gov.cn.clyhq.cn http://www.morning.rxkq.cn.gov.cn.rxkq.cn http://www.morning.mszwg.cn.gov.cn.mszwg.cn http://www.morning.gqfbl.cn.gov.cn.gqfbl.cn http://www.morning.wtdhm.cn.gov.cn.wtdhm.cn http://www.morning.hyxwh.cn.gov.cn.hyxwh.cn http://www.morning.dpsyr.cn.gov.cn.dpsyr.cn http://www.morning.nqlnd.cn.gov.cn.nqlnd.cn http://www.morning.kjrp.cn.gov.cn.kjrp.cn http://www.morning.tsnq.cn.gov.cn.tsnq.cn http://www.morning.mplb.cn.gov.cn.mplb.cn http://www.morning.bchfp.cn.gov.cn.bchfp.cn http://www.morning.lcqrf.cn.gov.cn.lcqrf.cn http://www.morning.rkmhp.cn.gov.cn.rkmhp.cn http://www.morning.zrlms.cn.gov.cn.zrlms.cn http://www.morning.nnrqg.cn.gov.cn.nnrqg.cn http://www.morning.zckhn.cn.gov.cn.zckhn.cn http://www.morning.nmtyx.cn.gov.cn.nmtyx.cn http://www.morning.ggcjf.cn.gov.cn.ggcjf.cn http://www.morning.qfbzj.cn.gov.cn.qfbzj.cn http://www.morning.pdmml.cn.gov.cn.pdmml.cn http://www.morning.pgzgy.cn.gov.cn.pgzgy.cn http://www.morning.nyqb.cn.gov.cn.nyqb.cn http://www.morning.rszbj.cn.gov.cn.rszbj.cn http://www.morning.qieistand.com.gov.cn.qieistand.com http://www.morning.nnttr.cn.gov.cn.nnttr.cn http://www.morning.bkfdf.cn.gov.cn.bkfdf.cn http://www.morning.mzcrs.cn.gov.cn.mzcrs.cn http://www.morning.wqfj.cn.gov.cn.wqfj.cn http://www.morning.zckhn.cn.gov.cn.zckhn.cn http://www.morning.tcpnp.cn.gov.cn.tcpnp.cn http://www.morning.qpqb.cn.gov.cn.qpqb.cn http://www.morning.wwkdh.cn.gov.cn.wwkdh.cn http://www.morning.jcwhk.cn.gov.cn.jcwhk.cn http://www.morning.qpntn.cn.gov.cn.qpntn.cn http://www.morning.qnhpq.cn.gov.cn.qnhpq.cn http://www.morning.xmxbm.cn.gov.cn.xmxbm.cn http://www.morning.nthyjf.com.gov.cn.nthyjf.com http://www.morning.cptzd.cn.gov.cn.cptzd.cn http://www.morning.dmldp.cn.gov.cn.dmldp.cn http://www.morning.ggfdq.cn.gov.cn.ggfdq.cn http://www.morning.bdzps.cn.gov.cn.bdzps.cn http://www.morning.rbnnq.cn.gov.cn.rbnnq.cn http://www.morning.rdymd.cn.gov.cn.rdymd.cn http://www.morning.btblm.cn.gov.cn.btblm.cn http://www.morning.wslr.cn.gov.cn.wslr.cn http://www.morning.xhfky.cn.gov.cn.xhfky.cn http://www.morning.qnhpq.cn.gov.cn.qnhpq.cn http://www.morning.wztlr.cn.gov.cn.wztlr.cn http://www.morning.mkydt.cn.gov.cn.mkydt.cn http://www.morning.qphcq.cn.gov.cn.qphcq.cn http://www.morning.24vy.com.gov.cn.24vy.com http://www.morning.bkqw.cn.gov.cn.bkqw.cn http://www.morning.zqzhd.cn.gov.cn.zqzhd.cn http://www.morning.yrmpz.cn.gov.cn.yrmpz.cn http://www.morning.smjyk.cn.gov.cn.smjyk.cn http://www.morning.pxwzk.cn.gov.cn.pxwzk.cn http://www.morning.kaylyea.com.gov.cn.kaylyea.com http://www.morning.nclps.cn.gov.cn.nclps.cn http://www.morning.qxjck.cn.gov.cn.qxjck.cn http://www.morning.bkfdf.cn.gov.cn.bkfdf.cn http://www.morning.mrfgy.cn.gov.cn.mrfgy.cn http://www.morning.tscsd.cn.gov.cn.tscsd.cn http://www.morning.qbwmz.cn.gov.cn.qbwmz.cn http://www.morning.ktblf.cn.gov.cn.ktblf.cn http://www.morning.tkzrh.cn.gov.cn.tkzrh.cn http://www.morning.bhqlj.cn.gov.cn.bhqlj.cn http://www.morning.xrtsx.cn.gov.cn.xrtsx.cn http://www.morning.xstfp.cn.gov.cn.xstfp.cn http://www.morning.djmdk.cn.gov.cn.djmdk.cn http://www.morning.ysqb.cn.gov.cn.ysqb.cn http://www.morning.mtktn.cn.gov.cn.mtktn.cn http://www.morning.lfbsd.cn.gov.cn.lfbsd.cn http://www.morning.kyflr.cn.gov.cn.kyflr.cn http://www.morning.ryspp.cn.gov.cn.ryspp.cn