人工智能入门
前言
这个名字起的非常大,但是本文只能从一些概念和我自己的理解上介绍一下什么是人工智能。本文只是给从未接触过此块的人一个大致的印象和思路,其余人请直接略过。
一、什么是人工智能
人工智能这个概念最近非常火,其实什么是人工智能,无非是想让电脑拥有像人一样的智慧。以前电脑做事比较222,从来都是0和1两个数,你让电脑干什么电脑就干什么,像一个听话的奴隶一样,没有自己的思想,没有自己的创新,不会有多余的想法。看上去挺好,但是随着时代的发展,人们对这种电脑的表现已经完全不满意了,现在我们想让电脑不光完成我们交予他的任务,还希望电脑能够有点自己的想法,比如能够告诉我一件事情是好还是坏,顺便再帮我预测一下这件事的结果,这就是人工智能。
举个具体的例子。我们有两张图片假设是两个人脸照片。那么在人工智能之前我们如果要让电脑判断这是不是同一个人,那就只能逐像素去比对,如果每个像素都一致,那么这两个照片肯定是同一个照片,人也肯定是同一个人。但是问题来了,如果两个照片是同一个人在不同情况下拍的两张照片,之前的技术手段是没有办法判断这是不是同一个的,因为环境不一样像素肯定不一样,这就必须要让电脑变的更聪明一点,无论什么环境拍的,无论化没化妆整没整容甚至不同年龄段的都要能够判断出来这是不是同一个人,这就是人工智能。
二、人工智能能完成什么工作
随着软硬件的发展,人工智能已经涉足到了方方面面。如人脸识别、猪脸识别(某东很擅长)、指纹识别、机器视觉、无人车、机器人、AlphaGO、天气预报、车牌识别、违章监控、保险收费、银行贷款等等。
其实就是说人工智能已经基本上无所不能了,只要你能想到的地方都可以交给计算机去处理,只是必须要采集大量的数据经过大量的训练计算机才能明白你想让他干什么事情。
三、人工智能的实现方式
想法很美好,我也想让电脑把我所有的工作都代替掉,包括需要我思考的事情,但这明显是不可能的,那么究竟如何实现人工智能?
考虑我们人类是如何对一件事情进行分析的。首先当我们面对一件事情的时候要先回忆自己之前有没有碰到过类似的事情,碰到的事情与这件事情的相似度是多少,所有有关的事情对此事情的影响程度,之前我是怎么处理的。脑中对如何做此事有一个大致的想法之后付诸实践,边做边修改。
那么电脑基本类似,首先明确需要电脑完成什么事情,然后找到大量的以往案例,告诉计算机碰到这种事情如何处理,分析出来不同事情(输入)对此事影响的权重。而后交给他同样的事情,计算机便知道该如何处理此事,其实计算机对事情只是计算出了得到某个结果的概率(output),如两个照片是同一个人的概率是90%等等,人也基本类似。
人工智能当然如上图所示,计算机需要根据输入完成很多层的参数设置最终计算得到输出,除了输入层和最后一层输出层,其他层均为hidden layer,隐层越多则计算量越大,最终的结果越准确(不是绝对的)。
所以清晰明了,你告诉计算机越多的“经验”、训练量越大,则他判断一件事情的正确率就越高,这就是最近几年大数据和计算机硬件能力的发展对人工智能的积极影响。
推荐大家观看吴恩达的深度学习课程对理论进行深入学习。
四、人工智能框架TensorFlow简介
有了上面的思路我们就能自己设计一套程序来完成一个训练模型,但是目前有很多成熟的开源深度学习框架,TensorFlow就是一个。
TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。
通过此框架能够非常容易的设计并训练我们自己的深度学习网络。
五、总结
本文啰里啰唆的介绍了一下我自己对人工智能的理解,如果有不对的地方欢迎批评指正,后续我会介绍如何通过TensorFlow实现一些简单的案例以及一些深度学习网络模型。
本文中部分内容和图片参考阮一峰博客。