Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >《机器学习基石》课程学习总结(一)

《机器学习基石》课程学习总结(一)

作者头像
用户1332428
发布于 2018-03-09 11:19:24
发布于 2018-03-09 11:19:24
9990
举报
文章被收录于专栏:人工智能LeadAI人工智能LeadAI

机器学习基石》课程非常棒,作为总结,本文重点是梳理课程中的知识脉络,同时尽可能说白话,让没有机器学习背景的朋友也能看懂。

这个课程好在哪里?

1、最大的好

课程内容组织非常科学,就像一个故事,有着清晰的主线。课程共16讲,基本是按照四个问题的顺序来展开的,即:

  • When:机器学习能解决哪些问题(1-4课)
  • Why:为什么机器学习能解决这些问题(5-8课)
  • How:怎样用机器学习来解决这些问题(9-12课)
  • How better: 怎样更好地用机器学习来解决这些问题(13-16课)

这条主线就像旅行者手中的地图,时时告诉你当前所处方位,从什么地方过来的,下一步要往哪里去。整个课程浑然一体,连贯不可分。对我这样的初学者,有了主线的帮助,能够快速构建机器学习完整的知识体系,为下一步的学习打下坚实的根基,这也是本课叫《机器学习基石》的原因。

2、其他的好

1、幽默诙谐的语言

林轩田具有传道授业的天赋,讲课风格非常轻松幽默,充满热情,享受其中,听课者很容易被感染而激发起学习的兴趣。

2、善于用图和示例化难为易

机器学习涉及许多数学知识,每当此时,林总会用很多图和浅显的例子,将数学知识背后的观念揭示出来,时刻注重数学在机器学习中的工具属性,没有陷入为数学而数学的陷阱,这对初学者是非常友好的。

3、善于总结

每课开头都会用一句话来回顾上一课内容,非常精辟准确;每课结束都会简要回顾本课的要点,同样言简意赅。尤其是对整个课程的总结:“6个3”,让人拍手叫绝!

2、以银行卡信用卡开始

向银行申请信用卡的人具有一些特征,比如性别、年龄、工作年限、工资水平、是否负债等,这些特征可以抽象为(x1, x2, ..., xd)。

在银行看来,申请人无非就是好的申请人和坏的申请人,好的申请人就给他发卡,坏的申请人就拒绝发卡。

那么问题来了,如何根据申请人的特征信息判断他是好是坏?

答案便是用机器学习,具体思路如下:

首先,假设存在一个完美的函数f,它的输入是申请人的特征信息向量X(大写的X表示向量),输出是要不要给申请人发卡,YES就代表可以发卡,NO代表不应发卡。这个完美的函数在课程中叫做target f。哇!要是能找到这个函数,发卡问题岂不是迎刃而解?

理想很丰满,现实很骨感,我们只是凭直觉感到冥冥之中有这么一个完美的f存在,但却并不知道它的真面目,所以,我更愿意称它为上帝函数(god f),因为它是我们无法得知的,只有上帝知道。

但是,上帝给你关上一道门的同时,总会给你打开一扇窗的。虽然无法看到f的庐山真面目,但它还是有一些线索的,这就是银行中已有的发卡数据,这些数据就是一个个发卡人的特征信息以及发卡后的结果好坏。这些数据称为D:{(X1,y1),(X2,y2),...,(Xn,yn)}(这里用大写的X表示这是一个竖向量),这些X可以认为是f的输入,y就是f的输出。

机器学习的核心问题就是:如何根据D找出一个函数g,使得g尽可能地接近f,此时,函数g称为假设(hypothesis)。全书都是在围绕这个问题展开的。

我的感觉,f是一个深闺中的少女,D就是深夜少女在窗户上映出的影子,我们的任务就是根据这个不完整还晃动的影子临摹出少女的模样,虽然无法达到一模一样,但求惟妙惟肖。

现在的问题是,如何找函数g?

首先,我们需要一个函数集以供我们查找挑选,这个函数集称为H,也称其为假设集(Hypothesis Set)。其次,我们需要一个算法A,它根据数据D,在H中挑出一个最好的g,所谓最好,就是指与f最像,所谓最像,是指任意给定一个输入数据d(这个d不一定是D中的数据),g和f的输出结果有很大概率是相同或相近的。

由上,可以总结出机器学习的简明概括:

算法A利用D,从H中挑出一个最好的函数g,使得g尽可能地像f。如下图所示:

3、找出函数g的第一个办法--PLA算法

为了找出函数g,我们先要确定g的范围,即H,我们发现,函数集H中的函数有一个共同的特点:输入是一个d维向量X,输出只有两个结果YES或NO,也可说是+1和-1 。这样的函数有一个专有的名字,叫感知器(Perceptron),H也就可以叫做感知器集合。

考虑银行发放信用卡,我们很自然的一个想法就是根据用户个人特征信息给用户打分,不同的特征信息有不同的权重,分数大于某个值时,就发卡,小于该值时,即拒绝发卡即:

将上式进行如下变形:

上面的式子中,X和W都是一个d+1维的竖向量,其中x0 = +1,w0 = -threshold。x1xd就是用户的d个特征信息,w1wd就是相应特征信息的权重。

上面的式子最大的作用就是帮助我们确定假设集H(Hypothesis Set)。每个W对应一个假设h(X),所有可能的W组成了所有可能的假设,所有可能的假设就是我们要从中挑选g的假设集。

现在,挑选最好的g,转变成了挑选最好的W,那么怎么挑选呢?W有无穷多个,我们必须确定一个可操作的挑选标准。

一个合理的挑选标准是,看这个W(也就是h(X))在数据D上是否与f保持一致,越一致的W越好,最理想的结果是,对于D中的任一个数据(Xn,yn),都有h(Xn)=yn=f(Xn)。PLA算法的思路就是找到一个这样的W,使它满足最理想的结果,具体步骤是从一个W0出发,不断地调整它,直到达到最理想的状态。伪代码如下:

上述代码中,对于Wt,每当发现它在一个数据上与f表现不一致时,就对它进行调整,得到Wt+1,如此循环,直到对于D中的任一个数据(Xn,yn),都有h(Xn)=yn=f(Xn),将此时的W(称作WPLA)返回,作为我们要找的函数g。

这个算法中最难理解的是对Wt调整得到Wt+1这一步,为理解它,需要我们再次审视h(X)=sign(WT*X),WT*X实际上就是向量W和向量X的内积。学过线性代数的我们知道,内积为0时,两个向量相互垂直,内积大于0时,两个向量夹角小于90度,内积小于0时,两个向量夹角大于90度。所以h(X)为+1时,表示W与X夹角小于90度,为-1时,表示W和X的夹角大于90度。

回到上面的伪代码中,假如我们发现了一个数据(Xn,yn),在这个数据上,sign(WT*Xn)与yn不相等,简便起见,我们假设sign(WT*Xn)为-1,而yn为+1(相反情况也是类似的分析)。这说明我们目前的W还不够好,需要调整,怎么调整呢?

sign(W^T*Xn)为-1 说明W和Xn的夹角大于90度,yn为+1说明我们理想的W和Xn的夹角应当是小于90度的,所以,我们要减小W和Xn的夹角,方法就是将W加上Xn作为新的W。那么,是否新的W和Xn的夹角就小于90度了呢,这不一定,不过,新的W和Xn的夹角总是变小了一点,离我们理想的W更近了一点,随着循环次数的增加,我们相信,二者夹角总会小于90度的。

上面分析的过程用图说明如下:

PLA算法有一个明显的弊端,就是理想的W不一定存在,我们有时候不可能找到一个W,它在D上与f表现完全一致,这个时候,算法中的循环将不会停止。

什么时候会存在理想的W呢?

这取决于数据集D,如果数据集D使得这样的理想W存在,我们就称D是线性可分的,否则,就说D不是线性可分的(linear separable),示意如下:

即使D是线性可分的,存在理想的W,我们的PLA算法一定能够找到理想的W并停止吗?答案是YES,但这涉及到一定的数学证明,这里不再细述,课程中有讲解。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-02-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 人工智能LeadAI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
中国台湾大学林轩田机器学习基石课程学习笔记1 -- The Learning Problem
本文介绍了机器学习的基本概念、应用情况以及与其他领域的关系。机器学习是人工智能的一个分支,其基本概念是通过在数据中学习,使计算机系统能够自主地识别模式,并随着数据的增加而改进其性能。机器学习的应用范围非常广泛,包括购物网站推荐、电影推荐、自然语言处理、预测等。机器学习在数据挖掘、人工智能和统计等领域中扮演着重要角色。
红色石头
2017/12/28
9950
中国台湾大学林轩田机器学习基石课程学习笔记1 -- The Learning Problem
中国台湾大学林轩田机器学习基石课程学习笔记2 -- Learning to Answer Yes/No
本文介绍了线性感知机模型,以及解决这类感知机分类问题的简单算法:PLA。详细证明了对于线性可分问题,PLA可以停下来并实现完全正确分类。对于不是线性可分的问题,可以使用PLA的修正算法Pocket Algorithm来解决。
红色石头
2017/12/28
8560
中国台湾大学林轩田机器学习基石课程学习笔记2 -- Learning to Answer Yes/No
ML基石_2_LearnAnswer2
h(x) = sign((\sum_{i=1}^n w_i x_i)-threshold) 其中,xix_i是数据xx的第ii个分量,wiw_i是不同分量的权重。
用户1147754
2019/05/26
5460
《机器学习基石》课程学习总结(二)
01 寻找函数g的pocket算法 前文提到,PLA算法有效的前提是D要是线性可分的,D中的数据可以看做由f产生而来。这样的假设过于理想化,现实中,D里面总会掺杂一些噪声数据(noise data),这些数据并不是从理想的f产生而来。 这些噪声数据会带来哪些影响?有了噪声数据,D可能就不是线性可分了,PLA算法也就不再有效,而且,即使D还是线性可分的,噪声数据也会对最后选择的g产生干扰,影响g与f的相似度。 怎么解决噪声数据带来的干扰? 答案是对PLA算法进行改进,不求对D中每一个数据都有g(X)=y=f
用户1332428
2018/03/09
1.1K0
《机器学习基石》课程学习总结(二)
写给大家看的机器学习书【Part3】直观易懂的感知机学习算法PLA
作者:徐晗曦 原文:写给大家看的机器学习书(第三篇) https://zhuanlan.zhihu.com/p/25358695 前文: 【Part1】什么是机器学习?机器学到的到底是什么?
用户1737318
2018/06/06
7430
中国台湾大学林轩田机器学习基石课程学习笔记7 -- The VC Dimension
本文介绍了VC Dimension在机器学习中的概念和应用,以及其在Perceptron算法中的计算方法。通过实验,我们得知选取合适的VC Dimension能够提高模型的泛化能力。同时,文章还探讨了VC Dimension在实际应用中的一些问题,如样本复杂度、模型复杂度等。
红色石头
2017/12/28
8950
中国台湾大学林轩田机器学习基石课程学习笔记7 -- The VC Dimension
Perceptron Learning Algorithm
上一节我们主要通过一个简单的银行发卡例子,引出一个简单的Perceptron Hypothesis Set-感知器,并且这个Hypothesis Set由许多条直线构成的。
公众号guangcity
2019/09/20
6370
Perceptron Learning Algorithm
机器学习线性分类算法:感知器原理
感知器PLA是一种最简单,最基本的线性分类算法(二分类)。其前提是数据本身是线性可分的。 模型可以定义为 ,sign函数是阶跃函数,阈值决定取0或1。 模型选择的策略,利用经验损失函数衡量算法性能,由
机器学习AI算法工程
2018/03/14
1.7K0
机器学习线性分类算法:感知器原理
Non-Separable Data And Types of Learning
6.Learning with Different Protocol f(xn,yn)
公众号guangcity
2019/09/20
3580
Non-Separable Data And Types of Learning
中国台湾大学林轩田机器学习基石课程学习笔记10 -- Logistic Regression
本文介绍了逻辑回归(Logistic Regression)算法的基本原理、训练过程以及总结。首先,作者通过一个简单的例子,介绍了逻辑回归算法的基本思想,即如何通过已知的特征来预测一个二元分类的结果。然后,作者详细介绍了逻辑回归算法的实现过程,包括如何构建模型、如何利用训练数据进行学习以及如何评估模型的性能。最后,作者对逻辑回归算法进行了总结,并介绍了梯度下降算法和基于梯度下降的Logistic Regression算法。
红色石头
2017/12/28
8390
中国台湾大学林轩田机器学习基石课程学习笔记10 -- Logistic Regression
中国台湾大学林轩田机器学习技法课程学习笔记1 -- Linear Support Vector Machine
关于中国台湾大学林轩田老师的《机器学习基石》课程,我们已经总结了16节课的笔记。这里附上基石第一节课的博客地址: 中国台湾大学林轩田机器学习基石课程学习笔记1 – The Learning Pr
红色石头
2017/12/28
9180
中国台湾大学林轩田机器学习技法课程学习笔记1 -- Linear Support Vector Machine
林轩田机器学习基石课程学习笔记1 -- The Learning Problem
什么是“学习”?学习就是人类通过观察、积累经验,掌握某项技能或能力。就好像我们从小学习识别字母、认识汉字,就是学习的过程。而机器学习(Machine Learning),顾名思义,就是让机器(计算机)也能向人类一样,通过观察大量的数据和训练,发现事物规律,获得某种分析问题、解决问题的能力。
AI算法与图像处理
2020/04/15
6890
深入浅出机器学习技法(一):线性支持向量机(LSVM)
回顾一下我们之前介绍了线性分类(linear classification),对于线性可分的情况,我们可以使用PLA/pocket算法在平面或者超平面上把正负类分开。
红色石头
2022/01/12
4980
深入浅出机器学习技法(一):线性支持向量机(LSVM)
《机器学习基石》课程学习总结(三)
前面两篇文章要点回顾: 第一篇:机器学习的主要任务是用算法A,利用数据集D从假设集H中挑出一个函数g,使得E_in(g)最小。 第二篇:可以证明,当假设集H的d_vc是有限值,数据集D中样本数量N足够大时,找到的函数g的E_in和E_out很大概率上是近似相等的,因此,E_in很小时可以认为E_out也会很小。也就是说,机器确实从数据中学习到了“知识”。 这篇文章是对第8课内容的总结,比较短,但是很重要。 1、如果数据中有noise 在前面两篇文章中,讨论机器学习时默认有一个前提是成立的,那就是数据集
用户1332428
2018/03/09
8010
【陆勤学习】解读机器学习基础概念:VC维的来龙去脉
目录: 说说历史 Hoeffding不等式 Connection to Learning 学习可行的两个核心条件 Effective Number of Hypotheses Growth Function Break Point与Shatter VC Bound VC dimension 深度学习与VC维 小结 参考文献 VC维在机器学习领域是一个很基础的概念,它给诸多机器学习方法的可学习性提供了坚实的理论基础,但有时候,特别是对我们工程师而言,SVM,LR,深度学习等可能都已经用到线上了,但却不理解
陆勤_数据人网
2018/02/26
5.5K1
【陆勤学习】解读机器学习基础概念:VC维的来龙去脉
中国台湾大学林轩田机器学习基石课程学习笔记3 -- Types of Learning
红色石头
2017/12/28
8020
中国台湾大学林轩田机器学习基石课程学习笔记3 -- Types of Learning
机器学习的5种距离度量方法
在机器学习领域中有非常多的问题需要求距离,常见的是向量距离的计算。比如判断A、B、C三种商品之间的相似性,可以先按照商品特征构建A、B、C的各自的向量,然后求向量间的距离,距离近就表示彼此相似度高。今天讲下常见的几种距离计算方法。
IT派
2018/07/30
8550
机器学习的5种距离度量方法
中国台湾大学林轩田机器学习基石课程学习笔记8 -- Noise and Error
本文主要介绍了在数据有噪声的情况下,如何通过机器学习算法来推断出目标函数,并介绍了两种错误测量方法和一种算法复杂度测量方法。
红色石头
2017/12/28
7900
中国台湾大学林轩田机器学习基石课程学习笔记8 -- Noise and Error
机器学习可行性与VC dimension
在银行评估贷款申请人的授信请求前,会进行风险评估。符合申请则通过,反之驳回。长时间的数据和申请使得银行从中找到了一些规律并开始learning,所以风险评估就是一个learning的过程,流程图如下:
西红柿炒鸡蛋
2018/09/07
1K0
Perceptron Hypothesis Set
今天开始更新机器学习系列,近日主要研究机器学习基石以及西瓜书等方面的学习,本文将更新机器学习基石的相关笔记。
公众号guangcity
2019/09/20
5810
Perceptron Hypothesis Set
推荐阅读
相关推荐
中国台湾大学林轩田机器学习基石课程学习笔记1 -- The Learning Problem
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档