欢迎光临
我们一直在努力

零基础学AI人工智能:10.3 ANN人工神经网络

承接上一篇 PyTorch 框架的工程基础内容,我们正式进入神经网络的基础结构学习。ANN(人工神经网络)是所有深度学习网络的底层原型,它模拟生物大脑神经元的连接逻辑搭建计算结构,具备极强的非线性拟合能力。本篇将从结构概述、激活函数、参数初始化、损失函数、优化策略、正则化、工程搭建全流程拆解 ANN 的完整知识体系。

一、ANN 人工神经网络概述

1.1 核心定义

ANN 通过神经元相互连接搭建计算网络,模拟生物神经网络的信息传递逻辑,实现对现实复杂事物规律的拟合,完成分类、回归等各类机器学习任务。

1.2 网络结构组成

标准全连接 ANN 分为三层结构:

  • 输入层:神经元数量等于样本的特征列数,负责接收原始输入特征;
  • 隐藏层:可以设置多层,为网络引入非线性拟合能力,让网络可以处理复杂任务;同层神经元之间无连接,本层每个神经元会和上一层所有神经元建立全连接,搭配专属的权重w与偏置b;
  • 输出层:根据任务类型设置神经元数量,输出最终预测结果。
  • 二、常用激活函数

    激活函数是给神经网络引入非线性能力的核心组件,若无激活函数,多层全连接网络等价于单层线性模型,无法拟合复杂模式。主流激活函数特性与适用场景如下:

    激活函数

    取值范围

    特性与适用场景

    Sigmoid

    输出(0,1),导数(0,0.25)

    兼顾正负样本,易出现梯度饱和,多用于二分类任务的输出层

    Tanh

    输出(-1,1),导数(-1,1)

    正负样本区分效果更明显,多用于隐藏层

    ReLU

    正数保留、负数置 0

    仅考虑正样本,缓解深层网络梯度消失;衍生变体 Leaky ReLU、PReLU 解决了原生 ReLU 神经元死亡的缺陷,是深层网络隐藏层的首选

    Softmax

    所有输出和为 1

    将加权结果转化为类别概率分布,专门用于多分类任务的输出层

     

    2.1 激活函数选择通用策略

  • 隐藏层:ReLU 及变体优先 > Tanh > Sigmoid
  • 二分类输出层:Sigmoid
  • 多分类输出层:Softmax
  • 回归输出层:线性恒等映射 Identity
  • 三、参数的初始化

    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 优化改进方案

  • 梯度层面优化(动量 + 自适应学习率):依次衍生出动量 Momentum、AdaGrad、RMSprop,最终整合出工业界广泛使用的 Adam 自适应优化器;
  • 学习率策略优化:分为手动调整固定学习率、自适应学习率优化两大类。
  • 六、正则化相关

    正则化的核心目标是缓解模型过拟合,思维导图介绍了两种最常用的方案:

    6.1 Dropout 随机失活

    训练阶段会以设定概率p(通常取0.2∼0.5)随机让部分神经元失效,同时用1/(1-p)缩放保留神经元的权重;测试阶段会关闭该机制。可以削弱批次训练中样本差异带来的过拟合问题。

    6.2 BN 批量归一化

    对每一批次的输入数据做标准化处理,再加入平移、缩放参数修正分布,解决训练过程中的内部协变量偏移问题,大幅加快训练收敛速度,提升模型泛化能力。

    七、如何搭建人工神经网络

    7.1 前期思路分析(编码前必做)

  • 统计数据集的特征列数,确定输入层神经元数量;
  • 规划隐藏层的层数、每层的神经元个数;
  • 分析输出层:判断任务是二分类 / 多分类 / 回归,确定输出神经元数量;
  • 为每一层匹配适配的激活函数、参数初始化方式。
  • 7.2 PyTorch 实现流程

  • 自定义网络类,继承nn.Module基类;
  • __init__()方法中定义、搭建网络各层结构;
  • forward()方法中编写前向传播逻辑,最终返回预测结果。
  • 7.3 扩展调试工具

    可以使用torchsummary库的summary()函数,一键统计网络的参数量、每层维度等信息,方便结构调试。

    八、总结

    ANN 是深度学习所有复杂网络的基础原型,完整掌握它的结构设计、激活函数选型、参数初始化、损失与优化、正则化、工程落地全流程,就具备了搭建基础神经网络的能力。后续会基于 ANN 的原理,拓展适配图像任务的卷积神经网络 CNN。

    赞(0)
    未经允许不得转载:171主机测评 » 零基础学AI人工智能:10.3 ANN人工神经网络
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址