有很多人想入门人工智能,但是不知从和下手,我专门咨询了几位打算入门的初学者,总结之后有这么几点:总览人工智能基础性概念逐步深入应用场景如何使用应“广大”朋友需求,从最简单的为大家介绍关于人工智能的东西,目前还不会太深入细节。我把人工智能相关的东西总结成了上面这张图,现在一一为大家讲解一下。人工智能交流Q群:361598961 一个人坚持学习不容易,进来一起与大牛交流学习人工智能知识+资料领取
编程语言 在人工智能领域,Python一般都作为首选编程语言,当然也有很多人喜欢用R,不过R更多的用在数据分析上,除此之外还有Java(Deeplearning4j框架),Scala(Spark MLlib),当然还有新兴的Julia(号称为数据科学和人工智能而生的语言),至于它会不会取代Python还是靠时间去证明。而在Python中,数学库scipy和机器学习库sklearn在实际中都有很大用处。 数学知识 人工智能当然离不开数学知识啦,但是数学不好的小伙伴不用担心,作为入门的话,只要知道如何求导和矩阵乘法就能理解很大一部分原理了。 千呼万唤始出来:机器学习 终于提到传说中的“机器学习”啦!那么“机器学习”是什么意思呢?通俗的说就是教计算机去学习,而每个人对“机器学习”的定义都不尽相同,那么来看看下面几种人们给出的定义: Langley(1996):机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能。Machine learning is a science of the artificial. The field’s main objects of study are artifacts, specifically algorithms that improve their performance with experience.Tom Mitchell(1997):计算机程序利用经验E学习任务T,性能是P,如果针对任务T的性能P随着经验E不断增长,则称为机器学习。A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.Alpaydin(2004):机器学习是用数据或以往的经验,以此优化计算机程序的性能标准。Machine learning is programming computers to optimize a performance criterion using example data or past experience. 总结一下就是,计算机通过获取更多的经验,而取得某种任务上的性能提升,就叫做机器学习。那么看看上面那张图中列出的内容。 特征工程 什么叫做特征?我们做这样类似的思考,对于狗我们可以怎么描述它,耳朵、鼻子、尾巴、腿是什么样的,叫声是什么样的,而对于猫,它的耳朵、鼻子、尾巴、腿是什么样的,当我们的大脑把这些属性通过某种方式提取出来之后,就形成了对狗、猫的一些特征。再举个具体点的例子,周志华老师的《机器学习》通篇都是以西瓜为例(因此这本书被称为西瓜书),那么如何获取一个西瓜的特征呢,我们可以通过外在颜色的深浅,拍起来声音是否沉闷,瓜蒂是否卷曲等对于西瓜各个属性不同的考量来得到一个西瓜的特征,并判断西瓜的好坏。我们考量的每一个属性,都是一个特征,这个属性的取值(颜色深浅,声音是否沉闷,瓜蒂是否卷曲)就是一个特征值,而一个西瓜的所有特征值组合起来就是一个特征向量。而如何获得更优质的特征使得学习更有利,就是特征工程了,这里先不详细讲述。 对于学习来说,一般可分为两种学习方式。 监督式学习 我们都做过学生,课堂上由老师教授知识我们学习,或者通过阅读进行学习知识的方式,就是一种监督式学习方式。举个简单的例子,在教小孩看图识动物的时候,首先会给几张图出来,然后一一告诉他们,这个是“狗”,这个是“猫”,这个是“马”等等,小孩通过观看图片,大脑从图片中获取了高度抽象的特征之后,再加上教给他们的哪些是“狗”,是“猫”,是“马”,大脑于是把这些高度抽象的特征与“狗”,“猫”,“马”对应起来。当他们看到另外一张以前没见过的狗的图片的时候,他们就会把图像里这种特征与“狗”对应起来了,于是他们知道这是一条狗。总结来说就是,给出一些数据(图像),并已经知道这些数据属于什么类别(狗,猫,马),从中进行学习的方式,就是监督式学习。 监督式学习中可以分为分类(结果取值不连续)、回归(结果取值是连续的)两种任务。比如区分一张图片里的动物是狗还是猫,这就是一个分类任务,而预测房价等这种在连续范围内取值的任务,被称为回归。监督学习具体包含哪些算法可以参考上面的图,这里先不做详细介绍。 非监督式学习 与监督式学习不同,在非监督式学习中,并没有“老师”这个角色,需要通过自己从数据中进行学习出一些特性。 比如上图,是一个十分典型的聚类任务,这里并没有给出每一个卡通人物是什么,但是通过非监督学习的方式,可以将具有类似属性的个体聚集在一起,比如“鸭子”归在一起,“老鼠”归在一起,“兔子”归在一起。值得注意的是,算法并不知道归在一起的是鸭子还是老鼠还是兔子,它只知道归在一起的具有相比其他个体来说,更为相似的部分。而如果想要知道归在一起的都是些什么,可以使用一些启发式的方法,这有点涉及到半监督学习了,这里先不深入。 犹抱琵琶半遮面:深度学习 出了一个机器学习,又来一个深度学习,那么,什么叫做“深度学习”呢。“深度学习”主要体现在“深度”两个字。说深度学习,肯定离不开人工神经网络(不是大脑的神经网络)。人们在将人工神经网络的时候,经常借鉴人脑的神经元组成的网络进行类比,但这种类比是不准确的,人工神经网络只是借鉴了人脑神经网络中兴奋传递的方式,而人们对人脑神经网络的工作方式还有很多不明白之处,并且神经冲动的传递是单向的,这与人工神经网络的数据前向传播、梯度的反向传播这种双向传播方式有很大不同。因此把人工神经网络类比成人脑神经网络实际上是不准确的。 那么什么是人工神经网络(以下简称神经网络),我们来看一副图: 图中的每一个圈圈是一个神经元节点,箭头方向为数据的传播方向,它包含输入层,隐藏层(多个),输出层,如上图中的输入层可以接收4种特征的数据输入,然后传给后面的层进行处理最后输出一个结果。上图中的每一个神经元之间都与下一层的神经元相连,我们称这是一个全连接的神经网络,那么这个网络一共有几层呢,事实上对于如何计算网络的层数是有分歧的,不过一般来说不会将输入层不统计在内,因为输入并不活动,只是将数据输入,因此,上图是一个三层的全连接神经网络。 现在我们对神经网络有了个初步的了解,那么做这样的设想,如果隐藏层有很多了呢,比如上百个隐藏层,这样整个网络从输入到输出,看起来就很“深”了,这就是一个深度神经网络啦,而使用这种深度神经网络进行学习的方式,就叫做深度学习。 这里先不详细讲述深度学习的前馈传播、反向传播、正则化、优化算法、损失函数等内容。我们先来看看卷积神经网络(什么是卷积神经网络先略过)可以做什么,在图像方面,就不可能不用到卷积神经网络,如今基于卷积神经网络已经产生出来很多结构各异,性能优越的网络,广泛应用于图像识别,目标定位等图像处理方面。而基于序列的模型,在处理序列形式的数据上也十分出色,比如语音识别,机器翻译,自然语言处理等。用奖励与惩罚的方式的强化学习,在游戏AI方面的成果,AlphaGo大家也一定听说过。而有鲁迅先生的“拿来主义”思想的迁移学习,也是十分常用的做法,将从其他领域学习到的已有的东西运用于一个新的方面,加快了学习方式。
|