跟新神经网络图片链接

This commit is contained in:
zeek 2020-04-25 16:45:19 +08:00
parent 4dee107847
commit 83f23c31de
4 changed files with 27 additions and 27 deletions

View File

@ -4,13 +4,13 @@
部分,前一部分计算总输入值(即输入信号的加权和,或者说累积电平),后一部分先计算总输入值与该神经元阈值的差值,然后通过
激活函数activation function的处理产生输出从轴突传送给其它神经元。M-P神经元模型如下图所示
![pic](http://index.zeekling.cn/gogsPics/ml/nn/1.png)<br>
![pic](https://img.zeekling.cn/images/2020/04/25/nn_1.png)<br>
与线性分类十分相似神经元模型最理想的激活函数也是阶跃函数即将神经元输入值与阈值的差值映射为输出值1或0若差值大于零输
出1对应兴奋若差值小于零则输出0对应抑制。但阶跃函数不连续不光滑故在M-P神经元模型中也采用Sigmoid函数来近似
Sigmoid函数将较大范围内变化的输入值挤压到 (0,1) 输出值范围内所以也称为挤压函数squashing function
![pic](http://index.zeekling.cn/gogsPics/ml/nn/2.png)<br>
![pic](https://img.zeekling.cn/images/2020/04/25/nn_2.png)<br>
将多个神经元按一定的层次结构连接起来就得到了神经网络。它是一种包含多个参数的模型比方说10个神经元两两连接则有100个
参数需要学习每个神经元有9个连接权以及1个阈值若将每个神经元都看作一个函数则整个神经网络就是由这些函数相互嵌套而成。
@ -26,12 +26,12 @@ Sigmoid函数将较大范围内变化的输入值挤压到 (0,1) 输出值范围
即假设有一个固定输入xn+1=-1的输入层神经元其对应的权重为ωn+1这样就把权重和阈值统一为权重的学习了。简单感知机的结构如
下图所示:
![pic](http://index.zeekling.cn/gogsPics/ml/nn/3.png)<br>
![pic](https://img.zeekling.cn/images/2020/04/25/nn_3.png)<br>
感知机权重的学习规则如下对于训练样本xy当该样本进入感知机学习后会产生一个输出值若该输出值与样本的真实标记
不一致,则感知机会对权重进行调整,若激活函数为阶跃函数,则调整的方法为(基于梯度下降法):(看不懂)
![pic](http://index.zeekling.cn/gogsPics/ml/nn/4.png)<br>
![pic](https://img.zeekling.cn/images/2020/04/25/nn_4.png)<br>
其中 η∈01称为学习率可以看出感知机是通过逐个样本输入来更新权重首先设定好初始权重一般为随机逐个地输入样本
数据,若输出值与真实标记相同则继续输入下一个样本,若不一致则更新权重,然后再重新逐个检验,直到每个样本数据的输出值都与真
@ -42,7 +42,7 @@ Sigmoid函数将较大范围内变化的输入值挤压到 (0,1) 输出值范围
converge因此总是可以求出适当的权值。但是对于像书上提到的异或问题只通过一层功能神经元往往不能解决因此要解决非线
性可分问题,需要考虑使用多层功能神经元,即神经网络。多层神经网络的拓扑结构如下图所示:
![pic](http://index.zeekling.cn/gogsPics/ml/nn/4.png)<br>
![pic](https://img.zeekling.cn/images/2020/04/25/nn_5.png)<br>
在神经网络中输入层与输出层之间的层称为隐含层或隐层hidden layer隐层和输出层的神经元都是具有激活函数的功能神经元。
只需包含一个隐层便可以称为多层神经网络常用的神经网络称为“多层前馈神经网络”multi-layer feedforward neural network
@ -52,7 +52,7 @@ Sigmoid函数将较大范围内变化的输入值挤压到 (0,1) 输出值范围
* 神经元之间不存在同层连接
* 神经元之间不存在跨层连接
![pic](http://index.zeekling.cn/gogsPics/ml/nn/6.png)<br>
![pic](https://img.zeekling.cn/images/2020/04/25/nn_6.png)<br>
根据上面的特点可以得知:这里的“前馈”指的是网络拓扑结构中不存在环或回路,而不是指该网络只能向前传播而不能向后传播(下节中
的BP神经网络正是基于前馈神经网络而增加了反馈调节机制。神经网络的学习过程就是根据训练数据来调整神经元之间的“连接权”以及
@ -63,24 +63,24 @@ Sigmoid函数将较大范围内变化的输入值挤压到 (0,1) 输出值范围
一般而言,只需包含一个足够多神经元的隐层,就能以任意精度逼近任意复杂度的连续函数[Hornik et al.,1989],故下面以训练单隐
层的前馈神经网络为例介绍BP神经网络的算法思想。
![pic](http://index.zeekling.cn/gogsPics/ml/nn/7.png)<br>
![pic](https://img.zeekling.cn/images/2020/04/25/nn_7.png)<br>
上图为一个单隐层前馈神经网络的拓扑结构BP神经网络算法也使用梯度下降法gradient descent以单个样本的均方误差的负梯度
方向对权重进行调节。可以看出BP算法首先将误差反向传播给隐层神经元调节隐层到输出层的连接权重与输出层神经元的阈值接着
根据隐含层神经元的均方误差来调节输入层到隐含层的连接权值与隐含层神经元的阈值。BP算法基本的推导过程与感知机的推导过程原
理是相同的,下面给出调整隐含层到输出层的权重调整规则的推导过程:
![pic](http://index.zeekling.cn/gogsPics/ml/nn/8.png)<br>
![pic](https://img.zeekling.cn/images/2020/04/25/nn_8.png)<br>
学习率η∈01控制着沿反梯度方向下降的步长若步长太大则下降太快容易产生震荡若步长太小则收敛速度太慢一般地常把η设
置为0.1有时更新权重时会将输出层与隐含层设置为不同的学习率。BP算法的基本流程如下所示
![pic](http://index.zeekling.cn/gogsPics/ml/nn/9.png)<br>
![pic](https://img.zeekling.cn/images/2020/04/25/nn_9.png)<br>
BP算法的更新规则是基于每个样本的预测值与真实类标的均方误差来进行权值调节即BP算法每次更新只针对于单个样例。需要注意的是
BP算法的最终目标是要最小化整个训练集D上的累积误差
![pic](http://index.zeekling.cn/gogsPics/ml/nn/10.png)<br>
![pic](https://img.zeekling.cn/images/2020/04/25/nn_10.png)<br>
如果基于累积误差最小化的更新规则则得到了累积误差逆传播算法accumulated error backpropagation即每次读取全部的数据
集一遍进行一轮学习从而基于当前的累积误差进行权值调整因此参数更新的频率相比标准BP算法低了很多但在很多任务中尤其
@ -92,7 +92,7 @@ BP算法的更新规则是基于每个样本的预测值与真实类标的均方
- 引入正则化regularization基本思想是在累积误差函数中增加一个用于描述网络复杂度的部分例如所有权值与阈值的平方和
其中λ∈0,1用于对累积经验误差与网络复杂度这两项进行折中常通过交叉验证法来估计。
![pic](http://index.zeekling.cn/gogsPics/ml/nn/11.png)<br>
![pic](https://img.zeekling.cn/images/2020/04/25/nn_11.png)<br>
### 全局最小与局部最小
模型学习的过程实质上就是一个寻找最优参数的过程例如BP算法试图通过最速下降来寻找使得累积经验误差最小的权值与阈值在谈到
@ -100,7 +100,7 @@ BP算法的更新规则是基于每个样本的预测值与真实类标的均方
> * 局部极小解:参数空间中的某个点,其邻域点的误差函数值均不小于该点的误差函数值。
> * 全局最小解:参数空间中的某个点,所有其他点的误差函数值均不小于该点的误差函数值。
<br>![pic](http://index.zeekling.cn/gogsPics/ml/nn/12.png)<br>
<br>![pic](https://img.zeekling.cn/images/2020/04/25/nn_12.png)<br>
要成为局部极小点,只要满足该点在参数空间中的梯度为零。局部极小可以有多个,而全局最小只有一个。全局最小一定是局部极小,但
局部最小却不一定是全局最小。显然在很多机器学习算法中,都试图找到目标函数的全局最小。梯度下降法的主要思想就是沿着负梯度方
向去搜索最优解负梯度方向是函数值下降最快的方向若迭代到某处的梯度为0则表示达到一个局部最小参数更新停止。因此在现

View File

@ -11,7 +11,7 @@
2. 网络性能会逐渐趋于饱和甚至还会开始下降可以观察到下图中56层的误差比20层的更多故这种现象并不是由于过拟合造成的。
这种现象称为深度网络的退化问题。
![pic](http://www.zeekling.cn/gogsPics/ml/nn/13.png)
![pic](https://img.zeekling.cn/images/2020/04/25/nn_13.png)
ResNet深度残差网络成功解决了此类问题使得即使在网络层数很深(甚至在1000多层)的情况下,网络依然可以得到很好的性能与效
率。
@ -22,7 +22,7 @@ ResNet引入残差网络结构residual network即在输入与输出之
点类似与电路中的“短路”也是文中提到identity mapping恒等映射y=x。原来的网络是学习输入到输出的映射H(x),而残差网络学
习的是$$ F(x)=H(x)x $$。残差学习的结构如下图所示:
![pic](http://www.zeekling.cn/gogsPics/ml/nn/14.png)
![pic](https://img.zeekling.cn/images/2020/04/25/nn_14.png)
另外我们可以从数学的角度来分析这个问题,首先残差单元可以表示为:
@ -52,17 +52,17 @@ $$
用计算方式为$$ H(x)=F(x)+x $$
2. 虚线的的Connection部分表示通道不同如上图的第一个绿色矩形和第三个绿色矩形分别是3x3x64和3x3x128的特征图通道不
同,采用的计算方式为$$ H(x)=F(x)+Wx $$其中W是卷积操作用来调整x维度的。
![pic](http://www.zeekling.cn/gogsPics/ml/nn/16.png)
![pic](https://img.zeekling.cn/images/2020/04/25/nn_16.png)
## 残差学习的本质
![pic](http://www.zeekling.cn/gogsPics/ml/nn/15.png)
![pic](https://img.zeekling.cn/images/2020/04/25/nn_15.png)
残差网络的确解决了退化的问题,在训练集和校验集上,都证明了的更深的网络错误率越小:
![pic](http://www.zeekling.cn/gogsPics/ml/nn/17.png)
![pic](https://img.zeekling.cn/images/2020/04/25/nn_17.png)
下面是resnet的成绩单, 在imagenet2015夺得冠军:
![pic](http://www.zeekling.cn/gogsPics/ml/nn/18.png)
![pic](https://img.zeekling.cn/images/2020/04/25/nn_18.png)

View File

@ -4,7 +4,7 @@
卷积神经网络沿用了普通的神经元网络即多层感知器的结构是一个前馈网络。以应用于图像领域的CNN为例大体结构如图。
![卷积神经网络](http://index.zeekling.cn/gogsPics/ml/neuralNetwork/cnn2.jpg)
![卷积神经网络](https://img.zeekling.cn/images/2020/04/25/cnn2.jpg)
### 输入层
为了减小后续BP算法处理的复杂度一般建议使用灰度图像。也可以使用RGB彩色图像此时输入图像原始图像的RGB三通道。对于输入的
@ -34,7 +34,7 @@ Leaky ReLU 当x<0 时y = α(exp(x-1))当x>0时y= x
影响图像质量的情况下压缩图片减少参数。简单来说假设现在设定池化层采用MaxPooling大小为2*2步长为1取每个窗口最
大的数值重新那么图片的尺寸就会由3*3变为2*2(3-2)+1=2。从上例来看会有如下变换
![池化](http://index.zeekling.cn/gogsPics/ml/neuralNetwork/853467-20171104142056685-2048616836.png)
![池化](https://img.zeekling.cn/images/2020/04/25/853467-20171104142056685-2048616836.png)
### 全连接层
@ -52,7 +52,7 @@ Layer里采用softmax对其进行分类。
通过卷积操作,把 全连接变成局部连接 ,因为多层网络能够抽取高阶统计特性, 即使网络为局部连接,由于格外的突触连接和额外的
神经交互作用,也可以使网络在不十分严格的意义下获得一个全局关系。
![局部感知](http://index.zeekling.cn/gogsPics/ml/neuralNetwork/cnn3.jpg)
![局部感知](https://img.zeekling.cn/images/2020/04/25/cnn3.jpg)
### 权值共享
不同的图像或者同一张图像共用一个卷积核,减少重复的卷积核。同一张图像当中可能会出现相同的特征,共享卷积核能够进一步减少权

View File

@ -3,35 +3,35 @@
## RNN结构
RNN结构如下
![rnn](http://index.zeekling.cn/gogsPics/ml/neuralNetwork/rnn1.png)
![rnn](https://img.zeekling.cn/images/2020/04/25/rnn1.png)
- 左侧是RNN的原始结构 右侧是RNN在时间上展开的结果
- RNN的结构本质上和全连接网络相同
![rnn](http://index.zeekling.cn/gogsPics/ml/neuralNetwork/rnn2.gif)
![rnn](https://img.zeekling.cn/images/2020/04/25/rnn2.gif)
## LSTM 网络
LSTM 同样是这样的结构,但是重复的模块拥有一个不同的结构。不同于单一神经网络层,这里是有四个,以一种非常特殊的方式进行交互。
![SLTM](http://index.zeekling.cn/gogsPics/ml/neuralNetwork/005BVyzmly1fotnatxsm7j30jg07bjsi.jpg)
![SLTM](https://img.zeekling.cn/images/2020/04/25/005BVyzmly1fotnatxsm7j30jg07bjsi.jpg)
### 遗忘门
在我们 LSTM 中的第一步是决定我们会从细胞状态中丢弃什么信息。这个决定通过一个称为忘记门层完成。该门会读取ht1和xt输出一个在
0到 1之间的数值给每个在细胞状态 Ct1 中的数字。1 表示“完全保留”0 表示“完全舍弃”。
![遗忘门](http://index.zeekling.cn/gogsPics/ml/neuralNetwork/005BVyzmly1fotoa9sgm5j30jg06074q.jpg)
![遗忘门](https://img.zeekling.cn/images/2020/04/25/005BVyzmly1fotoa9sgm5j30jg06074q.jpg)
### 输入门
我们把旧状态与ft相乘丢弃掉我们确定需要丢弃的信息。接着加上itC~t。这就是新的候选值根据我们决定更新每个状态的程度进行变化。
![输入门](http://index.zeekling.cn/gogsPics/ml/neuralNetwork/005BVyzmly1fotoftw50ij31eq0fomz4.jpg)
![输入门](https://img.zeekling.cn/images/2020/04/25/005BVyzmly1fotoftw50ij31eq0fomz4.jpg)
### 输出门
在语言模型的例子中,因为他就看到了一个 代词,可能需要输出与一个 动词 相关的信息。例如,可能输出是否代词是单数还是负数,这样如
果是动词的话,我们也知道动词需要进行的词形变化。
![输出门](http://index.zeekling.cn/gogsPics/ml/neuralNetwork/005BVyzmly1fotoky28zbj30jg06074w.jpg)
![输出门](https://img.zeekling.cn/images/2020/04/25/005BVyzmly1fotoky28zbj30jg06074w.jpg)