入门人工智能
一、引言1、什么是人工智能?如果你是一个新技术的爱好者或者从事工科学习的学生,你一定听说过人工智能(AI),对于什么是人工智能,百度是这样子给出的定义:
人工智能(ArtificialIntelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大,可以设想,未来人工智能带来的科技产品,将会是人类智慧的“容器”。人工智能可以对人的意识、思维的信息过程的模拟。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。人工智能是一门极富挑战性的科学,从事这项工作的人必须懂得计算机知识,心理学和哲学。人工智能是包括十分广泛的科学,它由不同的领域组成,如机器学习,计算机视觉等等,总的说来,人工智能研究的一个主要目标是使机器能够胜任一些通常需要人类智能才能完成的复杂工作。但不同的时代、不同的人对这种“复杂工作”的理解是不同的。2017年12月,人工智能入选“2017年度中国媒体十大流行语”。----来自百度
再就是按照UCLA教授朱松纯教授的定义,AI大概可以分为一下六类:
(1)计算机视觉->人类的视觉能力(2)自然语言处理->人类的语言文字能力(3)语音识别与生成->人类的听与说能力(4)机器人学->人类的运动能力和运动智能(5)博弈与合作->人类对抗与合作的能力(6)机器学习->人类的学习能力
2、实际应用机器视觉,指纹识别,人脸识别,视网膜识别,虹膜识别,掌纹识别,专家系统,自动规划,智能搜索,定理证明,博弈,自动程序设计,智能控制,机器人学,语言和图像理解,遗传编程等。
3、学科范畴人工智能是一门边缘学科,属于自然科学和社会科学的交叉。
4、涉及学科哲学和认知科学,数学,神经生理学,心理学,计算机科学,信息论,控制论,不定性论
5、研究范畴自然语言处理,知识表现,智能搜索,推理,规划,机器学习,知识获取,组合调度问题,感知问题,模式识别,逻辑程序设计软计算,不精确和不确定的管理,人工生命,神经网络,复杂系统,遗传算法
6、意识和人工智能人工智能就其本质而言,是对人的思维的信息过程的模拟。
对于人的思维模拟可以从两条道路进行,一是结构模拟,仿照人脑的结构机制,制造出“类人脑”的机器;二是功能模拟,暂时撇开人脑的内部结构,而从其功能过程进行模拟。现代电子计算机的产生便是对人脑思维功能的模拟,是对人脑思维的信息过程的模拟。
弱人工智能如今不断地迅猛发展,尤其是2008年经济危机后,美日欧希望借机器人等实现再工业化,工业机器人以比以往任何时候更快的速度发展,更加带动了弱人工智能和相关领域产业的不断突破,很多必须用人来做的工作如今已经能用机器人实现。
而强人工智能则暂时处于瓶颈,还需要科学家们和人类的努力。
二、介绍回到我们文章的正题,实现人工智能(AI)的方法:机器学习、深度学习。
1、机器学习:一种实现人工智能的方法机器学习最基本的做法,是使用算法来解析数据、从中学习,然后对真实世界中的事件做出决策和预测。与传统的为解决特定任务、硬编码的软件程序不同,机器学习是用大量的数据来“训练”,通过各种算法从数据中学习如何完成任务。举个简单的例子,当我们浏览网上商城时,经常会出现商品推荐的信息。这是商城根据你往期的购物记录和冗长的收藏清单,识别出这其中哪些是你真正感兴趣,并且愿意购买的产品。这样的决策模型,可以帮助商城为客户提供建议并鼓励产品消费。机器学习直接来源于早期的人工智能领域,传统的算法包括决策树、聚类、贝叶斯分类、支持向量机、EM、Adaboost等等。从学习方法上来分,机器学习算法可以分为监督学习(如分类问题)、无监督学习(如聚类问题)、半监督学习、集成学习、深度学习和强化学习。传统的机器学习算法在指纹识别、基于Haar的人脸检测、基于HoG特征的物体检测等领域的应用基本达到了商业化的要求或者特定场景的商业化水平,但每前进一步都异常艰难,直到深度学习算法的出现。
2、深度学习:一种实现机器学习的技术深度学习本来并不是一种独立的学习方法,其本身也会用到有监督和无监督的学习方法来训练深度神经网络。但由于近几年该领域发展迅猛,一些特有的学习手段相继被提出(如残差网络),因此越来越多的人将其单独看作一种学习的方法。最初的深度学习是利用深度神经网络来解决特征表达的一种学习过程。深度神经网络本身并不是一个全新的概念,可大致理解为包含多个隐含层的神经网络结构。为了提高深层神经网络的训练效果,人们对神经元的连接方法和激活函数等方面做出相应的调整。其实有不少想法早年间也曾有过,但由于当时训练数据量不足、计算能力落后,因此最终的效果不尽如人意。深度学习摧枯拉朽般地实现了各种任务,使得似乎所有的机器辅助功能都变为可能。无人驾驶汽车,预防性医疗保健,甚至是更好的电影推荐,都近在眼前,或者即将实现。
3、三者的区别和联系机器学习是一种实现人工智能的方法,深度学习是一种实现机器学习的技术。我们就用最简单的方法——同心圆,可视化地展现出它们三者的关系。
目前,业界有一种错误的较为普遍的意识,即“深度学习最终可能会淘汰掉其他所有机器学习算法”。这种意识的产生主要是因为,当下深度学习在计算机视觉、自然语言处理领域的应用远超过传统的机器学习方法,并且媒体对深度学习进行了大肆夸大的报道。深度学习,作为目前最热的机器学习方法,但并不意味着是机器学习的终点。起码目前存在以下问题:
深度学习模型需要大量的训练数据,才能展现出神奇的效果,但现实生活中往往会遇到小样本问题,此时深度学习方法无法入手,传统的机器学习方法就可以处理;有些领域,采用传统的简单的机器学习方法,可以很好地解决了,没必要非得用复杂的深度学习方法;深度学习的思想,来源于人脑的启发,但绝不是人脑的模拟,举个例子,给一个三四岁的小孩看一辆自行车之后,再见到哪怕外观完全不同的自行车,小孩也十有八九能做出那是一辆自行车的判断,也就是说,人类的学习过程往往不需要大规模的训练数据,而现在的深度学习方法显然不是对人脑的模拟。三、入门作为一个新技术的爱好者,相信每一个人都跟我一样,想要接触新技术,但又不知道如何入手,接下来就给大家一些推荐:
1、书籍《统计学习方法》:李航博士的经典教材。用最精炼的语言描述机器学习算法,转行AI必读书籍。
《机器学习》:周志华教授的西瓜书。统计学习方法涵盖面太窄,配合西瓜书来扩展宽度。
《python机器学习及实现》:适合入门,学习曲线平滑,理论书看累了,就跟着这本书打一遍代码,对kaggle就会大致的了解。
《集体编程的智慧》:有各种算法的实现代码,配合理论书看,能更深入的理解算法。
《PRML》:机器学习经典,贝叶斯经典。
《神经网络与深度学习》:邱老师的开源书。
《深度学习》:“花书”,也算是深度学习的经典书籍了。
《机器学习实战》。
《动手学深度学习》。
《百面机器学习》:俗称葫芦书,已提问的方式归纳机器学习面试中的种种知识点,面算法建议准备一本。
《剑指offer》:面试必刷书籍,因为很多面试官都是从里面找题。
2、视频斯坦福CS229机器学习(MachineLearning)-吴恩达(AndrewNg):2009版视频:斯坦福课堂视频,内容比较充实,但要看板书,而且有些没必要的课堂互动,容易分心。
2014版视频:这是吴恩达在coursera上的授课视频,一段视频一个主题,更加精炼清晰。
机器学习基石和机器学习技法-林轩田:吴恩达的课程一大问题是英文授课,有些小伙伴畏惧英语,就退缩了。这样的话,台湾大学林轩田老师的机器学习基石及技法是非常不错的选择。这门课深度深一些,更数学一些,会讲一些非常基础的机器学习理论,如VC维,KKT条件等。我的建议是一开始听不懂直接过,学完之后再来反刍。
机器学习与神经网络-Hinton:讲神经网络恐怕没有比祖师爷更好的了,Hinton老爷子的思想非常深邃,换句话说可能不太好懂,但这不影响这是非常优秀的课程。
斯坦福CS231-深度学习计算机视觉-李飞飞:计算机视觉无疑是这波深度学习浪潮的弄潮儿,搞计算机视觉方向经典的入门视频,里面会介绍各式各样的卷积神经网络。
斯坦福CS224-深度学习自然语言处理-ChrisManning:人工智能另外一个重要领域是自然语言处理,搞这个方向经典的入门视频莫过于CS224。
机器学习-李宏毅:上面的视频虽然经典,但是英文授课,这让很多小宝宝很崩溃,但没事,来看台湾大学的深度学习吧!
机器学习-白板推导系列:b站推出的教学视频,条理清晰,重点明确,而且每个章节讲解才20分钟左右,up主语速偏慢,1.5或2倍速看也没有问题,非常适合入门。
四、建议学习再多,不如去亲手做一下,无论是项目还是竞赛。
python人工智能算法的方式
第01课:从人工智能到机器学习
一、机器学习的背景
大家都说人工智能是综合的学科,而机器学习就是人工智能的大脑。它通过对数据的处理,不断地变得更好和更强,做出各种各样的判断和决策。
人工智能从1956年提出概念以来经历了漫长的发展历程,中间有两次高峰,两次低谷,现在是第三次高峰,而带来发展起伏的是机器学习算法的变迁。
第三次高峰开始的标志是2006年的时候,机器学习算法中的神经网络方向出现了一个突破,多伦多大学教授GeoffreyHinton提出了“深度学习”的概念。在接下来的几年中,因为计算机性能的提升和数据量的急速增加,深度学习技术的实用性越来越强。
人工智能发展路径
有人说,既然前两次高峰都失败了,这第三次高峰是不是也只是“狼来了”呢?老套的台词:“这一次不一样”。
其实我们所做的一切AI,都是有期待的,我们期待的是什么呢?期待它能代替人。
机器代替人的重要标准是什么?就是比人更好。很遗憾,前两次的浪潮,计算机只是证明它比人算的快,它没有证明它比人算的准。但这一次,深度学习改变了这一切,人工智能全面超越人类。
拿简历分类来说,一般HR人工分类的准确程度大概是85%,之前用SVM(SupportVectorMachine,支持向量机)做准确率是60%多,还是不如人的。而现在用深度学习算法,准确率可以超过90%,比人要准确的多,而且速度是人的N倍。
观看一下身边的改变:当我们打开支付宝时,机器学习会给我们做面部识别;当我们浏览电商网站时,机器学习算法预测我们对哪种商品更感兴趣,然后显示给我们;当我们打开今日头条时,机器学习算法根据我们的浏览习惯给我们推荐可能感兴趣的新闻。可以说,机器学习早已渗入我们生活的方方面面。
所以,这次“狼”真的来了。
人工智能、机器学习、深度学习,这三者是什么关系?
我们可以参照下面这张图:
人工智能、机器学习、深度学习的关系
机器学习是实现人工智能的一种方法,机器学习有很多的细分领域,其中有一个领域是人工神经网络,而深度学习是人工神经网络这个领域的一个分支。
二、什么是机器学习呢?
首先我们来看一下人类的学习,人类的学习是一个人根据自己的经验,对一类问题形成认知或者总结出某些规律,然后用这些认知和规律来解决类似问题的过程。
但人的记忆很容易忘记,而且所有的知识要从头开始学,这是硬伤。但机器没有这个问题,复制粘贴马上就有了两份知识,而且除非硬盘损坏,否则不会丢失。
所以我们就希望,如果机器也能从知识里发现规律,并能自己学习,那就太好了。经过计算机科学家的不断努力,终于成功地发明了一些算法,使得计算机可以从现有的数据中学习到规律,并且可以随着输入的数据数量增长而提升学习效果,这就是机器学习。
网上有一张图,很有意思,生动的表明了不同的人对机器学习的理解:
机器学习是什么
做机器学习,大部分工作其实是编程。通俗地讲:机器学习是一种计算机程序,可以从现有的经验中学习如何完成某项任务,并且随着经验的增加,性能也随之提升。
因此,经验,也就是专业人士说的“数据”,对于机器学习来说,就是最重要的。就像火箭要起飞需要燃料,人要变得有智慧需要阅历一样,机器学习需要海量的数据。AlphaGo打败李世石不是因为它聪明,而是因为它通过自己和自己下棋的方式,已经相当于下了一万年以上的棋,和一个只下了几十年的人比,自然是有着不可比拟的优势,它打败李世石依靠的是无可比拟的经验。
三、机器学习有哪些分类?
机器学习的范围很广,主要分为三大类:监督学习(SupervisedLearning)、非监督学习(UnsupervisedLearning)和强化学习(ReinforcementLearning)。
监督学习:监督学习学的是带标准答案的样本。拿猫和狗的识别来举例子。算法看一张图就告诉它,这是猫;再看一张图片,告诉它这也是猫,再看一张图,告诉它这是狗,如此往复。当它看了几十万张猫和狗的图片后,你再给它一张陌生的猫或者狗的图片,就基本能“认”出来,这是哪一种。这样的学习方法很有可能造成模型把所有答案都记了下来,但碰到新的题目又不会了的情况,这种情况叫做“过拟合”。
非监督学习:非监督学习学的是没有标准答案的样本。同样拿猫和狗的识别举例。算法要自己去寻找这些图片的不同特征,然后把这些图片分为两类。它实际上不知道这两类是什么,但它知道这两类各有什么特征,当再出现符合这些特征的图片时它能识别出来,这是第一类图片,那是第二类图片。
强化学习:强化学习的学习方式是通过不断做出决策并获得结果反馈后,学会自动进行决策,得到最优结果。我们小时候,看到马戏团的猴子居然会做算术题,感觉到很惊讶,这是怎么做到的呢?其实就是每次拿对了数字的时候,训练人员就给它一些食物作为奖励,这些奖励让他“知道”,这么做是“对的”,如果拿错了,可能就会有惩罚,这些惩罚就是要让它“知道”,这样做是“错的”。如此一来,经过不断的训练,猴子就“会”做算术题了。
四、机器学习有哪些常见算法呢?
这里我们对常见的机器学习算法进行简单的介绍,不求精准,只求容易理解。
1,决策树
决策树是一种用于对数据进行分类的树形结构。比如我们要买一件衣服,如果喜欢则进入下一步,看价格,如过价格合适,就看是否有合适的尺码,有合适的尺码,就下单购买。用决策树表示如下图:
买衣服的决策树
2,线性回归
试想,在纸上有很多的点,我们打算画一条直线,让这些点到这条直线的距离之和最短,怎么找到这条直线呢?这个方法就是线性回归。画一条线,让样本以及后面预测的点都尽量在这条线附近。
3,支持向量机和核函数
支持向量机是一种分类方法,力求在样本中划出一道线,让线距离两边样本的距离最大。它在文本分类、图像分类有较多应用。如果桌子上有红豆和绿豆,我们可以把SVM想象成一个忍者,他画了一条线,把红豆和绿豆区分开来。
支持向量机(SVM)
但有的时候豆子掺和在了一起,怎么办呢?我们可以针对红豆和绿豆的不同特性,把这些豆子都通过核函数进行计算,把他们映射到高维空间中去,这样豆子自然就被分开了。
加入核函数后的SVM
4,神经网络
神经网络也是一种分类器。它是由很多个虚拟的神经元组成的一个网络,我们可以把一个神经元看做是一个分类器,那很多个神经元组成的网络就能对样本进行很多次分类。还是拿忍者和豆子区分举例子。一个神经元,相当于忍者可以划一刀,多个神经元就可以划多刀,划的越多,自然分的越细。这里只是做简单的介绍,大家有概念即可,更详细的在后面会更新。
神经网络
5,朴素贝叶斯分类器
贝叶斯是一个定理,它的意思是:当你不能准确知悉一个事物的本质时,你可以依靠与事物特定本质相关的事件出现的多少去判断其本质属性的概率。
比如说,我们要识别一封邮件是不是垃圾邮件。我们随机挑选出100封垃圾邮件,分析它的特征,我们发现“便宜”这个词出现的频率很高,100封垃圾邮件里,有40封出现了这个词。那我们就以这个认知为依据,得出结论:如果出现了“便宜”,那这封邮件有40%的概率是垃圾邮件。
当我们找到若干个这样的特征,然后用这些特征进行组合后,可以对某些邮件进行判断,它是垃圾邮件的概率超过了我们设定的阈值,我们就自动把这些邮件过滤掉,减少用户受到的打扰。这就是大部分垃圾邮件过滤的原理。
6,聚类
聚类是一种非监督学习的方式。简单的说,就是通过不断的迭代计算,把数据分成若干个组,使得这个组里的都是类似的数据,而不同组之间的数据是不相似的。
聚类
7,强化学习
在没有给出任何答案的情况下,先进行一些尝试,通过尝试所得到的回报,来确定这个尝试是否正确,由这一系列的尝试来不断调整和优化算法,最后算法知道在某种情况下,采取何种动作可以得到最好的结果。他的本质是解决“决策问题”,就是通过不断做出决策并获得结果反馈后,学会自动进行决策,得到最优结果。比如上面说过的猴子“学会”做算术题的过程。
8,集成学习
我们在做机器学习的时候,希望能做出各个方面表现都比较好的模型。但常常现实是我们的模型是有偏好的,可能只对某一些情况效果比较好,这个时候我们就希望把若干个这样的模型组合起来,得到一个更好更全面的模型,这种方法,就叫做集成学习。