对偶理论

支持向量机(SVM)中的对偶问题

时光总嘲笑我的痴心妄想 提交于 2020-01-18 17:29:49
前言 在SVM中有一个求极小值的问题转换过程,转换为一个对偶问题,但是我不太清楚这个问题为什么可以转换,而且还不太清楚为什么这么转换?不太明确转换后有什么优点,写个文章来了解这些内容。 原始问题转换 min ⁡ 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( x i + b ) > = 1 i=1,2...,n \min \quad \frac{1}{2} ||w||^2 \\ s.t. \quad y_i(x_i+b) >=1 \qquad \text{i=1,2...,n} min 2 1 ​ ∣ ∣ w ∣ ∣ 2 s . t . y i ​ ( x i ​ + b ) > = 1 i=1,2...,n 拉格朗日乘子之后的公式为: F ( w , b , a ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 n a i [ 1 − y i ( w x i + b ) ] s . t . a i > = 0 F(w,b,a)= \frac{1}{2} ||w||^2+\sum_{i=1}^{n}a_{i}[1-y_i(wx_i+b)] \\ s.t. \quad a_i>=0 F ( w , b , a ) = 2 1 ​ ∣ ∣ w ∣ ∣ 2 + i = 1 ∑ n ​ a i ​ [ 1 − y i ​ ( w x i ​ + b ) ] s . t

【转载】【收藏】机器学习与深度学习核心知识点总结

耗尽温柔 提交于 2019-12-02 19:02:56
原文地址: https://cloud.tencent.com/developer/article/1526902 数学 1.列举常用的最优化方法 梯度下降法 牛顿法 拟牛顿法 坐标下降法 梯度下降法的改进型如AdaDelta,AdaGrad,Adam,NAG等。 2.梯度下降法的关键点 梯度下降法沿着梯度的反方向进行搜索,利用了函数的一阶导数信息。梯度下降法的迭代公式为: 根据函数的一阶泰勒展开,在负梯度方向,函数值是下降的。只要学习率设置的足够小,并且没有到达梯度为0的点处,每次迭代时函数值一定会下降。需要设置学习率为一个非常小的正数的原因是要保证迭代之后的x k +1位于迭代之前的值x k 的邻域内,从而可以忽略泰勒展开中的高次项,保证迭代时函数值下降。 梯度下降法只能保证找到梯度为0的点,不能保证找到极小值点。迭代终止的判定依据是梯度值充分接近于0,或者达到最大指定迭代次数。 梯度下降法在机器学习中应用广泛,尤其是在深度学习中。AdaDelta,AdaGrad,Adam,NAG等改进的梯度下降法都是用梯度构造更新项,区别在于更新项的构造方式不同。对梯度下降法更全面的介绍可以阅读SIGAI之前的文章“ 理解梯度下降法 ”。 3.牛顿法的关键点 牛顿法利用了函数的一阶和二阶导数信息,直接寻找梯度为0的点。牛顿法的迭代公式为: 其中H为Hessian矩阵,g为梯度向量

拉格朗日乘子法和KTT条件

梦想的初衷 提交于 2019-11-30 16:13:54
    这篇博文中直观上讲解了拉格朗日乘子法和 KKT 条件,对偶问题等内容。     首先从无约束的优化问题讲起,一般就是要使一个表达式取到最小值: m i n f ( x ) m i n f ( x )     如果问题是 m a x f ( x ) m a x f ( x ) 也可以通过取反转化为求最小值 m i n − f ( x ) m i n − f ( x ) ,这个是一个习惯。对于这类问题在高中就学过怎么做。只要对它的每一个变量求导,然后让偏导为零,解方程组就行了。 极值点示意图     所以在极值点处一定满足 d f ( x ) d x = 0 d f ( x ) d x = 0 (只是必要条件,比如 f ( x ) = x 3 f ( x ) = x 3 在 x = 0 x = 0 处就不是极值点),然后对它进行求解,再代入验证是否真的是极值点就行了。对于有些问题可以直接通过这种方法求出解析解(如最小二乘法)。     但是也有很多问题解不出来或者很难解,所以就需要梯度下降法、牛顿法、坐标下降法之类的数值迭代算法了(感知机 、logistic 回归中用到)。     对于这些迭代算法就像下面这张图一样,我们希望找到其中的最小值。一个比较直观的想法是先找一个起点,然后不断向最低点靠近。就先把一个小球放到一个碗里一样。 迭代算法     一开始要找一个起始点

SVM中的优化问题

瘦欲@ 提交于 2019-11-29 13:40:01
无约束优化 \(\begin{equation}\begin{split}\min f(\mathtt{x})\end{split}\end{equation}\) \(\mathtt{x}\in{R^d}\) 可以令 \(f(x)\) 对向量 \(\mathtt{x}\) 求偏导,使得 \(\nabla f(\mathtt{x})=0\) 的向量 \(\mathtt{x'}\) 即为极值点 红色点标记的就是极值点 极值点一定包含极小值,但极值点往往不唯一,所以需要代入验证 利用梯度下降等办法获取迭代解 一个点的梯度方向意味着函数增长最快的方向,反过来说梯度方向的反方向是函数下降最快的方向 随机从一个点开始,每次沿着梯度方向的反方向走一小步,直到梯度足够小或者迭代次数到达上限结束迭代获得迭代解 \(\mathtt{x}_1=\mathtt{x}_0-\alpha\nabla{f(\mathtt{x}_0)}\) 这里 \(\alpha\) 控制移动的幅度大小,称为学习速率 梯度下降也会遇到局部最优解,要解决这个问题可以通过随机生成起始点进行多次梯度下降算法,从中选取最优的一个 左边箭头所指的是全局最优解,右边箭头所指的是局部最优解, 等式约束(拉格朗日乘数法) 拉格朗日乘数法是一种寻找多元函数在其变量受到一个或多个条件的约束时的极值的方法