BP神经网络入门

发布时间:2023年12月30日

前置知识:机器学习基本概念:监督学习与无监督学习、线性回归、梯度下降。

概念

BP(Back-propagation,反向传播),在模拟过程中收集系统所产生的误差,返回这些误差到输出值(反向传播),并用这些误差来调整神经元的权重。

神经网络其实就是几层神经元,每层神经元里有几个神经元点。不同层级之间的神经元相互连接,每一个神经元只负责三件事:输入、判断、输出。通常,为了方便实际操作,我们令每一层的神经元数量相等。

运算过程:矩阵乘法

记权重矩阵为W,输入S,输出O,真值T,误差E,三者为列向量。

O_i=W_{i,1}*S_1+W_{i,2}*S_2+...+W_{i,n}*S_n

O=W*S \\E=O-T

调参

实际就是梯度下降。

在这里我们使用Sigmoid函数作为激活函数。sigmoid函数可以把一个实数压缩至0~1之间。

在我们获得结果后,我们通过反向传播对w,b进行梯度调整,从而得到最优的w,b,最后在应用调整后的模型进行测试。

a1=x;
a2=w1*a1+b1;
z2=S(a2);
a3=w2*z2+b2;
z3=S(a3);
y=z3;
E=(y-y*)^2/2;

注:S()指Sigmoid函数,y为模拟值,y*为真值。

Sigmoid函数

f(x)=\frac{1}{1+e^{-x}}

sigmoid函数连续、光滑、单调递增,以 (0,0.5) 中心对称,是一个良好的阈值函数。在x超出[-6,6]的范围后,函数值基本上没有变化,值非常接近,在应用中一般不考虑。

sigmoid函数的值域范围限制在(0,1)之间,恰巧与概率值的范围相对应,这样Sigmoid函数就能与一个概率分布联系起来了。

sigmoid函数的导数是其本身的函数,即

f'(x)=f(x)(1-f(x))

sigmoid函数可用作逻辑回归模型的分类器。除此之外还存在其自身的推到特性。

对于分类问题,尤其是二分类问题,都假定服从伯努利分布,则有

f(x|p)=p^x(1-p)^{1-x}

根据指数分布族的一半表现形式,有

f(x\theta )=h(x)e^{\eta(\theta) T(x)-A(\theta )}

伯努利分布可变形为:

f(x|p)=e^{ln(\frac{p}{1-p})x+ln(1-p)}

故,伯努利分布也属于指数分布族,令\eta(p) =ln\frac{p}{1-p},可得p=\frac{1}{1+e^{-\eta (p)}}

此为sigmoid函数形式。

文章来源:https://blog.csdn.net/lty1392309506/article/details/135292662
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。