虹口免费网站制作,可以个人做单的猎头网站,如何在百度做免费推广产品,网博士智能建站机器学习介绍 Hnad-crafted rules
Hand-crafted rules#xff0c;叫做人设定的规则。那假设今天要设计一个机器人#xff0c;可以帮忙打开或关掉音乐#xff0c;那做法可能是这样#xff1a;
设立一条规则#xff0c;就是写一段程序。如果输入的句子里面看到**“turn of…机器学习介绍 Hnad-crafted rules
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然后去真的对它说这种故意欺负它的话它其实是会答错的。
使用hand-crafted rules有什么样的坏处呢它的坏处就是hand-crafted rules没办法考虑到所有的可能性它非常的僵化而用hand-crafted rules创造出来的machine它永远没有办法超过它的创造者人类。 人类想不到东西就没办法写规则没有写规则机器就不知道要怎么办。所以如果一个机器它只能够按照人类所设定好的hand-crafted rules它整个行为都是被规定好的没有办法freestyle。如果是这样的话它就没有办法超越创造它的人类。
你好像看到很多chat-bot看起来非常的聪明。如果你是有一个是一个非常大的企业他给以派给成千上万的工程师用血汗的方式来建出数以万计的规则然后让他的机器看起来好像很聪明。但是对于中小企业来说这样建规则的方式反而是不利的。
要做的其实是让机器它有自己学习的能力也就我们要做的应该machine learning的方向。讲的比较拟人化一点所谓machine learning的方向就是你就写段程序然后让机器人变得了很聪明他就能够有学习的能力。接下来你就像教一个婴儿、教一个小孩一样的教他你并不是写程序让他做到这件事你是写程序让它具有学习的能力。然后接下来你就可以用像教小孩的方式告诉它。
machine learning所做的事情可以想成就是在寻找一个function要让机器具有一个能力这种能力是根据你提供给它的资料去寻找要寻找的function。 要先准备一个function set(集合)这个function里面有成千上万的function。举例来说这个function在里面,有一个f1你给它看一只猫它就告诉你输出猫看一只狗就输出狗。有一个function f2它很怪你给它看猫它说是猴子你给他看狗它说是蛇。所以要准备一个function set这个function set里面有成千上万的function。先假设手上有一个function set这个function set就叫做model(模型)。 有了这个function set接下来机器要做的事情是它有一些训练的资料这些训练资料告诉机器说一个好的function它的输入输出应该长什么样子有什么样关系。你告诉机器说呢现在在这个影像辨识的问题里面如果看到这个猴子看到这个猴子图也要输出猴子看到这个猫的图也要输出猴子猫看到这个狗的图就要输出猴子猫狗这样才是对的。只有这些训练资料拿出一个function机器就可以判断说这个function是好的还是不好的。 机器可以根据训练资料判断一个function是好的还是不好的。举例来说在这个例子里面显然 f 1 f_1 f1他比较符合training data的叙述比较符合我们的知识。所以f1看起来是比较好的。 f 2 f_2 f2看起来是一个荒谬的function。这种task叫做supervised learning
现在机器有办法决定一个function的好坏。但光能够决定一个function的好坏是不够的因为在function set里面有成千上万的function它有会无穷无尽的function所以需要一个有效率的评估算法可以从function的set里面挑出最好的function。一个一个衡量function的好坏太花时间实际上做不到。所以需要有一个好的评价算法从function set里面挑出一个最好的的function这个最好的function将它记为 f ∗ f^* f∗∗ machine learning里面非常重要的问题机器有举一反三的能力 左边这个部分叫training就是学习的过程右边这个部分叫做testing学好以后就可以拿它做应用。所以在整个machine learning framework整个过程分成了三个步骤:
第一个步骤就是找一个function第二个步骤让machine可以衡量一个function是好还是不好第三个步骤是让machine有一个自动的方法有一个好评估算法可以挑出最好的function。 机器学习其实只有三个步骤这三个步骤简化了整个process。可以类比为把大象放进冰箱。把大象塞进冰箱其实也是三个步骤把门打开象塞进去后把门关起来然后就结束了。所以说机器学习三个步骤就好像是说把大象放进冰箱也只需要三个步骤。 监督学习 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。 若要训练这种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那就可以做一个气象预报的系统 classification分类的问题。Regression和Classification的差别就是要机器输出的东西的类型是不一样。在Regression中机器输出的是一个数值在Classification里面机器输出的是类别。假设Classification问题分成两种一种叫做二分类输出的是是或否Yes or No另一类叫做多分类Multi-class在Multi-class中是让机器做一个选择题等于是给他数个选项每个选项都是一个类别让从数个类别里选择正确的类别。 训练这样的function很简单给它一大堆的Data并告诉它现在输入这封邮件应该说是垃圾邮件输入这封邮件应该说它不是垃圾邮件。足够多的这种资料去学就可以自动找出一个可以侦测垃圾邮件的function。 刚才讲的都是让machine去解的任务接下来要讲的是在解任务的过程中第一步就是要选择function set选不同的function set就是选不同的model。Model有很多种最简单的就是线性模型但会花很多时间在非线性的模型上。在非线性的模型中最耳熟能详的就是Deep learning。 在做Deep learning时它的function是特别复杂的所以它可以做特别复杂的事情。比如它可以做图像识别这个复杂的function可以描述pixel和class之间的关系。 用Deep learning的技术也可以让机器下围棋 下围棋这个task 其实就是一个分类的问题。对分类问题需要一个很复杂的function输入是一个棋盘的格子输出就是下一步应该落子的位置。知道一个棋盘上有十九乘十九的位置可以落子所以今天下围棋这件事情就可以把它想成是一个十九乘十九个类别的分类问题或者是可以把它想成是一个有十九乘十九个选项的选择题。 所以若你有了这样的棋谱之后可以告诉machine如果现在有人落子下5之五下一步就落子在天元若五之五和天元都有落子那就要落子在另外一个五之5上。然后你给它足够多的棋谱它就能学会下围棋了。 刚才讲的都是supervised learning监督学习监督学习的问题是需要大量的training data。training data告诉要找的function的input和output之间的关系。如果在监督学习下进行学习需要告诉机器function的input和output是什么。这个output往往没有办法用很自然的方式取得需要人工的力量把它标注出来这些function的output叫做label。
半监督学习 假设先想让机器鉴别猫狗的不同想做一个分类器让它告诉你图片上是猫还是狗。有少量的猫和狗的labelled data但是同时又有大量的Unlabeled data但是又没有力气去告诉机器说哪些是猫哪些是狗。在半监督学习的技术中这些没有label的data这些数据可能也是对学习有帮助之后会讲为什么这些没有label的data对学习会有帮助。 另外一个减少data用量的方向是迁移学习。
迁移学习 迁移学习的意思是假设要做猫和狗的分类问题只有少量的有label的data。但是现在有大量的data这些大量的data中可能有label也可能没有label。但是跟我们现在要考虑的问题是没有什么特别的关系的分辨的是猫和狗的不同但是这边有一大堆其他动物的图片还是动画图片。 更加进阶的就是无监督学习希望机器可以学到无师自通。
无监督学习 在reinforcement learning里面没有告诉机器正确的答案是什么机器所拥有的只有一个分数就是他做的好还是不好。若现在要用reinforcement learning方法来训练一个聊天机器人的话训练的方法会是这样就把机器发到线下让它和进来的客人对话然后对话半天以后呢最后客人勃然大怒把电话挂掉了。那机器就学到一件事情就是刚才做错了。但是它不知道哪边错了它就要回去自己想道理是一开始就不应该打招呼吗还是中间不应该在骂脏话了之类。它不知道也没有人告诉它哪里做的不好它要回去反省检讨哪一步做的不好。机器要在reinforcement learning的情况下学习机器是非常intelligence的。 reinforcement learning也是比较符合人类真正的学习的情景这是在学校里面的学习老师会告诉你答案但在真实社会中没人回告诉你正确答案。只知道做得好还是做得不好如果机器可以做到reinforcement learning那确实是比较intelligence。 Alpha Go其实是用监督学习加上reinforcement learning去学习的。先用棋谱做监督学习然后在做reinforcement learning但是reinforcement learning需要一个对手如果使用人当对手就会很让费时间所以机器的对手是另外一个机器。