3分钟读懂火热的人工智能!
http://blog.itpub.net/31547542/viewspace-2181372/
如果有人问你什么是AI?你会如何回答?你可能会联想到电影中的场景,星球大战、复仇者联盟各类科幻片为我们提供了很多关于AI的想象,但那些都是没有实现的AI机器人。现实生活中AI的应用其实十分广泛,包括智能手机、搜索引擎、智能游戏、自动驾驶汽车等等领域,可这些都是弱智能AI的应用。
现在AI代表的是强智能的AI,是可以从海量经验数据中进行深度学习,可以依据不同情境做不同反应的智能实体。
AI可能在大多数人认知中是一个新兴领域,但它的历史可以追溯到上个世纪提出的机器智能,虽然AI技术已经出现了很长时间,但随着时间的发展和新兴软硬件的开发,它近些年开始出现在公众视野内,并以强劲的趋势在不断发展。
AI技术对公众而言也算不上陌生,你可能听过其他技术的名字,比如机器学习、神经网络、语言处理、图像识别等等,其实这些都是AI技术的一个子集,AI技术包含的范围非常广泛,下面是笔者关于AI技术的一些总结。
机器学习
机器学习有点类似于人类的上学,当AI程序获得海量经验数据后,想让它转化为可用信息,还需要在已有的知识结构中重组分类,不断进行重复实验,就像孩子需要在学校通过学习和模仿大人的行为,从而在实际环境中来做出判断和行动。
AI程序能否正确反应取决于信息集,如果程序收集的是分离的、有限制的、带偏见的信息集,就很难得到正确反应。收集信息集的难度在于该AI程序用户的使用范围,如果是为小众用户创建的AI程序,则使用的是较小的信息集,但大多数AI程序都需要收集广泛的信息,进行大量的重复实验,来获取针对不同指令的正确反应,以满足大多数用户的需求。
深度学习和神经网络
两者都是机器学习的一个子集,深度学习侧重于尝试模仿人类大脑的工作方式。虽然我们自身并没有完全了解人类大脑是如何运作的,但现在AI程序的深度学习能力可以模拟人类大脑,自发的对海量数据进行深度学习,构建不同场景下的反应机制。
神经网络是深度学习的具体实现,AI程序内多个节点通过完成不同的任务,将完成任务的经验与网络中的其他节点共享,如果一个节点的任务成功完成,就相当于其他节点都拥有这个任务完成的经验,而节点之间经验越多,则信息集越丰富, AI程序就可以在信息集中挖掘更多可用信息,将其转化为不同的反应机制。
认知计算和自然语言处理(NLP)
认知计算是一种全新的计算模式,包含信息分析,自然语言处理(NLP)等技术,是实现AI的关键技术体系,认知代表着能思考并且感知事务,可以对数据进行推理、学习和改进。
自然语言处理是一门融语言学、计算机科学、数学于一体的科学,NLP区别书面语言与口头语言,了解语言包含的文字内容,语境,判断单个词语歧义、分辨说话者意图。在AI程序处理具体问题时,NLP帮助AI程序正确分析说话者指令,输出恰当的回复语句,而认知系统则负责探索更加自然的方式与互动者进行交互,帮助AI程序完善人性化功能。
计算机视觉
计算机视觉是用摄像机和电脑代替人的眼睛,帮助AI程序正确识别目标,包括图像获取、预处理(平滑去噪、提高对比度、调整尺度)、特征提取、检测分割等等具体应用,利用计算机对图像进行处理、分析和理解,以识别不同模式的目标和对象, iPhone X的人脸识别就是这项技术的应用实现。
在计算机环境中,“视觉”还包括我们人眼平常看不到或者无法识别的图像和其他类型的视觉输入,但机器可以识别出来,比如电磁波、X射线和红外线等。
工具推荐
在函数库推荐方面,每个技术部分都有一些特定的不同,AI领域的许多库都是针对Python开发人员的,但下面提到的库是可以支持其他语言。
· Keras:高级神经网络Python库,可以嵌入其他深度学习库中,旨在简化实验模型。
· MXNet:Amazon深度学习库,支持多种编程语言和部署方法。
· Deeplearning4j:基于JVM的深度学习库,可内置可视笔记本用于实验运行。
· Spark MLib:适合于使用Spark进行数据流传输的用户。
· OpenCV:广泛使用并支持计算机视觉的库。
· SimpleCV:与OpenCV很相似。
· NLTK:用于处理和理解自然语言的Python库。
· OpenNLP:适用于JVM用户。
最后需要单独指出的是,随着AI程序的持续发展,它将会在社会生活中承担更加多样化的角色,我们会越来越依赖AI来承担更多的工作或任务,我们虽然不相信科幻电影中的机器人杀手, 现阶段的AI也没有实现强智能时代,但我们依旧需要警惕由AI带来的可控性挑战。