承接上一篇 PyTorch 框架的工程基础内容,我们正式进入神经网络的基础结构学习。ANN(人工神经网络)是所有深度学习网络的底层原型,它模拟生物大脑神经元的连接逻辑搭建计算结构,具备极强的非线性拟合能力。本篇将从结构概述、激活函数、参数初始化、损失函数、优化策略、正则化、工程搭建全流程拆解 ANN 的完整知识体系。
一、ANN 人工神经网络概述
1.1 核心定义
ANN 通过神经元相互连接搭建计算网络,模拟生物神经网络的信息传递逻辑,实现对现实复杂事物规律的拟合,完成分类、回归等各类机器学习任务。
1.2 网络结构组成
标准全连接 ANN 分为三层结构:
二、常用激活函数
激活函数是给神经网络引入非线性能力的核心组件,若无激活函数,多层全连接网络等价于单层线性模型,无法拟合复杂模式。主流激活函数特性与适用场景如下:
|
激活函数 |
取值范围 |
特性与适用场景 |
|
Sigmoid |
输出(0,1),导数(0,0.25) |
兼顾正负样本,易出现梯度饱和,多用于二分类任务的输出层 |
|
Tanh |
输出(-1,1),导数(-1,1) |
正负样本区分效果更明显,多用于隐藏层 |
|
ReLU |
正数保留、负数置 0 |
仅考虑正样本,缓解深层网络梯度消失;衍生变体 Leaky ReLU、PReLU 解决了原生 ReLU 神经元死亡的缺陷,是深层网络隐藏层的首选 |
|
Softmax |
所有输出和为 1 |
将加权结果转化为类别概率分布,专门用于多分类任务的输出层 |
2.1 激活函数选择通用策略
三、参数的初始化
3.1 初始化目的
合理设置权重、偏置的初始值,可以有效加快模型收敛速度,避免训练初期就出现梯度消失 / 梯度爆炸问题。
3.2 常用初始化方案
1. 基础通用初始化:
均匀分布uniform_、正态分布normal_、全零zeros_、全一ones_、自定义常数constant_;
2. 适配激活函数的优化初始化:
1. Kaiming 初始化(kaiming_uniform_/kaiming_normal_):专门适配 ReLU 系列激活函数;
2. Xavier 初始化(xavier_uniform_/xavier_normal_):适配 Tanh、Sigmoid 类激活函数。
四、损失函数
损失函数用来衡量模型预测结果和真实标签的差距,是模型优化的目标依据,根据任务类型分为三类:
4.1 回归任务(连续值预测)
常用指标:MSE 均方误差、MAE 平均绝对误差、RMSE 均方根误差、SmoothL1 平滑 L1 损失。
4.2 分类任务(离散类别预测)
深度学习主流使用交叉熵损失:二分类任务用二分类交叉熵,多分类任务用多分类交叉熵。
4.3 聚类任务
常用 SSE 误差平方和、CH 轮廓系数这类聚类评估指标作为优化目标。
五、梯度下降优化介绍
梯度下降是 ANN 更新参数、最小化损失的核心算法,原生梯度下降存在训练瓶颈,有两类主流优化方向:
5.1 原生梯度下降的痛点
在参数空间的平缓区域下降速度极慢,且容易陷入局部最优,无法找到全局最优解。
5.2 优化改进方案
六、正则化相关
正则化的核心目标是缓解模型过拟合,思维导图介绍了两种最常用的方案:
6.1 Dropout 随机失活
训练阶段会以设定概率p(通常取0.2∼0.5)随机让部分神经元失效,同时用1/(1-p)缩放保留神经元的权重;测试阶段会关闭该机制。可以削弱批次训练中样本差异带来的过拟合问题。
6.2 BN 批量归一化
对每一批次的输入数据做标准化处理,再加入平移、缩放参数修正分布,解决训练过程中的内部协变量偏移问题,大幅加快训练收敛速度,提升模型泛化能力。
七、如何搭建人工神经网络
7.1 前期思路分析(编码前必做)
7.2 PyTorch 实现流程
7.3 扩展调试工具
可以使用torchsummary库的summary()函数,一键统计网络的参数量、每层维度等信息,方便结构调试。
八、总结
ANN 是深度学习所有复杂网络的基础原型,完整掌握它的结构设计、激活函数选型、参数初始化、损失与优化、正则化、工程落地全流程,就具备了搭建基础神经网络的能力。后续会基于 ANN 的原理,拓展适配图像任务的卷积神经网络 CNN。




