第一讲:机器学习基础(上)

1

引言

机器学习是近20多年兴起的一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科,其理论主要是设计和分析一些让计算机可以自动“学习”的算法。并且因其涉及了大量的统计学理论,机器学习与统计推断学联系尤为密切,故也被称为统计机器学习.

 

1.1学习资源

有关机器学习的资源在网上有很多,在这里编者将按照书籍、视频教程、相关的国际期刊和会议做一个整理。

  • 书籍

    ✔《统计学习方法》(入门佳作)

    ✔《模式分类》(叙述详细)

    ✔《数学之美》(可当做小说来看,偏nlp)

    ✔《机器学习》(著名的西瓜书)

  • 视频教程

    ✔ Andrew Ng主讲的机器学习

    ✔ Fei-Fei Li cs231n(视觉)

    ✔ Fei-Fei Li计算机视觉(进阶课程)

  • 期刊和会议

    ✔ ICML, NIPS, COLT, CVPR, ICCV, ECCV

    ✔ JMLR, ML, AI, PAMI, PR, CVIU, TIP

由于个人公众号不允许插入外链的缘故,想获取以上书籍以及视频教程请发“资源”二字到后台即可获取。列举的期刊、会议大家可以自行去官网get最新的研究进展。

1.2如何入门

Knowledge is a treasure, but practice is the key to get it.资源有了下面我们来说说如何入门。

 

❖ 看书(看不懂就多看几遍)

❖ 看在线视频(以上列举)

❖ 实践 (加粗就足以显示它的重要性)

  1. 熟悉开源工具包(libsvm、scikit-learn、xgboost、OpenCV等)

  2. 做习题/课程设计(随课程布置)

 

1.3需要的基础知识

如果你在学习的过程中,感觉有些吃力,面对矩阵、概率亦或是编程手无足措,那就说明你需要加强以下内容的复习了。

 

✦ 数学基础

  1. 线性代数

  2. 概率与统计

  3. 矩阵运算

✦ 编程基础

  1. c/c++/java

  2. python/matlab

2机器学习基础

本小节我们将从比较专业的角度来定义机器学习,以及组成机器学习的三个要素,模型、策略、算法。

定义

机器学习的定义在不同的书本里有不同的解读。

▣ 机器学习研究如何无需显式编程,使电脑具备学习的能力。

▣ 一个计算机程序在完成某项任务T的过程中,如果它的性能P,随着经验E而逐步提高,那么我们就说他从E中学习了。

▣ 机器学习是利用样例数据或者经验,通过电脑编程来优化某个性能评价指标。

 

看完以上定义,可能还是没有多少更具体的认识,下面我们以有监督学习的二分类为例加以说明。

 

现在我们有了一批数据D,特征为x,标签为y,现在我们想找到一个合适的分类器,尽可能的将这带有两种标签(-1/+1)的数据分开。

整个过程分为两个阶段:

训练阶段:根据我们先前定义好的模型f(x),并按照一定的策略进行学习,得到一组最优参数,这组参数使得模型产生的输出尽可能的拟合原始数据。

测试阶段:在获得最优参数之后,我们就可以使用这个新的模型对新数据进行预测了。

2.2机器学习三要素

从上面的例子中,其实我们已经隐约提到了机器学习的三个要素,模型+策略+算法。

模型:通俗的来讲,就是一种映射关系,我们需要考虑学习怎样的映射关系来尽可能的拟合数据集。

策略:这种映射关系可能拟合的不是很好,我们能不能找到一种规则来优化这种映射关系的输出使其尽可能的与原始数据的标签接近呢?或者说需要让我们的模型按照什么样的准则进行学习,这个时候就要用到策略了。

算法:算法则是指学习模型的具体计算方法,也就是说怎样去得到最优模型的参数,有些最优化问题有显式的解析解,有些则没有,这个时候就需要用数值计算的方法去求解了。

说了这么多,举个简单的例子吧。

例1:曲线拟合

先来看这样一张图,假设现在我们有了一些数据D。现在要找到一条曲线去尽可能的拟合这些数据,你会这么做呢?

咋一看,好像有些像sin(x)、cos(x)这些三角函数轨迹图,因此我们就有了一些比较初始的模型:

还有没有更普适的写法呢?其实根据泰勒公式证明中的多项式是可以表示任意函数。sin(x)泰勒展开也是如下形式。

这个也就是我们所说的模型了。

sin(x)泰勒展开:

但这其中还有些问题需要解决,比如M如何取,如何确定呢?

关于M的讨论后面再说,假设我们已经知道了比较合适的M的取值了,接下来我们定义这样一种函数,它会把上述模型产生的预测值与真实值的误差统统收集起来,如果试图最小化这个误差总和得到的模型是不是就是我们想要的呢?在统计学中,这种衡量错误或者损失的函数,称之为损失函数(loss function)或者代价函数。比较常见的如下式的平方损失:

这个损失函数越小,表明模型拟合的越好,进一步的,根据大数定律,当样本容量N趋于无穷时,模型关于联合分布的平均意义下的损失即经验风险趋于期望风险,而期望风险是模型关于训练集的平均损失:

现在我们就可以按照最小化L的准则来进行学习(经验风险最小化),也就是策略。

 

现在有了确切的模型和策略,我们还需要具体的计算方法,即算法。

当优化问题有解析解的时候,我们可以用:

    ✔ 最小二乘法 

    ✔ 岭回归 

无解析解的时候,可以尝试:

    ✔ 梯度下降法/随机梯度下降法

    ✔ 牛顿法/坐标下降法

    ✔ SMO

带有隐变量的求解方法:

    ✔ EM求解GMM、HMM

 

可看到最小二乘与岭回归极其相似,可以这么说,岭回归就是带二范数惩罚的最小二乘回归。后面我们会告诉你最小二乘法的推导,现在我们来说说,二范数是怎么回事,以及前面提到的模型中M的取值。先来看看这样几张图。

  • 当M=0的时候,就是一条平行于x轴的直线,它的值也是所有样本的均值,这种模型简单粗暴,来什么测试数据,它都给出这个定值。

  • 当M=1的时候,模型变成了一条可以360度旋转的直线,拟合的比M=0好一点点。

  • 当M=3的时候,这个模型的曲线非常接近样本点的分布了。

  • 当M=9时,我们惊讶的发现,模型曲线完美的拟合了我们的数据,只不过看上去怪怪的,有很多凹凸的地方。

M的取值越大,模型的复杂度也就越大,它对于原始样本的学习能力也就越强。学习能力强也不见的是好事,对于原始数据来说,里面难免会有噪声,或者说异常值,如果把这些东西也学进去了(过拟合),对于未来数据的预测(泛化能力)反而不利,尤其当样本容量很小的时候。那么有没有什么办法,在保持很好的泛化能力的同时,抑制过拟合呢?结构风险最小化就是为了防止过拟合而提出的,结构风险在经验风险的基础上加上表示模型复杂度的正则化项,比如说,模型参数的一范数,二范数等。这个时候结构风险函数就是我们要最优化的目标函数。

 

接下来,尝试推导一下上面给出的最小二乘公式,岭回归的部分将放在下一次的推送里。

曲线拟合之最小二乘法

 

通过上面的介绍,我们已经知道了曲线拟合的损失函数:

现在要求它的最小值,对各个w求导,即:

进一步变形:

展开:

将上述等式用矩阵形式表示:

由此可得:

这种写法看起来很简洁,但是计算起来还是比较繁琐,继续重写我们的损失函数,令:

进一步的:

注:维度是m*1,的维度是n*m,y的维度是n*1,则

维度是(1*m)*(m*n)*(n*1)=1*1是个实数,同理也是,因此

 

下面来对求偏导,令其等于0:

涉及到的矩阵求导规则:

如果对矩阵求导不是很清楚,请到英版维基百科上搜索「Matrix calculus」查看。

 

 

该文章来自厦门大学智能系机器学习课程,欢迎关注微信公众号:AmoyAI

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值