第一章 TensorFlow 基础概念
什么是人工智能、机器学习和深度学习
“人工智能”这个词在当下社会十分流行。但我们所说的“人工智能”概念其实早在1956年就在达特茅斯会议中被提出,但由于当时的算力的影响,导致这项技术一直都无法没有很好的突破。直到我们现在,在计算机硬件设备不断发展的时代,在大数据的支撑下,“人工智能”得到爆发性的成长。
在现在,人工智能运用在方方面面之中,小到我们的形形色色的美图软件、语音识别软件,大到无人汽车驾驶等。人工智能其实离我们并不远,已经开始渗透进我们的生活。
在人工智能领域,又细分出两个概念:
1、机器学习
2、深度学习

这张图很好的说明了两者的区别,机器学习算法得益于人工特征的提取。举个例子:
我们在处理垃圾邮件分类的时候,我们会事先提取出预选筛选的特征,比如:发件人的地址、标题中是否包含某些关键词等等,然后通过算法进行权重的学习,从而能够预测未来的一份邮件是否是垃圾邮件。
而对于深度学习算法,我们还是通过垃圾邮件分类来举例,在深度学习算法中,我们不再人为的去提取特征值了,我们只是告诉计算机,这一些是垃圾邮件,这一些不是垃圾邮件,然后计算机通过神经网络自己去提取其中的特征值,动态的调整权重。最后得到一个能够预测未来一份邮件是否是垃圾邮件的模型。

这张图也就很好的说明了人工智能、机器学习、深度学习之间的关系。
什么是深度神经网络
其实我们目前所提到的“深度学习”基本上就是深度神经网络的代名词,深度神经网络最早是类似仿生机器学习,它试图模仿人的大脑的学习机理。所以经常有人就会拿它和人体的神经元做比较。

图的左边是人体的神经元,图的右侧是一个简单的神经网络结构。
我们可以看到输入的值经过加权和的处理,并通过阀值函数处理,得到一个输出。
就像我们的触觉,当我们触摸一个苹果时,触感就是输入的值,经过神经元的处理和传导,让我们感知(输出)到我们触摸的是一个苹果。
在之后的具体介绍神经网络算法的时候,我会具体介绍右边这个图的结构和含义,现在看不懂没有太大关系。
为了给大家直观的感受深度神经网络,我想推荐大家一起玩一下google提供的tensorflow PlayGround。
如何在PlayGround愉快的玩耍
play ground是Tensorflow提供的一个能够直观感受神经网络训练的工具。能够帮助我们初步感受神经网络训练的流程。

上面这个图大概介绍了一下play ground中包含的元素:
数据类型:我们可以选择不同的数据类型进行训练
体征提取:我们可以选择输入不同的特征,感受一下对训练结果的影响
当前训练步数:我们可以看到当前的结果为训练了多少步后的结果
学习速率:有关学习速率的概念,我在之后介绍怎么设计神经网络的过程中,会详细介绍。在这里我们可以调整学习速率的值,直观感受一下学习速度对结果的影响
激活函数:在很多实际问题中,我们不能通过一个线性的函数去进行划分,这时候我们就可以通过激活函数,强行把线性函数“掰弯”,成为非线性函数,以解决非线性的问题,关于这个概念,我们在之后学习激活函数的时候会具体介绍
隐藏层:我们可以看到我们现在是一个很简单的两层的全连接神经网络(所有一层的节点都和下一层的节点相互连接),我们也可以通过点击按钮增加和减少某以隐藏层的节点数量。直观感受隐藏层的大小和其节点大小对结果的印象
模型结果:我们可以在这个地方,直观看到模型对数据分类的结果。
测试样本:我们深度神经网络学习,最重要的是对未来的数据进行预测的能力。所以我们经常会在训练样本之外,准备一些测试样本。这些样本不会参与到模型训练的过程中,对于模型来说是“未知”的,从未学习过的。所以当我们训练一个模型后,往往需要一个测试样本,来考察这个模型对未知样本的判断能力,来判断这个模型是否是一个“好模型”

在上面这个图,我们会发现,我们一个两层的全连接神经网络,在经历206步后,我们已经得到了一个很好的模型,它能够几乎能够准确的分辨出蓝色的点和黄色的点(例如:在实际问题中,我们比如把黄色的点认为是垃圾邮件,蓝色的点为正常的邮件),这时候我们的模型就对未来的样本具有一定的判断能力。
复盘
在这一节,我们对人工智能、机器学习和深度学习的关系有了个初步的了解,了解了人工智能已经在我们生活的方方面面得到运用,这也是未来以后的一大趋势。
在之后,我们又通过把玩TensorFlow的PlayGround,对深度学习有了一些更直观的概念和了解。为我们之后的学习种下一颗小小的种子。
在下一节中,我会为大家介绍如何安装Tensorflow(不过这不是重点),以及TensorFlow的三个基础概念:
1、tensor 张量
2、session 张量
3、graph 计算图