机器学习笔记1 - Hello World In Machine Learning

Alpha Go在16年以4:1的战绩打败了李世石,17年又以3:0的战绩战胜了中国围棋天才柯洁,这真是科技界振奋人心的进步。伴随着媒体的大量宣传,此事变成了妇孺皆知的大事件。大家又开始激烈的讨论机器人什么时候会取代人类统治世界的问题。

其实人工智能在上世纪5、60年代就开始进入了理论研究阶段,人们在不断探索人工智能技术的同时,也担忧起机器人会不会替代人类。然而现实比理想残酷的多,由于当时各种条件的限制(理论基础、技术基础、数据基础、硬件性能等),人工智能相关的项目进度缓慢,也缺少实际成效,研发资金、社会关注度也越来越低,人工智能进入第一次低谷期。

到了80年代,卡内基梅隆大学为数字设备公司设计了一套名为XCON的“专家系统”。这是一种,采用人工智能程序的系统,可以简单的理解为“知识库+推理机”的组合,XCON是一套具有完整专业知识和经验的计算机智能系统。人工智能再一次被各国政府和科研机构看好,大量的资金投入到研发中,但是好景不长,几年后随着苹果和IBM公司研发出了性能强劲的PC机,导致“专家系统”变得没有竞争力,人工智能发展又一次进入寒冬。

随后若干年,人工智能的发展趋于平稳和低调。时间来到21世纪,随着互联网的普及,大量数据被积累下来;摩尔定律一次又一次的被证实,计算机硬件性能以极快的速度在增长;“云”的普及,让普通大众也能轻松拥有调度大量算力的机会,人工智能不再是科学家和专业人员在实验室才能研究的东西了。数据+算力+易得这几方面的因素结合之后,将人工智能再一次推向了高潮。

可能这一波热潮又是人工智能发展史上的一个波峰,未来人工智能还有很长的路要走。但目前的人工智能发展已经惠及到商业领域,在这样一种技术+商业的结合中,我个人还是很看好这次浪潮的。尤其是在看过《最强大脑》中,百度在图像、音频方面的人工智能技术发展到这样一个水平之后(图像识别已经超超越了人类大脑对图像的识别能力,声音识别也几乎和人类最高水平持平),很希望自己也可以有机会涉足到这个领域中。


机器学习基础入门知识

机器学习是人工智能的一个分支,主要是通过数据+算法来训练得出模型,再用模型来预测数据的一种技术。

刚开始接触机器学习,发现基础理论中好多都是大学里学过的数理知识(一直以来困扰我的“大学为什么要学这些东西”的谜团总算被解开了:)。我个人做了Web开发近十载,大部分是应用级的,很少涉及数理算法,看来今后还要慢慢拾起这些知识。不过刚开始入门可以循序渐进,先弄懂机器学习是怎么回事,动手做一个“Hello world”,然后再逐步深入原理层面的知识。

要涉足机器学习,最好会一种编程语言,这点上我们程序员有先天优势。目前用于机器学习的主流语言是Python和R,R我个人还没研究过,个人觉得Python是一个比较好的选择,流行度高、上手难度低、科学计算类库丰富、语法精简,如果本身就有其他面向对象的编程语言基础,不到一周就可以基本掌握Python了。

机器学习从从业分布来看,可以分成基础算法研究(设计师)和应(ban)用(zhuan)两个领域,其中大部分人都是在应(ban)用(zhuan)这个领域。

如果从技术层面来看,机器学习分成监督学习、无监督学习以及半监督学习。如何来区分呢?首先解释下机器学习中的几个名词。

特性(Features) - 其实就是数据

分类器(Classifier) - 其实就是算法

标签(Labels) - 其实就是种类

模型(Models) - 其实就是最终输出的分类公式

监督学习,就是在有标签的前提下,找到一种最合适的分类器,分析特性和标签之间的关系。
无监督学习,就是没有标签的前提下,将数据进行聚类(Clusting)。
半监督学习,就是部分特性有标签,部分则没有的状况(大部分特性可能是没有标签的情况)下进行分类。

监督学习相对来说最简单,由已知特性和标签,利用合适的分类器训练出模型,再以模型套用到数据中来预测出数据的标签。当然,分类器并不需要我们自己来发明创造,我们大部分人也没这个能力做这些事情,所有的理论研究、科学论证、代码实现都是现成的。Python中有很多相关类库,比如scikit-learn。应用层面的机器学习,其实就是通过不停的调参(收集更多的数据、变换算法、选取合适的特征数据等工作)来找到一种更精准的预测模型的工作。


Hello World In Machine Learning

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwygpp.html