CNN
对于图片而言,通常使用 CNN(卷积神经网络)。
简化全连接神经网络
若使用全连接神经网络,则参数很多,容易过拟合。
对于图片检测而言,也行不需要看整张图片,只需要看到图片的一部分(所以提出 Receptive Field),就可以检测 pattern。CNN 的简化方式就是一个 Receptive Field 对应于一个神经网络单元。典型的 Receptive Field 设置如下:
- 一个 Receptive Field 包含了图片的所有 channel(深度),长度 × 宽度被称为 kernel size。
- Receptive Field 移动的距离称为步长(stride)。
- 若 Receptive Field 超出了图片的范围,需要填充(padding)。

共享参数
对于图像识别而言,同一个 pattern 的位置可能不同,Receptive Field 用于检测 pattern。
所以对于不同位置的 Receptive Field,可以共享参数(因为尽管这些 Receptive Field 在不同位置,但是它们在检测同一个 pattern)。

Convolutional Layer
Respective Field + 参数共享 = Convolutional Layer(卷积层)。
卷积层中含有很多 filter(一个 filter 相当于一个 Respective Field,filter 中的参数相当于 Respective Field 送入神经网络单元的权重/参数)。
卷积层产生的输出称之为 Feature Map,这可以看作是一个新的图片,图片的 channel 等于 filter 的个数。
池化
池化(Pooling)相当于缩小图片,在人类看来缩小图片,不会影响到 pattern 的检测。
如,Max Pooling:将图片分成多块,提取出每个块中最大的值。
组合起来
在卷积和池化之后,将得到的结果(相比于原始图片小了很多)送入全连接神经网络,就得到了完整的 CNN 网络。

RNN
基本结构
RNN 中,会将上一次输入的产生的东西保存下来,作为本次的一个输入。
分为 Elman Network 和 Jordan Network:
- Elman Network:保存的是 hiden layer 的值。
- Jordan Network:保存的是 output 的值。

双向 RNN
RNN 可以是双向的,训练一个正向 RNN 和一个逆向 RNN,将正向和逆向的输出合并起来进行输出。

LSTM
LSTM(Long Short-term Memory)


