机器学习·重看西瓜书1

一些基本概念和思考

泛化能力:学得的模型适用于新样本的能力,强泛化能力的模型能很好的适用于整个样本空间。故尽管训练集通常只是样本空间的一个很小的采样,但仍能很好地反映样本空间的特性。

机器学习中把学习过程看作是在假设空间中依据特定的归纳偏好进行搜索匹配的过程。

损失函数:用来量化模型预测和真实标签之间的差异
用于离散值的交叉熵损失函数
标签的真实分布 y y y和模型预测分布 f ( x , θ ) f(x,\theta) f(x,θ)之间的交叉熵为
L ( y , f ( x , θ ) ) = − ∑ c = 1 C y c l o g f c ( x , θ ) . \mathcal{L} (y,f(x,\theta))=-\sum_{c=1}^C y_clogf_c(x,\theta). L(y,f(x,θ))=c=1Cyclogfc(x,θ).
其也就是负对数似然函数
另外也有Hinge损失函数
经验风险(Empirical Risk)可由下式计算
R D e m p ( θ ) = 1 N ∑ n = 1 N L ( y ( n ) , f ( x n , θ ) ) . R_D^{emp}(\theta)=\frac{1}{N}\sum_{n=1}^N\mathcal{L}(y^{(n)},f(x^{n},\theta)). RDemp(θ)=N1n=1NL(y(n),f(xn,θ)).
机器学习算法的目的就是通过对训练集数据的处理使计算到的经验风险最小化!

过拟合问题(overfitting):在噪声的影响下,模型在训练集上错误率很低,但在未知数据上错误率很高。

人工智能两大流派
符号主义
连接主义

如何评估与选择模型

在这里插入图片描述
机器学习中一个很关键的问题是期望错误与经验错误之间的差异,称为泛化错误(Generalization error)

丑小鸭定理:丑小鸭和白天鹅之间的区别和两只白天鹅之间的区别一样大。世界上不存在相似性的客观标准,一切相似性的标准都是主观的

由于我们无法对学习器的泛化误差做评估,于是只可从训练集中抽出一部分数据作为测试集,然后以测试误差(testing error)作为泛化误差的近似。其原则是测试样本尽量不在训练集中出现,因为如果测试样本被用作训练了,得到的将是过于“乐观”的结果。

分层采样
划分k折
自助采样
测试方法
留出法hold-out
多次随机划分取平均
交叉验证法cross validation
留一法LOO
自助法bootstrapping
包外估计out of bag estimate

自主法在数据集较小、难以划分训练/测试集的时候很有用,自助法能从初始数据集中产生多个不同的训练集,这对集成学习等方法有很大好处,但因其改变了初始数据集的分布,会引入估计偏差,因此数据量足够时,尽量采用留出法或交叉验证法

关于查准率(precision)与查全率(recall)
在这里插入图片描述
PR曲线:
在这里插入图片描述
当正例可能性最大的样本被判为正例时,查准率为100%,但查全率很低,随着越来越多的负例被误判为正例,模型的查准率开始下降,但由于更多的正例被正确判断,故查全率开始上升。一个好的模型,我们希望它尽可能地能将正负例分开,故曲线弧度越大,模型性能越好。
F1度量
F 1 = 2 × P × R P + R = 2 × T P 样 例 总 数 + T P − T N F1 = \frac{2\times P\times R}{P+R}=\frac{2\times TP}{样例总数+TP-TN} F1=P+R2×P×R=+TPTN2×TP

Learning curve学习曲线
在这里插入图片描述
当一个模型在训练集上的错误率比较高时,说明模型的拟合能力不够,偏差比较高。这种情况可以通过增加数据特征、提高模型复杂度、减少正则化系数等操作来改进模型。当模型在训练集上错误比较低但在验证集上错误率比较高时,说明模型过拟合,方差比较高,这种情况可以通过降低模型复杂度,加大正则化系数,引入先验等方法来缓解。此外还可以引入集成模型,及通过多个高方差模型的平均来降低方差。

线性模型

对数几率函数logistic function
y = 1 1 + e − z y=\frac{1}{1+e^{-z}} y=1+ez1
logistic回归直接对分类的可能性进行建模,避免了假设分布不准确所带来的问题。
用极大似然法来估计参数,又由于对率回归求解的是任意阶可导的凸函数,有很好的数学性质,故其用很多经典的数值优化方法如梯度下降法(gradient descent method)或牛顿法(Newton method)都可以求得其最优解。

关于多分类学习:

每次将一个类别作为正例
训练N个训练器
多分类学习
OvO
两两配对
投票决定类别
OvR
其他全为反例
选择置信度最高的训练器对应的类别
MvM
ECOC编码

OvR和MvM方法会加重样例类别不平衡问题
解决类别不平衡问题方法为再缩放(rescaling):1.欠采样(undersampling),代表EasyEnsemble, 2.过采样(oversampling),代表:SMOTE, 3.阈值移动
Softmax回归是logistic回归在多类问题上的推广

除了多分类学习,近年来"多标记学习(multi-lable learning)是研究的一个重心",如[1]

决策树

决策树以信息增益的标准来划分属性
公式:
信息熵:用于度量样本集合纯度,假设当前样本集合D中第k类样本所占比例为 p k ( k = 1 , 2 , … , ∣ γ ∣ ) p_k(k=1,2,\ldots,|\gamma|) pk(k=1,2,,γ)
E n t ( D ) = − ∑ k = 1 ∣ γ ∣ p k l o g 2 p k Ent(D)=-\sum_{k=1}^{|\gamma|}p_klog_2p_k Ent(D)=k=1γpklog2pk
信息增益:
G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 V D v D E n t ( D v ) Gain(D,a)=Ent(D)-\sum_{v=1}^V\frac{D^v}{D}Ent(D^v) Gain(D,a)=Ent(D)v=1VDDvEnt(Dv)
故决策树选择最优划分属性的方法为: a ∗ = a r g m a x G a i n ( D , a ) a_*=argmax Gain(D,a) a=argmaxGain(D,a)
也可根据基尼系数选择最优划分属性
关于决策树的剪枝(pruning)
剪枝在决策树的应用中极度重要,其中
预剪枝prepruning指在决策树生成的过程中,对每一个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能的提升,则停止划分并将当前结点标记为叶结点。显著减少训练时间的开销,但会带来欠拟合的风险
后剪枝则是先从训练集中生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能的提升,则将该子树替换为叶结点。泛化性能较好,但训练时间较长

神经网络

原始数据在输入学习器学习之前,一般要经过数据预处理、特征提取(边缘提取,SIFT)和特征转换过程(主成分分析PCA,线性判别分析)。一般而言,各个模型的性能相差不多,但特征的处理会对最终系统的准确性有着十分关键的作用,并且需要人工干预完成,要利用人类的经验选取好的特征。此即为特征工程,开发一个机器学习系统的主要工作量都消耗到了特征工程上。

深度学习需要解决的关键问题是贡献度分配问题(Credit Assignment Problem),考察一个系统中不同组件或其参数对最终系统输出结果的贡献或影响。

基本模型:
权值和:
z = ∑ i = 1 d ω i x i + b = w T x + b z=\sum_{i=1}^d \omega_ix_i+b=\mathbf{w}^T\mathbf{x}+b z=i=1dωixi+b=wTx+b
激活函数与活性值:
a = f ( z ) a=f(z) a=f(z)
其中激活函数必须满足:

  1. 连续且可导,可导的激活函数可以直接利用数值优化的方法来学习网络参数
  2. 激活函数及其导函数要尽可能的简单,有利于提升网络计算效率
  3. 激活函数的导函数的值域要在一个合适的区间内
    常见的激活函数:
    Logistic函数
    σ ( x ) = 1 1 + e x p ( − x ) \sigma(x)=\frac{1}{1+exp(-x)} σ(x)=1+exp(x)1
    其有性质 σ ′ ( x ) = σ ( x ) ( 1 − σ ( x ) ) \sigma'(x)=\sigma(x)(1-\sigma(x)) σ(x)=σ(x)(1σ(x))
    Tanh函数
    t a n h ( x ) = e x p ( x ) − e x p ( − x ) e x p ( x ) + e x p ( − x ) tanh(x)=\frac{exp(x)-exp(-x)}{exp(x)+exp(-x)} tanh(x)=exp(x)+exp(x)exp(x)exp(x)
    修正线性单元(ReLU)
    R e L U ( x ) = { x x ≥ 0 0 x ≤ 0 ReLU(x) = \left\{ \begin{array}{rcl} x&x\geq0 \\ 0 & x\leq0 \end{array}\right. ReLU(x)={x0x0x0
    采用ReLU的神经元只需要进行加、乘和比较的操作,并且缓解了神经网络的梯度消失问题,加速梯度下降的收敛速度。缺点在于会出先死亡ReLU问题(Dying ReLU Problem)
    解决这个问题有以下几种方式:
解决ReLU死亡及非中心化问题
LeakyReLU
Parametric ReLU
指数线性单元ELU
Softplus函数

ReLU一般用于神经网络的隐藏层,输出层二分类用sigmoid,多分类用Softmax

前馈神经网络(Feedforward Neural Network, FNN)

参考文献

[1] Zhou, Z., Zhang, M., Huang, S., & Li, Y. (2012). Multi-instance multi-label learning. Artificial Intelligence, 176(1), 2291-2320.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乘螺舟而至

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值