1.2 人工智能为何如此强大
在机器学习、深度学习、增强学习以前,编程是无须关心机器的经验,以前的编程是根据用户的经验,无法根据现有的数据或发生的事件改变程序,流程各方面一旦确定,无法根据已有的数据或个体的数据进行学习;而人工智能的核心能力是能从每次发生的事件中学习,并不断改进、优化,然后通过不断优化应对现在和未来的变化。科研界认为PyTorch比谷歌的TensorFlow好很多,因为PyTorch有个动态图的核心特性,每次学习完成以后可以动态地修改图;TensorFlow是业界主流的人工智能框架,TensorFlow使用静态图,特点是根据已有的数据学习完成以后就不能再修改。
人工智能从每次的经历中学习,用于下一次的行为改进。深度学习基于海量的数据完成这个过程,而增强学习是通过实时与环境进行交互,来完成这个过程。机器学习、深度学习、增强学习的算法如果不是从这个角度来考虑的,那一定是错的。
TensorFlow网站(http://playground.tensorflow.org/)是TensorFlow公司提供给人工智能学习者学习用的,图1-1所示为人工智能神经网络运作过程的可视化图。
从数据中提取特征,类似于大脑对信息的加工处理过程,即对特征进行加工处理。过去如果想在人工智能方面有所发展,必须熟练掌握微积分、线性代数、概率论、数理统计等数学知识,但现在TensorFlow、PyTorch等人工智能框架已经将这些深奥的内容通过Python、C、C++等编程语言实现了,因此使用者不需要对每一步进行具体的数学推导,只需知道数据是怎么流动的,各环节的处理过程,就可以直接拿过来使用。图1-2中左边是数据输入,将数据进行逻辑分类,分成两种颜色的点,例如哪些是垃圾邮件,哪些是有用的邮件,右边是分类输出结果。单击左上角的运行按钮之前,初始化的测试集损失度为0.509,训练集损失度为0.509,单击运行按钮,训练分类模型,查看损失曲线及数据流动的过程,图1-2中迭代到第644个时代(Epoch),测试集损失度变成了0.002,训练集损失度为0.001,这是一个非常不错的结果。例如预测是否是垃圾邮件,如果正确率只有50%,就太糟糕了,谷歌垃圾邮件的识别率已经达到了99.9%,意味着1000封的垃圾邮件识别中可能有几封是错的,大部分预测是正确的。
图1-1 TensorFlow可视化运行图
图1-2 训练集及测试集损失度