特征提取VS表示学习
特征提取:基于任务 或 先验对 去除无用特征
表示学习:通过深度模型学习高层语义特征
机器学习:是指从有限的观测数据中学习出具有一般性的规律,并利用这些规律对未知数据进行预测。通过算法使得机器能够从大量数据中学习规律从而对新的样本做决策
常见的机器学习类型
监督学习 | 无监督学习 | 强化学习 | |
---|---|---|---|
训练样本 | 训练集 ( X ( n ) , y ( n ) ) n = 1 N {(X^{(n)},y^{(n)})}^N_{n=1} (X(n),y(n))n=1N | 训练集 x n {x^n} xn | 智 能 体 和 环 境 交 互 的 轨 迹 τ 和 累 计 奖 励 G τ 智能体和环境交互的轨迹\tau和累计奖励G_\tau 智能体和环境交互的轨迹τ和累计奖励Gτ |
优化目标 | y=f(x)或p(y|x) | p(x)或带隐变量z的p(x|z) | 期望总汇报 E τ [ G τ ] E_\tau[G_\tau] Eτ[Gτ] |
学习准则 | 期望风险最小化 最大似然估计 | 最大似然估计 最小重构错误 | 策略评估 策略改进 |
典型的监督学习问题:回归 分类
典型的无监督学习问题:聚类 降维 密度估计
损失函数(Loss Function)
损失函数是一个非负实数函数,用来量化模型预测和真实标签之间的差异
以回归问题为例
平方损失函数(Quadratic Loss Function)
L
(
y
,
f
(
x
,
θ
)
)
=
1
2
(
y
−
f
(
x
;
θ
)
)
2
L(y,f(x,\theta))=\frac{1}{2}(y-f(x;\theta))^2
L(y,f(x,θ))=21(y−f(x;θ))2
期望风险(Expected Risk)
梯度下降法(Gradient Descent)
θ
t
+
1
=
θ
t
−
α
∂
R
D
(
θ
)
∂
θ
\theta_{t+1}=\theta_t-\alpha\frac{\partial \R_D(\theta)}{\partial\theta}
θt+1=θt−α∂θ∂RD(θ)
搜
索
步
长
α
也
叫
学
习
率
(
L
e
a
r
n
i
n
g
R
a
t
e
)
超
参
数
人
为
规
定
搜索步长\alpha也叫学习率(Learning Rate) \\ 超参数 \quad人为规定
搜索步长α也叫学习率(LearningRate)超参数人为规定
太低的学习率 效率慢
太高的学习率 发散
随机梯度下降法(Stochastic Gradient Descent,SGD)
:在每次迭代时只采集一个样本
当经过足够次数的迭代时,随机梯度下降也可以收敛到局部最优解
优点:每次计算开销小,支持在线学习
缺点:无法充分利用计算机的并发计算能力
小批量(Mini-Batch) 随机梯度下降法
小批量梯度湘江发:
随机选取一小部分训练样本计算梯度并更新参数
既可以兼顾随机梯度下降法的缺点,也可由提高训练效率
过拟合:经验风险最小化原则 很容易导致模型在训练集上错误率很低,但是在未知数据上错误率很高。
过拟合问题往往时由于训练数据少和噪声等原因造成的。
期望风险
R
(
f
)
=
E
(
x
,
y
)
∼
p
(
x
,
y
)
[
ζ
(
f
(
x
)
,
y
]
\R(f)=E_{(x,y)\sim p(x,y)[\zeta(f(x),y]}
R(f)=E(x,y)∼p(x,y)[ζ(f(x),y]
经验风险
R
D
e
m
p
(
θ
)
=
1
N
∑
n
=
1
N
ζ
(
y
n
,
f
(
x
n
,
θ
)
)
\R_D^{emp}(\theta)=\frac{1}{N}\sum_{n=1}^N\zeta(y^{n},f(x^{n},\theta))
RDemp(θ)=N1n=1∑Nζ(yn,f(xn,θ))
泛化误差
G
D
(
f
)
=
R
(
f
)
−
R
D
e
m
p
(
f
)
G_D(f)=R(f)-R_D^{emp}(f)
GD(f)=R(f)−RDemp(f)
如何减少泛化误差
优化:经验风险最小
正则化:降低模型复杂度
正则化(Regularization)
所有损害优化的方法都是正则化。
增加优化约束: L1/L2约束、数据增强
干扰优化过程:权重衰减、随机梯度下降、提前停止
提前停止:
我们使用一个验证集(Validation Dataset)来测试每一次迭代的参数在验证集上是否最优。
如果在验证集上的错误不在下降,就停止迭代。
线性回归(Linear Regression)
模型
f
(
x
;
w
,
b
)
=
w
T
x
+
b
增
广
权
重
向
量
和
增
广
特
征
向
量
a
^
=
⨁
1
≜
[
x
1
]
=
[
x
1
.
.
.
x
D
1
]
w
^
=
w
⨁
b
≜
[
w
b
]
=
[
w
1
.
.
.
w
D
b
]
f(x;w,b)=w^Tx+b \\增广权重向量和增广特征向量\\\hat{a}=\bigoplus1\triangleq \begin{bmatrix} \\ x \\ \\ 1 \end{bmatrix} =\begin{bmatrix} x_1\\ ... \\ x_D\\ 1 \end{bmatrix} \\ \hat{w}=w\bigoplus b\triangleq\begin{bmatrix} \\ w\\ \\ \\b \end{bmatrix}=\begin{bmatrix} w_1\\...\\w_D\\b\end{bmatrix} \\
f(x;w,b)=wTx+b增广权重向量和增广特征向量a^=⨁1≜⎣⎢⎢⎡x1⎦⎥⎥⎤=⎣⎢⎢⎡x1...xD1⎦⎥⎥⎤w^=w⨁b≜⎣⎢⎢⎢⎢⎡wb⎦⎥⎥⎥⎥⎤=⎣⎢⎢⎡w1...wDb⎦⎥⎥⎤
经过以上代换 可以去掉偏置符号b
f
(
x
,
w
)
=
W
T
x
f(x,w)=W^Tx
f(x,w)=WTx
经验风险最小化(Empirical Risk Minimization,ERM)
训练集D上的经验风险
R
(
w
)
=
∑
n
=
1
n
L
(
y
(
n
)
,
f
(
x
(
n
)
;
w
)
=
1
2
∑
n
=
1
N
(
y
n
−
w
T
x
n
)
2
=
∣
∣
y
−
X
T
w
∣
∣
2
\begin{aligned} R(w)&=\sum_{n=1}^nL(y^{(n)},f(x^{(n)};w) \\&=\frac{1}{2}\sum_{n=1}^N(y^{n}-w^Tx^{n})^2 \\&=||y-X^Tw||^2 \end{aligned}
R(w)=n=1∑nL(y(n),f(x(n);w)=21n=1∑N(yn−wTxn)2=∣∣y−XTw∣∣2
经验风险最小化
∂
∂
w
R
(
w
)
=
0
可
以
推
出
w
=
(
X
X
T
)
−
1
X
y
保
证
X
X
T
逆
的
存
在
(
如
果
X
(
D
X
N
)
D
>
N
不
可
逆
)
\frac{\partial}{{\partial}w}\R(w)=0可以推出 w=(XX^T)^{-1}Xy \\保证XX^T逆的存在(如果X_{(D X N)}D>N 不可逆)
∂w∂R(w)=0可以推出w=(XXT)−1Xy保证XXT逆的存在(如果X(DXN)D>N不可逆)
为了解决这个问题1.SGD 不让偏导数=0
2.降维D的维度
当特征之间存在共线性时,
X
X
T
XX^T
XXT不可逆(D>N)
结构风险
R
(
w
)
=
1
2
∣
∣
y
−
X
T
w
∣
∣
2
+
1
2
λ
∣
∣
w
∣
∣
2
\R(w)=\frac{1}{2}||y-X^Tw||^2+\frac{1}{2}\lambda||w||^2
R(w)=21∣∣y−XTw∣∣2+21λ∣∣w∣∣2
令其最小化,得到
w
∗
=
(
X
X
T
+
λ
I
)
−
1
X
y
w^*=(XX^T+\lambda I)^{-1}Xy
w∗=(XXT+λI)−1Xy
岭回归(Ridge Regression)
多项式曲线拟合(Polynomial Curve Fitting)
模型定义:
f
(
x
,
w
)
=
w
0
+
w
1
x
+
w
2
x
2
+
⋯
+
w
M
x
m
f(x,w) = w_0+w_1x+w_2x^2+\cdots+w_Mx^m
f(x,w)=w0+w1x+w2x2+⋯+wMxm
损失函数
平方误差 Sum-of-Squares
R
(
w
)
=
1
2
∑
n
=
1
N
(
y
(
n
)
−
w
T
ϕ
(
x
(
n
)
)
2
\R(w)=\frac{1}{2}\sum_{n=1}^N(y_{(n)}-w^T\phi(x^{(n)})^2
R(w)=21∑n=1N(y(n)−wTϕ(x(n))2
经验风险最小化
如何选择多项式的次数M?
模型选择问题(model selection question)
随着M的增大,多项式系数也增大,对大的系数进行惩罚!
惩罚大的系数:
R
^
(
w
)
=
1
2
∑
n
=
1
N
(
y
(
n
)
−
w
T
ϕ
(
x
(
n
)
)
2
+
λ
2
w
T
w
\hat{R}(w)=\frac{1}{2}\sum_{n=1}^N(y^{(n)}-w^T\phi(x^{(n)})^2+\frac{\lambda}{2}w^Tw
R^(w)=21∑n=1N(y(n)−wTϕ(x(n))2+2λwTw
似然函数(Linklihood)
似然函数是关于统计模型p(x;w)的参数w的函数
概率p(x;w)是描述固定参数w时随机变量x的分布情况
似然p(x;w)则是描述已知随机变量x时不同的参数w对齐分布的影响
激活函数的性质:
- 连续并可导(允许少数点上不可导)的非线性函数。
可导的激活函数可以直接利用数值优化的方法学习网络参数。
2.激活函数及其导数要尽可能的简单
有利于提高网络计算效率
3.激活函数的导函数的值域要在一个合适的区间内
不能太大也不能太小,否则会影响训练的效率和稳定性
4.单调递增
不好说,新出的函数 虽然整体上升,但局部下降
常用的激活函数
Sigmoid Function S型函数
Ramp Function 斜坡函数
Compound Function 复合函数
常见激活函数:S型函数
σ
(
x
)
=
1
1
+
e
x
p
(
−
x
)
\sigma(x)=\frac{1}{1+exp(-x)}
σ(x)=1+exp(−x)1
t
a
n
h
(
x
)
=
e
x
p
(
x
)
−
e
x
p
(
−
x
)
e
x
p
(
x
)
+
e
x
p
(
−
x
)
tanh(x)=\frac{exp(x)-exp(-x)}{exp(x)+exp(-x)}
tanh(x)=exp(x)+exp(−x)exp(x)−exp(−x)
t
a
n
h
(
x
)
=
2
σ
(
2
x
)
−
1
tanh(x)=2\sigma(2x)-1
tanh(x)=2σ(2x)−1
性质: 饱和函数 Tanh函数是零中心化的,而logistic函数输出恒大于0
非零中心化的输出会使得其后一层的神经元的输入发生偏置(bias shift),并进一步使得梯度下降的收敛速度变慢。
解决方法1.normalization 2.\sigma(x)+b
常见的激活函数:斜坡函数
ReLU(x)=max(0,x)
1.计算上更加高效
2.生物学合理性,单侧抑制,宽兴奋边界
3.在一定程度上缓解梯度消失问题
死亡ReLU问题(Dying ReLU Problem)
当x<0 为0 ,所有的样本<0输入里面都为0,求梯度也为0,无法更新
解决方法,初始化参数避免所有输入
改进1.
LeakyReLU(x) =
{
x
i
f
x
>
0
γ
x
i
f
x
≤
0
\left\{\begin{matrix} x \quad if\quad x>0\\ \gamma x \quad ifx\leq0 \end{matrix}\right.
{xifx>0γxifx≤0
γ
是
超
参
数
\gamma是超参数
γ是超参数
改进2. 近似的零中心化的非线性函数
ELU=
{
x
i
f
x
>
0
γ
(
e
x
p
(
x
)
−
1
)
i
f
≤
0
\left\{\begin{matrix} x \quad if \quad x>0 \\\gamma(exp(x)-1) \quad if \quad \leq0 \end{matrix}\right.
{xifx>0γ(exp(x)−1)if≤0
=
m
a
x
(
0
,
x
)
+
m
i
n
(
0
,
γ
(
e
x
p
(
x
)
−
1
)
)
max(0,x)+min(0,\gamma(exp(x)-1))
max(0,x)+min(0,γ(exp(x)−1))
改进3.Rectifier函数的平滑版本
S
o
f
t
p
l
u
s
(
x
)
=
l
o
g
(
1
+
e
x
p
(
x
)
)
Softplus(x)=log(1+exp(x))
Softplus(x)=log(1+exp(x))
常见的激活函数:复合函数
Switch函数:一种自门控函数(Self-Gated)激活函数
s
w
i
t
c
h
(
x
)
=
x
σ
(
β
x
)
switch(x)=x\sigma(\beta x)
switch(x)=xσ(βx)
高斯误差线性单元
G
E
L
U
(
x
)
=
x
P
(
X
≤
x
)
GELU(x)=xP(X\leq x)
GELU(x)=xP(X≤x)
人工神经网络主要有大量的神经单元以及它们的有向连接构成,因此考虑三方面
1.神经元的激活规则
主要是指神经元输入到输出之间的映射关系,一般为非线性函数
2、网络的拓扑结构
不同神经元的连接关系
3.学习算法
通过训练数据来学习神经 网络参数
网络结构
前馈网络 记忆网络 网网络
自动微分 前向模式和反向模式
f
(
x
;
w
,
b
)
∂
w
=
f
(
x
;
w
,
b
)
∂
h
6
∂
h
5
∂
h
4
∂
h
4
∂
h
3
∂
h
3
∂
h
2
∂
h
2
∂
h
1
∂
h
1
∂
w
一
般
采
用
反
向
模
式
,
反
向
先
计
算
=
f
(
x
;
w
,
b
)
∂
h
6
,
损
失
函
数
的
导
数
作
为
临
时
变
量
与
其
他
相
比
小
很
多
\frac{f(x;w,b)}{\partial w}=\frac{f(x;w,b)}{\partial h_6}\frac{\partial h_5}{\partial h_4}\frac{\partial h_4}{\partial h_3}\frac{\partial h_3}{\partial h_2}\frac{\partial h_2}{\partial h_1}\frac{\partial h_1}{\partial w} \\ 一般采用反向模式,反向先计算=\frac{f(x;w,b)}{\partial h_6},损失函数的导数作为临时变量 与其他相比小很多
∂wf(x;w,b)=∂h6f(x;w,b)∂h4∂h5∂h3∂h4∂h2∂h3∂h1∂h2∂w∂h1一般采用反向模式,反向先计算=∂h6f(x;w,b),损失函数的导数作为临时变量与其他相比小很多
如果函数与参数之间有多条路径,可以将这多条路径上的导数再进行相加,得到最终的梯度。
静态计算图和动态计算图
静态计算图是在编译时构建计算图,计算图构建好之后在程序运行时不能改变
动态计算图实在程序运行时动态构建
两种构建方式各有优缺点
静态计算图度在构建时可以进行进行优化,并行能力强,但灵活性差
动态计算图则不容易优化,当输入的网络结构不一致时,难以并行计算,但是灵活性比较高
优化问题
非凸优化问题
即存在局部最优而非全局最优解,影响迭代
梯度消失问题 激活函数的导数最好在一个合理的范围之内,最好在1左右,也不能太大,连乘也会太大,推荐用ReLU
参数过多,影响训练 参数解释起来比较困难
空洞卷积
如何增加输出单元的感受野
增加卷积核的大小
增加层数来实现
在卷积之前进行汇聚操作
空洞卷积
通过卷积核插入“空洞”来变相增加其大小
转置卷积/微步卷积
低维特征映射到高维特征
循环神经网络(Recurrent Neural NetWork ,RNN)
循环神经网络通过使用自带反馈的神经元,能够处理任意长度的时序数据。
循环神经网络比前馈神经网络更加符合生物神经网络的结构
循环神经网络已经被广泛应用在语音识别,语言模型以及自然语言生成任务上