在前面的文章中我们主要对生成式AI的两大核心技术深度学习以及大模型进行了初步的介绍,而本文主要以深度学习为核心详细阐述其背后的技术原理。多层人工神经网络是深度学习最常见的实现方式,因此要理解深度学习技术原理就必须先理解什么是人工神经网络以及先驱们怎么想到使用人工神经网络进行复杂任务处理。因为我们学习一项技术,不仅需要知道它是什么,能解决什么问题。更要知道它是如何发展起来的,那些先驱们是如何探索技术的?他们是如何发现问题、思考问题以及解决问题的?通过这样的学习方式,当我们在工作学习中如果遇到类似问题的时候可以借鉴先驱们的思考方式来帮助我们分析问题解决问题。
人工神经网络
人工神经网络起源于人类对于自身大脑的深刻认知,人们希望通过工程技术手段将人类大脑思考问题解决问题的过程能够沉淀下来成为能够可重复使用的机器智能。 其实早在1890年,实验心理学先驱William James在他的巨著《心理学原理》中就详细描述了人脑结构和功能。文中提到神经细胞受刺激之后被激活,可以将刺激传播到另一个神经细胞,并且神经细胞激活是细胞所有输入叠加的结果 。当某个神经元被刺激后,神经元会产生电脉冲也被称作为动作点位,电脉冲会沿着树突进行传播,最终通过神经元末端的突触传递给其他神经元。而人工神经网络就是通过大量非线性处理单元模拟人脑神经网络处理信息。
人工神经网络主要模拟人类大脑中的神经元系统,它主要由输入层、隐藏层以及输出层三部分组成,其中隐藏层往往不止一层,主要还是根据需要进行处理的任务的复杂度来决定。每一层的神经元都会和下一层的神经元形成连接以保证分析任务的充分解析。在进行训练的过程的时候,样本数据通过输入层进行人工神经网络系统进行处理,经过隐藏层的处理最终由输出层输出计算结果,这个过程我们称之为正向传播,但是输出的结构到底满不满足要求,还需要通过其他方式来进行评价。
深度学习
深度学习最核心的能力就是根据输入的数据获取预想的输出,比如输入一张小狗的图片,它能识别出来这是一只小狗而不是一只小猫。那么它到底是如何做到的呢?在前文中我们提到过,深度学习常用多层人工神经网络实现,因此每一层都需要有对应的权重来将每一层的输出按照期望的方向进行引导。而所谓学习就是在处理数据的过程可以动态调整层级的权重来满足最终的目标。
那么问题来了,人工神经网络中每一层的权重应该如何进行动态调整呢?我们都知道隐藏层的每一层都包含了多个神经元。如果我们想要实现动态调整权限,那必定是需要知道神经元的输出和预期值到底差距在哪里。这种差距需要有一个衡量标准,因此衡量神经元输入值以及输出值之间差异的方法就是损失函数。对于损失函数来说就是根据输入的目标预测值以及目标实际值来计算两者之间的差值。如果差值比较大说明实际值效果不好需要进行调整。
深度学习之所以可以进行自动学习,主要就体现在可以根据损失函数的计算结果来动态调整权重以确保最终输出的结果接近于目标值。当我们通过损失函数获取到损失偏差之后,可以利用这个损失偏差对神经元的权重进行动态调整以便于降低损失函数输出的损失偏差。