学习时间:2022.05.11
概念补充(中)
在进行学习机器学习和深度学习的过程中,对于部分概念会比较陌生(可能是因为没有系统深入学习过统计学、运筹学和概率统计的相关知识;也可能是因为看的东西比较偏实践,对理论的了解不是很深入),同时对有些概念的了解仅限于熟悉的或者用过的那几个,甚至有些概念会用但不知道具体的原理,所以想对其中的几个频繁出现的概念做个系统了解。主要包括:
- 上:极大似然估计、贝叶斯、傅里叶、马尔科夫、条件随机场;
- 中:凸集、凸函数与凸优化,优化算法(优化器),过拟合与欠拟合;
- 下:正则化&归一化、标准化,损失函数和伪标签等。
文章目录
6. 凸集、凸函数与凸优化
本节参考内容:一文详解凸函数和凸优化、凸优化学习(一)、(二)、(三)、(四)。
在很多时候,我们进行机器学习算法时希望优化某些函数的值。即,给定一个函数 f : R n → R f : R^n → R f:Rn→R ,我们想求出使函数 f ( x ) f(x) f(x)最小化(或最大化)的原像 x ∈ R n x ∈ R^n x∈Rn。我们已经看过几个包含优化问题的机器学习算法的例子,如:最小二乘算法、逻辑回归算法和支持向量机算法,它们都可以构造出优化问题。
在一般情况下,很多案例的结果表明,想要找到一个函数的全局最优值是一项非常困难的任务。然而,对于一类特殊的优化问题——凸优化问题, 我们可以在很多情况下有效地找到全局最优解。在这里,有效率既有实际意义,也有理论意义:它意味着我们可以在合理的时间内解决任何现实世界的问题,它意味着理论上我们可以在一定的时间内解决该问题,而时间的多少只取决于问题的多项式大小。
凸优化问题的重要性:
- 凸优化具有良好性质,如局部最优解是全局最优解,且凸优化问题是多项式时间可解问题,如:线性规划问题;
- 很多非凸优化或NP-Hard问题可以转化成凸优化问题,方法:对偶、松弛(扩大可行域,去掉部分约束条件),在SVM算法中,为了对目标函数进行优化,便使用了拉格朗日乘子法、对偶问题、引入松弛因子等。
6.1 几何体的向量表示
在介绍凸集等概念之前,首先介绍一下空间几何体的向量表示,下面在定义凸集概念时便用到了线段的线段表示。先通过一个例子来认识一下如何使用向量表示线段:
已知二维平面上两定点A(5, 1)、B(2, 3),给出线段AB的方程表示如下: { x 1 = θ ∗ 5 + ( 1 − θ ) ∗ 2 x 2 = θ ∗ 1 + ( 1 − θ ) ∗ 3 θ ∈ [ 0 , 1 ] \begin{cases} x_1 = θ*5+(1-θ)*2\\ x_2 = θ*1+(1-θ)*3 \end{cases}\ \ \ \ \ θ∈[0,1] { x1=θ∗5+(1−θ)∗2x2=θ∗1+(1−θ)∗3 θ∈[0,1],则:
如果将点A看成向量a,点B看成向量b,则线段AB的向量表示为: x → = θ a → + ( 1 − θ ) ∗ b → , θ ∈ [ 0 , 1 ] \overrightarrow{x} = θ\overrightarrow{a} + (1-θ)*\overrightarrow{b}, \ \ \ θ∈[0,1] x=θa+(1−θ)∗b, θ∈[0,1];
而直线的向量表示是: x → = θ a → + ( 1 − θ ) ∗ b → , θ ∈ R \overrightarrow{x} = θ\overrightarrow{a} + (1-θ)*\overrightarrow{b}, \ \ \ θ∈R x=θa+(1−θ)∗b, θ∈R;
由此衍生推广到高维,可得以下几何体的向量表示,三角形的向量表示: x → = θ 1 a 1 → + θ 2 a 2 → + θ 3 a 3 → , θ i ∈ [ 0 , 1 ] & ∑ θ i = 1 \overrightarrow{x} = θ_1\overrightarrow{a_1} + θ_2\overrightarrow{a_2} + θ_3\overrightarrow{a_3}, \ \ \ θ_i∈[0,1]\ \& \ \sumθ_i=1 x=θ1a1+θ2a2+θ3a3, θi∈[0,1] & ∑θi=1;
三维平面的向量表示: x → = θ 1 a 1 → + θ 2 a 2 → + θ 3 a 3 → , θ i ∈ R & ∑ θ i = 1 \overrightarrow{x} = θ_1\overrightarrow{a_1} + θ_2\overrightarrow{a_2} + θ_3\overrightarrow{a_3}, \ \ \ θ_i∈R\ \& \ \sumθ_i=1 x=θ1a1+θ2a2