从感知机到 SVM,再到深度学习(二)

    在第一篇中已经得到了最优间隔分类器的目标函数:
KaTeX parse error: No such environment: align* at position 7: \begin{̲a̲l̲i̲g̲n̲*̲}̲ max_{\gamma,w,…
    接下来的任务就是要求解这个目标函数了。为了求解这个,很多优化知识是避不开的,所以先跑跑题,写一下相关的数学知识吧~

    首先从无约束的优化问题讲起,一般就是要使一个表达式取到最小值:
m i n f ( x ) min \quad f(x) minf(x)
    如果问题是 m a x f ( x ) max \quad f(x) maxf(x) 也可以通过取反转化为求最小值 m i n − f ( x ) min \quad-f(x) minf(x),这个是一个习惯。对于这类问题最简单的就是直接对它的每一个变量求导,然后让导数为零就可以了。

二维线性可分示例图
极值点示意图
    所以在极值点处一定满足 $\frac {df(x)}{dx}=0$(只是必要条件,比如 $f(x)=x^3$ 在 $x=0$ 处就不是极值点),然后对它进行求解,再代入验证是否真的是极值点就行了。对于有些问题可以直接通过这种方法求出解析解(如最小二乘法)。     但是也有很多问题解不出来或者很难解,所以就需要梯度下降法、牛顿法、坐标下降法之类的数值迭代算法了(感知机 、logistic 回归中用到)。     对于这些迭代算法就像下面这张图一样,我们希望找到其中的最小值。一个比较直观的想法是先找一个起点,然后不断向最低点靠近。就先把一个小球放到一个碗里一样。
迭代算法
迭代算法
    一开始要找一个起始点,然后确定走的方向和距离,最后还要知道什么时候停止。这三步中最难的应该是确定走的方向。走的慢点还可以接受,要是方向错了就找不到最小值了~。所以走的距离可以简单的设为一个比较小的值。起始点可以随机选一个 $(x_0,y_0)$。关键是方向,可以选择 $(x_0,y_0)$ 处的梯度的反方向,这是函数在这个点下降最快的方向(原因可以看[知乎](https://www.zhihu.com/question/36301367)中忆臻的回答)。它是一个向量,然后它的大小就是走的距离,为了防止太大而走过头,导致不断在最小值附近震荡,需要乘上一个比较小的值(称为学习率),最终的停止条件就是梯度的大小很接近于 0(在极值点处的梯度大小就是 0)就行了。这种方法依靠梯度确定下降方向的方法叫做梯度下降法。 对 $f(x)$ 求极小值的流程就是:
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值