李宏毅机器学习笔记01-机器学习介绍

李宏毅老师的机器学习视频是机器学习领域经典的中文视频之一,也被称为中文世界中最好的机器学习视频。李老师以幽默风趣的上课风格让很多晦涩难懂的机器学习理论变得轻松易懂,并且老师会通过很多有趣的例子结合机器学习理论在课堂上展现出来,并且逐步推导深奥的理论知识。

为什么要学习机器学习

人工智慧是我们想要达成的目标,而机器学习是想要达成目标的手段,希望机器通过学习方式,他跟人一样聪明。而深度学习和机器学习有什么关系呢?深度学习就是机器学习的其中一种方法。

假设有一天你想要做一个chat-bot,如果你不是用机器学习的方式,而是给他天生的本能的话,那像是什么样子呢?你可能就会在这个chat-bot里面,在这个聊天机器人里面的设定一些规则,这些规则我们通常称hand-crafted rules,叫做人设定的规则。那假设你今天要设计一个机器人,他可以帮你打开或关掉音乐,那你的做法可能是这样:设立一条规则,就是写程序。如果输入的句子里面看到“turn off”这个词汇,那chat-bot要做的事情就是把音乐关掉。这个时候,你之后对chat-bot说,Please turn off the music 或can you turn off the music, Smart? 它就会帮你把音乐关掉。看起来好像很聪明。别人就会觉得果然这就是人工智慧。但是如果你今天想要欺负chat-bot的话,你就可以说please don‘t turn off the music,但是他还是会把音乐关掉。这是个真实的例子,你可以看看你身边有没有这种类似的chat-bot,然后你去真的对他说这种故意欺负它的话,它其实是会答错的。

我们要做的其实是让机器他有自己学习的能力,也就我们要做的应该machine learning的方向。讲的比较拟人化一点,所谓machine learning的方向,就是你就写段程序,然后让机器人变得了很聪明,他就能够有学习的能力。接下来,你就像教一个婴儿、教一个小孩一样的教他,你并不是写程序让他做到这件事,你是写程序让它具有学习的能力。然后接下来,你就可以用像教小孩的方式告诉它。假设你要叫他学会做语音辨识,你就告诉它这段声音是“Hi”,这段声音就是“How are you”,这段声音是“Good bye”。希望接下来它就学会了,你给它一个新的声音,它就可以帮你产生语音辨识的结果。
李宏毅机器学习笔记01-机器学习介绍
如果你希望他学会怎么做影像辨识,你可能不太需要改太多的程序。因为他本身就有这种学习的能力,你只是需要交换下告诉它:看到这张图片,你要说这是猴子;看到这张图片,然后说是猫;看到这张图片,可以说是狗。它具有影像辨识的能力,接下来看到它之前没有看过的猫,希望它可以认识。
李宏毅机器学习笔记01-机器学习介绍
如果讲的更务实一点的话,machine learning所做的事情,你可以想成就是在寻找一个function,要让机器具有一个能力,这种能力是根据你提供给他的资料,它去寻找出我们要寻找的function。还有很多关键问题都可以想成是我们就是需要一个function。
李宏毅机器学习笔记01-机器学习介绍
机器学习其实只有三个步骤,这三个步骤简化了整个process。可以类比为:把大象放进冰箱。我们把大象塞进冰箱,其实也是三个步骤:把门打开;象塞进去;后把门关起来,然后就结束了。所以说,机器学习三个步骤,就好像是说把大象放进冰箱,也只需要三个步骤。
李宏毅机器学习笔记01-机器学习介绍

机器学习相关技术

李宏毅机器学习笔记01-机器学习介绍

如图为这学期的Learning Map,看起来是有点复杂的,我们一块一块来解释,接下里我们将从图的左上角来进行学习。

监督学习

李宏毅机器学习笔记01-机器学习介绍

Regression是一种machine learning的task,当我们说:我们要做regression时的意思是,machine找到的function,它的输出是一个scalar,这个叫做regression。举例来说,在作业一里面,我们会要你做PM2.5的预测(比如说预测明天上午的PM2.5) ,也就是说你要找一个function,这个function的输出是未来某一个时间PM2.5的一个数值,这个是一个regression的问题。

机器要判断function明天上午的PM2.5输出,你要提供给它一些资讯,它才能够猜出明天上午的PM2.5。你给他资讯可能是今天上的PM2.5、昨天上午的PM2.5等等。这是一个function,它吃我们给它过去PM2.5的资料,它输出的是预测未来的PM2.5。

李宏毅机器学习笔记01-机器学习介绍

若你要训练这种machine,如同我们在Framework中讲的,你要准备一些训练资料,什么样的训练资料?你就告诉它是今天我们根据过去从*的open data上搜集下来的资料。九月一号上午的PM2.5是63,九月二号上午的PM2.5是65,九月三号上午的PM2.5是100。所以一个好的function输入九月一号、九月二号的PM2.5,它应该输出九月三号的PM2.5;若给function九月十二号的PM2.5、九月十三号的PM2.5,它应该输出九月十四号的PM2.5。若收集更多的data,那你就可以做一个气象预报的系统。
李宏毅机器学习笔记01-机器学习介绍

接下来讲的是Classification(分类)的问题。Regression和Classification的差别就是我们要机器输出的东西的类型是不一样。在Regression中机器输出的是一个数值,在Classification里面机器输出的是类别。假设Classification问题分成两种,一种叫做二分类输出的是是或否(Yes or No);另一类叫做多分类(Multi-class),在Multi-class中是让机器做一个选择题,等于是给他数个选项,每个选项都是一个类别,让他从数个类别里选择正确的类别。

李宏毅机器学习笔记01-机器学习介绍

举例来说,二分类可以鉴别垃圾邮件,将其放到垃圾箱。那怎么做到这件事呢?其实就是需要一个function,它的输入是一个邮件,输出为邮件是否为垃圾邮件。

李宏毅机器学习笔记01-机器学习介绍

你要训练这样的function很简单,给他一大堆的Data并告诉它,现在输入这封邮件,你应该说是垃圾邮件,输入这封邮件,应该说它不是垃圾邮件。你给他够多的这种资料去学,它就可以自动找出一个可以侦测垃圾邮件的function。

李宏毅机器学习笔记01-机器学习介绍

多分类的举一个文章分类的例子,现在网络上有非常非非常多的新闻,也许没有人会把所有的新闻看完,但希望机器自动帮一把新闻做分类。怎么做呢?你需要的是一个function,它的输入是一则新闻,输出是新闻属于哪个类别,你要做的事情就是解这个选择题。

若要训练这种机器就要准备很多训练资料(Training Data),然后给它新的文章,新闻它能给你正确的结果。

李宏毅机器学习笔记01-机器学习介绍

刚才讲的都是让machine去解的任务,接下来要讲的是在解任务的过程中第一步就是要选择function set,选不同的function set就是选不同的model。Model有很多种,最简单的就是线性模型,但我们会花很多时间在非线性的模型上。在非线性的模型中最耳熟能详的就是Deep learning。

在做Deep learning时,它的function是特别复杂的,所以它可以做特别复杂的事情。比如它可以做影像辨识,这个复杂的function可以描述pixel和class之间的关系。

半监督学习

李宏毅机器学习笔记01-机器学习介绍
刚才我们讲的都是supervised learning(监督学习),监督学习的问题是我们需要大量的training data。training data告诉我们要找的function的input和output之间的关系。如果我们在监督学习下进行学习,我们需要告诉机器function的input和output是什么。这个output往往没有办法用很自然的方式取得,需要人工的力量把它标注出来,这些function的output叫做label。

那有没有办法减少label需要的量呢?就是半监督学习。
李宏毅机器学习笔记01-机器学习介绍
迁移学习的意思是:假设我们要做猫和狗的分类问题,我们也一样,只有少量的有label的data。但是我们现在有大量的data,这些大量的data中可能有label也可能没有label。但是他跟我们现在要考虑的问题是没有什么特别的关系的,我们要分辨的是猫和狗的不同,但是这边有一大堆其他动物的图片还是动画图片(凉宫春日,御坂美琴)你有这一大堆不相干的图片,它到底可以带来什么帮助。这个就是迁移学习要讲的问题。

无监督学习

更加进阶的就是无监督学习,我们希望机器可以学到无师自通。李宏毅机器学习笔记01-机器学习介绍

上一篇:JDK、JRE、JVM


下一篇:Machine Learning in Action 读书笔记---第3章 决策树