1、感知机
- 给定输入x,权重w,和偏移b,感知机输出:
o = σ ( ⟨ w , x ⟩ + b ) σ ( x ) = { 1 if x > 0 − 1 otherwise o=\sigma\left(\langle\mathbf{w},\mathbf{x}\rangle+b\right)\quad\sigma(x)=\begin{cases}1&\text{if}\quad x>0\\-1&\text{otherwise}\end{cases} o=σ(⟨w,x⟩+b)σ(x)={1−1ifx>0otherwise
其中:
x和w是向量,b是标量
(w,x) w和x做内积
感知机可以看做是一个二分类问题-1或1。
根据下图:
由多个元素的输入,得到一个单元素的输出。
1.1、训练感知机
- y i y_i yi是个标号[1或-1], [ ⟨ w , x i ⟩ + b ] [\langle w,x_i\rangle+b] [⟨w,xi⟩+b]相当于感知机预测的结果;
- 如果 y i y_i yi是1, [ ⟨ w , x i ⟩ + b ] > 0 [\langle w,x_i\rangle+b]>0 [⟨w,xi⟩+b]>0(反之 y i y_i yi是-1, [ ⟨ w , x i ⟩ + b ] < 0 [\langle w,x_i\rangle+b]<0 [⟨w,xi⟩+b]<0)说明样本 x i x_i xi分类正确,进行下一个样本;
- 如果
[
⟨
w
,
x
i
⟩
+
b
]
<
=
0
[\langle w,x_i\rangle+b]<=0
[⟨w,xi⟩+b]<=0,两者相乘<=0,说明感知机预测错误,
满足这个情况的话,就说明当前的权重对样本的分类是错误的。如果分类错误,就对w进行更新, w = w + y i x i w= w+y_ix_i w=w+yixi, b = b + y i b= b+y_i b=b+yi
感知机等价于使用批量大小为1的梯度下降(批量大小为1 = 每次拿一个样本去算梯度,进行更新),并使用如下的损失函数:
ℓ
(
y
,
x
,
w
)
=
max
(
0
,
−
y
⟨
w
,
x
⟩
)
\ell(y,\mathbf{x},\mathbf{w})=\max(0,-y\langle\mathbf{w},\mathbf{x}\rangle)
ℓ(y,x,w)=max(0,−y⟨w,x⟩)
- 先计算下标号y和w与x的内积;
- max(0代表的就是if,如果你分类正确, y ∗ ⟨ w , x ⟩ y*\langle\mathbf{w},\mathbf{x}\rangle y∗⟨w,x⟩结果大于0,加负号就是小于0,max函数取0梯度是一个常数,代表上面的if语句不成立,权重就不更新;如果分类错误,这时候就有梯度了,就需要对权重w进行更新。
1.2、收敛定理
1.3、XOR问题
感知机不能拟合XOR函数,它只能产生线性分割面
2、多层感知机
根据x的值正负和y的值正负来分类:
1、蓝色分类器将1、3分为一类2、4分为一类;
2、黄色分类器将1、2分为一类3、4分为一类;
3、得到蓝色分类器的结果和黄色分类器的结果,对两个结果做与或,相同为+不同为-
先进入蓝色分类器,在进入黄色分类器,最后进入灰色分类器,灰色分类器为最终正确的结果。
这里就用到了多个分类器,去解决问题。
2.1单隐藏层
2.1.1单隐藏层 - 做单分类
-
h
=
σ
(
W
1
x
+
b
1
)
\mathbf{h}=\sigma(\mathbf{W}_1\mathbf{x}+\mathbf{b}_1)
h=σ(W1x+b1)
h作为输入到输出层 -
o
=
w
2
T
h
+
b
2
o=\mathbf{w}_2^T\mathbf{h}+b_2
o=w2Th+b2
输出层的权重w2转置 与 h 做内积,加上偏移量
2.1.2单隐藏层 - 做多分类
2.2 多隐藏层
这里涉及的超参数:
- 隐藏层的层数
- 每层隐藏层的大小
总结
- 多层感知机使用隐藏层和激活函数来得到非线性模型
- 常用激活函数是Sigmoid,Tanh,ReLU,通过激活函数来引入非线性性
- 使用Softmax来处理多类分类
- 超参数为隐藏层数,和各个隐藏层大小