Arthur Samuel:在进行特定编程的状况下,给予计算机学习能力的领域。
Tom Mitchell:一个程序被认为能从经验E中学习,解决任务T,达到性能度量值P,当且仅当,有了经验E后,通过P评判,程序在处理T时的性能有所提高。算法
图的左半部分列出了经常使用的机器学习算法与它们之间的演化关系,分为有监督学习,无监督学习,强化学习3大类。右半部分列出了典型算法的总结比较,包括算法的核心点如类型,预测函数,求解的目标函数,求解算法。
另外一个角度总结:编程
监督学习:对于有标签的数据进行学习,目的是可以正确判断无标签的数据。通俗的讲,老师教授学生知识,并告知学习过程当中的对与错,让学生能够从所学知识的经验和技能中对没有学过的问题进行正确回答,这就是监督学习,用于预测数据的回归、分类标签的分类、顺序的排序等问题。网络
无监督学习:对于无标签的数据进行学习,目的是不只可以解决有明确答案的问题,也能够对没有明确答案的问题进行预测。通俗的讲,学生经过自学学习知识,达到能够正确回答有答案的问题,也能够对无答案的问题进行预测归类。经常使用于聚类、异常检测等。app
强化学习:学生学习知识时,没有老师对其进行对与错的断定,须要学生根据本身所拥有的信息本身断定对于错,若是可以断定出来,则为有监督学习;若是断定不出来对与错,则为无监督学习。经常使用于机器人的自动控制、游戏的人工智能、市场战略的最优化等。机器学习
监督学习应用:手写文字识别、声音处理、图像处理、垃圾邮件分类与拦截、网页检索、基因诊断、股票预测......(回归、分类、排序)ide
无监督学习应用:人造卫星故障诊断、视频分析、社交网站解析、声音信号解析.....(聚类、异常检测)函数
强化学习应用:机器人的自动控制、计算机游戏中的人工智能、市场战略的最优化(回归、分类、聚类、降维)性能
已知模式x, 求分类类别y的条件几率$p(y|x)$最大的类别: $ \hat{y} = \underset{y}{\arg\max} p(y|x)$学习
条件几率改写为y的函数: $p(y|x) = \frac{p(x,y)}{p(x)} \propto p(x,y)$
联合几率p(x,y)和后验几率p(y|x)成正比,故直接求联合几率最大值便可: $\hat{y} = \underset{y}{\arg\max p(x,y)}$测试
条件几率p(y|x)也称后验几率, 联合几率p(x,y)也称数据生成几率
直接对后验几率$p(y|x)$学习的过程称为判别式分类
经过预测数据生成几率$p(x,y)$学习的过程称为生成式分类
数据生成几率$p(x,y)$已知时可推出后验几率: $ p(y|x) = \frac{p(x,y)}{p(x)} = \frac{p(x,y)}{\sum_y{p(x,y)}} $, 反之不能够.
已知样本$D=\{(x_i,y_i)\}_{i=1}^{n}$, 求运用最大似然方法来求模式$\theta$:
$$ \underset{\theta}{max}\prod_{i=1}^yq(x_i,y_i;\theta) $$
目标: 由训练集获得高精度的$\theta$
计算模式$\theta$的先验几率$p(\theta)$,运用贝叶斯定理来求数据集D的后验几率$p(\theta|D)$:
$$ p(\theta|D)=\frac{p(D|\theta)p(\theta)}{p(D)} = \frac{\int\prod_{i=1}^nq(x_i,y_i|\theta)p(\theta)}{\int\prod_{i=1}^nq(x_i,y_i|\theta)p(\theta)d\theta} $$
目标: 如何精确计算后验几率$p(\theta)$
下面这段话解释了得很清楚:
Reinforcement learning is a problem. Deep learning is an approach to solving problems.There is a deep learning approach to supervised learning, unsupervised learning, semi-supervised learning, and reinforcement learning.
划重点:
细一点来讲,RL与SL的区别有:
$$ f_\theta(x) = \sum_{j=1}^b\theta_j\phi_j(x) = \theta^T\phi(x) $$
$\phi_j(x)$非线性时, $f_\theta(x)$能够表示复杂模型
基函数:
(1) 多项式
$$ \phi(x) = (1, x, x^2, ..., x^{b-1})^T $$
(2)三角多项式
$$ \phi(x) = (1, sinx, cosx, sin2x, cos2x, ..., sinmx, cosmx)^T $$
$$ f_\theta(\vec x) = \sum_{j=1}^b\theta_j\phi_j(\vec x) = \theta^T\phi(\vec x) $$
$\phi_j(x)$是基函数向量$\phi(x) = (\phi_1(x), ..., \phi_b(x))^T)$的第j个因子, $\theta_j$是参数向量$\theta=(\theta_1,...,\theta_b)^T$的第j个因子.
基函数:
(1) 乘法模型
$$ f_\theta(\vec x) = \sum_{j_1=1}^{b'} \cdots \sum_{j_d=1}^{b'} \theta_{j_1,...,j_d} \phi_{j_1}{(x^{(1)}}) \cdots \phi_{j_d}(x^{(d)}) $$
模型表现力丰富, 其中, b'表明各维参数个数, 参数总和$(b′)^d$, 易致使维数灾难.
(2) 加法模型
$$ θ(x)=\sum_{k=1}^d\sum_{j=1}^{b'}\theta_{k,j}\phi_j(x^{(k)}) $$
参数总和$b'd$, 复杂度小, 表现力差
线性模型基函数和训练样本无关,核模型的基函数会使用输入样本.
核模型是二元核函数$K(\cdot,\cdot)$, 以$K(\vec x, x_j)_{j=1}^n$的方式线性结合:
$$ f_\theta(x) = \sum_{j=1}^n\theta_jK(x,x_j) $$
高斯核:
$$ K(x,c) = exp(-\frac{\|x-c\|^2}{2h^2}) $$
, 其中$\|\cdot\|$表示$L2$范数$\|x\|=\sqrt{x^Tx}$, h和c是高斯函数带宽和均值
高斯核函数图:
一维高斯核
如图, 只在各个样本$\{x_i\}_{i=1}^n$附近近似, 减轻了维数灾难
参数个数不依赖输入变量维数d, 只由样本数n决定
样本数n很大时, 将样本$\{x_i\}_{i=1}^n$的子集$\{c_j\}_{j=1}^b$做为核均值计算, 抑制了计算负荷:
$$ f_\theta(x)=\sum_{j=1}^b\theta_jK(x,c_j) $$
核模型是参数向量$\vec \theta=(\theta_1,\cdots,\theta_n)^T$的线性形式, 所以也是基于参数的线性模式的特例.
基于参数的线性模型称为参数模型, 核模型称为非参数模型
核映射: 核模型易扩展,当输入样本不是向量时(字符串,决策树, 图表等),经过构造两个样本x和x'的和核函数$K(x,x')$来建模.
非线性模型: 和参数相关的不是线性的模型均称为非线性模型
非线性模型中的层级模型:
$$ f_\theta(x) = \sum_{j=1}^b\alpha_j\phi(x;\beta_j) $$
上式中, $\phi(x;\beta_j)$是包含参数向量$\vec \beta$的基函数, $\vec \alpha$是参数向量
层级模型是基于参数向量$\vec \theta = (\vec \alpha^T, \beta_1^T, \cdots, \beta_b^T)^T$的非线性形式
S型基函数:
$$ \phi(x;\beta) = \frac{1}{1+exp(- x^T \omega-\gamma)}, \beta = (\omega^T, \gamma)^T $$
高斯基函数:
$$ \phi(x;\beta) = exp(-\frac{\|x-c\|^2}{2h^2}), \beta = (c^T, h)^T $$
对模型均方偏差最小化时的参数$\theta$学习的方法.
若无特别说明, 下文提到的最小二乘法通指无约束的.
均方偏差:
$$ J_{LS}(\theta) = \frac{1}{2}\sum_{i=1}^n(f_\theta(x_i)-y_i)^2 $$
LS: Least Squares
学习目标:
$$ \hat\theta_{LS} = \underset{\theta}{\arg\min}J_{LS}(\theta) $$
平方偏差$(f_\theta(x_i)-y_i)^2$是残差$|f_\theta(x_i)-y_i|$的$L2$范数, 最小二乘法也称 $L_2$损失最小化学习法
加权最小二乘法
对训练样本平方差经过权重$w_i$加权, 再使用最小二乘法:
$$ \underset{\theta}{min}\frac{1}{2}\sum_{i=1}^nw_i(f_\theta(x_i)-y_i)^2 $$
核模型的最小二乘法求解:
$$ f_\theta(x) = \sum_{j=1}^n\theta_jK(x,x_j) $$
上式, 将设计矩阵$\Phi$置换为核矩阵K:
$$ K = \begin{pmatrix} K(x_1,x1) &\cdots &K(x_1,x_n) \\ \vdots &\ddots & \vdots \\ K(x_n,x_1) &\cdots & K(x_n,x_n) \end{pmatrix} $$
$$ f_\theta(x) = \sum_{j=1}^b\theta_i\phi_i(\mathbf x) = \theta^T\phi(x) $$
平方偏差:
$$ J_{LS}(\theta) = \frac{1}{2}\|\Phi \mathbf \theta-\mathbf y\|^2 $$
$\Phi$构成的nxb阶设计矩阵:
$$ \Phi = \begin{pmatrix} \phi_1(x_1) &\cdots &\phi_b(x_1) \\ \vdots &\ddots &\vdots \\ \phi_1(x_n) &\cdots &\phi_b(x_n) \\ \end{pmatrix} $$
关于参数向量$\theta$的偏微分:
$$ \nabla \theta_{LS} = (\frac{\partial J_{LS}}{\partial \theta_1}, \cdots, \frac{\partial J_{LS}}{\partial \theta_b})= \Phi^T\Phi\theta-\Phi^T\mathbf y $$
$\nabla \theta_{LS}=0$时$J_{LS}(\theta)$取得最小值, 此时最小二乘解知足$\Phi^T\Phi \theta=\Phi^T\mathbf y$
解得:
$$ \hat \theta_{LS} = (\Phi^T\Phi)^{-1}\Phi^Ty $$
注: 只有$\Phi^T\Phi$有逆矩阵时上式才成立
广义逆矩阵: 是对逆矩阵的推广, 只有方阵, 非奇异矩阵才有逆矩阵, 单矩形矩阵或奇异矩阵均可以定义广义逆矩阵
令广义逆矩阵为:
$$ \Phi^{\dagger} = (\Phi^T\Phi)^{-1}\Phi^T $$
, 则$\hat \theta_{LS}$可写为:
$$ \hat \theta_{LS} = \Phi ^{\dagger}y $$
最小二乘法学习基于三角多项式基函数的线性模型:
设计矩阵$\Phi$的奇异值分解:
$$ \phi = \sum_{k=1}^{min(n,b)}\kappa_k\psi_{k} \varphi_k^T $$
$\kappa_k, \psi_{k}, \varphi_k$分别称为奇异值, 左奇异向量, 右奇异向量.
$\Phi$的广义逆矩阵:
$$ \Phi^{\dagger} =\sum_{k=1}^{min(n,b)}\kappa_k^{\dagger}\psi_{k} \varphi_k^T $$
$\kappa _k^{\dagger}$是标量$\kappa$的广义逆矩阵, $\kappa^{\dagger} = \frac{1}{\kappa} (\kappa \neq 0时)$
最小二乘解表示为:
$$ \hat \theta_{LS}= \sum_{k=1}^{min(n,b)}\kappa_k^{\dagger}(\psi_{k}^Ty) \varphi_k $$
模型输出向量变换为列向量:
$$ (f_{\hat \theta_{LS}}(x_1), \cdots, f_{\hat \theta_{LS}}(x_n))^T = \Phi\hat \theta_{LS} = \Phi\Phi^{\dagger}\mathbf{y} $$
所以, $\Phi\Phi^{\dagger}$是$\Phi$的正交投影矩阵, 最小二乘法输出向量$\mathbf y$是值域$R(\Phi)$的正交投影获得的.
带入真实函数中的参数$\theta^*$:
$$ (f(x_1), \cdots, f(x_n))^T = \Phi \theta^* $$
可知, 真的输出值向量就存在于$R(\Phi)$中
结论: 用最小二乘法的向量如果由$R(\Phi)$的正投影获得的, 则能够有效去除y中的噪音:
噪声指望为0是, $\hat \theta_{LS}$就是真是参数$\theta^*$的无偏估计:
$$ E[\hat \theta_{LS}] = \theta^* $$
上式, E为噪声的指望
渐近无偏性:
增长训练样本n, 上式$E[hat theta_{LS}]会向着模型中最优参数方向收敛的性质
通常线性模型$J_{LS}$为凸函数.
凸函数: 链接任意两点$\theta_1,\theta_2$的线段必定在函数上不:
凸函数只有一个峰值,所以经过梯度法必定能够获得均方差$J_{LS}$在值域范围内的全局最优解
梯度法的收敛速度强烈依赖梯度降低步长, 以及收敛结果断定方式(提早终止).
单纯的最小二乘法容易过拟合, 带约束的最小二乘法能控制模型复杂度, 下降过拟合.
含参线性模型, 使用全体参数空间:
$$ f_{\theta}(x) = \sum_{j=1}^b\theta_j\phi_j(x) = \theta^T\phi(x) $$
将参数空间限制在必定范围内, 防止过拟合:
$$ \underset{\theta}{min}J_{LS}(\theta) \quad 约束条件 P\theta=\theta $$
P是$bxb$维矩阵,是P的值域$R(P)$的正交投影矩阵
部分空间约束的最小二乘法解$\hat \theta$经过将设计矩阵$\Phi$置换为$\Phi P$求得:
$$ \hat \theta = (\Phi P)^\dagger\, y $$
下图展现了添加部分空间约束对模型的影响:
上图用三角多项式做为基函数:
$$ \phi(x) = (1, sin\frac{x}{2},cos\frac{x}{2},sin\frac{2x}{2},cos\frac{2x}{2}, \cdots, sin\frac{15x}{2},cos\frac{15x}{2})^T $$
图(b)添加了约束条件, 将参数限制在
$$ (1, sin\frac{x}{2},cos\frac{x}{2},sin\frac{2x}{2},cos\frac{2x}{2}, \cdots, sin\frac{5x}{2},cos\frac{5x}{2})^T $$
的部分空间内:
部分空间约束的LS(最小二乘法), 正交投影矩阵P的设置自由度高, 操做难度大, 基于L2约束的LS相对较容易.
约束条件以下:
$$ \underset{\theta}{min}J_{LS}(\theta)\quad 约束条件\|\theta\|^2 \leq R $$
L2参数空间:
如图, 是一个参数空间原点为圆心,R为半径内的圆(通常为超球)
引入拉格朗日对偶问题:
引入拉格朗日对偶问题:
利用拉格朗日对偶问题, 求解:
的最优解问题, 可获得最优化问题$\underset{\theta}{min}J_{LS}(\theta)$的解.
上式中拉格朗日待定因子$\lambda$的解由圆半径R决定
简化版(不禁R决定$\lambda$):
上式$J_{LS}(\theta)$表示对样本拟合程度, 与$\frac{\lambda}{2}\|\theta\|^2$组合获得最小是, 防止过拟合
上式令关于$\theta$的导数为0, L2约束的LS的解$\theta$可经过下式求解:
$$ \hat \theta = (\Phi^T\Phi+\lambda I)^{-1}\Phi^T\mathbf y $$
上式结论:
将设计矩阵$\Phi$作奇异值分解:
带入上上式, 则L2约束的LS解$\hat \theta$表示为:
上式结论:
高斯核模型
L2约束优化
$带宽h=0.3, 正则化参数\lambda=0.1$, 加入正则化项, 很好地抑制了过拟合.
根据标准高斯分布的函数图, 咱们对比能够看出图中标红位置出现了过拟合.
标准L2约束的LS
更通常的L2约束的LS
使用$bxb$正则化矩阵G, 可获得更通常的表示:
更通常的L2约束的LS解$\theta$求解过程, 和标准L2约束的LS大致相同:
矩阵G对称正定时, $\theta^TG\theta \leq R $将数据限制在椭圆区域内. 下图为更通常的L2约束的LS参数空间:
部分空间约束或L2约束的LS, 都过度依赖正交投影矩阵P和 正则化参数λ的选择
采用不一样的输入样本, 决定算法中各个参数值的过程称为模型选择
下图展现一个高斯核模型+L2约束的LS中, 带宽$h$和正则化参数$\lambda$的变化对学习结果的影响:
模型选择流程:
实际应用中经常使用交叉验证法, 拿出一部分训练样本作测试, 不参与学习, 值评价最终学习结果的泛化偏差
交叉验证法流程:
K折交叉验证:
训练集分割为k个集合, 需进行k次学习, 因为各学习过程相互独立, 能够并行计算.
留一交叉验证:设有n个样本, 每次留下一个样本作测试集, 其他n-1个训练, 共须要训练n次, 测试n次计算繁琐, 样本利用率高, 适合小样本学习