【跟李沐学AI—机器学习】2 神经网络

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):

  1. 忽略当前的输入xt,比如空格、介词等不太重要的信息
  2. 忽视以前的信息ht-1,比如一个段落开始了,或者前面的信息实在是太远了不需要了
  3. 忽视的时间也需要另外一组权重来学习

更更复杂的RNN:

  1. Bi-RNN

    双向,输入有时刻t+1和t-1的信息,有两个子层同时走,但起点相反、方向相反

  2. Deep RNN

    叠加很多RNN层