感知机
感知机的定义,给一个输入
x
x
x,与权重
w
w
w做内积,加上偏移
b
b
b,再使用激活函数进行激活。
感知机的定义:
-
感知机是一个二分类的问题,区别于线性回归(输出单个实数)和softmax(多分类问题)
-
感知机等价于批量大小为1的梯度下降,也就是下面的损失函数:
l ( y , w , x ) = m a x ( 0 , − y < w , x > ) l(y,w,x) = max(0,-y<w,x>) l(y,w,x)=max(0,−y<w,x>) -
收敛定理:数据在半径 r r r内有一个余量 p p p来区分分类,那么感知机保证在 r 2 + 1 / p 2 r^2+1/p^2 r2+1/p2步后收敛。(数据半径越小,余量越大,收敛越快)
-
感知机的问题:只能产生线性分割面,没有办法处理XOR问题,导致了AI第一次寒冬
多层感知机
如何解决XOR问题?使用两层感知机层,对两层线性结果进行同或操作。
- 多层感知机加入了隐藏层,隐藏层的层数和隐藏层的大小都是超参数。
- 隐藏层为 h h h,输出层为 o o o
为什么需要非线性的激活函数?因为如果激活函数是线性的,那么到输出层得到的函数仍然是线性的,达不到解决问题的类似“同或”的非线性结果。
- sigmoid函数
在0处比较soft的函数,输出投影到【0,1】。
- tanh激活函数
输入投影到【-1,1】
-ReLU
R e L U ( x ) = m a x ( x , 0 ) ReLU(x) = max(x,0) ReLU(x)=max(x,0)
特点:非常简单,计算很快。其实就是把负的部分变成0,把线性去掉。(因为指数运算计算比较耗时)
- 多类分类问题(对比softmax)
最后一层用一个softmax函数,多层感知机的多类分类只是多了隐藏层而已 - 多隐藏层
超参数书隐藏层数和每层隐藏层的大小。
为什么使用多隐藏层?可以得到更深度的特征表示
为什么一般大小逐渐递减?因为机器学习是一个压缩的过程,所以逐渐减少可以实现降维。