机器学习清华大学

2022-07-19

第一篇:机器学习清华大学

机器学习报告

机器学习总结报告

刘皓冰

大部分人错误地以为机器学习是计算机像人一样去学习。事实上,计算机是死的,怎么可能像人类一样“学习”呢,机器学习依靠的是数学,更确切地说是靠统计。

如果我们让计算机工作,是给它一串指令,然后计算机会遵照这个指令一步步执行下去,有因有果,非常明确。但这种方式在机器学习中是行不通的。机器学习是不会接受你输入的指令的,它接受的是你输入的数据。也就是说,机器学习是一种让计算机利用数据而不是指令来进行各种工作的方法。这听起来非常不可思议,但结果上却是非常可行的。“统计”思想将在你学习“机器学习”相关理念时无时无刻不伴随,相关而不是因果的概念将是支撑机器学习能够工作的核心概念。

依据数据所做的判断跟机器学习的思想根本上是一致的。机器学习方法是计算机利用已有的数据(输入),得出了某种模型,并利用此模型预测未来(输出)的一种方法。从数据中学得模型的过程称为“学习”(learning)或“训练”(training),这个过程通过执行某个学习算法来完成。训练过程中使用的数据成为“训练数据”(training data),其中每个样本称为一个“训练样本”(training sample),训练样本组成的集合称为“训练集“(training set)。学得模型对应了关于数据的某种潜在的规律,因此亦称”假设“(hypothesis);这种潜在规律自身,则称为”真相“或”真实“(ground-truth),学习过程就是为了找出或逼近真相。模型有时也被称为”学习器“(learner),可看作学习算法在给定数据和参数空间上的实例化。

若欲预测的是离散值则此类学习任务被称为“分类”;若欲预测的是连续值则此类学习任务称为“回归”;对只涉及两个类别的“二分类”任务,通常称其中一个类为“正类”,另一个类为“反类”;涉及多个类别时,则称为“多分类”任务。

模型是否准确依赖与数据。如果我的数据越多,我的模型就越能够考虑到越多的情况,由此对于新情况的预测效果可能就越好。这是机器学习界“数据为王”思想的一个体现。一般来说(不是绝对),数据越多,最后机器学习生成的模型预测的效果越好。

机器学习里面有非常多的经典算法,每种算法都能形成一个模型。下面在简要介绍一下机器学习中的经典代表方法。重点介绍的是这些方法内涵的思想。

1、回归算法 在大部分机器学习课程中,回归算法都是介绍的第一个算法。原因有两个:一.回归算法比较简单,介绍它可以让人平滑地从统计学迁移到机器学习中。二.回归算法是后面若干强大算法的基石,如果不理解回归算法,无法学习那些强大的算法。回归算法有两个重要的子类:即线性回归和逻辑回归。

线性回归一般使用“最小二乘法”来求解。“最小二乘法”的思想是这样的,假设我们拟合出的直线代表数据的真实值,而观测到的数据代表拥有误差的值。为了尽可能减小误差的影响,需要求解一条直线使所有误差的平方和最小。最小二乘法将最优问题转化为求函数极值问题。函数极值在数学上我们一般会采用求导数为0的方法。但这种做法并不适合计算机,可能求解不出来,也可能计算量太大。计算机科学界专门有一个学科叫“数值计算”,专门用来提升计算机进行各类计算时的准确性和效率问题。例如,著名的“梯度下降”以及“牛顿法”就是数值计算中的经典算法,也非常适合来处理求解函数极值的问题。梯度下降法是解决回归模型中最简单且有效的方法之一。

逻辑回归是一种与线性回归非常类似的算法,但是,从本质上讲,线型回归处理的问题类型与逻辑回归不一致。线性回归处理的是数值问题,也就是最后预测出的结果是数字,例如预测一所房子大约可以买多少钱。而逻辑回归属于分类算法,也就是说,逻辑回归预测结果是离散的分类,例如判断肿瘤是恶性还是良性等等。实现方面的话,逻辑回归只是对对线性回归的计算结果加上了一个Sigmoid函数,将数值结果转化为了0到1之间的概率(Sigmoid函数的图像一般来说并不直观,你只需要理解对数值越大,函数越逼近1,数值越小,函数越逼近0),接着我们根据这个概率可以做预测,例如概率大于0.5,肿瘤就是恶性的等等。

2、神经网络

神经网络(也称之为人工神经网络,ANN)算法是80年代机器学习界非常流行的算法,不过在90年代中途衰落。现在,携着“深度学习”之势,神经网络重装归来,重新成为最强大的机器学习算法之一。

神经网络的诞生起源于对大脑工作机理的研究。早期生物界学者们使用神经网络来模拟大脑。机器学习的学者们使用神经网络进行机器学习的实验,发现在视觉与语音的识别上效果都相当好。在BP算法(加速神经网络训练过程的数值算法)诞生以后,神经网络的发展进入了一个热潮。

下图是一个简单的神经网络的逻辑架构。在这个网络中,分成输入层,隐藏层,和输出层。输入层负责接收信号,隐藏层负责对数据的分解与处理,最后的结果被整合到输出层。每层中的一个圆代表一个处理单元,可以认为是模拟了一个神经元,若干个处理单元组成了一个层,若干个层再组成了一个网络,也就是”神经网络”。

图神经网络的逻辑架构

在神经网络中,每个处理单元事实上就是一个逻辑回归模型,逻辑回归模型接收上层的输入,把模型的预测结果作为输出传输到下一个层次。通过这样的过程,神经网络可以完成非常复杂的非线性分类。

进入90年代,神经网络的发展进入了一个瓶颈期。其主要原因是尽管有BP算法的加速,神经网络的训练过程仍然很困难。因此90年代后期支持向量机(SVM)算法取代了神经网络的地位。

3、SVM(支持向量机)

支持向量机算法是诞生于统计学习界,同时在机器学习界大放光彩的经典算法。

支持向量机算法从某种意义上来说是逻辑回归算法的强化:通过给予逻辑回归算法更严格的优化条件,支持向量机算法可以获得比逻辑回归更好的分类界线。但是如果没有某类函数技术,则支持向量机算法最多算是一种更好的线性分类技术。

但是,通过跟高斯“核”的结合,支持向量机可以表达出非常复杂的分类界线,从而达成很好的的分类效果。“核”事实上就是一种特殊的函数,最典型的特征就是可以将低维的空间映射到高维的空间。

上述机器学习算法均为监督学习算法。监督学习,就是人们常说的分类回归,通过已有的训练样本(即已知数据以及其对应的输出)去训练得到一个最优模型(这个模型属于某个函数的集合,最优则表示在某个评价准则下是最佳的),再利用这个模型将所有的输入映射为相应的输出。在人对事物的认识中,我们从孩子开始就被大人们教授这是猫啊、那是狗啊、那是桌子啊,等等。我们所见到的景物就是输入数据,而大人们对这些景物的判断结果(是房子还是鸟啊)就是相应的输出。当我们见识多了以后,脑子里就慢慢地得到了一些泛化的模型,这就是训练得到的那个(或者那些)函数,从而不需要大人在旁边指点的时候,我们也能分辨的出来哪些是猫,哪些是狗。无监督学习则是另一种研究的比较多的学习方法,它与监督学习的不同之处,在于我们事先没有任何训练样本,而需要直接对数据进行建模。这听起来似乎有点不可思议,但是在我们自身认识世界的过程中很多处都用到了无监督学习。比如我们去参观一个画展,我们完全对艺术一无所知,但是欣赏完多幅作品之后,我们也能把它们分成不同的派别(比如哪些更朦胧一点,哪些更写实一些,即使我们不知道什么叫做朦胧派,什么叫做写实派,但是至少我们能把他们分为两个类)。无监督学习里典型的例子就是聚类了。聚类的目的在于把相似的东西聚在一起,而我们并不关心这一类是什么。因此,一个聚类算法通常只需要知道如何计算相似度就可以开始工作了。

那么,什么时候应该采用监督学习,什么时候应该采用非监督学习呢?一种非常简单的回答就是从定义入手,如果我们在分类的过程中有训练样本,则可以考虑用监督学习的方法;如果没有训练样本,则不可能用监督学习的方法。但是事实上,我们在针对一个现实问题进行解答的过程中,即使我们没有现成的训练样本,我们也能够凭借自己的双眼,从待分类的数据中人工标注一些样本,并把他们作为训练样本,这样的话就可以把条件改善,用监督学习的方法来做。然而对于不同的场景,正负样本的分布如果会存在偏移(可能是大的偏移,也可能偏移比较小),这样的话用监督学习的效果可能就不如用非监督学习了。

今天,在计算机科学的诸多分支学科领域中,都能找到机器学习技术的身影,尤其是在计算机视觉、语音识别、模式识别、自然语言处理等“计算机应用技术”领域,机器学习已成为最重要的技术进步源泉之一。此外,机器学习还为许多交叉学科提供了重要的技术支撑比如说“生物信息学”。

可以说“计算机视觉=图像处理+机器学习“。图像处理技术用于将图像处理为适合进入机器学习模型中的输入,机器学习则负责从图像中识别出相关的模式。计算机视觉相关的应用非常的多,例如百度识图、手写字符识别、车牌识别等等应用。这个领域是应用前景非常火热的,同时也是研究的热门方向。随着机器学习的新领域深度学习的发展,大大促进了计算机图像识别的效果,因此未来计算机视觉界的发展前景不可估量。

如果说“计算机视觉=图像处理+机器学习“,那么”语音识别=语音处理+机器学习“。语音识别就是音频处理技术与机器学习的结合。语音识别技术一般不会单独使用,一般会结合自然语言处理的相关技术。目前的相关应用有苹果语音助手siri、微软小娜等。

“自然语言处理=文本处理+机器学习“。自然语言处理技术主要是让机器理解人类的语言的一门领域。在自然语言处理技术中,大量使用了编译原理相关的技术,例如词法分析,语法分析等等,除此之外,在理解这个层面,则使用了语义理解,机器学习等技术。作为唯一由人类自身创造的符号,自然语言处理一直是机器学习界不断研究的方向。按照百度机器学习专家余凯的说法“听与看,说白了就是阿猫和阿狗都会的,而只有语言才是人类独有的”。如何利用机器学习技术进行自然语言的的深度理解,一直是工业和学术界关注的焦点。

谈到对数据进行分析利用,很多人会想到“数据挖掘”(data mining)。数据挖掘领域在二十世纪九十年代形成,它受到很多学科领域的影响,其中数据库、机器学习、统计学无疑影响最大。数据挖掘是从海量数据中发掘知识,这就必然涉及对“海量数据”的管理和分析。大体来说,“数据挖掘=机器学习+数据库“——数据库领域的研究为数据挖掘提供数据管理技术,而机器学习和统计学的研究为数据挖掘提供数据分析技术。由于统计学往往醉心于理论的优美而忽视实际的效用,因此,统计学界提供的很多技术通常都要在机器学习界进一步研究,变成有效的机器学习算法之后才能再进入数据挖掘领域。从这个意义上说,统计学主要是通过机器学习来对数据挖掘发挥影响,而机器学习和数据库则是数据挖掘的两大支撑技术。从数据分析的角度来看,绝大多数数据挖掘技术都来自机器学习领域,但机器学习研究往往并不把海量数据作为处理对象,因此,数据挖掘要对算法进行改造,使得算法性能和空间占用达到实用的地步。同时,数据挖掘还有自身独特的内容,即关联分析。

通过上面的介绍,可以看出机器学习是多么的重要,应用是多么的广泛。现随着大数据(big data)概念的兴起,机器学习大量的应用都与大数据高度耦合,几乎可以认为大数据是机器学习应用的最佳场景。例如经典的Google利用大数据预测了H1N1在美国某小镇的爆发、百度预测2014年世界杯结果从淘汰赛到决赛全部正确。这实在太神奇了,那么究竟是什么原因导致大数据具有这些魔力的呢?简单来说,就是机器学习技术。正是基于机器学习技术的应用,数据才能发挥其魔力。

大数据的核心是利用数据的价值,机器学习是利用数据价值的关键技术,对于大数据而言,机器学习是不可或缺的。相反,对于机器学习而言,越多的数据会越可能提升模型的精确性,同时,复杂的机器学习算法的计算时间也迫切需要分布式计算与内存计算这样的关键技术。因此,机器学习的兴盛也离不开大数据的帮助。大数据与机器学习两者是互相促进,相依相存的关系。

机器学习与大数据紧密联系。但是,必须清醒的认识到,大数据并不等同于机器学习,同理,机器学习也不等同于大数据。大数据中包含有分布式计算、内存数据库、多维分析等等多种技术。单从分析方法来看,大数据也包含以下四种分析方法:

1.大数据,小分析:即数据仓库领域的OLAP分析思路,也就是多维分析思想。 2.大数据,大分析:这个代表的就是数据挖掘与机器学习分析法。 3.流式分析:这个主要指的是事件驱动架构。 4.查询分析:经典代表是NoSQL数据库。

也就是说,机器学习仅仅是大数据分析中的一种而已。尽管机器学习的一些结果具有很大的魔力,在某种场合下是大数据价值最好的说明。但这并不代表机器学习是大数据下的唯一的分析方法。

第二篇:机器学习高数学习心得

有人戏称高数是一棵高树,很多人就挂在了上面。但是,只要努力,就能爬上那棵高树,凭借它的高度,便能看到更远的风景。

大部分同学都害怕高数,高数学习起来确实是不太轻松。其实,只要有心,高数并不像想象中的那么难。虽然有很多人比我学得更好,但在这里我也谈谈自己在培乐园补习高数(机器学习相关)的一些拙见吧。

首先,不能有畏难情绪。很多人说高数非常难学,有很多人挂科了,这基本上是事实,但是或多或少有些夸张了吧。让我们知道高数难,虽然会让我们对它更加重 视,但是这无疑也增加了大家对它的畏惧感,觉得自己很可能学不好它,从而失去了信心,有些人甚至把难学当做自己不去学好它的借口。事实上,当我们抛掉那些 畏难的情绪,心无旁骛地去学习高数时,它并不是那么难,至少不是那种难到学不下去的。所以,我觉得要学好高数,一定不能有畏难的情绪。当我们有信心去学好 它时,就走好了第一步。

其次,课前预习很重要。培乐园每次课前都会发预习讲义,要求学员预习。其实每个人的学习习惯可能不同,有些人习惯预习,有些人觉得预习不适合自己。但对我而言,学习高数,预习是必要的。每次上新课前,把课 本上的内容仔细地预习一下,或者说先自学一下,把知识点先过一遍,能理解的先自己理解好,到课堂上时就会觉得有方向感,不会觉得茫然,并且自己预习时没有 理解的地方在课堂上听老师讲后就能解决了,比较有针对性。另外,我一般在预习后会试着做一下课后题,只是试着做一两道简单的题目,找找感觉,虽然可能做不 出,但那样会有助于理解。

然后,要把握课堂。我认为,把握好课堂对高数学习是很关键的。课堂上老师讲的每一句话都有可能是很有用的,如果错过了就可能会使自己以后做某些题时要走很 多弯路,甚至是死路。老师在上课时会详细地讲解知识点,所以对于我们的理解是很有帮助的,尤其是有些机器学习相关的 知识点,我们课余看一小时,也许还不如听老师讲一分钟理解得 快。并且,老师还会讲到一些要注意的但书上没有的东西,所以课堂上最好尽量集中精神听讲,不要错过了某些有价值的东西。

此外,要以教材为中心。虽然说“尽信书不如无书”,但是,就算教材不是完美的,我们还是要以教材为中心去学习高数。教材上包含了我们所要掌握的知识点,而 那些知识点是便是我们解题的基础。书上的一些基本公式、定理,是我们必须掌握的。并且,书上很多原理的证明过程体现的数学思想对于我们的思维训练是很有益 处的。我觉得,只有将教材上的基础知识融会贯通了,把基础打好了,知识才能稳固。也许,将书上的知识都真正理解透彻了,能够举一反三了,那么不用再看参考 书,不用做习题去训练,都能以不变应万变了。当然,做到这一点不容易,我也没有做到。但是,把教材内容尽可能地掌握好,是绝对益处多多的。

最后,坚持做好习题。做题是必要的,但搞题海战术就不必要了。就我的体会而言,如果只是想考试考好,不想去深入研究它的话,做好教材上的课后题和习题册就 足够了,当然,前提是认真地做好了。对于每一道题,有疑问的地方就要解决,不能不求甚解,尽量把每一个细节都理解好,这样的话做好一道题就能解决很多同类 型的题了。同时,做题不能只是自己一个人冥思苦想,有时候自己的思维走进了死胡同是很难走出来的,当自己做不出来的时候,不妨问问老师或者同学,也许就能 豁然开朗了。对于做完的题目,觉得很有价值的,最好是把它摘抄到笔记本上,然后记录一下解题的要点,分析一下题目所体现的思维方式等等,平时有时间就翻看 一下,加深一下记忆。

以上就是我个人的一些学习心得还缺乏经验。关于高数学习,不同的人会有不同体会和见解,我的学习方法不见得会对别人都适用,但是,权当是一种学习经历的分享吧!

第三篇:工业机器人学习心得

金石兴机器人学院

工业机器人学习心得

我大学学习的是电气自动化,毕业之后找不到合心意的工作,要么是需要有经验的,要么是在公司做那种普工,在公司又没有机会接触到技术含量的工作,后来综合考虑了一下就打算到武汉学习工业机器人技术。

当初也是在网上随便找找看有没有哪家比较靠谱的,因为现在类似的机构还是挺多的,不知道是真是假,我基本上都联系过,每一家说的话大同小异,把我都绕晕了。后来我看到武汉有一家还挺不错,就跟客服聊了下,也给了他们联系方式,不过他们从来没有乱打电话打扰我的生活和工作,这让我对他们的初步印象还是不错的。后期就一直跟那边的专业课老师咨询,对我的问题每次都很耐心的解答。

他们邀请我过去武汉的实训基地进行参观,我想着过去看看也是对他们那边的情况有个进一步的了解,万一觉得不好的话免得自己上当,然后就去了。那里的接待老师很实在,参观讲解的时候都是实事求是的。在那边参观的时候,我其实就决定要进行这个工业机器人培训了。等我回家跟家里人商量了一番,家人也觉得现在这个行业发展的很好,都很支持我来学习这个。

上课期间,讲课的时候老师讲的不快,有基础的同学不要对自己放松,一定要按照老师说的做,不要以为自己学过就对自己放松,不要高估自己,有时候就是有基础的太高估自己所以就学不好。所以,不管是对于有基础跟没基础的,我们都要按照老师说的去学习。否则,基础打不好,后面的课程学起来就会很困难。如果基础不好,遇到不

金石兴机器人学院

会的不懂的就去问老师、学习好的同学,千万不要觉得不好意思,学习态度很重要。我们去金石兴培训都是带着理想去的,所以一定不要做让自己后悔的事情。

学习要找对方法。我们在没培训之前可能没有接触过这些,不知道怎么去做,该怎么做。所以在学习过程中要认真听讲,勤做笔记,如果不会也要抄下来,一遍抄不会就多抄几遍。当时我们班有个0基础的同学,跟上课程有点吃力,他就用手机把老师讲的录音下来,晚自习或者课下的时候就一遍一遍听录音补课,有不懂得就立马去找老师解答,后来他考核的结果还挺不错的。另外自信心很重要,如果问题弄不明白,可能会对自己没有信心,对以后的学习产生负面的影响。像我,做第一个项目的时候,虽然老师在做的时候讲的很仔细,自己听的也很明白。但是,如果让自己不看老师的代码自己写的话,就会发现很多自己不懂的问题。然后我就想为什么自己不懂,为什么老师会这么写。慢慢的对这个项目就熟悉起来。对自己也有很到的信心。

在这里学习,我们每天早上还有每日一讲,每一天上课前,都会有同学对自己的经历或者心得体会或者是行业认识做个分享。我觉得这样的模式非常的好,大家都是来自不同地方的人,也有不同的生活工作经历,分享出来可以从中明白一些道理,而且通过这种每日一讲,让我的表达能力得到了提高,这为我后面的面试有很大的帮助。

在平时学习中,我们的班主任密切关注我们的状况,学习中遇到瓶颈感到沮丧时,班主任会及时跟我们谈心鼓励我们,经常问我们学的怎么样,能不能跟的上,有哪些觉得困难的·····学习的进度

金石兴机器人学院

会根据我们的情况有所调整,所以我和同学们都能跟得上。

到这里学习的人都是有强烈目的的,所以大家都很用功,每天晚自习到晚上9点半,曾经在大学时不怎么上课的我,在这种学习氛围的影响下,一刻都不敢松懈。我知道工业机器人是个新兴的行业,在未来会发展的越来越好,在这个行业做个两三年,工业机器人行业的薪资绝对是不低的,之前没毕业的时候老师经常拿一个学长给我们做榜样,现在据说每月过万了。可惜我大学时贪玩不曾好好努力,现在到这里就必须要好好学习。我想法简单,学好一点,学完之后就可以推荐到好点的单位,之后努力赚钱,不让父母觉得我不争气。

我选择了工业机器人行业就不会后悔,这是一个有发展,有钱途的行业,我也会在这个行业不断努力,为自己的美好未来奋斗。同时也希望我的这些心得能对将要从事这个行业的人有所帮助,愿大家都能过上自己想要的生活!

第四篇:机器人制造基础学习日志

竞赛机器人制造技术基础学习日志

这个学期,我们接触了一门新课程,竞赛机器人制造技术基础。今天是上课的第一天,很期待也有些许困惑,到底是一门什么样的选修课能在周末的黄金时段占用我们一上午时间。

到了机器人基地,进入这件将会陪伴我们三十多个课时的大屋子,才发现这里有非常多的东西需要我们去掌握和学习。现在最多的事情还是疑问。随后,机器人中心的杨老师登场,正是由他给我们带这门课。

首先进行的内容便是介绍这门课。是学院出于对卓越班能力的培养,为我们选了这门课程。在这里,我们可以提高动手实践的能力,利用难得的机会提升团队协作的能力,了解机器人以及理工大的机器人团队,拓宽自己的视野。

之后,便是杨老师为我们介绍机器人。我们总是能通过身边的媒体了解到机器人,但是很多人对于机器人的好多概念是错误的。以前的印象中,只有长得像人一样的智能机器才被称为机器人。这个理解是非常片面的的,这样的机器人仅仅是机器人的一种,称为仿生机器人。真正能被称为机器人的机器还有很多,就像我们焊接专业的焊接机械手,为了功能的需要,完全没有必要做成人形,仿生的部分仅仅是手臂。

以后我会称我们学习工作的地方叫中心。中心的多媒体设备还算丰富,这样我们可以通过看一些视频大概的了解机器人。理工大参加机器人竞赛已经好多年了,从2008年至今,奖项斩获颇丰。我们在杨老师讲解的同时观看了一些中心的机器人在比赛时的视频,有的霸气十足,有的萌态百出。在我看来,中心的机器人大多数可以被划分为智能车类,是以轮式为主。

看过视频后,我们在中心的各个场地先后观看了五种功能不同的机器人的表演。它们分别是灭火机器人,擂台挑战机器人,反恐机器人,擂台机器人,服务机器人,在表演的同时,五个机器人的制造者,都会为大家细致地介绍各个机器人的工作原理、功能及其基本构造。这个过程也是我们挑选机器人的过程,因为我们所有人要被分配到不同的机器人组,跟上助教学长们学习机器人制作的最基本部分。

观看完表演,分组的事情大概有了眉目,我也有一些想法。最后我的选择是擂台机器人。这是一个结构要求较高的机器人,而编程工作相对较少。另外,这个组有一个绘图软件SolidWorks要学习,这个和我们的专业方向很贴近,也会很有用。

第一次课的学习,我们算是入门。对机器人更深入的认识,了解本组机器人的基本原理和以后我们要进行的工作。收获还不敢说有,但是期待下次课程的新内容。

张泰琳

2014年3月22日

周六

竞赛机器人制造技术基础学习日志

今天是第二个课程日,也是正式进入分组学习的第一次课。这次课程的主要学习内容是程序的编写。首先我们了解的是编程软件的界面和简单的使用,写入方式等等,重点还是在程序本身的内容上。擂台机器人的程序主要包括爬坡函数,边沿检测函数,对敌检测函数,对敌函数等几个函数。

最基本的编程知识并不需要太多,助教用已经写好的比较完美的程序为我们讲解。在我看来,对于我们这些新手最困难的部分是函数的命名,每一部分语句的结构还是比较简单的,但是实现所需功能的函数需要我们自己去命名。已有的子函数定义就已经挺多的,理解起来还是有一定困难的。将机器人上各个部分的硬件和程序相结合也重点,虽然这部分我理解起来并不是很难,但是对于机器人来说各种传感器相当于眼睛,眼睛接收到数据传给芯片,芯片相当于大脑,大脑再来给予各部分动作。所以数据的处理是非常重要的事情。

时间毕竟太短,所以我们不可能独立设计程序,但找不足还是有一定可行性的。所以我们的主要任务首先是对程序进行详细全面的学习,然后就是运用我们的想法,找到程序的不足和相应的对策。程序是经过历届学长们无数次修改的,机器人也经受过多次战火的洗礼,所以在有限的时间内,我们以学习为主。当然,若能做到锦上添花就更好不过了。

当然,空想还是不行。所以助教学长为我们播放了历届比赛中的一部分视频,并且在播放视频的同时,也为我们讲解实际比赛的时候可能出现的各种危险情况,以及一些需要但还未解决或解决的不太好的问题。

各种因素都是双刃剑,例如速度。侧面避敌时需要迅速躲避和改变姿势,但是速度过快容易在惯性的作用下冲下擂台。各种传感器的精度和设定的判断距离也会影响控制器的判断和动作。我的思路还是比较清晰,就是说在非正常因素下出问题时,给出解决方法。例如某些传感器被敌方无意间破坏,设计一些冗余程序段来利用别的传感器尽量替代这个被破换的传感器,尽量维持机器人的战斗力和正常运转。

这次课的主要学习内容是看视频和学习编程,通过视频我发现中心的机器人还是有许多优势的。今天的收获主要是编程的思想,以及通过编程解决实际问题的能力。这样可以开阔我们的思维,因为解决同一个问题的编程方法多种多样,这样可以充分锻炼和发挥我们的想象力。

张泰琳

2014年3月30日

周日

竞赛机器人制造技术基础学习日志

我们的工作和学习任务都可以说是模块化的。上周我们学习的是编程的基本内容,主要以认识为主,这次课程我们学习绘图软件SolidWorks的使用。我们组的机器人的硬件搭建,需要先由绘图软件将各部分零件绘制出来,并且装配成一个整体,进行这样一个仿真过程。所以,熟练使用绘图软件SolidWorks是非常重要的一步。这一部分是和我们材料成型专业最贴近的一部分,并且我个人也十分喜欢学习研究零件、图纸等等,所以我的兴趣非常浓厚。

学习的过程其实比较简单,无非就是软件如何使用。在我看来,软件的使用不是教出来的,而是自己练出来。说起来很简单,各个按钮怎么用,以及各个按钮如何组合起来用,仅此而已。但是毕竟还是需要学长带我们,起到示范的作用,好比师傅领进门。我们看韦学长画的过程,最终自己能操作出一样的图形就算是学会了,至于以后再遇到绘制其他的零件、装配体等,就需要多加练习,摸索出适合自己绘图的方法。

这是我第一次使用SolidWorks,以前只用过AutoCAD。两个软件最大的不同便是前者更有利于画3D立体图,而后者画平面工程图更细致。两个软件各有利弊,但是我使用起来没有什么障碍,非常得心应手。因为只要不是特别复杂的步骤,我仅仅照着例子抄画一遍就可以学会。两种软件的操作还是有很大的不同,新手还需要多加熟悉。

学习软件的时间一共1.5个半天,肯定不能学到十分精通,但应付机器人的内容已经够

用了。还是时间的问题,我不可能在短时间内画出机器人的装配图来,也算些许遗憾。通过今天学到的东西,我绘制了一个传感器和一些用所学知识绘制的其他零件立体图。

这次课程收获还是很多的,为我学习这个软件开了一个好头,我很期待我能精通的掌握这个软件的使用。

张泰琳

2014年4月2日 周六

竞赛机器人制造技术基础学习日志

本次课程的学习可谓是承前启后。

我们的第一个工作便是交流和解决使用SolidWorks软件作图时出现的一些问题,并且再次熟悉软件使用。至此,SolidWorks软件使用的传授便完成了,虽然没有讲太多新东西,但是学到的足以应付很多绘图任务了。

之后的工作便是详细学习擂台机器人的构造。擂台机器人是一个结构性很强的机器人,我把它分成了三部分。

最下面是底盘,两侧分别装有两组动力输出单元,每组动力输出单元由一个电机,一个减速器还有一只轮子组成。两侧轮子同速则前进或后退,轮子同速但反向时机器人原地打转,轮子反向转动且不同速用于实现转弯。机器人的自由度还是很高的。两侧前后两个电机的控制线缆并联连接,这样两侧有两个接口与电机驱动器相连。同时,电机驱动器还与电压较大的一组18650锂电池相连。

底盘的四周分布着各种红外探测器以及辉度感应器,用以检测边缘和敌人,它们均与位于中间层的控制器相连。另外,电机驱动器仅仅有很简单的排线与控制器相连,因为电机驱动器这一层的电压大,控制器的一层电压小。控制器可以称为机器人的大脑,它通过电信号控制各部分的协同运作,以保证机器人的动作符合预定的要求。控制器中可以存放很多个用以驱动机器人的程序,这些程序都是事先写好了的。函数中的一些子函数定义的取值可以直接来源于各种传感器,这样可以在控制器上实时修改,达到调整机器人姿态的目的,比起在电脑中修改参数要方便的多。控制器的电压是由一块体积稍小、电压偏低的锂聚合物电池供给的。

最上面一层是三个红外传感器和铲子上的两个辉度传感器,用于检测地面和敌人的铲子或车身。整个机器人用金属材料包围以便于保护,但必须在壳体上给各个传感器和线缆留出通道,壳体的设计也是很富有智慧的。

另外,在通过拆卸组装认识整车的同时,我们也在学长的介绍下简单了解了一些用以组装的小零件们,像排针以及各种接口。这些毕竟和我们专业方向差的太多,我只能了解个大概,知道一些零件的名字。

上面的工作占用了一半多时间,剩下不到一半的时间我们进入了编程阶段,详细的学习编程的每一步,为下周的编程打基础。

张泰琳

2014年4月19日

周六

第五篇:机器学习中关于模型评估方法总结

1 模型评估

我们在建立模型之后,接下来就要去评估模型,确定这个模型是否有用。 在实际情况中,我们会用不同的度量去评估我们的模型,而度量的选择取决于模型的类型和模型以后要做的事。

1.1 二分类评估

二分类模型的评估。

1.1.1 业界标准叫法

二分类评估;分类算法。

1.1.2 应用场景

信息检索、分类、识别、翻译体系中。

1.1.2.1 新闻质量分类评估 对于新闻APP,其通过各种来源获得的新闻,质量通常良莠不齐。为了提升用户体验,通常需要构建一个分类器模型分类低质新闻和优质新闻,进而进行分类器的评估。

1.1.2.

2垃圾短信分类评估 垃圾短信已经日益成为困扰运营商和手机用户的难题,严重影响人们的生活、侵害到运营商的社会公众形象。 构建二分类器模型对垃圾短信和正常短信进行分类,并进行二分类评估。

1.1.3 原理

1.1.3.

1混淆矩阵 混淆矩阵(Confusion Matrix)。来源于信息论,在机器学习、人工智能领域,混淆矩阵又称为可能性表格或错误矩阵,是一种矩阵呈现的可视化工具,用于有监督学习,在无监督学习中一般叫匹配矩阵。 混淆矩阵是一个N*N的矩阵,N为分类(目标值)的个数,假如我们面对的是一个二分类模型问题,即N=2,就得到一个2*2的矩阵,它就是一个二分类评估问题。 混淆矩阵的每一列代表预测类别,每一列的总数表示预测为该类别的数据的数目,每一行代表了数据的真实归属类别,每一行的数据总数表示该类别的实例的数目。

图1 2*2混淆矩阵图

阳性(P,Positive): 阴性(N,Negative):

真阳性(TP,True Positive):正确的肯定,又称“命中”(Hit);被模型预测为正类的正样本。

真阴性(TN,True Negative):正确的否定,又称“正确拒绝”(correct rejection),被模型预测为负类的负样本。

伪阳性(FP,false Positive):错误的肯定,又称“假警报”(false alarm);被模型预测为负类的正样本。

伪阴性(FN,false Negative):错误的否定,又称“未命中”(miss);被模型预测为正类的负样本。

灵敏度(Sensitivity)或真阳性率(TPR,Ture Negative Rate):又称“召回率”(recall)、命中率(Hit Rate)。在阳性值中实际被预测正确所占的比例。TPR=TP/P=TP/(TP+FN) 伪阳性率(FPR,false positive rate):又称“假正类率”、“错误命中率”、“假警报率”。FPR=FP/(FP+TN) 特异度(SPC,Specificity)或真阴性率:在阴性值中实际被预测正确所占的比例。SPC=TN/N=TN/(FP+TN)=1-FPR 假发现率(FDR,false discovery rate):FDR=FP/(FP+TP)=1-TPR 准确度(ACC):预测正确的数占样本数的比例。ACC=(TP+TN)/(P+N) 阳性预测值(PPV,positive predictive value)或精度(precision):阳性预测值被预测正确的比例。PPV=TP/(TP+FP) 阴性预测值(NPV,negative predictive value):阴性预测值被预测正确的比例。NPV=TN/(TN+FN)

图2 一个模型的2*2混淆矩阵图示例

我们可以看出,这个模型的准确度是88%,阳性预测值比较高而阴性预测值较低,对于灵敏度和特异度也是相同。这是因为我们选的阈值导致的,若我们降低阈值,这两对数值就会变得接近。 1.1.3.2 ROC曲线 ROC曲线(Receiver Operation Characteristic Curve),中文名叫“接受者操作特征曲线”,其实是从混淆矩阵衍生出来的图形,其横坐标是Specificity(特异度),纵坐标是Sensitivity(灵敏度)。

图3 ROC曲线图

随着阈值的减小,更多的值归于正类,敏感度和特异度也相应增加。而那条45度线是一条参照线,ROC曲线要与这条参照线比较。 如果我们不用模型,直接把客户分类,我们得到的曲线就是这条参照线,然而,我们使用了模型进行预测,就应该比随机的要好,所以,ROC曲线要尽量远离参照线,越远,我们的模型预测效果越好。 ROC曲线反映了错误命中率和灵敏度之前权衡的情况,即灵敏度随着错误命中率递增的情况下,谁增长的更快,快多少。灵敏度增长的越快,曲线越往上屈,反映了模型的分类性能越好。当正负样本不平衡时,这种模型评价方式比起一般的精确度评价方式好处尤为明显。

ROC曲线快速爬向左上,表示模型准确预测数据。 一般情况下,ROC曲线都应该处于参照线的上方。 1.1.3.

3AUC(ROC曲线下面积 Area Under ROC Curve)

图3 AUC曲线图

ROC曲线是根据与45度参照线比较判断模型的好坏,但这只是一种定性的分析,如果需要定量的计算判断,就用到了AUC,即:ROC曲线下面积。 参考线的面积是0.5,ROC曲线越往左上方靠拢,AUC就越大(这里的面积是0.869),模型评估的性能越好,完美分类的AUC值是1。 1.1.3.

4基尼系数 基尼系统经常用于分类问题,公式:Gini=2*AUC-1。基尼系数大于60%,就算好模型。 1.1.3.5

LIFT(提升)

图3 LIFT提升图

LIFT=(TP/(TP+FP))/((TP+FN)/(TP+FN+FP+TN)) LIFT越大,模型的预测效果越好。LIFT值应一直大于1,如果LIFT值等于1,模型就没有任何提升了。 横轴是预测为正例的比例,即:(TP+FN)/(TP+FN+FP+TN) 1.1.3.6

Gains(增益)

图3 Gains增益图

与LIFT类似,区别在于纵轴的刻度不同,横轴相同。Gains= TP/(TP+FP)=LIFT*((TP+FN)/(TP+FN+FP+TN))

1.1.3.7

K-S(Kolmogorov-Smirnov chart)图 K-S图是用来度量阳性和阴性分类区分程度的。若我们把总体严格按照阳性和阴性分成两组,则K-S值为100,如果我们是随机区分阳性和阴性,则K-S值为0。所以,分类模型的K-S值在0到100之间,值越大,模型表现越好。

1.2 多分类评估

多分类模型的评估。

1.2.1 业界标准叫法

多分类评估。

1.2.2 应用场景

1.2.2.

1商品图片分类 淘宝、京东等电商含有数以百万级的商品图片,“拍照购”等应用必须对用户提供的商品图片进行分类。

1.2.3 原理

同1.1.3节。

1.2.3.1 混淆矩阵 如果有150个样本数据,这些数据分成3类,每类50个。分类结束后得到的混淆矩阵如下:

每一行之和为50,表示50个样本。第一行说明类1的50个样本有43个分类正确,5个错分为类2,2个错分为类3。 第一行第一列中的43表示有43个实际归属第一类的实例被预测为第一类,同理,第二行第一列的2表示有2个实际归属为第二类的实例被错误预测为第一类。

1.2.4 不同应用场景使用的方法及参数

1.2.4.1 混淆矩阵

混淆矩阵一般只能用于分类输出模型中。

对于混淆矩阵,一般情况下,我们只关心其中一个定义度量。例如:在医药公司,一般会更加关心最小化误诊率,也就是高特异度。而在磨损模型中,我们更关心的是灵敏度。 1.2.4.

2ROC和AUC曲线 ROC曲线的一个应用场景是在人脸检测中,很多相关的研究或者企业评价他们的检测性能程度是通过ROC曲线来评定的。

ROC和AUC曲线常被用来评价一个二值分类器的优劣。

1.3 Spark模型预测

Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎。是一种计算框架。

1.3.1 业界标准叫法

Spark。

1.3.2 应用

1.3.2.1 腾讯社交广告平台—广点通 广点通是最早使用Spark的应用之一。腾讯大数据精准推荐借助Spark快速迭代的优势,围绕“数据+算法+系统”这套技术方案,实现了在“数据实时采集、算法实时训练、系统实时预测”的全流程实时并行高维算法,最终成功应用于广点通pCTR投放系统上,支持每天上百亿的请求量。 基于日志数据的快速查询系统业务构建于Spark之上的Shark,利用其快速查询以及内存表等优势,承担了日志数据的即席查询工作。在性能方面,普遍比Hive高2-10倍,如果使用内存表的功能,性能将会比hive快百倍。

1.3.2.2 Yahoo—Audience Expansion(读者扩张) Yahoo将Spark用在Audience Expansion中的应用。Audience Expansion是广告中寻找目标用户的一种方法:首先广告者提供一些观看了广告并且购买产品的样本客户,据此进行学习,寻找更多可能转化的用户,对他们定向广告。Yahoo采用的算法是logistic regression。同时由于有些SQL负载需要更高的服务质量,又加入了专门跑Shark的大内存集群,用于取代商业BI/OLAP工具,承担报表/仪表盘和交互式/即席查询,同时与桌面BI工具对接。目前在Yahoo部署的Spark集群有112台节点,9.2TB内存。 1.3.2.3 淘宝—搜索和广告业务 阿里搜索和广告业务,最初使用Mahout或者自己写的MR来解决复杂的机器学习,导致效率低而且代码不易维护。淘宝技术团队使用了Spark来解决多次迭代的机器学习算法、高计算复杂度的算法等。将Spark运用于淘宝的推荐相关算法上,同时还利用Graphx解决了许多生产问题,包括以下计算场景:基于度分布的中枢节点发现、基于最大连通图的社区发现、基于三角形计数的关系衡量、基于随机游走的用户属性传播等。

1.3.2.4 优酷土豆—视频推荐和广告业务 优酷土豆在使用Hadoop集群的突出问题主要包括:第一是商业智能BI方面,分析师提交任务之后需要等待很久才得到结果;第二就是大数据量计算,比如进行一些模拟广告投放之时,计算量非常大的同时对效率要求也比较高,最后就是机器学习和图计算的迭代运算也是需要耗费大量资源且速度很慢。 最终发现这些应用场景并不适合在MapReduce里面去处理。通过对比,发现Spark性能比MapReduce提升很多。首先,交互查询响应快,性能比Hadoop提高若干倍;模拟广告投放计算效率高、延迟小(同hadoop比延迟至少降低一个数量级);机器学习、图计算等迭代计算,大大减少了网络传输、数据落地等,极大的提高的计算性能。目前Spark已经广泛使用在优酷土豆的视频推荐(图计算)、广告业务等。

1.3.3 原理

1.3.3.

1Spark生态圈 如下图所示为Spark的整个生态圈,最底层为资源管理器,采用Mesos、Yarn等资源管理集群或者Spark自带的Standalone模式,底层存储为文件系统或者其他格式的存储系统如Hbase。Spark作为计算框架,为上层多种应用提供服务。Graphx和MLBase提供数据挖掘服务,如图计算和挖掘迭代计算等。Shark提供SQL查询服务,兼容Hive语法,性能比Hive快3-50倍,BlinkDB是一个通过权衡数据精确度来提升查询晌应时间的交互SQL查询引擎,二者都可作为交互式查询使用。Spark Streaming将流式计算分解成一系列短小的批处理计算,并且提供高可靠和吞吐量服务。

图4 spark生态圈图

1.3.3.2 Spark运行框架

图5 spark运行框架图

Spark的运行框架首先有集群资源管理服务(Cluster Manager)和运行作业任务节点(Worker Node),然后就是每个应用的任务控制节点Driver和每个机器节点上有具体任务的执行进程。 与MR计算框架相比,Executor有二个优点:一个是多线程来执行具体的任务,而不是像MR那样采用进程模型,减少了任务的启动开稍。二个是Executor上会有一个BlockManager存储模块,类似于KV系统(内存和磁盘共同作为存储设备),当需要迭代多轮时,可以将中间过程的数据先放到这个存储系统上,下次需要时直接读该存储上数据,而不需要读写到hdfs等相关的文件系统里,或者在交互式查询场景下,事先将表Cache到该存储系统上,提高读写IO性能。另外Spark在做Shuffle时,在Groupby,Join等场景下去掉了不必要的Sort操作,相比于MapReduce只有Map和Reduce二种模式,Spark还提供了更加丰富全面的运算操作如filter,groupby,join等。 1.3.3.3 Spark与hadoop

 Hadoop有两个核心模块,分布式存储模块HDFS和分布式计算模块Mapreduce  spark本身并没有提供分布式文件系统,因此spark的分析大多依赖于Hadoop的分布式文件系统HDFS  Hadoop的Mapreduce与spark都可以进行数据计算,而相比于Mapreduce,spark的速度更快并且提供的功能更加丰富 1.3.3.4 Spark运行流程

图5 spark运行流程图

1. 构建Spark Application的运行环境,启动SparkContext。 2. SparkContext向资源管理器(可以是Standalone,Mesos,Yarn)申请运行Executor资源,并启动StandaloneExecutorbackend。 3. Executor向SparkContext申请Task。 4. SparkContext将应用程序分发给Executor。

5. SparkContext构建成DAG图,将DAG图分解成Stage、将Taskset发送给Task Scheduler,最后由Task Scheduler将Task发送给Executor运行。

6. Task在Executor上运行,运行完释放所有资源。 1.3.3.5 Spark运行特点

1. 每个Application获取专属的executor进程,该进程在Application期间一直驻留,并以多线程方式运行Task。这种Application隔离机制是有优势的,无论是从调度角度看(每个Driver调度他自己的任务),还是从运行角度看(来自不同Application的Task运行在不同JVM中),当然这样意味着Spark Application不能跨应用程序共享数据,除非将数据写入外部存储系统。 2. Spark与资源管理器无关,只要能够获取executor进程,并能保持相互通信就可以了。

3. 提交SparkContext的Client应该靠近Worker节点(运行Executor的节点),最好是在同一个Rack里,因为Spark Application运行过程中SparkContext和Executor之间有大量的信息交换。 4. Task采用了数据本地性和推测执行的优化机制。

1.4 回归评估

对回归模型的评估。

1.4.1 业界标准叫法

回归模型评估。

1.4.2 应用

1.4.3 原理及方法

1.4.3.1

均方根误差(Root Mean Squared Error,RMSE) RMSE是一个衡量回归模型误差率的常用公式。 然而,它仅能比较误差是相同单位的模型。

1.4.3.2

相对平方误差(Relative Squared Error,RSE) 与RMSE不同,RSE可以比较误差是不同单位的模型。

1.4.3.3

平均绝对误差(Mean Absolute Error,MAE) MAE与原始数据单位相同, 它仅能比较误差是相同单位的模型。量级近似与RMSE,但是误差值相对小一些。

1.4.3.4

相对绝对误差(Relative Absolute Error,RAE)

1.4.3.5

相对绝对误差(Coefficient of Determination)

决定系数 (R2)回归模型汇总了回归模型的解释度,由平方和术语计算而得。 R2描述了回归模型所解释的因变量方差在总方差中的比例。R2很大,即自变量和因变量之间存在线性关系,如果回归模型是“完美的”,SSE为零,则R2为1。R2小,则自变量和因变量之间存在线性关系的证据不令人信服。如果回归模型完全失败,SSE等于SST,没有方差可被回归解释,则R2为零。

1.4.3.6 标准化残差图(Standardized Residuals Plot) 标准化残差图是一个对在标准化尺度上显示残差分散图有帮助的可视化工具。标准化残差图与普通残差图之间没有实质不同,唯一区别是在Y轴的标准化可以更容易检测到潜在的异常值。

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

上一篇:近期重点工作安排下一篇:金融投资理财顾问