笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值,找寻数据的秘密,笔者认为,数据的价值不仅仅只体现在企业中,个人也可以体会到数据的魅力,用技术力量探索行为密码,让大数据助跑每一个人,欢迎直筒们关注我的公众号,大家一起讨论数据中的那些有趣的事情。
我的公众号为:livandata
神经网络是指输入的数据经过一个节点,在这个节点中进行sum和激活函数两个,然后产生一个输出值;一个隐藏节点就代表一个线性函数,神经网络本质上是通过一个个小的线性模型堆积出一个完整模型。
BP神经网络是指在上面的基础上,添加损失函数,将输出值与真实值做比较,形成损失,然后将这个损失值根据权重逐级返回到输入值,然后再调整权重重新检测。
上图为一个简单的神经元,其对应的训练过程见右图。
下面图形为对BP-神经网络的流程介绍:
一、输入层得到输入的数据,然后计算出隐含层的输出结果:
首先会初始一个w权重值,然后根据输入值,经过求和和激活函数计算出一个隐含层的结果,作为隐含层。
二、根据隐含层的结果值,通过相同的步骤计算出第二层隐含层的结果值:
三、在此基础上计算最后一层的输出值:
四、在上面的计算的基础上,本神经网络得到了一个输出值,接下来的工作即为通过损失函数,逐层的向上迭代,调整权重值:
五、计算第二层隐含层的误差:
六、倒推到第一层的误差计算:
七、通过反馈到第一级的误差值来计算第一层的新权重:新的权值=原权值+学习速率×该节点的误差×激励函数的导函数的值(f(e)的倒数)×与该节点相连的输入值。
八、再计算第二层的权重值,第二层修改权重的时候是通过误差的值决定的,没有再与前面的权重值交互:
九、同理计算最后一层的权重:
经过这个过程,形成一次修改的权重值,然后再输入新的值,计算新一轮权重值。