php做网站后台教程,wordpress后台页面加载慢,网页设计公司网站,亚马逊品牌网站怎么做假设#xff0c;你有这样一个网络层#xff1a; 第一层是输入层#xff0c;包含两个神经元i1#xff0c;i2#xff0c;和截距项b1#xff1b;第二层是隐含层#xff0c;包含两个神经元h1,h2和截距项b2#xff0c;第三层是输出o1,o2#xff0c;每条线上标的wi是层与层之…假设你有这样一个网络层 第一层是输入层包含两个神经元i1i2和截距项b1第二层是隐含层包含两个神经元h1,h2和截距项b2第三层是输出o1,o2每条线上标的wi是层与层之间连接的权重激活函数我们默认为sigmoid函数。 现在对他们赋上初值如下图 其中输入数据 i10.05i20.10; 输出数据 o10.01,o20.99; 初始权重 w10.15,w20.20,w30.25,w40.30; w50.40,w60.45,w70.50,w80.55 偏置b10.35b20.6 目标给出输入数据i1,i2(0.05和0.10)使输出尽可能与原始输出o1,o2(0.01和0.99)接近。 Step 1 前向传播 1.输入层----隐含层 计算神经元h1的输入加权和 神经元h1的输出o1:(此处用到激活函数为sigmoid函数) 同理可计算出神经元h2的输出o2 2.隐含层----输出层 计算输出层神经元o1和o2的值 这样前向传播的过程就结束了我们得到输出值为[0.75136079 , 0.772928465]与实际值[0.01 , 0.99]相差还很远现在我们对误差进行反向传播更新权值重新计算输出。
Step 2 反向传播
1.计算总误差
总误差(square error) 但是有两个输出所以分别计算o1和o2的误差总误差为两者之和 2.隐含层----输出层的权值更新
以权重参数w5为例如果我们想知道w5对整体误差产生了多少影响可以用整体误差对w5求偏导求出链式法则 下面的图可以更直观的看清楚误差是怎样反向传播的 现在我们来分别计算每个式子的值
计算 计算 这一步实际上就是对sigmoid函数求导比较简单可以自己推导一下
计算 最后三者相乘 这样我们就计算出整体误差E(total)对w5的偏导值。
回过头来再看看上面的公式我们发现 为了表达方便用来表示输出层的误差 因此整体误差E(total)对w5的偏导公式可以写成 如果输出层误差计为负的话也可以写成 最后我们来更新w5的值 其中是学习速率这里我们取0.5
同理可更新w6,w7,w8: 3.隐含层----隐含层的权值更新 方法其实与上面说的差不多但是有个地方需要变一下在上文计算总误差对w5的偏导时是从out(o1)----net(o1)----w5,但是在隐含层之间的权值更新时是out(h1)----net(h1)----w1,而out(h1)会接受E(o1)和E(o2)两个地方传来的误差所以这个地方两个都要计算。 计算 先计算 同理计算出 两者相加得到总值 再计算 再计算 最后三者相乘 为了简化公式用sigma(h1)表示隐含层单元h1的误差 最后更新w1的权值 同理额可更新w2,w3,w4的权值 这样误差反向传播法就完成了最后我们再把更新的权值重新计算不停地迭代在这个例子中第一次迭代之后总误差E(total)由0.298371109下降至0.291027924。迭代10000次后总误差为0.000035085输出为[0.015912196,0.984065734](原输入为[0.01,0.99]),证明效果还是不错的。