Coursera机器学习基石 第1讲:The Learning Problem
这门课的授课老师是个台湾人,师从Caltech的Yaser S. Abu-Mostafa,他们共同编撰了《Learning From Data》这本书。Yaser S. Abu-Mostafa在edx上也开设了机器学习的公开课,不过说实话,他的埃及口音英语实在很难听懂,而且讲的内容偏重理论,所以追了几节课就放弃了。这次他的学生带来了coursera的机器学习基石这门公开课,讲的内容和Yaser的公开课差不多,而且是中文授课(ppt是英文),这对于华语世界的学生来说是个福音。未来几周,我将把这门课的听课收获记录下来,以便备忘。
- 什么是机器学习?
机器学习是一门能够让计算机从数据中学习得到经验,以改善在特定任务上表现的新兴技术。机器学习模仿了人类的学习过程,人类的学习来源于观察,比如我们学说话,是通过聆听、模仿大人的话语;我们区分两个不同的物体,是通过视觉上的观察、比对,经思考、归纳总结出结论的。机器学习也是一样,不过由于机器不能主动观察获得数据,所以需要人类把资料“喂”给它。接着,通过机器学习算法,得出结论。
- 机器学习能够应用的场合:
1.数据中有特定的规律(pattern)可循
数据背后必须含有潜在的规律或模式,如果数据杂乱无章没有规律可循,那么数据就是垃圾数据。
2.数据中的规则不能用明确的数学表达式(mathematical definition)给出
现实生活中许多复杂的决策问题是无法简单地用明确的数学形式刻画的,如果能够明确定义,也就不需要机器学习了,直接写个程序就可以。
3.要有数据(data)
数据用来训练机器学习模型的参数,训练出合乎真实目标函数的假设。当有人登门拜访,期望你用机器学习解决他所提出的问题时,你首先应该问的是:你有什么样的数据?如果有,那么我们可以继续合作;如果没有,那就爱莫能助了。
对于机器学习来说,这三个要素缺一不可。
下面哪个问题可以应用机器学习?
1.预测一个婴儿下一次哭是在奇数分钟还是偶数分钟?
2.寻找一张图上两个顶点间的最短路径
3.预测未来十年地球是否会因为核战争而毁灭?
4.预测股市明天的走势
答案是:4
问题1,婴儿下一次哭在什么时候是无规律可循的
问题2,寻找图上两顶点间最短路径可以显式地编程给出
问题3,预测地球未来十年是否会毁灭,我们没有之前的历史数据,所以无法进行训练
问题4,是可以应用机器学习的,因为股价的波动遵循一定的规律;而且股价的波动与许多因素有关,我们无法用一个明确的数学公式给出这个规律;此外,我们可以利用过去十年的股市行情数据进行学习,综上,答案是4
- 机器学习的模型:

图中包含了机器学习中的一些基本概念:
1.Target functuion:我们要学习得到的目标函数(记为$f$),是观测值$\mathcal{X}$到真实预测值$\mathcal{Y}$的一个映射关系。通常我们是不知道这个函数的(无法用数学形式明确表示)
2.Traning examples:训练样本,由观察值和真实值所组成的一个集合,系由$f$产生的。
3.Hypothesis set:假设集合,由于我们事先不知道目标函数,但是我们可以猜想,比如我们认为某个假设可以用于预测,那么就把该假设加入假设集,当然假设不止一种,所有候选的假设构成了整个假设集。
4.Learning algorithm:机器学习算法,根据数据,从假设集中找到最符合目标函数$f$的假设$g$
目标函数和训练集是我们无法控制的。但学习算法和假设集是我们可以选择的,这两个成分合起来叫做学习模型(learning model),如何选择学习模型对于我们的机器学习问题至关重要。
- 机器学习与其他相关领域的关系
1.机器学习与数据挖掘
机器学习的目标是根据数据,从假设集中找到一个与目标函数$f$很相近的假设$g$
数据挖掘的目标是从海量的数据中寻找有用的性质
如果要寻找的有用性质与寻找一个和目标函数很相近的假设的目标是一致的话,那么机器学习和数据挖掘没有本质上的区别
如果数据挖掘要寻找的有趣的性质与机器学习任务有联系的话,那么二者可以互相帮助。比如数据挖掘找到的性质可以帮助机器学习得到更好的假设;反过来,机器学习也可以用在数据挖掘中来寻找有用的性质
传统的数据挖掘关注于大规模数据库的有效计算
而在现实中我们很难区分机器学习与数据挖掘,因为二者是如此相像而又密不可分。
2.机器学习与人工智能
人工智能的目标是让电脑具有某种方面上的智能,比如电脑学会下棋。机器学习是实现人工智能的方法,但实现人工智能的方法不局限与机器学习。
3.机器学习与统计学
统计学的目标:使用数据来对未知的过程作出推论。机器学习中,$g$是我们要得出的推论,$f$是未知的过程,从这个角度上看,我们可以结合统计学的知识来实现机器学习。统计学为机器学习提供了很多有用的工具。
Coursera机器学习基石 第1讲:The Learning Problem的更多相关文章
- Coursera机器学习基石 第2讲:感知器
第一讲中我们学习了一个机器学习系统的完整框架,包含以下3部分:训练集.假设集.学习算法 一个机器学习系统的工作原理是:学习算法根据训练集,从假设集合H中选择一个最好的假设g,使得g与目标函数f尽可能低 ...
- Coursera 机器学习基石 第4讲 学习的可行性
这一节讲述的是机器学习的核心.根本性问题——学习的可行性.学过机器学习的我们都知道,要衡量一个机器学习算法是否具有学习能力,看的不是这个模型在已有的训练数据集上的表现如何,而是这个模型在训练数据外的数 ...
- 机器学习基石笔记:01 The Learning Problem
原文地址:https://www.jianshu.com/p/bd7cb6c78e5e 什么时候适合用机器学习算法? 存在某种规则/模式,能够使性能提升,比如准确率: 这种规则难以程序化定义,人难以给 ...
- 林轩田机器学习基石笔记4—Feasibility of Learning
上节课介绍了机器学习可以分为不同的类型.其中,监督式学习中的二元分类和回归分析是最常见的也是最重要的机器学习问题.本节课,我们将介绍机器学习的可行性,讨论问题是否可以使用机器学习来解决. 一.Lear ...
- 林轩田机器学习基石笔记3—Types of Learning
上节课我们主要介绍了解决线性分类问题的一个简单的方法:PLA.PLA能够在平面中选择一条直线将样本数据完全正确分类.而对于线性不可分的情况,可以使用Pocket Algorithm来处理.本节课将主要 ...
- 机器学习基石笔记:16 Three Learning Principles
三个理论上界: 三个线性模型: 三个关键工具: 三条学习规则: 1.奥卡姆剃刀定律 先从简单模型开始, 训练后出现欠拟合, 再尝试复杂点模型. 2.采样误差 训练.验证.测试数据尽量同分布. 3.数据 ...
- Coursera 机器学习 第5章 Neural Networks: Learning 学习笔记
5.1节 Cost Function神经网络的代价函数. 上图回顾神经网络中的一些概念: L 神经网络的总层数. sl 第l层的单元数量(不包括偏差单元). 2类分类问题:二元分类和多元分类. 上 ...
- 机器学习基石第一讲:the learning problem
博客已经迁移至Marcovaldo's blog (http://marcovaldong.github.io/) Andrew Ng的Machine Learning比較简单,已经看完.林田轩的机器 ...
- Coursera机器学习+deeplearning.ai+斯坦福CS231n
日志 20170410 Coursera机器学习 2017.11.28 update deeplearning 台大的机器学习课程:台湾大学林轩田和李宏毅机器学习课程 Coursera机器学习 Wee ...
随机推荐
- json数据发送时浏览器提示“保存”解决
数据以json形式发送的时候,部分浏览器不能直接解析,而是提示是否保存,nodejs的express应用中可以通过如下代码解决该问题: router.get('/', function (req, r ...
- Node.js学习笔记(三) --- package.json 及cnpm
一.包 Nodejs 中除了它自己提供的核心模块外,我们可以自定义模块,也可以使用第三方的模块.Nodejs 中第三方模块由包组成,可以通过包来对一组具有相互依赖关系的模块进行统一管理. 完全符合 ...
- .netcore2.0 发布CentOS7
1.一般在windows pc上使用vscode 开发好.netcore 程序如果需要发布到其他平台需要注意一些事情 首先需要明白2个概念:FDD(Framework-dependent deploy ...
- json转化的时候如何忽略某些属性字段值
一.有时候在将对象或list对象转化为json的时候,我们可能不需要所有的属性值,这就需要我们去过滤掉这些属性了 我下面说两种比较流行的json包如何来忽略某些属性值 二. 使用jaskson包 1. ...
- javaweb之jsp的九个隐含对象与基本语法
1.在页面上可以不用声明直接使用的对象称为jsp页面的隐含对象.使用<% %>编写的java代码在_jspService方法中,如下: public void _jspService(fi ...
- hdu 1565 方格取数(1) 状态压缩dp
方格取数(1) Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- Python-MRO和C3算法
一. python多继承 在前面的学习过程中,我们已经知道了python中类与类之间可以有继承关系,当出现x是一种y的时候就可以使用继承关系.即'is-a'关系,在继承关系中子类自动拥有父类中除了私有 ...
- 二十一、如何导入svg图片
svg就相当于字体,如何将生成的svg导入到自己的项目中去呢? 1.将类似下面的文件放入自己的项目中: 2.生成的svg中有一个style.css文件,将里面的内容拷贝到你的css中,然后更改上图的路 ...
- 捕获Task.WhenALl返回的Task的Exception
如果有一个任务抛出异常,则Task.WhenAll 会出错,并把这个异常放在返回的Task 中.如果多个任务抛出异常,则这些异常都会放在返回的Task 中.但是,如果这个Task 在被await 调用 ...
- Python初学者第六天 列表操作练习
6day 列表练习: 1.创建一个空列表,命名为names,往里面添加old_drilver,rain,jack,shanshan,peiqi,black_girl: names = [] names ...