文章目录
1 多层感知机(MLP Multilayer Perceptron)
dense layer/全连接层,y=wx+b
线性回归就是一个全连接层,即单层感知机
多层感知机是一种前向结构的人工神经网络,包含输入层、输出层及多个隐藏层
由于多个全连接层叠加还是线性关系,所以要在其中加入非线性函数,即激活函数
2 卷积神经网络(CNN Convolution Neural Net)
由于MLP使用的是全连接层,每经过一层都会有几个数量级参数的增加,参数太多。
假设要在某图像中寻找一个戴白帽子的人,即使这个戴白帽子的人在图像中的位置变化了,但是这块区域的像素信息不变,即平移不变性。
同时这块区域和附近的像素信息具有相关性,即本地性。
卷积则利用了这两个性质。
卷积层可以通过滑动窗口对像素矩阵进行一块一块进行加权和计算,这个权重矩阵(大小为k*k)为数值一样的方阵,叫卷积核。
**池化层/汇聚层:**当搜寻的区域发生平移时,这片区域的像素最大值/平均值也会发生平移,只要抓住这个最大值/平均值就可以补偿平移带来的变化。
3 循环神经网络(RNN Recurrent Neural Networks )
多用于语言模型,带有时序信息
假设有一句话是“hello world!”。
先输入“hello”,通过全连接层预测得到“world”,先不进行softmax操作,把这个得到的、带有之前所有信息的“world”作为输入,传给下一个全连接层,再对“world”进行softmax
进行下一个词语的预测时,输入就有①带有之前所有信息的“world”和②当前信息的“world”
其中这个带有之前所有信息的“world”为隐藏状态,不论之后还有多少层,这个“world”包含的信息不变,包含过去时间所有的信息
简化版RNN:
图中的RNN即全连接层
输入有 当前时刻的xt 和 上一时刻的输出ht-1
输出 yt 和 ht(简单版中它们是同一个东西),ht 留给下一时刻的RNN
输出后还会有激活函数
更复杂的RNN(LSTM、GRU):
- 忽略当前的输入xt,比如空格、介词等不太重要的信息
- 忽视以前的信息ht-1,比如一个段落开始了,或者前面的信息实在是太远了不需要了
- 忽视的时间也需要另外一组权重来学习
更更复杂的RNN:
-
Bi-RNN
双向,输入有时刻t+1和t-1的信息,有两个子层同时走,但起点相反、方向相反
-
Deep RNN
叠加很多RNN层