12.感知机以及多层感知机(MLP),激活函数

12.感知机以及多层感知机(MLP),激活函数_第1张图片
x和w都是向量,b是标量,感知机的输出是:w和x做内积之后+偏移b,最后加上一个函数(这个函数很多种选择)。

12.感知机以及多层感知机(MLP),激活函数_第2张图片

1. 训练感知机

12.感知机以及多层感知机(MLP),激活函数_第3张图片
如果当前是第i个样本,yi是真实标签值,+b得到的是预测值,如果二者相乘小于等于0,则表明分类错了,于是说明当前权重对分类是错误的,就对w和b都做一次更新。

解释一下,损失函数中,如果分类正确的话-y是会小于0的,和0求max就是得到0,则梯度是一个常数,不会去做更新,对应上方的if、语句不成立。如果分类错误的话,第二项就会为正,会有梯度,进入到if语句里面。

损失函数求导,w的导数为yixi,b的导数为yi(损失函数中,把b写进了w和x向量里,b以增广矩阵的形式放到了w矩阵最后一列了)

感知机等价于用损失函数,使用批量大小为1做梯度下降。

2. 收敛定理

3. XOR问题

12.感知机以及多层感知机(MLP),激活函数_第4张图片

4. 对于感知机的总结

  • 感知机是一个二分类模型,是最早的AI模型之一
  • 它的求解算法等价于使用批量大小为1的梯度下降
  • 它不能拟合XOR函数,导致第一AI寒冬

5. 学习XOR

12.感知机以及多层感知机(MLP),激活函数_第5张图片
一次分类不出,就先学一个简单的函数,再学一个简单函数,再用另一个简单函数组合之前学的两个函数。

6. 单隐藏层

12.感知机以及多层感知机(MLP),激活函数_第6张图片
隐藏层的大小是一个超参数,输入的大小是不能改变的,输出的大小看输入数据分为几类,而隐藏层有多大是能设计的。

12.感知机以及多层感知机(MLP),激活函数_第7张图片

注意,这里是解释单分类,而右边图片明显分类数为3,因此不要对应起来,具体解释如下:

Q:为什么需要非线性的激活函数?
答:假设激活函数为f(x)=x,也输出就是输入的话,则h = W1x+b1,再把h带入到第二个式子:o = W2Th+b2,则o = w2TW1x+b‘ ,并且w2TW1是一个向量,若把它记为W’ ,那么最后的输出是 o = w‘x+b’,仍然是一个线性模型,就无法解决XOR问题,也就等价于单层感知机

7.几种激活函数

1. sigmoid激活函数

12.感知机以及多层感知机(MLP),激活函数_第8张图片

2. Tanh激活函数

12.感知机以及多层感知机(MLP),激活函数_第9张图片

蓝色曲线是红色曲线的soft版本,更平滑。

3. ReLU激活函数(常用)

主要的好处:算起来很快,不用像之前的函数做指数运算。

12.感知机以及多层感知机(MLP),激活函数_第10张图片

8. 多类分类

12.感知机以及多层感知机(MLP),激活函数_第11张图片

多类分类和softmax没有本质区别是因为,相对于softmax回归,唯一不同是加了隐藏层,加上隐藏层就变成了多层感知机,没有加就是softmax回归。

做多类分类的感知机如下:

9.多隐藏层:

每一个隐藏层都有自己的W和b。

总结

  • 多层感知机使用隐藏层和激活函数来得到非线性模型
  • 常用的激活函数是sigmoid,tanh,ReLU
  • 使用softmax来处理多类分类
  • 超参数为隐藏层数和各个隐藏层大小

你可能感兴趣的:(深度学习,python,算法)