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 ...
随机推荐
- 学会Markdown,写博客不愁
前言 Markdown是一种轻量级的标记语言,有John Gruber以及Aaron Hillel Swartz一起编写.Aaron Hillel Swartz是一个极富传奇的黑客,有兴趣可以看看他的 ...
- JavaScript获取当前站点的域名和端口号
获取域名(第一种方法): document.hostname 获取域名(第二种方法): document.domin 获取端口号: location.port 获取主机+端口号: location.h ...
- javaweb之jsp的属性范围
1.什么是jsp的属性范围? 所谓的属性范围就是一个属性设置之后,可以经过多少个其他页面后仍然可以保存并继续使用.jsp提供了四种属性范围,如下: 当前页,对应的jsp对象为pageContext,属 ...
- Js窗口嵌套
<script type="text/javascript"> if (window.parent.window != window) { window.top.loc ...
- MVC4.0 oracle 找不到请求的 .Net Framework Data Provider。可能没有安装.
oracle 11G, MVC4.0 项目,因刚重装系统,重新安装的VS2010, ORACLE 11G 运行项目,后报错 找不到请求的 .Net Framework Data Provider.可能 ...
- ASP.NET 后台验证 TextBox 值是否为数字
记得最开始 using System.Text.RegularExpressions; Regex m_regex = new System.Text.RegularExpressions.Regex ...
- 【Immutable】拷贝与JSON.parse(JSON.stringify()),深度比较相等与underscore.isEqual(),性能比较
样本:1MB的JSON文件,引入后生成500份的一个数组: 结果如下: 拷贝性能: JSON.parse(JSON.stringify()) 的方法:2523.55517578125ms immuta ...
- Python基础-接口与归一化设计、抽象类、继承顺序、子类调用父类,多态与多态性
一.接口与归一化设计 Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能). 由 ...
- Apache服务器运维笔记(2)----使用<IfDefine>容器实现不同的配置
还有一种方法用来实现不同配置的Apache服务器启动,就是在一个配置文件中使用<IfDefine name> ... </IfDefine> 容器来定义,在<IfDefi ...
- PeekMessage&GetMessage
原文:http://www.cnblogs.com/faceang/archive/2010/05/25/1743757.html PeekMessage与GetMessage的对比相同点:PeekM ...