深度学习之神经网络(反向传播算法)(三)

神经网络

神经网络最开始是受生物神经系统的启发,为了模拟生物神经系统而出现的。大脑最基本的计算单元是神经元,人类的神经系统中大概有86亿的神经元,它们之间通过1014-1015的突触相连接。每个神经元从它的树突(dendrites)接受输入信号,沿着唯一的轴突(axon)产生输出信号,而轴突通过分支(branches of axon),通过突触(synapses)连接到其他神经元的树突,神经元之间就这通过这样的连接,进行传递。如下图。
image.png

链式法则

先来回顾一下链式法则,这是反向传播算法的推导基础。
image.png

人工神经网络

image.png
人工神经网络其实就是按照一定规则模拟生物神经网络连接起来的多个神经元,也就是感知机。
上图展示了一个全连接(full connected, FC)神经网络,一个全连接的网络要按照层来进行布局。

1.最左边的层叫做输入层,负责接收输入数据。
2.最右边的层叫输出层,我们可以从这层获取神经网络输出数据。
3.输入层和输出层之间的层叫做隐藏层,因为它们对于外部来说是不可见的。
4.同一层的神经元之间没有连接。

上图中,第N层的每个神经元和第N-1层的所有神经元相连(这就是full connected的含义),第N-1层神经元的输出就是第N层神经元的输入。并且每个连接都有一个权值。

这也就是全连接神经网络的结构。

事实上还存在很多其它结构的神经网络,比如卷积神经网络(CNN)、循环神经网络(RNN),他们都具有不同的连接规则。
##神经元
神经网络上的激活函数为(并不是全部,还有其他的激活函数):
image.png
sigmoid函数的定义如下:
image.png
即:
image.png

图像表达为:
image.png
可以看出函数的取值范围为(0,1)。
当然为了计算方便,我们还要关注一下它的导数:

可以看出它的导数和它本身的数值相关。
##工作原理
image.png
神经网络的作用就是简单的说,就是将输入的x,转化成输出的y。当然其中还要包括许多的处理。包括先从前往后,求取值,再从后往前更新权值。
下面以监督学习为例:
image.png
已知输入向量X,获取输 出向量Y。当然对于监督学习来说,我们会有许多的样本(X,Y),这里面的Y值是已知的,但是我们还要求得实际的Y值,来算取得本次样本数据的误差。
这就需要向前传播。
##向前传播
从输入层到隐藏层:
对隐藏层的节点4来说,它的输出值a4为:
image.png
同理求得节点5,6,7的输出值a5,a6,a7。
image.png
从隐藏层到输出层:
对于节点8来说,其输出值y1为:
image.png
同理y2:

image.png

所以对于实际输出向量Y来说,它和输入向量X的关系就是:
image.png

image.png

##向后传播
获得实际的输出值后,我们就要来计算误差。
误差的计算方式:
image.png

将一次样本期望输出的向量值T(因为是神经网络,所以输出值为向量),减去实际输出的向量Y。其中d代表样本编号。

当然此时涉及到两层的权值向量的更改,就不能仅仅是向线性单元那样计算了,不过大致的思想是一直的,都是采用梯度下降的思想,不过这时候还要使用链式法则。
image.png
其中的i和j表示,从i节点指向j节点。
根据这种方式来求取对每个节点的权值的更新,当然这也有个问题,就是因为网络是多层的,无法直接的求得每一层的对权重的改变。
image.png

这就需要使用链式法则:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值