摘要:一引言机器学习是什么在进行特定编程的情况下,给予计算机学习能力的领域。另一个角度总结机器学习分类及应用分类监督学习对于有标签的数据进行学习,目的是能够正确判断无标签的数据。
一. 引言 1.机器学习是什么
Arthur Samuel:在进行特定编程的情况下,给予计算机学习能力的领域。
Tom Mitchell:一个程序被认为能从经验E中学习,解决任务T,达到性能度量值P,当且仅当,有了经验E后,经过P评判,程序在处理T时的性能有所提升。
图的左半部分列出了常用的机器学习算法与它们之间的演化关系,分为有监督学习,无监督学习,强化学习3大类。右半部分列出了典型算法的总结比较,包括算法的核心点如类型,预测函数,求解的目标函数,求解算法。
另一个角度总结:
监督学习:对于有标签的数据进行学习,目的是能够正确判断无标签的数据。通俗的讲,老师教授学生知识,并告知学习过程中的对与错,让学生可以从所学知识的经验和技能中对没有学过的问题进行正确回答,这就是监督学习,用于预测数据的回归、分类标签的分类、顺序的排序等问题。
无监督学习:对于无标签的数据进行学习,目的是不仅能够解决有明确答案的问题,也可以对没有明确答案的问题进行预测。通俗的讲,学生通过自学学习知识,达到可以正确回答有答案的问题,也可以对无答案的问题进行预测归类。常用于聚类、异常检测等。
强化学习:学生学习知识时,没有老师对其进行对与错的判定,需要学生根据自己所拥有的信息自己判定对于错,如果能够判定出来,则为有监督学习;如果判定不出来对与错,则为无监督学习。常用于机器人的自动控制、游戏的人工智能、市场战略的最优化等。
应用监督学习应用:手写文字识别、声音处理、图像处理、垃圾邮件分类与拦截、网页检索、基因诊断、股票预测......(回归、分类、排序)
无监督学习应用:人造卫星故障诊断、视频分析、社交网站解析、声音信号解析.....(聚类、异常检测)
强化学习应用:机器人的自动控制、计算机游戏中的人工智能、市场战略的最优化(回归、分类、聚类、降维)
4.机器学习方法生成式分类
判别式分类
生成式分类和判别式分类已知模式x, 求分类类别y的条件概率$p(y|x)$最大的类别: $ hat{y} = underset{y}{argmax} 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}{argmax 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}$, 求运用最大似然方法来求模式$ heta$:
$$ underset{ heta}{max}prod_{i=1}^yq(x_i,y_i; heta) $$
目标: 由训练集得到高精度的$ heta$
朴素贝叶斯方法
计算模式$ heta$的先验概率$p( heta)$,运用贝叶斯定理来求数据集D的后验概率$p( heta|D)$:
$$ p( heta|D)=frac{p(D| heta)p( heta)}{p(D)} = frac{intprod_{i=1}^nq(x_i,y_i| heta)p( heta)}{intprod_{i=1}^nq(x_i,y_i| heta)p( heta)d heta} $$
目标: 如何精确计算后验概率$p( heta)$
5.强化学习(RL),监督学习(SL)和无监督学习(UL)的区别和联系下面这段话解释了得很清楚:
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.
划重点:
Supervised Learning: given data, predict labels
Unsupervised Learning: given data, learn about that data
Reinforcement learning: given data, choose action to maximize expected long-term reward
RL更像控制系统家族里的,流着控制的血液,披着机器学习的外衣,需要data,training以此来支持决策。RL可以decision-making,不同于决策树之类的决策,是控制角度的决策,意味着就有失误,伴随着收益与惩罚(股票,博弈,游戏得分等等)。
细一点来说,RL与SL的区别有:
喂数据的方式不同:强化学习(RL)的数据是序列的、交互的、并且还是有反馈的(Reward)-【MDP]。这就导致了与监督学习(SL)在优化目标的表现形式的根本差异:RL是一个决策模型,SL更偏向模式挖掘,低阶的函数逼近与泛化。RL是agent自己去学习,SL是跟着programmer的idea在收敛。
RL的target是估计得来的,符合bellman等式,SL的target是fixed label;RL可以融合SL来训练,RL还可以自己博弈来生成样本。[交互特性,也可以放到第一点中]
RL可以进行lifelong形式的学习。RL有“生命”的【你可能也不知道你训练出来的模型到底能干什么】,SL没有。
二. 机器学习模型 1. 线性模型 一维输入+基函数形式:$$ f_ heta(x) = sum_{j=1}^b heta_jphi_j(x) = heta^Tphi(x) $$
$phi_j(x)$非线性时, $f_ heta(x)$可以表示复杂模型
基函数:
(1) 多项式
$$ phi(x) = (1, x, x^2, ..., x^{b-1})^T $$
(2)三角多项式
$$ phi(x) = (1, sinx, cosx, sin2x, cos2x, ..., sinmx, cosmx)^T $$
多维输入形式:$$ f_ heta(vec x) = sum_{j=1}^b heta_jphi_j(vec x) = heta^Tphi(vec x) $$
$phi_j(x)$是基函数向量$phi(x) = (phi_1(x), ..., phi_b(x))^T)$的第j个因子, $ heta_j$是参数向量$ heta=( heta_1,..., heta_b)^T$的第j个因子.
基函数:
(1) 乘法模型
$$ f_ heta(vec x) = sum_{j_1=1}^{b"} cdots sum_{j_d=1}^{b"} heta_{j_1,...,j_d} phi_{j_1}{(x^{(1)}}) cdots phi_{j_d}(x^{(d)}) $$
模型表现力丰富, 其中, b"代表各维参数个数, 参数总和$(b′)^d$, 易导致维数灾难.
(2) 加法模型
$$ θ(x)=sum_{k=1}^dsum_{j=1}^{b"} heta_{k,j}phi_j(x^{(k)}) $$
参数总和$b"d$, 复杂度小, 表现力差
2. 核模型线性模型基函数和训练样本无关,核模型的基函数会使用输入样本.
核模型是二元核函数$K(cdot,cdot)$, 以$K(vec x, x_j)_{j=1}^n$的方式线性结合:
$$ f_ heta(x) = sum_{j=1}^n heta_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_ heta(x)=sum_{j=1}^b heta_jK(x,c_j) $$
核模型是参数向量$vec heta=( heta_1,cdots, heta_n)^T$的线性形式, 因此也是基于参数的线性模式的特例.
基于参数的线性模型称为参数模型, 核模型称为非参数模型
核映射: 核模型易扩展,当输入样本不是向量时(字符串,决策树, 图表等),通过构造两个样本x和x"的和核函数$K(x,x")$来建模.
3. 层级模型非线性模型: 和参数相关的不是线性的模型均称为非线性模型
非线性模型中的层级模型:
$$ f_ heta(x) = sum_{j=1}^balpha_jphi(x;eta_j) $$
上式中, $phi(x;eta_j)$是包含参数向量$vec eta$的基函数, $vec alpha$是参数向量
层级模型是基于参数向量$vec heta = (vec alpha^T, eta_1^T, cdots, eta_b^T)^T$的非线性形式
S型基函数:
$$ phi(x;eta) = frac{1}{1+exp(- x^T omega-gamma)}, eta = (omega^T, gamma)^T $$
高斯基函数:
$$ phi(x;eta) = exp(-frac{|x-c|^2}{2h^2}), eta = (c^T, h)^T $$
使用S型核函数的层级模型称为人工神经网络
上式中的高斯函数和核模型中的高斯核相同,但是带宽和均值非固定
层级模型会对耦合系数${alpha_j}_{j=1}^b$,带宽和均值都进行学习, 因此层级模型比核函数更灵活.
人工神经网络学习过程艰难: 参数$ heta$和函数$f_ heta$不是一一对应的
常采用贝叶斯方法学习人工神经网络
三. 最小二乘法(LS) 1. 无约束最小二乘法对模型均方误差最小化时的参数$ heta$学习的方法.
若无特别说明, 下文提到的最小二乘法通指无约束的.
均方误差:
$$ J_{LS}( heta) = frac{1}{2}sum_{i=1}^n(f_ heta(x_i)-y_i)^2 $$
LS: Least Squares
学习目标:
$$ hat heta_{LS} = underset{ heta}{argmin}J_{LS}( heta) $$
平方误差$(f_ heta(x_i)-y_i)^2$是残差$|f_ heta(x_i)-y_i|$的$L2$范数, 最小二乘法也称 $L_2$损失最小化学习法
加权最小二乘法
对训练样本平方差通过权重$w_i$加权, 再使用最小二乘法:
$$ underset{ heta}{min}frac{1}{2}sum_{i=1}^nw_i(f_ heta(x_i)-y_i)^2 $$
核模型的最小二乘法求解:
$$ f_ heta(x) = sum_{j=1}^n heta_jK(x,x_j) $$
上式, 将设计矩阵$Phi$置换为核矩阵K:
$$ K = egin{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_ heta(x) = sum_{j=1}^b heta_iphi_i(mathbf x) = heta^Tphi(x) $$
平方误差:
$$ J_{LS}( heta) = frac{1}{2}|Phi mathbf heta-mathbf y|^2 $$
$Phi$构成的nxb阶设计矩阵:
$$ Phi = egin{pmatrix} phi_1(x_1) &cdots &phi_b(x_1) vdots &ddots &vdots phi_1(x_n) &cdots &phi_b(x_n) end{pmatrix} $$
关于参数向量$ heta$的偏微分:
$$ abla heta_{LS} = (frac{partial J_{LS}}{partial heta_1}, cdots, frac{partial J_{LS}}{partial heta_b})= Phi^TPhi heta-Phi^Tmathbf y $$
$ abla heta_{LS}=0$时$J_{LS}( heta)$取得最小值, 此时最小二乘解满足$Phi^TPhi heta=Phi^Tmathbf y$
解得:
$$ hat heta_{LS} = (Phi^TPhi)^{-1}Phi^Ty $$
注: 只有$Phi^TPhi$有逆矩阵时上式才成立
广义逆矩阵: 是对逆矩阵的推广, 只有方阵, 非奇异矩阵才有逆矩阵, 单矩形矩阵或奇异矩阵都可以定义广义逆矩阵
令广义逆矩阵为:
$$ Phi^{dagger} = (Phi^TPhi)^{-1}Phi^T $$
, 则$hat heta_{LS}$可写为:
$$ hat heta_{LS} = Phi ^{dagger}y $$
最小二乘法学习基于三角多项式基函数的线性模型:
设计矩阵$Phi$的奇异值分解:
$$ phi = sum_{k=1}^{min(n,b)}kappa_kpsi_{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 eq 0时)$
最小二乘解表示为:
$$ hat heta_{LS}= sum_{k=1}^{min(n,b)}kappa_k^{dagger}(psi_{k}^Ty) varphi_k $$
模型输出向量变换为列向量:
$$ (f_{hat heta_{LS}}(x_1), cdots, f_{hat heta_{LS}}(x_n))^T = Phihat heta_{LS} = PhiPhi^{dagger}mathbf{y} $$
因此, $PhiPhi^{dagger}$是$Phi$的正交投影矩阵, 最小二乘法输出向量$mathbf y$是值域$R(Phi)$的正交投影得到的.
带入真实函数中的参数$ heta^*$:
$$ (f(x_1), cdots, f(x_n))^T = Phi heta^* $$
可知, 真的输出值向量就存在于$R(Phi)$中
结论: 用最小二乘法的向量若是由$R(Phi)$的正投影得到的, 则可以有效去除y中的噪音:
噪声期望为0是, $hat heta_{LS}$就是真是参数$ heta^*$的无偏估计:
$$ E[hat heta_{LS}] = heta^* $$
上式, E为噪声的期望
渐近无偏性:
增加训练样本n, 上式$E[hat theta_{LS}]会向着模型中最优参数方向收敛的性质
一般线性模型$J_{LS}$为凸函数.
凸函数: 连接任意两点$ heta_1, heta_2$的线段一定在函数上不:
凸函数只有一个峰值,因此通过梯度法一定可以得到均方差$J_{LS}$在值域范围内的全局最优解
梯度法的收敛速度强烈依赖梯度下降步长, 以及收敛结果判定方式(提前终止).
2.带约束条件的最小二乘法单纯的最小二乘法容易过拟合, 带约束的最小二乘法能控制模型复杂度, 降低过拟合.
部分空间约束的LS含参线性模型, 使用全体参数空间:
$$ f_{ heta}(x) = sum_{j=1}^b heta_jphi_j(x) = heta^Tphi(x) $$
将参数空间限制在一定范围内, 防止过拟合:
$$ underset{ heta}{min}J_{LS}( heta) quad 约束条件 P heta= heta $$
P是$bxb$维矩阵,是P的值域$R(P)$的正交投影矩阵
部分空间约束的最小二乘法解$hat heta$通过将设计矩阵$Phi$置换为$Phi P$求得:
$$ hat heta = (Phi P)^dagger, y $$
下图展示了添加部分空间约束对模型的影响:
上图用三角多项式作为基函数:
$$ phi(x) = (1, sinfrac{x}{2},cosfrac{x}{2},sinfrac{2x}{2},cosfrac{2x}{2}, cdots, sinfrac{15x}{2},cosfrac{15x}{2})^T $$
图(b)添加了约束条件, 将参数限制在
$$ (1, sinfrac{x}{2},cosfrac{x}{2},sinfrac{2x}{2},cosfrac{2x}{2}, cdots, sinfrac{5x}{2},cosfrac{5x}{2})^T $$
的部分空间内:
部分空间约束的LS(最小二乘法), 正交投影矩阵P的设置自由度高, 操作难度大, 基于L2约束的LS相对较容易.
约束条件如下:
$$ underset{ heta}{min}J_{LS}( heta)quad 约束条件| heta|^2 leq R $$
L2参数空间:
如图, 是一个参数空间原点为圆心,R为半径内的圆(一般为超球)
引入拉格朗日对偶问题:
引入拉格朗日对偶问题:
利用拉格朗日对偶问题, 求解:
的最优解问题, 可得到最优化问题$underset{ heta}{min}J_{LS}( heta)$的解.
上式中拉格朗日待定因子$lambda$的解由圆半径R决定
简化版(不由R决定$lambda$):
上式$J_{LS}( heta)$表示对样本拟合程度, 与$frac{lambda}{2}| heta|^2$组合得到最小是, 防止过拟合
上式令关于$ heta$的导数为0, L2约束的LS的解$ heta$可通过下式求解:
$$ hat heta = (Phi^TPhi+lambda I)^{-1}Phi^Tmathbf y $$
上式结论:
将矩阵$Phi^TPhi和lambda I$相加提高其正则性, 进而更稳定地进行逆矩阵求解.
L2约束的LS也成为L2正则化的LS, $| heta|^2$称为正则项, $lambda$为正则化参数
L2正则化有时也称岭回归
将设计矩阵$Phi$做奇异值分解:
带入上上式, 则L2约束的LS解$hat heta$表示为:
上式结论:
$lambda=0$时, L2约束的LS蜕化为一般的LS
设计矩阵$Phi$计算条件恶劣,包含极小的奇异值$K_k$时, $K_k/K_k^2=1/K_k$变得极大, 训练输出$vec y$噪声会增加
分母$K_k^2$中加入正的常数$lambda$, 避免$K_k/(K_k^2+lambda$过大, 进而可防止过拟合
2. 高斯核模型的L2约束优化高斯核模型
L2约束优化
$带宽h=0.3, 正则化参数lambda=0.1$, 加入正则化项, 很好地抑制了过拟合.
根据标准高斯分布的函数图, 我们对比可以看出图中标红位置出现了过拟合.
标准L2约束的LS
问题表示:
$hat heta$求解:
更一般的L2约束的LS
使用$bxb$正则化矩阵G, 可得到更一般的表示:
问题表示:
$hat heta$求解:
更一般的L2约束的LS解$ heta$求解过程, 和标准L2约束的LS大体相同:
参数空间:
矩阵G对称正定时, $ heta^TG heta leq R $将数据限制在椭圆区域内. 下图为更一般的L2约束的LS参数空间:
部分空间约束或L2约束的LS, 都过分依赖正交投影矩阵P和 正则化参数λ的选择
选择合适的P和λ至关重要
采用不同的输入样本, 决定算法中各个参数值的过程称为模型选择
下图展示一个高斯核模型+L2约束的LS中, 带宽$h$和正则化参数$lambda$的变化对学习结果的影响:
模型选择流程:
实际应用中常用交叉验证法, 拿出一部分训练样本做测试, 不参与学习, 值评价最终学习结果的泛化误差
交叉验证法流程:
K折交叉验证:
训练集分割为k个集合, 需进行k次学习, 由于各学习过程相互独立, 可以并行计算.
留一交叉验证:
设有n个样本, 每次留下一个样本做测试集, 其余n-1个训练, 共需要训练n次, 测试n次
计算繁琐, 样本利用率高, 适合小样本学习
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/18477.html
摘要:回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。 回归算法 回归算法线性回归和非线性回归: 线性回...
摘要:精准率代表对正样本结果中的预测准确程度,而准确率则代表整体的预测准确程度,既包括正样本,也包括负样本。分数同时考虑了查准率和查全率,让二者同时达到最高,取一个平衡。接受者操作特征曲线曲线,又称接受 作者:xiaoyu 微信公众号:Python数据科学 知乎:python数据分析师 ROC/AUC作为机器学习的评估指标非常重要,也是面试中经常出现的问题(80%都会问到)。其实,理解它并...
摘要:精准率代表对正样本结果中的预测准确程度,而准确率则代表整体的预测准确程度,既包括正样本,也包括负样本。分数同时考虑了查准率和查全率,让二者同时达到最高,取一个平衡。接受者操作特征曲线曲线,又称接受 作者:xiaoyu 微信公众号:Python数据科学 知乎:python数据分析师 ROC/AUC作为机器学习的评估指标非常重要,也是面试中经常出现的问题(80%都会问到)。其实,理解它并...
摘要:精准率代表对正样本结果中的预测准确程度,而准确率则代表整体的预测准确程度,既包括正样本,也包括负样本。分数同时考虑了查准率和查全率,让二者同时达到最高,取一个平衡。接受者操作特征曲线曲线,又称接受 作者:xiaoyu 微信公众号:Python数据科学 知乎:python数据分析师 ROC/AUC作为机器学习的评估指标非常重要,也是面试中经常出现的问题(80%都会问到)。其实,理解它并...
摘要:学习机器学习已经有段时间了,心里一直在寻思着如何将其运用在安全上,前几天刚好看到兜哥的那篇文章,于是花了两天时间实现了一个简单的基于的过滤器,这里做一个比较接地气的分享。 学习机器学习已经有段时间了,心里一直在寻思着如何将其运用在安全上,前几天刚好看到兜哥的那篇文章,于是花了两天时间实现了一个简单的基于svm的xss过滤器,这里做一个比较接地气的分享。 1.概念理解 首先还是科普一些基...
阅读 1109·2021-10-11 10:58
阅读 1495·2021-09-02 09:55
阅读 861·2019-08-30 13:19
阅读 2047·2019-08-27 14:47
阅读 1250·2019-08-26 13:51
阅读 1325·2019-08-26 13:49
阅读 2198·2019-08-26 12:13
阅读 343·2019-08-26 11:52