凸优化

尽管优化方法可以最小化深度学习中的损失函数值,但本质上优化方法达到的目标与深度学习的目标并不相同。

  • 优化方法目标:训练集损失函数值
  • 深度学习目标:测试集损失函数值(泛化性)

两者区别用画图体现:

In [1]:

%matplotlib inline
import sys
sys.path.append('/home/kesci/input')
import d2lzh1981 as d2l
from mpl_toolkits import mplot3d # 三维画图
import numpy as np
def f(x): return x * np.cos(np.pi * x)
def g(x): return f(x) + 0.2 * np.cos(5 * np.pi * x)

d2l.set_figsize((5, 3))
x = np.arange(0.5, 1.5, 0.01)
fig_f, = d2l.plt.plot(x, f(x),label="train error")
fig_g, = d2l.plt.plot(x, g(x),'--', c='purple', label="test error")
fig_f.axes.annotate('empirical risk', (1.0, -1.2), (0.5, -1.1),arrowprops=dict(arrowstyle='->'))
fig_g.axes.annotate('expected risk', (1.1, -1.05), (0.95, -0.5),arrowprops=dict(arrowstyle='->'))
d2l.plt.xlabel('x')
d2l.plt.ylabel('risk')
d2l.plt.legend(loc="upper right")

蓝色代表训练集误差,紫色代表测试集误差,优化目标是将蓝色误差降低到最低点,而我们深度学习的目标是将紫色降到最低点
在这里插入图片描述

优化在深度学习中的挑战

局部最小值

在这里插入图片描述
梯度下降算法运行到局部最小值点时梯度为0,就会停止收敛,到达不了全局最优值

鞍点

在这里插入图片描述
在这里插入图片描述鞍点是对所有自变量一阶偏导都为0,且Hessian矩阵特征值有正有负的点

梯度消失

在这里插入图片描述
梯度消失会使算法收敛得非常缓慢

凸性

研究凸性可以帮助算法的分析

深度学习大部分损失函数都不是凸函数,但在局部最小值点会表现出一些凸函数的性质,对损失函数的优化有帮助

凸集合:
一个集合内任意两点的连线上的点都在集合内
如图1不是凸集,2、3都是凸集
在这里插入图片描述
凸函数:
函数值y的任意两点连线上的值大于这个点的X值带进函数获得的值
在这里插入图片描述
如图左右两个是凸函数,中间不是
在这里插入图片描述
Jensen不等式
“函数值的期望大于期望的函数值”
在这里插入图片描述

凸函数的性质

  1. 凸函数没有局部最小值
  2. 与凸集的关系
    在这里插入图片描述
  3. 凸函数与二阶导数
    二姐导数大于0是函数是凸函数的充分必要条件
    在这里插入图片描述
    充分性证明中拉格朗日中值定理的第一条式子含义是:
    x和a连线的斜率一定是x、a这段函数值上某一点的斜率
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值