BP神经网络-
<div id="cnblogs_post_body"> 上一篇C语言实现上 中介绍了程序实现时定义的一些数据结构、程序执行的流程以及 程序的基本骨架(详情见 C语言实现上)。留下了两个关键函数computO(i) 和 backUpdate(i) 没有分析实现,参数 i 代表的是第 i 个样本,本篇我们一起来分析下这两个函数的实现。BP神经网络输出
函数 computO(i) 负责的是通过BP神经网络的机制对样本 i 的输入,预测其输出。回想BP神经网络的基本模型(详情见 基本模型)对应的公式(1)还有 激活函数对应的公式(2):
http://pic002.cnblogs.com/images/2012/409098/2012080108370288.gif
http://pic002.cnblogs.com/images/2012/409098/2012080108371095.gif
在前篇设计的BP神经网络中,输入层与隐藏层权重对应的数据结构是w,隐藏层与输出层权重对应的数据结构是v,并且数组 o 记录的是神经元通过激活函数对外的输出,BP神经网络预测的样本结果保存在OutputData中。由此,就可以得到以下实现的参考代码:
<div class="cnblogs_code">void computO(int var){ int i,j; double sum,y; /* 神经元输出 */ for (i = 0; i < Neuron; ++i){ sum=0; for (j = 0; j < In; ++j) sum+=w*d_in[var]; o=1/(1+exp(-1*sum)); }/*隐藏层到输出层输出 */ for (i = 0; i < Out; ++i){ sum=0; for (j = 0; j < Neuron; ++j) sum+=v*o; OutputData=sum; } }
页:
[1]