前言:我是一个工作后的宝妈,很多人觉得人工智能入门很难,其实并没有那么难。所以,我希望用非常通俗的,中学生都可以看的懂的语言来写一些文章,给大家学习AI的信心。
吴恩达教授教的非常好,生动有趣,故整理出了课堂笔记。
1 机器学习的动机
机器学习是从早期的人工智能中兴起的 ,在过去的15到20年间,他认为是正在发展的计算机的新能力。事实上,他证明了计算机的很多程序你是无法直接编写出来的。例如,你想通过电脑阅读手写的字母或是数字,那么通过给计算机编程去将我写的东西作为输入并且将我的草书手稿转化成电子手稿将会非常困难。另外一个例子是你如果编写一个程序让飞机飞起来也是很困难的,所以,你需要使用一个学习型算法,让计算机自己学习。比如,学习识别你的手写体,事实上,对于手写识别,这几乎是取得良好效果的唯一方法,它使用的应用程序是很难手工编程实现的。
学习型算法已经使数据挖掘领域的研究取得了重要的进展。举个例子,随着信息技术和计算机技术的发展越来越多的医院会保存医疗记录,例如:病人的种类,病人遇到的问题,病人病情的预测,病人的治疗结果等。利用所有的这些医疗数据,在医院实现数字化之后也许有15年的数据,使用学习型算法对它们进行分析, 我们就可以将纯粹的医疗数据转化成有组织的医疗知识,通过它们我们可以检测到过去这段时间的医疗行为的趋势,甚至基于这些医疗知识,我们可以改变医疗。在过去的十五到二十年,我们将学习算法应用到医院建立的病历记录中,并且做成了电子格式。
2 什么是机器学习
Arthur Samuel(1959):在不直接针对问题进行编程的情况下,赋予计算机学习能力的一个领域。
Arthur Samuel在机器学习的领域做了一些很酷的事情 ,比如说他写过一个可以和自己下棋的西洋棋程序。由于计算机的运行速度比较快,所以这个程序和自己下了成千上万盘棋后,程序顿悟了,它意识到什么的局势可以取得胜利,怎么样的局势导致失败,比如它明白了“如果我的棋子占据了这些地方,我赢的概率就大”。后来奇迹出现了,程序的棋艺甚至超过了Arthur Samuel本人,所以说,计算机不只可以做人类明确让它做的事情,它也可以学习技能。
Tom Mitchell(1998):对于计算机程序来说,给它一个任务T和性能测量用户P,如果在经验E的影响下,P对T的测量结果得到了改进,那么就说该程序从E中学习。
在刚才的下棋程序的例子中,经验E对应着程序不断和自己下棋的经历,任务T是下棋,性能测试P可以是它在和人类棋手对弈的胜率,通过这个定义,我们说下棋程序在学习怎么下棋。
监督学习
监督学习就是说我们给出一组标准答案,或者也称为训练数据,之后我们希望算法去学习标准输入和标准答案之间的联系,以便我们对其它的输入,也给出更标准的答案。
我们拿房价为例,下面的几个点是现成的房屋面积和售价,分别对应在坐标轴上,通过这几个点可以拟合成一条直线(红色),通过这条直接可以推测出任意房屋面积的售价
同样,还可以用曲线(绿色)来拟合
同样的方法还可以通过前面十几年的房价来预测未来十年内的房价,在这里给大家出个小题目,请根据你所在的城市前面十年的房价来预测一下十年后你所在城市的房价。如果你预测出来了,恭喜你,你完成了一个机器学习算法。
上面的问题也称为“回归问题”,回归这个词在某种程度上暗示了我们需要预测的变量是连续的。
分类问题
在分类问题中,你们要处理的变量是离散的而不是连续的。我们以一组很通用的关于乳腺癌肿瘤的数据为例,你需要让一个算法学会预测一个肿瘤是否是恶性的,我们收集了很多肿瘤的数据,但为了简单起见,我们只考虑肿瘤的大小尺寸来辨别是良性(0)还是恶性(1)。
如图,这些数据都是离散值
但实际上,我们不只从尺寸上来辨别良性恶性,还有别的维度来考虑。比如,我们加上年龄因素,一个学习型算法可以学习一条线,从中间划开,区分良性和恶性。如图,直线只能在二维中分类,但实际中,还需要考虑更多的因素,比如肿块的厚度,细胞大小的一致性等等。
如果是无限维的话,可以用支持向量机把数据映射到无限维空间中。
3 无监督学习
就是告诉你一组数据,不给出你关于数据的任何标准答案,然后让你从这些数据中学习到一些有趣的结构。这就是无监督学习。
例如,一个算法会去寻找这样的结构,然后将数据分成两类,这就是聚类问题。
聚类问题可以解决很多问题,比如说下图,就是尝试按照基因在试验中体验出来的形状对单独的基因进行分组
用聚类问题也可以处理图像,事实证明,对于一张照片,使用特定的无监督算法,它可以学习对这些像素进行聚类,比如下面的图片就是聚类处理。下面两张图是对同一种聚类的等效表达。非监督算法对于计算机视觉非常有用。
还有一个很酷的例子是用聚类算法还可以用一张图片做3D重建
下图就是用一张平面图做成了3D世界。
无监督学习和聚类算法可以被用在很多不同的问题上,比如:计算机集群组织、社会网络分析、市场划分等,假如你是一个市场营销人员,你可能需要将市场划分为由不同的消费人群组成的市场,这些算法还可以用来进行天文数据的分析,用来告诉我们星系的组成情况,
还有一个不得不提的很酷的例子,称之为鸡尾酒会问题,假设你参加了一个有很多人同时聊天的酒会,我们的问题是,在这种情况下,你如何分辨出你心仪女孩的说话声呢?我们可以用无监督算法来学习每个人声音的结构,然后将你心仪女孩的声音提取出来。
这个只需要一行MATLAB代码就可以实现
4 强化学习
它可以被用在你不需要进行一次决策的情形中,例如:在利用监督学习进行癌症预测的例子中,对于一个病人,你要预测他的肿瘤是否为恶性。你的预测,决定了病人的生死,在强化学习问题中,你通常会在一个时间内,做出一系列的决策。
我们以一个直升机为例,我们可以利用强化学习算法让直升机飞起来。如果做出来了一个坏的飞行决策,飞机就不飞,如果做出了好的飞机决策,飞机就飞起来。
强化学习的背后有一个称为回报函数的概念。回报函数可以这样理解,当你训练一只狗狗时,如果狗狗按照你的指令做出了正确的动作,你就说,好狗狗!如果狗狗没有按照你的指令执行,你就狠狠的说,坏狗狗!同样在训练直升机时,当飞机执行了正确的决策飞起来,你就说,好飞机!
第二节待续
我的简介插个小广告,欢迎想学Pytorch 的加入我们学园
我的ML启蒙男神吴恩达ML公开课笔记(一)中学生也能看懂
网友评论