世界需要简化第二篇:最简单易懂的BPNN算法——算法经高度简化,所有下标均仔细核对

BP神经网络结构(可查阅前馈型神经网络):

世界需要简化第二篇:最简单易懂的BPNN算法——算法经高度简化,所有下标均仔细核对_第1张图片

        输入三个节点,输出只有一个节点。中间层数任意,每层节点个数任意

        假设有训练集样本X,其中取第一个样本x1=,其期望值y1=1


下面开始BP算法计算过程:

第一步前向计算:

    已知各个节点之间的初始权值ω(别问我怎么来的,一般都会随机初始化一个值-1~1或其他之间),和每个偏置量θ(下文简称阈值)。

    第一遍是前序计算,依次得到各个中间节点的输入值,如下公式1,然后计算每个中间节点的输出值,利用如下公式2:

公式1:ω为从节点i到j的权重,Output为节点i的输出,θ为节点j的偏置

世界需要简化第二篇:最简单易懂的BPNN算法——算法经高度简化,所有下标均仔细核对_第2张图片

公式2:Input为当前节点的输入侧值

    从左向右,依次计算全部中间节点,直到完成最后一层输出层节点,得到它们的输出值。

第二步反向计算: 

公式3:Output是输出节点的输出值,error是该样本的期望值减去实际输出值(见公式2得出的结果)

    然后反向计算倒数第二层节点、第三层...的误差E,利用公式4:

公式4:O代表当前节点i的输出值(见公式2的结果),E是右侧与i相连的节点j的误差,ω是从i到j的权重

    从右向左,计算全部中间节点,直到完成除了第一层输入层以外的全部节点的误差E值计算(即包括中间节点和输出层节点)

第三步权重ω调整、阈值θ调整:

    从左侧输入层向着输出层方向开始,利用公式5,依次计算,调整各个权重,直到权重调整完毕,到达最右侧输出层。

公式5:learnrate是学习率从0~1一般设为迭代次数n的倒数即1/n

    阈值调整则没有方向,此处建议为从后往前,即从输出层开始向输入层方向,在权重调节完毕后,直接利用公式6:

公式6

第四步判断:

    神经网络的使用最开始都是训练,因此会有很多个样本x1,x2...,每一个样本都对应一个期望输出y1,y2...。

    假设根据已知输出是y1的样本x1进行BP神经网络算法计算,当每次调整完权值和阈值后,需判断输出误差是否达到精度要求,或是迭代次数是否超过上限,如是则该样本x1训练完毕,转而选择下一个样本x2重复计算一定迭代次数进行训练。

    否则,继续当前样本x1的重复训练,继续这四步。

----后续持续更新有关各类算法的简化应用版,希望大家跟我一起简化这个世界!

2021/05/27:北京航空航天大学,Mr Wang

 

 

你可能感兴趣的:(神经网络算法快速理解应用类,神经网络,算法,机器学习,图论,深度学习)