神经网络
神经网络是一种机器学习模型,由大量相互连接的人工神经元组成,通过调整连接参数,从数据中学习规律,并利用学到的规律处理新的输入。
人工神经元
人工神经元 Artificial Neuron 是神经网络中的一种基础计算单元。它的工作可以简化为三个步骤:
- 接受输入数据;
- 根据权重计算,并通过激活函数进行变换;
- 输出计算结果,传递给后续神经元;
单个人工神经元的简化计算过程(省略偏置项)
其中:
- 输入 Input:神经元接收到的数据;
- 权重 Weight:决定不同输入在计算中的影响;
- 激活函数 Activation Function:对加权计算结果进行非线性变换;
可以将神经元理解为一个带有可学习参数的小型计算单元。人工神经元收到了生物神经元的启发。
神经元如何组成神经网络
单个神经元能够完成的计算比较有限。将大量神经元连接起来,便可以构建神经网络。
以最基础的前馈神经网络为例:
简单的三层前馈神经网络示意图
三个重要组成部分:
- 输入层 Input Layer:接受外部输入数据;
- 隐藏层 Hidden Layer:对输入进行特征提取与变换;
- 输出层 Output Layer:生成最终计算结果;
连线表示神经元之间的信息传递关系,通常对应可学习的权重。不是所有神经网络都采用这种逐层全连接结构。Transformer 使用 Attention 机制,让不同位置的信息能够相互交互。
神经网络是如何学习
训练(Training)
训练过程中,模型根据输入产生预测,将预测与训练目标进行比较,计算损失,然后通过优化算法调整参数。重复这个过程,模型逐渐学习数据中的统计规律。
推理(Inference)
训练完成后,模型使用已经学到的参数处理新数据,生成预测或其他输出。
深度神经网络
Deep Neural Network DNN,是具有多个隐藏层的神经网络。「深度」主要指网络在计算路径上具有多层可学习的变换。
以图像识别为例,可以直观地理解为:
- 较浅的层:提取边缘、颜色等局部特征。
- 中间的层:组合出纹理、形状等复杂特征。
- 更深的层:综合这些信息,形成适合识别任务的特征表示。
增加深度能够提高模型表达复杂函数的能力,但不代表层数越多,模型就一定越好。训练数据、参数规模、网络结构和计算资源同样重要。
神经网络架构
Neural Network Architecture ,架构描述的是神经网络的整体组织方式。
| 软件系统 | 神经网络 |
|---|---|
| 软件模块 | 网络层、计算模块 |
| 模块内部实现 | Attention、FFN 等计算结构 |
| 模块间调用关系 | 网络层之间的信息传递 |
| 系统整体设计 | 神经网络架构 |
只是帮助理解组织关系的类比。神经网络还涉及参数共享、数值计算和训练过程,与传统软件架构有本质区别。
设计神经网络架构时,通常需要考虑:
- 采用哪些计算模块。
- 各个模块如何连接。
- 模块重复多少次,也就是网络深度。
- 信息如何在不同模块之间流动。
不同的设计形成不同的网络架构,例如 CNN、RNN 和 Transformer。
- 神经网络 Neural Network,基本的机器学习模型类别;
- 深度神经网络 DNN,包含多个可学习变换层;
- Transformer,一种具体的深度神经网络架构;
- Transformer Block,架构中的基本计算模块;