学习笔记1.BP神经网络

1.基础知识

神经网络(NN)主要是默认人类脑结构进行的一种代码程序结构的表现,同时是RNN,CNN,DNN的基础。人工神经网络也称为多层感知机,相当于将输入数据通过前面多个全连接层网络将原输入特征进行了一个非线性变换,将变换后的特征拿到最后一层的分类器去分类。 结构上大体上分为三个部分(输入,隐含,输出)其中,输入层主要是特征处理后的入口,隐含层用来训练相应函数,节点越多,训练出的函数就越复杂,输出层输出相应的预测结果,比较常见的就是多分类了。

2.神经网络基本流程


激活函数:

每一个神经元都可以理解成一个函数,这个函数,是一种输出到输入的转换,一般是非线性的,而且是单调可微函数,例如,输入神经元理解为Fin(x),隐含神经元理解为Fhn(x),输出神经元理解为Fou(x),每一层之间都是具有一个权重参数w(或者叫θ),每一层的输出乘上权重参数,都是下一层的输入

常见激活函数:

1、Sigmoid函数(也叫logistics函数)

2、Tanh函数(双曲函数)

3、sgn函数(阶跃函数)

4、ReLU函数

5、softmax函数

6、Linear函数

误差函数:

假定已经给出神经网络结构,Y是X的标签,y是神经网络的输出,其之间的差值,我们希望越小越好,也就有了误差函数。本文用BP后向传播来解决问题,其实就是误差函数反推参数求导过程,下边是过程

三层网络的误差后向传播算法BP:

        选择了梯度下降法对误差函数求解参数,为什么选择梯度下降法呢?

        事实上,x可能不是一个标量,而是一个矢量。参考多元函数的知识,梯度就是偏导数组成的矢量。梯度上的每个元素都会指明函数在该点处各个方向的斜率。因此梯度指向函数变化最快的方向。即指向变大最快的方向和变小最快的方向对应正梯度和负梯度。之后通过梯度进行迭代更新参数向量


      上式是三层神经网络求出了所有参数偏导过程

      之后利用迭代公式,更新w和b的值,直到偏导数很小停止,下边有算法详细步骤:

上边是三层的过程,和总结出来的步骤。以下为x是向量,多层神经网络的表示:

3.多层BP神经网络

参考三层神经网络时我们总结出来的算法,随机初始化(w,b),带入随机一个样本(X,Y),正向传播之后可以求出(Z,a,y)。之后链式法则求偏导,求最小化mini E。

我们知道偏导数之后,利用迭代公式,找到最优化的参数。但是仅仅利用这些知识很难求解。

以下是一些改进:

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容