原创:王稳钺 资料来源:单博
人工智能如今已经和人们的生活密不可分。如果对人工智能感兴趣,想要学习人工智能该如何学习呢?
1. 人工智能在哪里?
先从日常生活中的人工智能聊起。淘宝、抖音等软件,它们是一种推荐系统,会推测用户喜欢什么。比如最近天气冷了,可能得想买一件羽绒服,在淘宝搜索以后,就会发现淘宝在最近几天总会推荐相关的产品。阿里云音乐也是一样的原理。比如最近有在听李荣浩的歌,网易云就会推荐一些相关的歌曲。这些例子都是推荐系统相关的,或者也可以称为商业智能。
还有一些计算机视觉相关的应用。比如手机已经可以靠人脸解锁;在高铁站、飞机场安检时,现在都是用人证比对来认证,而这也是机器完成不需要人的参与。在日常生活中,AI已经无处不在。
如果想要就业的话,下图展示了2020年人工智能商业落地成熟企业60强。可以说AI已经与金融、教育、安防、医疗各个行业都已经有所融合和应用。所以其实并不是做CV算法工程师,或者做NLP的算法工程师,才算进入了 AI 行业。有人想要转行进入人工智能行业,其实在不同的领域里面,如果能把人工智能应用在其中,这个就是优势所在。所以也不需要一定要去特别卷的行业中进行竞争,只需要把AI带到自己的行业里面,这就已经是非常的有优势了。
下图展示了三个转行人工智能的主要因素。
2. 认识人工智能
AI的定义其实众和纷纭。其中一种定义是为机器赋予人的智能。为机器赋予人的什么智能呢?其实可以分为三部分,就是像人一样感知、思考和行为。如果一个机器具有这三个或者三个中的一个,它就具有了人工智能。
当谈到人工智能的时候,具体就是在谈两方面:算法工具和硬件系统。算法工包括什么呢?主要就是深度学习和强化学习。硬件系统主要是GPU、智能芯片、云计算等。本文主要讲解算法工具。
深度学习和强化学习是目前这一波人工智能浪潮里面的主要算法,但他们是人工智能的唯一或者说唯二两个算法吗?并不是。在人工智能中有很多与它们处在相同地位的算法,比如遗传算法、专家系统、支持向量机等都是 AI 的算法。人工智能算法不只有深度学习,也不只有是强化学习。
如果想从事AI行业,并长久地以AI为职业的话,就需要多了解一些AI的算法和AI发展的历史,这样非常有助于长久的职业发展。人工智能主要分为四个流派,符号主义、连接主义、统计主义和行为主义。在 AI 诞生之初主要就是靠符号主义起家的。那个时候的科学家们,他们的想法非常的直白。他们就觉得要实现AI,通过逻辑规则就可以实现,比如通过加、减、乘、除、与、或、非等。现在看来,这种方法是行不通的。但是在这种思想的驱动下,计算机诞生了。几乎与符号主义同时提出的是连接主义。连接主义的底层思想认为人具有智能,人的大脑是由神经元构成的。那如果可以让机器模拟人脑的神经元,然后构成神经网络的结构,是不是就可以让机器具有智能了呢?这个是连接主义的思想的基础。行为主义认为人看见了障碍物会躲避。那如果让机器模拟人这种行为,看见障碍物会躲避,看到危险会逃开,机器也有这样的思想觉悟,有这样的行为,那机器也就具有智能。统计主义并不是被提出的,而是被后来归纳的。比如现在的机器学习,它的全称应该叫统计机器学习。他比较典型的代表有概率图模型,SVM支持向量机等等。它主要的驱动力就是让机器或者说让算法自动地从数据中获得知识,由制造智能转变为学习到智能。
借鉴英伟达的总结,人工智能发展经历了大约三个阶段。早期是人工智能,那个时候有科学家预言10 年就能实现强AI。但事实是肯定是实现不了,这也导致了这个 AI 的一个低谷。在 1980 年左右,机器学习开始兴起,统计主义盛行。2010 年之后,就进入了深度学习的时代。因为有了数据的支持,还有算力,尤其是GPU的发展,促进了整个AI的发展。
统计机器学习,就是从数据中挖掘经验信息,通过学习获得智能。通过学习模式可以进行一定的这个划分,比如说监督学学习,无监督学习,还有强化学习。他们解决的问题类型不一样,比如监督学习主要解决分类和回归问题,无监督学习主要解决聚类问题,强化学习主要解决决策问题。如果在实际的过程中,遇到一些问题需要用机器学习来解决,那首先就需要来分辨一下这个实际要解决的问题它到底是一个分类问题还是一个决策问题,然后就可以选择不同类型的算法来进行解决。根据学习的方法可以分为传统的机器学习和深度学习。卷积神经网络和递归神经网络,它们分别适用于空间相关的信号的处理和时间相关的信号的处理。其实递归和卷积是一种嵌入到结构中的先验知识,就是把时间信息和空间信息嵌入到网络结构里面。下图对比了全链接网络,循环神经网络和卷积神经网络的区别。在网络结构上面,他们适用于处理不同的信号结构。
深度学习可以说是近十年的产物,但其实早在1943年,就有科学家提出了人工神经元模型。后来这个罗森布拉特他就提出了感知机。但是在 1969 年的时候,明斯基写了一本书,提出感知机不能解决异或问题,这样一下子就把神经网络给打入了冷宫。因为异货问题在计算机里面是一个非常简单的问题,人们就会觉得连异货问题都解决不了,那还如何解决更复杂的运算呢?所以神经网络就走入发展的低谷。虽然在 1986 年左右,这个Hinton他们提出了反向传播,就是最早的 BP 算法,但也没有把神经网络从水深火热中拯救出来。直到 1998 年的时候,LeCun的CNN手写字符识别才有了一定实用的效果。但是受限于算力、数据,还有算法的学习和调优,整个深度学习其实是没有发展起来的。直到有了ImageNet这种大规模的数据库出现,以及算力的发展,才在 2012 年的IMAGENET挑战赛上面,在图像分类领域有了大幅的进展。
3. 像人一样感知——以人脸识别为例
人脸识别如何像人一样来感知呢?如果用算法来实现人脸识别,需要几步呢?一般需要三步,如果需要加入活体检测的话,就需要四步。第一步就是要检测出人脸。第二步是要识别人脸的关键点。因为如果有人脸是不是正对着摄像头的话,就需要进行矫正,这就需要用到人脸关键点。第三步是识别过程。识别过程主要就是把特征放到这个对比器里,和注册集进行一些距离上的度量。如果比较严谨的话,是不能代刷打卡,所以这种场景下还需要活体检测。
人脸检测是一个什么样的过程呢?图中只有一张人脸,把这个人脸框出来,是一个比较简单的过程,这是一个机器学习的经典例子。但如果是世界上最大的自拍照,其中有许多人脸,把每一张人脸都检测出来,就不是一个简单的问题了。所以这两张图也分别代表着机器学习时代和深度学习时代。
目标检测算法在以前是如何实现的?以前是三步走。第一步是区域建议,第二步是特征表示,第三步是区域分类。就是先画一个框,然后判断是不是,然后提特征,然后最后判断是不是人脸。后来有了深度学习之后,就不需要三步了,先变成两步,最后变成只需一步。两阶段的典型的算法就是RCN系列,一阶段的典型算法有YOLO、SSD系列。
要想用 AI 实现人脸检测,其实只需要十几行的代码。下图展示了利用Open CV和Python实现的人脸检测。只需十几行代码,所以学AI是挺简单的。
4. 像人一样决策&行为——以自动驾驶为例
实现无人驾驶,需要解决哪些问题呢?首先感知过程非常重要,环境感知对适应性、准确性、鲁棒性、实时性要求都非常高。如果感知环节出了问题的话,那后面的认知、决策、控制过程等等都无从谈起。认知过程就是,当看见了障碍物,要对它有一定的认识,要分辨出它是障碍物,并且要躲避。认知需要对抗不确定性,以及抵抗抗干扰。决策主要解决复杂、动态的问题。在复杂的路面交通,如堵车的情况下,如何有效地处理?如果已经决策左转,那这个车辆需要如何控制,包括状态参数等。最后就是执行。执行器需要与硬件系统、机械系统要做一个紧密的配合。当然除了这些算法问题,除此之外,自动驾驶还会有一些其他的问题,比如高精地图、定位感知、预测规划等等,也都是其他需要解决的一些问题。
在自动驾驶中要做感知的话,比较常用或者基本上都在采用这样的技术路线,就是多传感器信息融合。包括单目相机、双目相机、毫米波雷达和激光雷达,主要是类似于车的眼睛的装置,都要进行信息的融合,来实现更好的目标检测。
其实,实现人脸识别和自动驾驶都不困难,学习AI也不需要非常高的基础。如果对AI感兴趣,欢迎尝试。
|