深度学习基础-从感知机(神经元)说起

深度学习基础-从感知机(神经元)说起_第1张图片

1 感知机

1.1代数理论

在机器学习中,感知机(perceptron)是二分类的线性分类模型,属于监督学习算法。输入为实例的特征向量,输出为实例的类别(取+1和-1)。感知机对应于输入空间中将实例划分为两类的分离超平面。感知机旨在求出该超平面,为求得超平面导入了基于误分类的损失函数,利用梯度下降法 对损失函数进行最优化(最优化)。
深度学习基础-从感知机(神经元)说起_第2张图片
如上图所示,输入任意的特征向量 x ′ ∈ R n × 1 \boldsymbol{x}' \in \mathbb{R}^{n \times 1} xRn×1 与负的单位向量 ω ′ ∈ R n × 1 \boldsymbol{\omega}' \in \mathbb{R}^{n \times 1} ωRn×1的点积代表,单位向量所在超平面与原点之间的距离 b b b
(1.1) − ω ′ ⊤ x ′ = b ⇒ ω ′ ⊤ x ′ + b = 0 -\boldsymbol{\omega}'^\top \boldsymbol{x}' = b \Rightarrow \boldsymbol{\omega}'^\top \boldsymbol{x}' + b = 0 \tag{1.1} ωx=bωx+b=0(1.1)
超平面将样本分成两类小于等于 b b b为一类,大于 b b b的为另一类

机器学习的任务是找到一个超平面,满足 ( 1.1 ) (1.1) (1.1),其中的 w w w b b b是需要训练的参数,需要注意的是,机器学习中权重向量 w w w并不是垂直于超平面的单位向量,是代表权值的普通向量,因此 b b b并不能表示超平面到原点的距离,但是是距离的缩放版本。

感知机学习本质是利用输入和标签训练 w w w b b b,找到一个超平面(该超平面上对应的自变量相当于 w x + b wx+b wx+b,也就是说将原始的超平面空间 R n \mathbf{R^n} Rn,经过平移变换之后移动到原点,增加一个维度,进入新的空间 R n + 1 \mathbb{R}^{n+1} Rn+1如果将输入的值带入之后比0大,则对应标签的 y ( i ) = 1 y^{(i)} = 1 y(i)=1,反之则为 y ( i ) = 0 y^{(i)} = 0 y(i)=0),根据标签能够正确分类所有的输入值。具体步骤:

x ( i ) ∈ R ( n + 1 ) × 1 ∀ i = { 1 , 2 , 3... , m } x^{(i)} \in \mathbb{R}^{(n+1) \times 1} \quad \forall i=\{1, 2, 3...,m\} x(i)R(n+1)×1i={ 1,2,3...,m}代表 m m m个输入的特征向量, y ( i ) ∈ { 0 , 1 } ∀ i = { 1 , 2 , 3 , . . . , m } y^{(i)} \in \{0, 1\} \quad \forall i = \{1, 2, 3, ..., m\} y(i){ 0,1}i={ 1,2,3,...,m}为每个输入对应的类别标签。

  1. 随机定义权重向量 w ∈ R ( n + 1 ) × 1 w \in \mathbb{R}^{(n+1) \times 1} wR(n+1)×1
  2. 通过 w w w预测输出结果,对于 x ( i ) x^{(i)} x(i),如果有 w ⊤ x > 0 w^\top x > 0 wx>0,另预测结果 y ^ = 1 \hat{y} = 1 y^=1,反之 y ^ = 0 \hat{y} = 0 y^=0
  3. 根据输入的标签值对权重进行更新
  4. 重复第2,3步,直到所有的点都能正确分类,则找到该超平面。

1.2 几何解释

深度学习基础-从感知机(神经元)说起_第3张图片
设有两个点集 ( x ( 1 ) , y ( 1 ) ) (x^{(1)}, y^{(1)}) (x(1),y(1)) ( x ( 2 ) , y ( 2 ) ) (x^{(2)}, y^{(2)}) (x(2),y(2)) x ( 1 ) x^{(1)} x(1)与超平面1垂直, x ( 2 ) x^{(2)} x(2)与超平面2垂直,在权重 w w w的向量空间中,满足 y ( 1 ) y^{(1)} y(1)结果的 w w w取值为超平面1右上方部分,满足 y ( 2 ) y^{(2)} y(2)结果取值的 w w w为超平面2左下方部分,两者叠加部分为 w w w最终的取值范围,任何一个在此范围内的 w w w均能将 ( x ( 1 ) , y ( 1 ) ) (x^{(1)}, y^{(1)}) (x(1),y(1)) ( x ( 2 ) , y ( 2 ) ) (x^{(2)}, y^{(2)}) (x(2),y(2))进行正确分类。

1.3 感知机的局限性

无法解决非线性问题,如简单的异或问题(XOR):

x 1 x_1 x1 x 2 x_2 x2 y y y
1 0 1
0 1 1
1 1 0
0 0 0

深度学习基础-从感知机(神经元)说起_第4张图片
深度学习基础-从感知机(神经元)说起_第5张图片
深度学习基础-从感知机(神经元)说起_第6张图片
综上所述,不管迭代几次,权重都不会在发生变化,只能分类样本类别为负值的输入。

1.4 非线性的引入

深度学习基础-从感知机(神经元)说起_第7张图片
如果线性分类解决异或问题,则需要两个超平面才可以,相当于费用非线性方式解决。

多层感知机(MLP)通过引入隐藏层实现非线性变换
深度学习基础-从感知机(神经元)说起_第8张图片
如图,添加逻辑与门和或门作为隐藏层,最终实现异或。

1.5 隐藏层激活函数

如果使用线性的激活函数,那么最终的输出仍是线性的,无法解决非线性问题,例如:
深度学习基础-从感知机(神经元)说起_第9张图片
上图为有两个隐藏层的网络,如果使用线性激活函数。则
h 1 = w 11 x 1 + w 21 x 2 + b 1 h 2 = w 12 x 1 + w 22 x 2 + b 2 p 1 = w 1 h 1 + w 2 h 2 + b 3 = ( w 1 w 11 + w 2 w 12 ) x 1 + ( w 1 w 21 + w 2 w 22 ) x 2 + w 1 b 1 + w 2 b 2 + b 3 h_1 = w_{11}x_1+w_{21}x_2+b_1\\ h_2 = w_{12}x_1+w_{22}x_2+b_2\\ p_1 = w_1h_1+w_2h_2+b_3 \\ = (w_1w_{11}+w_2w_{12})x_1+(w_1w_{21}+w_2w_{22})x_2+w_1b_1+w_2b_2+b_3 h1=w11x1+w21x2+b1h2=w12x1+w22x2+b2p1=w1h1+w2h2+b3=(w1w11+w2w12)x1+(w1w21+w2w22)x2+w1b1+w2b2+b3
仍是线性,所以有必要引入非线性激活函数来解决更复杂的问题。

1.6 不同的激活函数

1.6.1 线性激活函数

在一个线性神经元中,其输出是线性依赖于输入的,如 y ^ = w 1 x 1 + w 2 x 2 + w 3 x 3 + b , y ^ \hat{y} = w_1x_1+w_2x_2+w_3x_3+b, \hat{y} y^=w1x1+w2x2+w3x3+b,y^为输出,如果用向量表达的话为: y ^ = w ⊤ x + b \hat{y} = w^{\top}x+b y^=wx+b,对于一个两层的神经网络来说,输入 z = w ⊤ x + b z = w^{\top}x+b z=wx+b与输出 y y y之间的关系为:
深度学习基础-从感知机(神经元)说起_第10张图片

1.6.2 二分类阈值激活函数

z = w ⊤ x + b z = w^{\top}x+b z=wx+b
y = { 1 ( z > k ) 0 ( z ≤ k ) y = \begin{cases} 1 & (z >k) \\ 0 & (z \le k) \end{cases} y={ 10(z>k)(zk)
深度学习基础-从感知机(神经元)说起_第11张图片

1.6.3 Sigmoid激活函数

S i g m o i d ( σ ) = 1 1 + e − z z = w ⊤ x Sigmoid(\sigma) = \frac{1}{1+e^{-z}} \qquad z = w^\top x Sigmoid(σ)=1+ez1z=wx
深度学习基础-从感知机(神经元)说起_第12张图片

  • z > 0 z > 0 z>0,且 z → z \rightarrow z大数, e − z → 0 , σ → 1 e^{-z} \rightarrow 0, \sigma \rightarrow 1 ez0,σ1
  • z < 0 z < 0 z<0,且 z → z \rightarrow z大数, e − z → ∝ , σ → 0 e^{-z} \rightarrow \propto, \sigma \rightarrow 0 ez,σ0
  • z = 0 z = 0 z=0,且 z → z \rightarrow z大数, e − z = 1 , σ = 1 2 e^{-z} = 1, \sigma= \frac{1}{2} ez=1,σ=21

1.6.4 Softmax激活函数

P ( y i = 1 ∣ x ) = e w ( i ) ⊤ + b ( i ) ∑ j = 1 k e w ( j ) ⊤ + b ( j ) x ∈ R n × 1 P(y_i = 1| x)=\frac{e^{w^{(i)\top+b^{(i)}}}}{\sum_{j=1}^ke^{w^{ {(j)\top+b^{(j)}}}}} \qquad x \in \mathbb{R^{n \times 1}} P(yi=1x)=j=1kew(j)+b(j)ew(i)+b(i)xRn×1
值得注意的是,损失函数所在的层,一般将softmax和交叉熵一起使用。
C E = ∑ i = 1 k − y i l o g P ( y i = 1 ∣ x ) CE = \sum^k_{i = 1}-y_ilogP(y_i=1|x) CE=i=1kyilogP(yi=1x)
深度学习基础-从感知机(神经元)说起_第13张图片

1.6.5 Rectified Linear Unit(ReLU)激活函数

y = m a x ( 0 , w ⊤ x + b ) y = max(0, w^\top x+b) y=max(0,wx+b)
深度学习基础-从感知机(神经元)说起_第14张图片
可以防止梯度消失

ReLU的变体

(PReLU) y = m a x ( 0 , z ) + β m i n ( 0 , z ) y = max(0, z) + \beta min (0, z) \tag{PReLU} y=max(0,z)+βmin(0,z)(PReLU)
β = − 1 , y = ∣ z ∣ \beta = -1, y = |z| β=1,y=z称为绝对值ReLU
β = \beta = β=小的正值,如常用的0.01,称为leaky ReLU

1.6.6 Tanh 激活函数

y = e z − e − z e z + e − z y = \frac{e^z-e^{-z}}{e^z+e^{-z}} y=ez+ezezez
深度学习基础-从感知机(神经元)说起_第15张图片

Pro Deep Learning with TensorFlow. Santanu Pattanayak

你可能感兴趣的:(深度学习,感知机,激活函数,线性分类)