01-从函数到神经网络


以上就是人工智能早期的思路——符号主义,通过符号来表示和推理,该方法认为世间万物都能找到一个明确的规律来表明它的作用原理。后续,该方法被证明在处理复杂问题上有一定的局限性,比如,对于一些复杂的函数,我们无法找到一个明确的规律来表示它。因此,人工智能需要一种新的方法来处理复杂的问题。
举个例子,数据拟合:

在上述例子中,我们可以先猜测一个函数,然后调整函数的参数来使得结果逼近真实值:

最后发现完全吻合:

有时候无法找到一个合适的函数来吻合数据,这时候只需要保证“大差不差”就行:

这就是现代人工智能的思路:猜和简化问题——先找一个从结果上看“大差不差”的函数,然后通过调整参数来使得结果更接近真实值——联结主义。我们不再追求找到那个精确的函数关系,而是简化函数,并试图寻找一个足够接近真实答案的近似解。
上述例子都是一些比较简单的线性函数的例子,但对于一些问题,线性函数无法很好地拟合数据,这时候就需要使用非线性函数。那么,如何将原先的线性函数变换到非线性函数呢?答案是:在原本的线性函数外面再套一层非线性运算,比如:平方、指数等。



而这,就是激活函数,他的目的就是将原本的线性关系变换为灵活的非线性关系。记为:
常用的激活函数:
同时可能存在多个输入,每一个输入对应一个,记为:
而有时,单独一层激活函数无法很好地拟合数据,这时候就需要多层激活函数,记为:
这就是神经网络的基本思想,通过多个激活函数的嵌套,使得原本的线性关系能够逼近复杂的非线性关系。
为了方便理解,将单层的激活函数记为以下形式:

其中每个圆圈被称为神经网络的神经元,多个输入的激活函数记为:

多个激活函数的表示如下:

其中每嵌套一层激活函数,就相当于神经元水平方向扩展了一层,而嵌套之前的输出层就不再是最终的输出,而是包裹在了一个复杂的函数变换之中,称为隐藏层。
由输入层、隐藏层和输出层构成的复杂函数变换就被称为神经网络,而从神经网络的图来看,似乎就像是输入层的信号一层一层传输到输出层一样,这个过程就叫做神经网络的前向传播。
神经网络中的每一层都可以有多个,而且中间的隐藏层也可以有多个,但我们的目的是十分明确且简单的:通过输入的x和输出的y来调整调整参数w和b,使后续通过神经网络计算出来的值(预测值)尽可能接近真实值。