版权声明:小博主水平有限,希望大家多多指导。
本文仅代表作者本人观点,转载请联系知乎原作者——BG大龍。


目录

1 什么是机器学习?

2 机器学习的3个步骤

3 李宏毅老师的机器学习课程

4 按“模型的不同学习理论”分,机器学习的模型可以分为有监督学习,半监督学习,无监督学习,迁移学习和强化学习。

——4.1【解读】 有监督学习(Supervised Learning)

————4.1.1 监督学习Supervised Learning-> 回归Regression

————4.1.2 监督学习Supervised Learning-> 分类Classification

————4.1.3 分类Classification-> 线性模型Linear Model 与 非线性模型Non-Linear Model

————4.1.4 结构化学习Structuerd Learning

——4.2【解读】 无监督学习(Un-supervised Learning)-(聚类方法)

——4.3【解读】半监督学习(Semi-supervised Learning)

——4.4【解读】迁移学习Transfer Learning

——4.5【解读】强化学习(Reinforcement Learning)


1 什么是机器学习?

【01】 这是来自百度百科的介绍。

机器学习(多领域交叉学科)_百度百科​baike.baidu.com

传统上,如果想让计算机工作,给它一串指令,然后计算机遵照这个指令一步步执行下去。有因有果,非常明确。但这样的方式在机器学习中行不通,机器学习根本不接受你输入的指令。

相反,它接受你输入的数据!

也就是说,机器学习是一种让计算机“利用数据而非指令”来进行各种工作的方法。

不可思议,但又非常可行。

【02】举例来说明一个机器学习的简单又经典的Application

1 我有一栋100平方房子需要售卖,我应该给它标上多大的价格?价格是100万,120万,还是140万?

很显然,我希望获得房价与面积的某种规律。

该如何获得这个规律?→使用报纸上的房价平均数据?参考别人相似面积房屋出售?无论哪种,似乎都并不是“最优解”。

我希望获得一个合理的,并且能够最大程度的反映“面积与房价关系”的规律。

2 对规律的寻找

于是我调查了周边与我房型类似的一些房子,获得一组数据。

这组数据中包含了大大小小房子的面积与价格。拟合出一条直线,让它“穿过”所有的点,并且与各个点的距离尽可能的小。——【数据处理】

通过这条直线,我获得了一个能够最佳反映房价与面积规律的规律。 这条直线用函数来表达: 房价 = 面积 * a + b ——【模型】

上述中的a、b都是直线的参数,这些参数的值我们可以调整。 ——【参数调优】

假设a = 0.75,b = 50,则房价 = 100 * 0.75 + 50 = 125万。

这个结果与我前面所列的100万,120万,140万都不一样。由于这条直线综合考虑了大部分的情况,因此从“统计”意义上来说,这是一个最合理的预测。——【预测结果】

3 回顾

例子中拟合直线的过程,可以对机器学习过程做一个完整的回顾。

1,我们需要在计算机中“存储”历史的数据。

2,我们将这些数据通过机器学习算法进行处理,这个过程在机器学习中叫做“训练”。

3,处理的结果可以被我们用来对新的数据进行预测,这个结果一般称之为“模型”。

4,对新数据的预测过程在机器学习中叫做“预测”。

4 总结

【类比人类】

“人类通过(思考)归纳出经验的过程”转化为“计算机通过(数据的处理)训练出模型的过程”,解决更复杂、运算量更大的问题。

【总结】

机器学习方法=计算机利用历史数据,训练某种模型,利用模型预测新数据的一种方法


2 机器学习的3个步骤

通常学习一个好的函数,分为以下三步:

  1. 选择一个合适的模型Model。这通常需要依据实际问题而定,针对不同的问题和任务需要选取恰当的模型,模型就是一组函数的集合。
  2. 判断一个函数的好坏Goodness of function。这需要确定一个衡量标准,也就是我们通常说的损失函数(Loss Function)。损失函数的确定也需要依据具体问题而定,如回归问题一般采用欧式距离,分类问题一般采用交叉熵代价函数。
  3. 找出“最好”的函数function。如何从众多函数中最快的找出“最好”的那一个,这一步是最大的难点,做到又快又准往往不是一件容易的事情。常用的方法有梯度下降算法,最小二乘法等和其他一些技巧(tricks)。

PS:学习得到“最好”的函数后,需要在新样本上进行测试,只有在新样本上表现很好,才算是一个“好”的函数。

也就是,【训练集】→【测试集】


3 李弘毅老师的机器学习课程

【01】2017-秋季机器学习-课程链接

Hung-yi Lee​speech.ee.ntu.edu.tw

这是李宏毅老师的个人网站主页,里面有PDF文件和Video课程。

【02】2017-秋季机器学习-【课程作业】链接

maplezzz/NTU_ML2017_Hung-yi-Lee_HW​github.com

【03】课程框架

机器学习是一个庞大的家族体系,涉及众多算法,任务和学习理论。

蓝色代表不同的学习理论,红色代表任务,绿色代表方法。

根据李宏毅老师的框架,我自己制作了思维导图


4 按“模型的不同学习理论”分——机器学习的模型可以分为有监督学习,半监督学习,无监督学习,迁移学习和强化学习。

【01】蓝色部分代表scenario,意思是你现在的 training data是什么样的类型

#训练样本带有标签时,是有监督学习;

#训练样本部分有标签,部分无标签时是半监督学习;

#训练样本全部无标签时,是无监督学习;

#迁移学习,就是就是把已经训练好的模型参数,迁移到新的模型上以帮助新模型训练。

#强化学习是一个学习最优策略(policy),可以让本体(agent)在特定环境(environment)中,根据当前状态(state),做出行动(action),从而获得最大回报(reward)。

强化学习和有监督学习最大的不同是,每次的决定没有对与错,而是希望获得最多的累计奖励。

【02】 在有监督学习中,按任务类型(红色)分,机器学习模型可以分为回归模型、分类模型和结构化学习模型。

#回归模型又叫预测模型,输出是一个不能枚举的数值;

#分类模型又分为二分类模型和多分类模型,常见的二分类问题有垃圾邮件过滤,常见的多分类问题有文档自动归类;

#结构化学习模型的输出不再是一个固定长度的值,如图片语义分析,输出是图片的文字描述

===================这是一条有“灵魂”的分割线=================

4.1【解读】 有监督学习(Supervised Learning)

所谓监督学习,利用一组“已知类别的样本”去调整分类器的参数,使其达到能区别新样本类别的效果。

正如下图中给出了好多男生女生的特征,我们指示出,哪些男生哪些是女生,然后让计算机进行学习,计算机要通过学习,才能具有识别各种事物和现象的能力。
用来进行学习的材料,就是【与被识别对象】属于同类的有限数量样本,在本例子中指的是那些选择的男生女生。
除此之外,监督学习中在给予计算机学习样本的同时,还告诉计算各个样本所属的具体类别。

  • 训练集

当再次给出一个特征图片的时候,就可以通过预测模型进行判断。

如下图判断【李现】,输出是 小哥哥。

  • 测试集

用最通俗的话说,我们先来定义所谓的【对 / 错】,从而建立一个标准。

监督学习就是标明一些数据是对的,另一些数据是错的,然后让程序预测新的数据是对的还是错的。

所以说,有监督学习,必须是有标签的。而这个标签,就是“某种标准”。

4.1.1 监督学习Supervised Learning-> 回归Regression

举个例子: 预测PM2.5,进行天气预报
核心思想就是:连续函数下进行预测。

4.1.2 监督学习Supervised Learning-> 分类Classification

分类问题有两种情景。
二分类Binary Classification 输出是或否,多分类Multi-class Classification输出多个类型。

举个例子:
Binary Classification:
Spam filtering(垃圾邮件过滤),判断是垃圾邮件或不是垃圾邮件。
Multi-classification: 
Document Classification(文件分类),将文件分为政治、经济、体育等多个大类。

4.1.3 分类Classification-> 线性模型Linear Model 与 非线性模型Non-Linear Model

Linear Model : 能做的事有限,一些简单的模型可以用它来做。
但遇到复杂问题就力不从心。但作用不可忽视,线性模型是非线性模型的基础,很多非线性模型都是在线性模型的基础上变换而来的。

Non-linear Model : 非线性模型=传统模型(SVM,KNN,决策树等)+深度学习模型

  • 例1,深度学习的application
  • 分类案例-图片识别
  • Classification-Image Recognition:输入一个图片,通过一个很复杂的卷积神经网络(CNN)的模型,判断是猫是狗还是猴子,每个可能的物种是class。

  • 例2,深度学习的application
  • 分类案例-阿法狗
  • Classification-Playing Go:输入棋谱,让Playing Go学习分析棋盘上的局势,判断下一个落子的位置,每一个可能的落子位置就是一个class。

4.1.4 结构化学习Structuerd Learning

在实际运用中,常常会遇到Beyond Classification的情况。
比如【语音识别】,【人脸识别】,【语言翻译】等,是结构化输出。

此类问题,常配合强化学习Reinforcement Learning 解决。

===================这是一条有“灵魂”的分割线=================

4.2【解读】 无监督学习(Un-supervised Learning)-(聚类)

无监督学习常常被用于数据挖掘,用于在大量无标签数据中发现些什么。
它的训练数据是无标签的,训练目标是能对【观察值】进行分类或者区分。
无监督主要有三种:聚类、离散点检测和降维。我们主要讲聚类。

  • 聚类就是将观察值聚成一个一个的组,每一个组都含有一个或者几个特征。
  • 可以想象,恰当地提取特征是无监督最为关键的环节。

例如,在猫的识别中,我们来尝试提取猫的特征:皮毛、四肢、耳朵、眼睛、胡须、牙齿、舌头等等。通过对特征相同的动物的聚类,可以将猫或者猫科动物聚成一类。
但是此时,我们不知道这群毛茸茸的东西是什么,我们只知道,这团东西属于一类,兔子不在这个类(耳朵不符合),鸟也不在这个类(有翅膀)。

值得注意:聚类中,特征有效性直接决定着算法有效性。如果我们拿体重来聚类,而忽略体态特征,恐怕就很难区分出兔子和猫了。

简单地说,无监督学习,能在不给任何额外提示的情况下,让机器自动去判断,哪些数据比较有共同特征,或者说哪些数据应该归成一类。

例1: 让机器学会阅读。希望机器自己在网络上爬去很多文章,自己理解其中的意思,进而取得人类的一些理解,掌握阅读的技巧,这就是无监督学习要做的。

我们知道,做machine Learning就是要找一个function。在“学会阅读”这个系统里,我们给系统input一个“apple”词汇,然后让机器看懂。
而在Unsupervised Learning 中没有人告诉机器每个词汇表示什么意思,只有大量text喂给机器。

例2:要让机器学会自主绘画。

我们只给机器呈现显示世界中的景象并不做标识,机器要从中提炼绘画风格与内容,学会通过绘画表达自己。

===================这是一条有“灵魂”的分割线=================

4.3【解读】半监督学习(Semi-supervised Learning)

半监督学习,是模式识别和机器学习领域研究的重点问题,是监督学习与无监督学习相结合的一种学习方法。
半监督学习使用大量的未标记数据,以及同时使用标记数据,来进行模式识别工作。

事实上,无标记样本虽未包含标记信息,但它们与有标记样本一样都是从总体中独立同分布采样得到,因此它们所包含的数据分布信息对学习器的训练大有裨益。

如何让学习过程不依赖外界的咨询交互,自动利用未标记样本所包含的分布信息的方法便是半监督学习(semi-supervised learning)

通过下图来进行举例。
训练集同时包含有标记样本数据和未标记样本数据。
当新样本进来的时候,就会对它的特征进行判断,也就是:

是否是某类进行判断,是否需要归为相同的类。

例如:一个辨识猫与狗的系统。
手上有一部分Labelled data(已经标记好的猫狗图片),和一部分Unlabeled data(未做过标记的猫狗图片) 
那么Semi-supervised Learning做的就是利用Unlabeled data优化function
也常用于数据不足时进行学习

===================这是一条有“灵魂”的分割线=================

4.4【解读】迁移学习Transfer Learning

迁移学习是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。
学习迁移是指一种学习对另一种学习的影响,或习得的经验对完成其他活动的影响

例如:还是建立辨识猫与狗的系统。
手上有一部分Labelled data(已经标记好的猫狗图片),和另一部分与猫狗没有关系的图片(比如狮子老虎,标未标记都可),那么Transfer Learning就是利用这些data优化function

PS:如果想深入了解【迁移学习】,我觉得这个链接不错的一个介绍。

迁移学习简介 - 夜尽天明00 - 博客园​www.cnblogs.com

===================这是一条有“灵魂”的分割线=================

4.5【解读】强化学习(Reinforcement Learning)

在实际运用中,以上方法并不能解决全部问题,常常会遇到Beyond Classification的情况,比如语音识别,人脸识别,语言翻译等,那么就要通过强化学习来解决问题。

1 强化学习的核心是这样一个概念,即最佳的行为或行动是由积极的回报来强化的。
机器使用强化学习算法,通过【以环境的反馈为基础】来确定理想行为。 强化学习算法可以在必要时随时间保持适应环境,以便长期获得最大的回报。
例如:行走的机器人
一个通过强化学习来学习行走的机器人,将通过尝试不同的方法,获得有关这些方式成功的反馈,然后进行自我的调整直到达到行走的目标。大步伐会让机器人摔倒,通过调整步距来判断这是否是保持直立的原因,通过不同的变化持续学习,最终能够行走。
以上说明,【奖励】是保持直立,【惩罚】就是摔倒,机器人基于对其动作的反馈信息进而优化并强化。

强化学习Reinforcement VS 监督学习Supervised

强化学习与监督学习有什么区别呢?

例1:语音识别。
Supervised 就像给了机器一个点读机,机器听到一句话时可以看到其含义,每一句话都有标签,就像有一个手把手教他的老师。
Reinforcement 就像跟老朋友对话,他反复讲来回讲很多句话你却无言以对,直到老朋友愤然离去。
机器唯一可以知道的就是他做的好还是不好=【根据评价去学习】,除此之外没有任何information。
而这,更像人类现实生活中的学习过程,必须自己知道哪里做得好做得不够好,怎么修正。

例2:下围棋。
supervised: 给机器一堆棋谱,告诉机器,情况a则落子在“5-5”处,情况b则落子在“3-3”处,.......
Reinforcement : 让机器自己下棋,下过几百手之后,机器只知道自己赢了还是输了,下的好还是不好,机器必须自己想办法做提高

【ML入门】李宏毅机器学习笔记01-Learning Map的更多相关文章

  1. 李宏毅机器学习笔记4:Brief Introduction of Deep Learning、Backpropagation(后向传播算法)

    李宏毅老师的机器学习课程和吴恩达老师的机器学习课程都是都是ML和DL非常好的入门资料,在YouTube.网易云课堂.B站都能观看到相应的课程视频,接下来这一系列的博客我都将记录老师上课的笔记以及自己对 ...

  2. 李宏毅机器学习笔记5:CNN卷积神经网络

    李宏毅老师的机器学习课程和吴恩达老师的机器学习课程都是都是ML和DL非常好的入门资料,在YouTube.网易云课堂.B站都能观看到相应的课程视频,接下来这一系列的博客我都将记录老师上课的笔记以及自己对 ...

  3. 李宏毅机器学习笔记6:Why deep、Semi-supervised

    李宏毅老师的机器学习课程和吴恩达老师的机器学习课程都是都是ML和DL非常好的入门资料,在YouTube.网易云课堂.B站都能观看到相应的课程视频,接下来这一系列的博客我都将记录老师上课的笔记以及自己对 ...

  4. 李宏毅机器学习笔记2:Gradient Descent(附带详细的原理推导过程)

    李宏毅老师的机器学习课程和吴恩达老师的机器学习课程都是都是ML和DL非常好的入门资料,在YouTube.网易云课堂.B站都能观看到相应的课程视频,接下来这一系列的博客我都将记录老师上课的笔记以及自己对 ...

  5. 李宏毅机器学习笔记1:Regression、Error

    李宏毅老师的机器学习课程和吴恩达老师的机器学习课程都是都是ML和DL非常好的入门资料,在YouTube.网易云课堂.B站都能观看到相应的课程视频,接下来这一系列的博客我都将记录老师上课的笔记以及自己对 ...

  6. 李宏毅机器学习笔记3:Classification、Logistic Regression

    李宏毅老师的机器学习课程和吴恩达老师的机器学习课程都是都是ML和DL非常好的入门资料,在YouTube.网易云课堂.B站都能观看到相应的课程视频,接下来这一系列的博客我都将记录老师上课的笔记以及自己对 ...

  7. spark机器学习笔记01

     1)外部数据源 val distFile1 = sc.textFile("data.txt") //本地当前目录下文件 val distFile2 =sc.textFile(& ...

  8. 李宏毅机器学习笔记——新手感悟——PM2.5作业

    python也不会,计算机也不会,啥都不会,只带了个脑子考了计算机研究生.研究生选了人工智能方向.看来注定是漫长的学习之旅. PM2.5作业,我是一个字都看不懂.所以我采用了直接看答案的方案.把答案看 ...

  9. Redis 笔记 01:入门篇

    Redis 笔记 01:入门篇 ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...

随机推荐

  1. 开启Qt Lite Project

    发布: http://blog.qt.io/blog/2017/01/23/qt-5-8-released/ 说法一:Qt Lite” is not a tool, but a concept tha ...

  2. foruok安晓辉的《程序员,你好哇》,都很不错

    http://blog.csdn.net/foruok 买书: http://item.jd.com/11904166.html

  3. iOS密码框的实现方式

    说一下密码加密的实现方式   效果图:           实现方式:   主要说一下密码框的实现,这个密码框中间的四个数字其实是4个 UITextField ,然后通过键盘删除键 和TextFile ...

  4. QTcpSocket 对连接服务器中断的不同情况进行判定

    http://blog.csdn.net/goforwardtostep/article/details/52300335

  5. /etc/vsftpd/vsftpd.conf

    # Example config file /etc/vsftpd/vsftpd.conf## The default compiled in settings are fairly paranoid ...

  6. 使用Arcgis Api for Javascript 调用 本地Portal发布的WebMap

    1.环境搭建 安装Arcgis Portal 10.4,Server 10.4,DataStore ,WebAdaptor for IIS,搭建arcgis api for javascript 4. ...

  7. WebP 大战 JPEG,谁才是真正的王者?

    目前在互联网上,图片流量仍占据较大的一部分.因此,在保证图片质量不变的情况下,节省流量带宽是大家一直需要去解决的问题.传统的图片格式,如 JPEG,PNG,GIF 等格式图片已经没有太多的优化空间.因 ...

  8. 解决npm install卡住不动的小尴尬

    npm install卡顿问题记录 遇到的问题 npm install -g @angular/cli 安装angular cli工具时,发现进度条一直卡住不动,相信很多朋友也遇到过.原因应该是国内的 ...

  9. JS工具整理

    1.获取今日日期:摘抄地址:https://www.cnblogs.com/carekee/articles/1678041.html getTodayFmt('yyyy-MM-dd') getTod ...

  10. 【commons-lang3工具】JAVA脱敏工具

    前言:commons-langbao中有很多方便的工具,无需我们自己去实现,能够节省很多开发时的问题: 1.工具包,引入依赖,jDK8对应的版本如下: <!-- https://mvnrepos ...