欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

AI---人工智能学习

程序员文章站 2022-06-12 17:01:22
...

写在前面:

人工智能主要研究如何让机器像人一样能够感知、获取知识、储存知识、推理思考、学习、行动等能力,并最终创建拟人、类人、或超越人的智能系统。

1.涉及领域
2.学习方法
3.发展前景

涉及领域

人工智能是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学,是计算机科学的一个分支,其研究的主要内容包括深度学习、自然语言处理、计算机视觉、智能机器人、自动程序设计、数据挖掘等方面。

1.深度学习
深度学习是基于现有的数据进行学习操作,是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。深度学习是无监督学习的一种。

2.自然语言处理
自然语言处理是用自然语言同计算机进行通讯的一种技术。人工智能的分支学科,研究用电子计算机模拟人的语言交际过程,使计算机能理解和运用人类社会的自然语言如汉语、英语等,实现人机之间的自然语言通信,以代替人的部分脑力劳动,包括查询资料、解答问题、摘录文献、汇编资料以及一切有关自然语言信息的加工处理。例如生活中的电话机器人的核心技术之一就是自然语言处理。

3.计算机视觉
计算机视觉是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。
计算机视觉就是用各种成象系统代替视觉器官作为输入敏感手段,由计算机来代替大脑完成处理和解释。计算机视觉的最终研究目标就是使计算机能像人那样通过视觉观察和理解世界,具有自主适应环境的能力。计算机视觉应用的实例有很多,包括用于控制过程、导航、自动检测等方面。

4.智能机器人
如今我们的身边逐渐开始出现很多智能机器人,他们具备形形色色的内部信息传感器和外部信息传感器,如视觉、听觉、触觉、嗅觉。除具有感受器外,它还有效应器,作为作用于周围环境的手段。这些机器人都离不开人工智能的技术支持。
科学家们认为,智能机器人的研发方向是,给机器人装上“大脑芯片”,从而使其智能性更强,在认知学 习、自动组织、对模糊信息的综合处理等方面将会前进一大步。

5.自动程序设计
自动程序设计是指根据给定问题的原始描述,自动生成满足要求的程序。它是软件工程和人工智能相结合的研究课题。自动程序设计主要包含程序综合和程序验证两方面内容。前者实现自动编程,即用户只需告知机器“做什么”,无须告诉“怎么做”,这后一步的工作由机器自动完成;后者是程序的自动验证,自动完成正确性的检查。其目的是提高软件生产率和软件产品质量。
自动程序设计的任务是设计一个程序系统,接受关于所设计的程序要求实现某个目标非常高级描述作为其输入,然后自动生成一个能完成这个目标的具体程序。该研究的重大贡献之一是把程序调试的概念作为问题求解的策略来使用。

6.数据挖掘
数据挖掘一般是指从大量的数据中通过算法搜索隐藏于其中信息的过程。它通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。它的分析方法包括:分类、估计、预测、相关性分组或关联规则、聚类和复杂数据类型挖掘。

学习方法

我把深度学习的入门过程整理成如图所示的7个步骤。

下面就来详细介绍一下这7个步骤。

1.学习或者回忆一些数学知识

因为计算机能做的就只是计算,所以人工智能更多地来说还是数学问题[1]。我们的目标是训练出一个模型,用这个模型去进行一系列的预测。于是,我们将训练过程涉及的过程抽象成数学函数:首先,需要定义一个网络结构,相当于定义一种线性非线性函数;接着,设定一个优化目标,也就是定义一种损失函数(loss function)。

而训练的过程,就是求解最优解及次优解的过程。在这个过程中,我们需要掌握基本的概率统计、高等数学、线性代数等知识,如果学过就最好,没学过也没关系,仅仅知道原理和过程即可,有兴趣的读者可以涉猎一些推导证明。

2.掌握经典机器学习理论与基本算法

这些基本算法包括支持向量机、逻辑回归、决策树、朴素贝叶斯分类器、随机森林、聚类算法、协同过滤、关联性分析、人工神经网络和BP算法、PCA、过拟合与正则化等。[2]

在本书“实战篇”的第8章到第13章的例子中也有贯穿这些算法知识,保证读者可以用它写出一个小的TensorFlow程序。

3.掌握一种编程工具(语言)

Python语言是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python是很多新入门的程序员的入门编程语言,也是很多老程序员后来必须掌握的编程语言。我们需要重点掌握使用线性代数库和矩阵的操作,尤其是Numpy、Pandas第三方库,也要多试试机器学习的库,如sklearn,做一些SVM及逻辑回归的练习。这对直接上手写TensorFlow程序大有裨益。

有些工业及学术领域的读者还可能擅长MATLAB或R,其实现算法的思想和Python也很类似。

同时考虑到许多读者是使用C++、Java、Go语言的,TensorFlow还提供了和Python“平行语料库”的接口。虽然本书是主要是基于Python讲解的,对于其他语言的原理和应用API也都非常类似,读者把基础掌握后,只需要花很短的时间就能使用自己擅长的语言开发。另外对于Java语言的同学,本书第18章会讲解TensorFlowOnSpark,第19章会讲到TensorFlow的移动端开发。

4.研读经典论文,关注最新动态和研究成果

一些经典论文是必读的。例如,要做手写数字识别,若采用LeNet,要先阅读一下LeNet的学术论文;要做物体目标检测的训练,若选定MSCNN框架,可以先读MSCNN相关的论文。那么,论文从哪里找呢?那么多论文应该读哪篇呢?

下面以GoogleNet的TensorFlow实现为例。在GitHub[3]上,一般在开头的描述中就会说明这个模型所依据的论文,如图所示。

顺着这篇论文阅读,可以大致了解这个网络的实现原理,对迅速上手应用有很大的作用。同时,我在第6章也会对LeNet、AlexNet、ResNet这几个常见的网络进行讲解,帮助读者举一反三。

很多做模式识别的工作者之所以厉害,是因为他们有过很多、很深的论文积累,对模型的设计有很独到的见解,而他们可能甚至一行代码也不会写,而工程(写代码)能力在工作中很容易训练。许多工程方向的软件工程师,工作模式常常在实现业务逻辑和设计架构系统上,编码能力很强,但却缺少论文积累。同时具有这两种能力的人,正是硅谷一些企业目前青睐的人才。

读者平时还可以阅读一些博客、笔记,以及微信公众号、微博新媒体资讯等,往往一些很流行的新训练方法和模型会很快在这些媒体上发酵,其训练神经网络采用的一些方法可能有很大的启发性。

5.自己动手训练神经网络

接着,就是要选择一个开源的深度学习框架。选择框架时主要考虑哪种框架用的人多。人气旺后,遇到问题很容易找到答案;GitHub上关于这个框架的项目和演示会非常多;相关的论文也会层出不穷;在各个QQ群和微信群的活跃度会高;杂志、公众号、微博关注的人也会很多;行业交流和技术峰会讨论的话题也多;也能享受到国内外研究信息成果的同步。

目前这个阶段,TensorFlow因为背靠谷歌公司这座靠山,再加上拥有庞大的开发者群体,而且采用了称为“可执行的伪代码”的Python语言,更新和发版速度着实非常快。目前TensorFlow已经升级到1.0版,在性能方面也有大幅度提高,而且新出现的Debugger、Serving、XLA特性也是其他框架所不及的。此外,一些外围的第三方库(如Keras、TFLearn)也基于它实现了很多成果,并且Keras还得到TensorFlow官方的支持。TensorFlow支持的上层语言也在逐渐扩大,对于不同工程背景的人转入的门槛正在降低。

在GitHub[4]上有一个关于各种框架的比较,从建模能力、接口、模型部署、性能、架构、生态系统、跨平台等7个方面进行比较,TensorFlow也很占综合优势。截至2017年1月,TensorFlow的star数已经超过了其他所有框架的总和,如图1-8所示。

因此,从目前来看,投身TensorFlow是一个非常好的选择,掌握TensorFlow在找工作时是一个非常大的加分项。

接下来就是找一个深度神经网络,目前的研究方向主要集中在视觉和语音两个领域。初学者最好从计算机视觉入手,因为它不像语音等领域需要那么多的基础知识,结果也比较直观。例如,用各种网络模型来训练手写数字(MNIST)及图像分类(CIFAR)的数据集。

6.深入感兴趣或者工作相关领域

人工智能目前的应用领域很多,主要是计算机视觉和自然语言处理,以及各种预测等。对于计算机视觉,可以做图像分类、目标检测、视频中的目标检测等;对于自然语言处理,可以做语音识别、语音合成、对话系统、机器翻译、文章摘要、情感分析等,还可以结合图像、视频和语音,一起发挥价值。

更可以深入某一个行业领域。例如,深入医学行业领域,做医学影像的识别;深入淘宝的穿衣领域,做衣服搭配或衣服款型的识别;深入保险业、通信业的客服领域,做对话机器人的智能问答系统;深入智能家居领域,做人机的自然语言交互;等等。

7.在工作中遇到问题,重复前六步

在训练中,准确率、坏案例(bad case)、识别速度等都是可能遇到的瓶颈。训练好的模型也不是一成不变的,需要不断优化,也需要结合具体行业领域和业务进行创新,这时候就要结合最新的科研成果,调整模型,更改模型参数,一步步更好地贴近业务需求。

要想入门深度学习,需要两个工具,即算法知识和大量的数据,外加一台计算机,如果有GPU就更好了,但是因为许多入门初学者的条件有限,没有GPU也可以,本书的许多讲解都是基于Mac笔记本完成的。

发展前景

趋势一:人工智能技术进入大规模商用阶段,人工智能产品全面进入消费级市场。
中国通信巨头华为已经发布了自主研发的人工智能芯片并将其应用在旗下智能手机产品中,苹果公司推出的iPhone X也采用了人工智能技术实现面部识别等功能。三星最新发布的语音助手Bixby则从软件层面对长期以来停留于“你问我答”模式的语音助手做出升级。人工智能借由智能手机已经与人们的生活越来越近。
在人形机器人市场,日本的软银公司研发的人形情感机器人Pepper从2015年6月份开始每月面向普通消费者发售1000台,每次都被抢购一空。人工智能机器人背后隐藏着的巨大商业机会同样让国内创业者陷入*,粗略统计目前国内人工智能机器人团队超过100家。图灵机器人CEO俞志晨相信未来几年:“人们将会像挑选智能手机一样挑选机器人。”
在我看来,售价并非人工智能机器人难以打开消费市场的关键,因为随着产业和技术走向成熟,成本降低是必然趋势,同时市场竞争因素也将进一步拉低人工智能机器人产品的售价。吸引更多开发者,丰富产品功能和使用场景才是打开市场的关键。另外一个好的信号是,人工智能机器人正在引起商业巨头们的兴趣。
零售巨头沃尔玛去年开始与机器人公司Five Elements合作,将购物车升级为具备导购和自动跟随功能的机器人。中国的零售企业苏宁也与一家机器人公司合作,将智能机器人引入门店用于接待和导购。餐饮巨头肯德基也曾与百度合作,在餐厅引入机器人度秘来实现智能点餐。上月19日,情感机器人Pepper也开始出现在软银的各大门店,软银移动业务负责人认为商业领域智能机器人很快将进入快速发展期。
在商业服务领域的全面应用,正为人工智能的大规模商用打开一条新的出路。或许人工智能机器人占领商场等公共场所会比占领我们的客厅要来得更早一些。

趋势二:基于深度学习的人工智能的认知能力将达到人类专家顾问级别。
“认知专家顾问”在Gartner的报告中被列为未来2-5年被主流采用的新兴技术,这主要依赖于机器深度学习能力的提升和大数据的积累。
过去几年人工智能技术之所以能够获得快速发展,主要源于三个元素的融合:性能更强的神经元网络、价格低廉的芯片以及大数据。其中神经元网络是对人类大脑的模拟,是机器深度学习的基础,对某一领域的深度学习将使得人工智能逼近人类专家顾问的水平,并在未来进一步取代人类专家顾问。当然,这个学习过程也伴随着大数据的获取和积累。
事实上在金融投资领域,人工智能已经有取代人类专家顾问的迹象。在美国,从事智能投顾的不仅仅是betterment、wealth front这样的科技公司,老牌金融机构也察觉到了人工智能对行业带来的改变。高盛和贝莱德分别收购了Honest Dollar与Future Advisor,苏格兰皇家银行也曾宣布用智能投顾取代500名传统理财师的工作。
国内一家创业团队目前正在将人工智能技术与保险业相结合,在保险产品数据库基础上进行分析和计算搭建知识图谱,并收集保险语料,为人工智能问答系统做数据储备,最终连接用户和保险产品。这对目前仍然以销售渠道为驱动的中国保险市场而言显然是个颠覆性的消息,它很可能意味着销售人员的大规模失业。
关于人工智能的学习能力,凯文•凯利曾形象地总结说:“使用人工智能的人越多,它就越聪明。人工智能越聪明,使用它的人就越多。”就像人类专家顾问的水平很大程度上取决于服务客户的经验一样,人工智能的经验就是数据以及处理数据的经历。随着使用人工智能专家顾问的人越来越多,未来2-5年人工智能有望达到人类专家顾问的水平。

趋势三:人工智能实用主义倾向显著,未来将成为一种可购买的智慧服务。
过去几年我们看到俄罗斯的人工智能机器人尤金首次通过了著名的图灵测试,又见证了谷歌的AlphaGo和Master接连战胜人类围棋冠军,尽管这些史无前例的事件隐约让我们知道人工智能技术已经发展到了一个很高的水平,但因为太过浓厚的“炫技”色彩也让公众对人工智能技术产生很多质疑。
事实上大多数人在谈到人工智能时,首先想到的问题便是:“它究竟能够做什么?”“它到底能够用在什么地方?”“它能够给人类解决哪些问题?”在人工智能技术的应用方面,中国的互联网企业似乎表现地更加实用主义一些。将主要精力投向人工智能领域的百度几乎把人工智能技术应用到了旗下所有产品和服务中,雄心勃勃展开NASA计划的阿里巴巴也致力于将技术推向“普惠”。
人工智能与不同产业的结合正使其实用主义倾向愈发显著,这让人工智能逐步成为一种可以购买的商品。吴恩达博士曾把人工智能比作未来的电能,“电”在今天已经成为一种可以按需购买的商品,任何人都可以花钱将电带到家中。你可以用电来看电视,可以用电来做饭、洗衣服,未来你可以用购买到的人工智能来打造一个智能的家居系统,这是一样的道理。凯文•凯利此前也曾做过类似预判,他说未来我们可能会向亚马逊或是中国的公司购买智能服务。
反过来不同产业对人工智能技术的应用也加剧了人工智能的实用主义倾向。比如特斯拉公司就是拿人工智能技术专门用来提升自动驾驶技术的,再比如地图导航软件,就是专门拿人工智能技术用来为用户规划出行路线的。它们更加关注的是人工智能技术到底能为我的公司和我的用户带来什么。
说到底,人工智能是一个实用主义的东西。越来越多的医疗机构用人工智能诊断疾病,越来越多的汽车制造商开始使用人工智能技术研发无人驾驶汽车,越来越多的普通人开始使用人工智能作出投资、保险等决策。这意味着人工智能已经走出“炫技”阶段,未来将真正进入实用阶段。

趋势四:人工智能技术将严重冲击劳动密集型产业,改变全球经济生态。
许多科技界的大佬一方面受益于人工智能技术,一方面又对人工智能技术发展过程中存在的威胁充满担忧。包括比尔•盖茨、埃隆•马斯克斯、蒂芬•霍金等人都曾对人工智能发展做出警告。尽管从目前来看对人工智能取代甚至毁灭人类的担忧还为时尚早,但毫无疑问人工智能正在抢走各行各业劳动者的饭碗。
人工智能可能引发的大规模失业是当下最为紧迫的一个问题。阿里巴巴董事会主席马云在今年一场大数据峰会上说:“如果我们继续以前的教学方法,我可以保证,三十年后我们的孩子们将找不到工作。”阿里巴巴在电商领域的对手,京东集团董事局主席刘强东则信誓旦旦地表示:“五年后,给你送货的都将是机器人。”
事实上,机器人抢走人类劳动者饭碗的事情已经在全球上演。硅谷一家新兴的机器人保安公司Knightscope目前已和16个国家签约使用其公司生产的K5监控机器人,其中包括中国。K5将主要用于商场、停车场等公共场所,可以自动巡逻并能够识别人脸和车牌,K5每小时的租金约为7美金。这意味着原本属于人类保安的酬劳现在要被机器人抢走。
未来2-5年人工智能导致的大规模失业将率先从劳动密集型产业开始。如制造业,在主要依赖劳动力的阶段,其商业模式本质上是赚取劳动力的剩余价值。而当技术成本低于雇佣劳动力的成本时,显然劳动力会被无情淘汰,制造企业的商业模式也将随之发生改变。再比如物流行业,目前大多数企业都实现了无人仓库管理和机器人自动分拣货物,接下来无人配送车、无人机也很有可能取代一部分物流配送人员的工作。
就中国目前的情况来看,正处于从劳动密集型产业向技术密集型产业过渡的过程中,难以避免地要受到人工智能技术的冲击,而经济相对落后的东南亚国家和地区因为廉价的劳动力优势仍在,受人工智能技术冲击较小。世界经济论坛2016年的调研数据预测到2020年,机器人与人工智能的崛起,将导致全球15个主要的工业化国家510万个就业岗位的流失,多以低成本、劳动密集型的岗位为主。
这绝非危言耸听。人工智能终将改变世界,而由其导致的大规模失业和全球经济结构的调整,显然也属于“改变”的一部分,你我都将亲眼看到这一切的发生。

相关标签: AI