关于人工智能的诸多事项往往并不像它所表现的那么简单,其中存在许多误解,所以开个科普,忽略掉一些不重要的细节,力图形象。用通俗的语言带大家了解AI。
目前在人工智能上走的最远的是人工神经网络技术,目前表现出较高水平智能的也都是神经网络
函数是一种对于关系的表达,无论关系多复杂,我们都可以定义那么个函数满足它们的关系。譬如我定义一个彩票函数Lottery(date),当我们输入日期,就能得到日期对应当天的头奖号码。从定义的角度,这样的函数是存在的,但是要求出这个函数基本上相当于预测未来。
神经网络本质上是一个有巨量参数的函数,我们知道,改变一个函数的参数,函数的形状会发生改变。当我们有大量输入,和对应的输出(术语叫标签),就可以用算法自动调整参数来拟合我们所需要的关系。
这个算法叫梯度下降法,虽然这个名称很抽象,但是要理解起来很容易。在山顶放一个球,它会在重力作用下在最终稳定在谷底,这基本上就是梯度下降的过程,也是神经网络的核心技术。
来回顾一下我们的目标:通过调整参数让神经网络这个非常复杂的函数变成我们所需要的彩票函数。
那么该如何调整参数?神经网络本身是一个函数,虽然它现在跟彩票函数没有什么关系,但是我们依然可以把代入一组输入得到一组输出。这组输出就是神经网络的预测值,然后通过数学方法计算一下预测值和正确结果之间的误差(计算这个误差的式子被称为损失函数)。现在我们把神经网络的巨量参数看成自变量,损失函数的值看做因变量。这是一个几万维甚至几百万维的函数,但是我们不需要想象那么多,把所有的自变量就看做一个面(术语叫超平面),损失函数的值就是纵轴,这样就形成了一个曲面,可以在三维坐标系里表达。如果把这个函数画出来,大概会是无数高高低低的山丘。回想一下定义,高的地方代表预测值与真实值相差甚远,低的地方代表它们较为接近,如果达到了0,那可以看做我们找到了这个函数。
所以我们寻找彩票函数的问题就变成了寻找损失函数的最小值。我们可以从曲面上随机选出来一个点,在这一点放一个球,它最终会掉在某个坑底,这就是训练神经网络的过程。ChatGPT、NovelAI都用到了类似的方法。
当小球稳定在谷底之后,对神经网络的训练就可以结束了。这时神经网络已经可以看做对我们所构思的理想函数的近似。使用神经网络的过程叫“神经网络的推理”,其实就是代入输入得到神经网络的预测输出。