最近开发新模型的时候发现部分参数的理解不够清晰,于是重新细致看了一遍dnn,简单做一下记录。

DNN(Deep Neural Network,深度神经网络)是由多层神经元构成的人工神经网络,核心是通过 “深层结构” 模拟人脑神经元的信息传递与特征学习,突破传统浅层网络(如单 / 双层感知机)的表达能力限制,广泛应用于图像、文本、语音等复杂数据的处理任务。

一、核心定义与结构

DNN 的 “深度” 体现在包含至少 1 个隐藏层(区别于仅含输入层和输出层的浅层网络),典型结构分为三层:

  • 输入层:接收原始数据(如图片像素、文本向量),神经元数量等于数据维度;
  • 隐藏层:对输入特征进行逐层转换(如提取边缘、纹理、语义等抽象特征),层数和每层神经元数量可根据任务调整;
  • 输出层:输出任务结果(如分类任务的类别概率、回归任务的预测值),神经元数量由任务目标决定(如二分类为 1 个,10 分类为 10 个)。

二、核心原理

1. 信息传递:前向传播

数据从输入层流向输出层的过程,每层神经元的输出由 “上一层输出 + 权重 + 偏置 + 激活函数” 共同决定,公式如下(以第l层隐藏层为例): 

  • :上一层(第\(l-1\)层)的输出(激活值);
  • :第l层的可学习参数(权重矩阵、偏置向量),决定特征转换的方向和偏移;
  • :第l层的 “预激活值”(未经过激活函数的原始计算结果);
  • 激活函数(如 ReLU、Sigmoid、Tanh),为网络引入非线性,使其能拟合复杂的非线性关系(若没有激活函数,多层网络会退化为单层线性模型);
  • :第l层的最终输出(激活值),作为下一层的输入。

2. 参数优化:反向传播

通过 “计算预测误差→反向更新参数” 的循环,最小化模型预测值与真实值的差异(由损失函数定义,如分类用交叉熵、回归用 MSE),核心是梯度下降法

  1. 计算损失:在输出层,通过损失函数(如计算模型预测值y_{pred}与真实标签y_{true}的误差;
  2. 反向求导:从输出层向输入层反向传播,利用链式法则计算损失函数对每一层参数的梯度(即参数变化对损失的影响程度);
  3. 更新参数:根据梯度方向,沿 “降低损失” 的方向调整参数(如,其中\eta为学习率,控制步长);
  4. 迭代训练:重复 “前向传播计算损失→反向传播更新参数”,直到损失收敛或达到预设迭代次数。

三、关键组件

组件 作用 常见类型
激活函数 引入非线性,让网络拟合复杂关系 ReLU(主流)、Sigmoid、Tanh、GELU
损失函数 量化预测误差,指导参数更新 交叉熵(分类)、MSE(回归)
优化器 改进梯度下降效率,加速收敛 Adam(主流)、SGD、RMSprop
正则化技术 防止过拟合(模型在训练数据上表现好,测试数据上差) Dropout、L2 正则化、Batch Normalization

四、核心特点与应用

  • 优势:强大的非线性拟合能力,可自动从数据中学习抽象特征,无需人工设计特征;
  • 挑战:需大量数据训练、计算成本高、可解释性较弱(“黑箱” 问题);
  • 典型应用
    • 图像领域:图像分类(如 ResNet 基于 DNN 改进)、目标检测;
    • 文本领域:情感分析、机器翻译(结合词嵌入);
    • 其他:语音识别、推荐系统(如 DNN-based 协同过滤)、时序预测。
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐