BP人工神经网络-反向传播法

0 网络计算结果
B(m)=f( ∑n( W(n,m)*X(n) ) + Θ(m) ) %中间层的输出
Y(k)=f( ∑m( V(m,k)*B(m) ) + ф(k) ) %输出层的输出
1 计算误差值
E(k)=Y'(k)-Y(K) %Y'表示样本真实的输出值
2 计算校正误差
dV(k)=E(K) * Y(k) * ( 1-Y(k) )* [学习率]
dW(m)=∑k( dV(k) * V(m,k) ) * B(m) * ( 1-B(m) ) * [学习率]
3 误差校正
V(m,k)=V(m,k) + dV(k) * B(m)
W(n,m)=W(n,m) + dW(m) * X(n)
ф(k)=ф(k) + dV(k) * [学习率]
Θ(m)=Θ(m) + dW(m)* [学习率]
4 matlab代码
%% 构建人工神经网络
% input_train,网络的输入,1500个样本,每个样本24个因子
% output_train,网络的输出,与输入样本数相同为1500个,每个输出有4个因子 in_num=24;%输入的因子数
mid_num=25;%中间层的个数
out_num=4;%输出的因子数 W1=rands(mid_num,in_num);%每个输入对中间层的权重
TD1=rands(1,mid_num);%中间层的阈值
W2=rands(out_num,mid_num);%中间层对输出的权重
TD2=rands(1,out_num);%输出的阈值 %学习率
xite=0.1;%权重的学习率
alfa=0.01;%阈值的学习率 loop_num=100;%训练迭代的次数 %% 网络训练
for loop=1:loop_num
for index=1:1500
input=input_train(index,:);
% 计算中间层输出
mid_out=input*W1'+TD1;
mid_out=1./(1+exp(-mid_out));
% 计算网络的输出
output=mid_out*W2'+TD2;
output=1./(1+exp(-output));
% 计算权重的下降梯度
E= output_train(index,:) - output;
dW2 = E .* output .* (1 - output) * xite;
dW1 = dW2 * W2 .* mid_out .* (1-mid_out) * xite;
% 更新权重
W2=W2 + diag( dW2) * repmat(mid_out,out_num,1);
W1=W1 + diag(dW1) * repmat(input,mid_num,1);
% 更新阈值
TD2=TD2+dW2*xite;
TD1=TD1+dW1*xite;
end
end
代码与示例数据
http://download.csdn.net/detail/long7782/8112627
BP人工神经网络-反向传播法的更多相关文章
- 人工神经网络反向传播算法(BP算法)证明推导
为了搞明白这个没少在网上搜,但是结果不尽人意,最后找到了一篇很好很详细的证明过程,摘抄整理为 latex 如下. (原文:https://blog.csdn.net/weixin_41718085/a ...
- 神经网络中的反向传播法--bp【转载】
from: 作者:Charlotte77 出处:http://www.cnblogs.com/charlotte77/ 一文弄懂神经网络中的反向传播法——BackPropagation 最近在看深度学 ...
- 一文弄懂神经网络中的反向传播法——BackPropagation
最近在看深度学习的东西,一开始看的吴恩达的UFLDL教程,有中文版就直接看了,后来发现有些地方总是不是很明确,又去看英文版,然后又找了些资料看,才发现,中文版的译者在翻译的时候会对省略的公式推导过程进 ...
- [转] 一文弄懂神经网络中的反向传播法——BackPropagation
在看CNN和RNN的相关算法TF实现,总感觉有些细枝末节理解不到位,浮在表面.那么就一点点扣细节吧. 这个作者讲方向传播也是没谁了,666- 原文地址:https://www.cnblogs.com/ ...
- 一文弄懂神经网络中的反向传播法(Backpropagation algorithm)
最近在看深度学习的东西,一开始看的吴恩达的UFLDL教程,有中文版就直接看了,后来发现有些地方总是不是很明确,又去看英文版,然后又找了些资料看,才发现,中文版的译者在翻译的时候会对省略的公式推导过程进 ...
- 一文弄懂神经网络中的反向传播法——BackPropagation【转】
本文转载自:https://www.cnblogs.com/charlotte77/p/5629865.html 一文弄懂神经网络中的反向传播法——BackPropagation 最近在看深度学习 ...
- 浅层神经网络 反向传播推导:MSE softmax
基础:逻辑回归 Logistic 回归模型的参数估计为什么不能采用最小二乘法? logistic回归模型的参数估计问题不能“方便地”定义“误差”或者“残差”. 对单个样本: 第i层的权重W[i]维度的 ...
- 用BP人工神经网络识别手写数字
http://wenku.baidu.com/link?url=HQ-5tZCXBQ3uwPZQECHkMCtursKIpglboBHq416N-q2WZupkNNH3Gv4vtEHyPULezDb5 ...
- 神经网络反向传播算法&&卷积神经网络
听一遍课程之后,我并不太明白这个算法的奇妙之处?? 为啥? 神经网络反向传播算法 神经网络的训练依靠反向传播算法,最开始输入层输入特征向量,网络层计算获得输出,输出层发现输出和正确的类号不一样,这时就 ...
随机推荐
- Mac常用开发工具
1.svn客户端 SVN client SmartSVN 2.git客户端 SourceTree | Free Git GUI for Mac and Windows 3.远程windows系统工具( ...
- 探讨js闭包
背景:爱就要大胆说出来,对于编程我只想说,喜欢就大胆写出来.喜欢却不行动那就意味着失败.所以,对于在研究编程的猿们,我对同伴们说,大胆的学,大胆的写.呵呵,说这些其实无非是给我自己点动力,写下去的勇气 ...
- C#使用Newtonsoft.Json操作json
1.下载 Newtonsoft.Json 右键引用,选择 管理NuGet程序包,选择浏览,输入log4net,然后点击下载 2.json数据的组装与解析 public class Class { pu ...
- Data Base mysql备份与恢复
mysql 备份与恢复 为什么要备份: 由于系统使用到了MySQL 数 据库,所以每天的工作,就设计到了MySQL数据库的备份问题.但如果每天手工来做MySQL数据库的定时备份,工作量不说,时间还不 ...
- HTTP状态码了解
1xx - - 消息 2xx - - 成功 3xx - - 重定向 4xx - - 请求错误 5xx - - 服务器错误 1xx-信息提示 这些状态代码表示临时的响应.客户端在收到 ...
- 【51nod1847】奇怪的数学题(Min_25筛+杜教筛)
题面 传送门 题解 这题有毒--不知为啥的错误调了半天-- 令\(f(i)={sgcd(i)}\),那么容易看出\(f(i)\)就是\(i\)的次大质因子,用\(i\)除以它的最小质因子即可计算 于是 ...
- JBOSS AS 性能调整优化
1 减少日志的输出量 *\jboss-4.2.3.GA\server\default\conf\jboss-log4j.xml 根据不同的日志级别:一共有5个等级,越往下输出的东西越详细.一般没什么特 ...
- Shell---自动测试局域网内的网络连通情况
#!/bin/bash );do RE=`ping .$i` echo $RE >>result.log done
- 关于cuda拷贝的速度测试
由于没有使用profiler,仅仅通过简单的传输函数测试,如下测试了10000个点,1000000个点,100000000个点的速度: 均按时钟周期来计时,通过MAX调整数据 int main(){ ...
- JAVA进阶----ThreadPoolExecutor机制(转)
http://825635381.iteye.com/blog/2184680 ThreadPoolExecutor机制 一.概述 1.ThreadPoolExecutor作为java.util.co ...