神经网络基础
- 深度学习:使用深层架构(比如深度神经网络)的机器学习方法
- 神经元:也叫感知器
组成:
1.输入权值:一个感知器可接受多个输入,每个输入上由于提供权值,还有偏置项b
2.激活函数
3.输出
- 神经网络:按一定规则连接多个神经元
按层布局
同层无连接
每个连接都有一个权值
- 反向传播:为矫正网络权重,修正权重参数,使输出值逼近目标值
通常采样反向传播更新梯度,达到最小化损失函数目的,
一种基于微积分链式求导的递归算法。例如 y = g ( x ; θ ) y=g(x; \theta) y=g(x;θ)使用 ▽ θ g \bigtriangledown_\theta g ▽θg来更新 θ \theta θ
- 多标签问题
给定集合 ( x n , y n ) , x n ∈ R p 是 第 n 个 样 本 的 p 维 特 征 {(x_n,y_n)},x_n \in R^p 是第n个样本的p维特征 (xn,yn),xn∈Rp是第n个样本的p维特征,
- 优化算法
DNN是非线性非凸模型
采用梯度下降算法更新
常用初始化网络参数方法
- 高斯分布初始化
- 均匀分布初始化
Xavier初始化
- 学习了选择
反向衰减学习率
- 初 始 化 学 习 率 : η 0 衰 减 系 数 : γ 迭 代 次 数 : t 定 义 为 : Θ ( t ) = η 0 1 − t ⋅ γ 初始化学习率:\eta_0 \\衰减系数:\gamma\\迭代次数:t\\定义为:\\\Theta(t)=\frac{\eta_0}{1-t \cdot \gamma} 初始化学习率:η0衰减系数:γ迭代次数:t定义为:Θ(t)=1−t⋅γη0
指数衰减率 Θ ( t ) = η 0 e x p ( t γ ) \Theta(t)=\frac{\eta_0}{exp(t \gamma)} Θ(t)=exp(tγ)η0
固定衰减的模拟退火方法不能之间泛化到多个数据集上
以下是广泛使用的
- 动量方法
采用累计梯度替代当前梯度
类似球下山,下坡时积累动力
若莫参数在连续时间内梯度方向不变,动量变小;相反,方向一致,增大
可快速收敛,减少目标函数震荡
v t = γ v t − 1 − η ⋅ ▽ θ J ( Θ ; x i : i + n , y i : i + n ) Θ = Θ − v t v_t=\gamma v_{t-1}-\eta\cdot\bigtriangledown_\theta J(\Theta ;x_{i:i+n},y_{i:i+n})\\\Theta=\Theta-v_t vt=γvt−1−η⋅▽θJ(Θ;xi:i+n,yi:i+n)Θ=Θ−vt
- RMSprop
自适应调整每个参数学习率,克服过早衰减
v t = β v t − z − η ⋅ ▽ θ J ( Θ ; x i : i + n , y i : i + n ) v_t=\beta v_{t-z}-\eta\cdot\bigtriangledown_\theta J(\Theta ;x_{i:i+n},y_{i:i+n}) vt=βvt−z−η⋅▽θJ(Θ;xi:i+n,yi:i+n)
梯度更新公式
Θ t + 1 = Θ t − α v t + ϵ ⋅ ▽ θ J ( Θ ; x i : i + n , y i : i + n ) \Theta_{t+1}=\Theta_{t}-\frac{\alpha}{\sqrt{v_t+\epsilon}}\cdot\bigtriangledown_\theta J(\Theta ;x_{i:i+n},y_{i:i+n}) Θt+1=Θt−vt+ϵα⋅▽θJ(Θ;xi:i+n,yi:i+n)
- 自适应矩估计
可自适应调整每个参数学习率,可看成RMSprop与动量法结合
m t = β 1 m t − 1 − ( 1 − β 1 ) ▽ θ J ( Θ ; x i : i + n , y i : i + n ) v t = β 2 v t − 1 − ( 1 − β 2 ) ▽ θ 2 J ( Θ ; x i : i + n , y i : i + n ) m_t=\beta_1m_{t-1}-(1-\beta_1)\bigtriangledown_\theta J(\Theta ;x_{i:i+n},y_{i:i+n})\\v_t=\beta_2v_{t-1}-(1-\beta_2)\bigtriangledown_\theta^2 J(\Theta ;x_{i:i+n},y_{i:i+n}) mt=β1mt−1−(1−β1)▽θJ(Θ;xi:i+n,yi:i+n)vt=β2vt−1−(1−β2)▽θ2J(Θ;xi:i+n,yi:i+n)
分别为梯度一阶矩二阶矩估计
矫正:
m ^ t = m t 1 − β 1 t v ^ t = v t 1 − β 2 t \hat m_t=\frac{m_t}{1-\beta_1^t}\\\hat v_t=\frac{v_t}{1-\beta_2^t} m^t=1−β1tmtv^t=1−β2tvt
梯度更新公式:
Θ t + 1 = Θ t − η v t ^ + ϵ m t ^ 通 常 β 1 = 0.9 , β 2 = 0.999 , ϵ = 1 0 − 8 \Theta_{t+1}=\Theta_{t}-\frac{\eta}{\sqrt{\hat{v_t}+\epsilon}}\hat{m_t}\\通常\beta_1=0.9,\beta_2=0.999,\epsilon=10^{-8} Θt+1=Θt−vt^+ϵηmt^通常β1=0.9,β2=0.999,ϵ=10−8