### 1、线性神经网络 线性神经网络是最简单的神经网络形式,通常指 **单层感知机(Perceptron)** 或 **线性回归模型**,其核心特点是 仅包含线性激活函数(或无激活函数)。 #### (1)解决的问题 线性神经网络主要用于解决 **线性可分问题**~,即数据可以通过一个 超平面(直线/平面) 完全分开。典型应用包括: **线性回归(Linear Regression)** 预测连续值(如房价预测)。 目标:最小化预测值与真实值的均方误差(MSE)。 **二分类问题(Logistic Regression)** 使用 Sigmoid 激活函数(虽然非线性,但决策边界仍是线性的)。 目标:分类(如垃圾邮件检测)。 **模式识别(如单层感知机)** 1958年由罗森布拉特(Rosenblatt)提出,用于简单分类任务。 #### (2)局限性 **无法解决非线性问题** 问题:如果数据 **非线性可分(如异或问题 XOR)**,线性神经网络无法正确分类。 例如:XOR 问题(输入 (0,0) 和 (1,1) 属于类别 A,(0,1) 和 (1,0) 属于类别 B)。 线性模型无法找到一条直线完美分割这两类数据。 原因:线性变换(y = Wx + b)只能拟合直线/平面,无法拟合曲线。 **表达能力有限** 即使数据近似线性可分,线性模型可能 欠拟合(无法捕捉复杂模式)。 例如:图像识别、自然语言处理等任务需要 非线性特征组合,线性模型无法胜任。 **无法自动学习特征** 传统线性模型(如线性回归)依赖 人工特征工程,而**现代深度学习(如CNN、Transformer)可以自动提取特征。** **梯度消失/爆炸(在多层线性网络中)** 如果堆叠多个线性层(如 y = W₃(W₂(W₁x + b₁) + b₂) + b₃),整体仍然是线性变换(y = W'x + b')。 这意味着 增加层数不会增强模型能力,反而可能导致数值不稳定(梯度消失或爆炸)。 #### (3)如何改进? 由于线性神经网络的局限性,后续发展出 非线性神经网络,主要改进方式包括: **引入非线性激活函数(如ReLU、Sigmoid、Tanh)→ 使网络能拟合非线性关系。 增加隐藏层(多层感知机,MLP)→ 提高模型表达能力。 使用卷积(CNN)、循环(RNN)、注意力(Transformer)等结构→ 适应特定任务(如图像、序列数据)。** ### 多层感知机(MLP)- Multi-Layer Perceptron vs. 线性神经网络 核心区别:MLP 引入了 **非线性激活函数** 和 **隐藏层**,目的是解决线性神经网络无法处理的 **非线性可分问题(如异或问题)和 复杂模式学习。** #### MLP 的关键技术改进 - **(1)引入隐藏层(Hidden Layers)** 结构:**输入层 → 隐藏层(可多层) → 输出层。** 作用: 通过多层变换组合特征,逐步提取更高阶的抽象特征。 例如:从像素→边缘→纹理→物体部件→完整物体(在图像任务中)。 - **(2)使用非线性激活函数** 常见激活函数: Sigmoid:早期使用,输出范围(0,1),适合概率建模。 Tanh:输出范围(-1,1),梯度比Sigmoid更稳定。 ReLU(Rectified Linear Unit):现代主流,解决梯度消失问题,计算高效。 作用: 打破线性变换的局限性(y = Wx + b → y = f(Wx + b))。 使网络能够拟合任意复杂度的函数(理论上,单隐藏层MLP可逼近任何连续函数,参见 **通用近似定理**)。 | 特性 | 单隐藏层MLP | 深层网络(如CNN、ResNet) | | ------------------ | ------------------------------ | ------------------------------- | | **理论能力** | 可逼近任何连续函数(需足够宽) | 可逼近任何连续函数(需足够深) | | **参数效率** | 低效(可能需要极多神经元) | 高效(分层抽象减少参数量) | | **实际用途** | 理论证明,简单任务 | 主流方案(图像、NLP等复杂任务) | - **(3)反向传播算法(Backpropagation)** 作用: 通过链式法则计算梯度,高效更新多层网络的权重。 **解决线性神经网络无法训练多层结构的问题。** ## **1. 前向传播(Forward Propagation)** ### **定义** 数据从输入层 → 隐藏层 → 输出层逐层计算,最终得到预测值。 ### **关键步骤** 1. **输入数据**: 输入特征 **x**(例如一张图片的像素值)。 2. **线性变换**: 每一层的计算为 **z**=**w**⋅**x**+**b**(权重 **w** 和偏置 **b**)。 3. **非线性激活**: 通过激活函数(如ReLU、Sigmoid)引入非线性:**a**=**σ**(**z**)。 4. **输出预测**: 最后一层输出 **y**^(例如分类概率)。 ## **2. 反向传播(Backward Propagation)** ### **定义** 根据预测误差(损失函数)从输出层 → 隐藏层 → 输入层反向传播,计算梯度并更新权重。 ### **关键步骤** 1. **计算损失**: 比较预测值 **y**^ 和真实值 **y**,例如用交叉熵损失 **L**。 2. **链式求导**: 从输出层开始,逐层计算损失对权重 **w** 和偏置 **b** 的梯度(导数): * 输出层梯度:**∂**W**[**2**]**∂**L** * 隐藏层梯度:**∂**W**[**1**]**∂**L** 3. **更新参数**: 用梯度下降调整权重:**W**:=**W**−**α**∂**W**∂**L**(**α** 是学习率) * **前向传播**是“预测过程”,**反向传播**是“学习过程”。 * 两者结合,通过多次迭代(前向+反向)逐步优化模型参数。 * 反向传播的核心是**链式法则**,它使得深度学习可以高效训练。 ### 卷积神经网络(CNN)的核心技术与解决问题 卷积神经网络(Convolutional Neural Network, CNN)是深度学习中针对 **网格状数据(如图像、视频、音频、文本)设计的专用架构**。其核心技术围绕 **局部感知**、**参数共享** 和 **层次化特征提取**,主要解决以下问题: (1) **卷积运算(Convolution)** 技术本质: 使用 卷积核(滤波器) 在输入数据上**滑动计算局部特征(如边缘、纹理)**。 解决的问题: **局部相关性**:图像中相邻像素关系紧密(如边缘、角点),卷积核捕捉局部模式。 **平移不变性**:同一物体在图像不同位置仍能被识别(如猫在左上角或右下角)。 **(2) 池化(Pooling)** 技术本质: 对局部区域降采样(如最大池化、平均池化),减少数据维度。 例:**2×2最大池化 → 取窗口内最大值,保留显著特征。** 解决的问题: 平移鲁棒性:轻微位移不影响特征提取。 降低计算量:减少后续层参数,防止过拟合。 **(3) 层次化特征组合** 技术本质: 浅层提取低级特征(边缘、颜色)→ 中层组合为部件(眼睛、轮子)→ 深层识别完整物体(人脸、汽车)。 解决的问题: 特征抽象化:模拟人脑视觉分层处理机制(Hubel & Wiesel理论)。 **(4) 参数共享(Weight Sharing)** 技术本质: 同一卷积核在整张图像上滑动复用,大幅减少参数量(与全连接层对比)。 解决的问题: 高维数据参数爆炸:例如,1000×1000像素图像全连接需10⁶权重,而CNN仅需少量卷积核。 | 模型 | 核心技术贡献 | 解决的问题 | | -------------------- | ------------------------------- | ------------------------------------ | | LeNet-5 (1998) | 首个成功CNN(卷积+池化+全连接) | 手写数字识别(MNIST) | | AlexNet (2012) | ReLU+Dropout+多GPU训练 | ImageNet竞赛突破(Top-5错误率15.3%) | | VGG (2014) | 深层小卷积核(3×3堆叠) | 证明深度对性能的关键影响 | | ResNet (2015) | 残差连接(解决梯度消失) | 训练超深层网络(如152层) | | DenseNet (2017) | 密集连接(特征重用) | 解决梯度消失,提升信息流效率 | | EfficientNet (2019) | 复合缩放(深度/宽度/分辨率) | 提轻量化与高效计算 | ### 循环神经网络(RNN)的核心目标与解决问题 循环神经网络(Recurrent Neural Network, RNN) 是专门设计用于处理 序列数据 的神经网络架构,其核心创新是引入 **时间维度上的状态传递**,主要解决以下问题: #### **1. RNN 解决的核心问题** (1) **序列数据的动态建模** 问题背景: 传统神经网络(如MLP、CNN)假设输入数据是 独立同分布(i.i.d) 的,无法处理序列中前后元素的依赖关系。 例如: 自然语言中,句子含义依赖单词顺序(“猫追狗” ≠ “狗追猫”)。 股票价格预测中,当前价格受历史价格影响。 RNN的解决方案: 通过 **隐藏状态(Hidden State) 记忆历史信息,当前输出依赖当前输入和前一时刻的状态。** (2) **变长序列输入/输出** 问题背景: 固定结构的网络(如CNN)要求输入/输出尺寸固定,但序列长度可变(如语音、文本)。 例如:翻译任务中,输入英语句子和输出中文句子长度可能不同。 RNN的解决方案: 通过循环结构逐步处理序列,**支持任意长度的输入和输出(需结合编码器-解码器框架)。** (3) **时间依赖性建模** 问题背景: 传统方法(如马尔可夫模型)只能建模短程依赖,难以捕捉长距离关系。 例如:句子“The cat, which ate the fish, was happy”中,“was”需依赖远距离主语“cat”。 RNN的解决方案: 理论上,**RNN可以通过隐藏状态传递任意长度的历史信息**(但实际存在梯度消失问题,后续由LSTM/GRU改进)。 以下是 RNN、CNN、Transformer 的完整名称、核心特点及对比总结: **1. RNN(Recurrent Neural Network,循环神经网络)** 核心特点: 通过 循环连接(Recurrent Connection) 处理序列数据,隐藏状态传递历史信息。 擅长建模时间依赖(如文本、时间序列),但存在梯度消失/爆炸问题。 典型应用: **早期机器翻译、语音识别、股票预测(现多被Transformer取代)。** **2. CNN(Convolutional Neural Network,卷积神经网络)** 核心特点: 通过 卷积核(Convolutional Kernel) 提取局部特征,共享参数减少计算量。 擅长捕捉空间结构(如图像、网格数据),但对长序列建模能力弱。 典型应用: **图像分类(ResNet)、目标检测(YOLO)、医学影像分析。** **3. Transformer** 全称:无缩写,原论文标题为《Attention Is All You Need》(2017)。 核心特点: 基于 **自注意力机制(Self-Attention)**,并行处理序列,直接建模全局依赖。 解决了RNN的长程依赖和并行化问题,成为NLP领域主流架构。 典型应用: **大语言模型(GPT、BERT)、机器翻译、文本生成。** 三者的关键对比 | 特性 | RNN | CNN | Transformer | | ------------ | ----------------------- | --------------------- | ------------------- | | 核心机制 | 循环连接 + 隐藏状态 | 卷积核 + 池化 | 自注意力 + 位置编码 | | 并行化能力 | ❌ 低(顺序计算) | ✅ 高(卷积并行) | ✅ 极高(矩阵运算) | | 长程依赖处理 | ❌ 弱(需LSTM/GRU改进) | ❌ 弱(受限于感受野) | 强(任意距离建模) | | 典型输入 | 时间序列、文本 | 图像、视频 | 文本、跨模态数据 | | 代表模型 | LSTM、GRU | ResNet、VGG | GPT、BERT、ViT | 总结 **RNN:序列建模的早期方案,适合短序列任务,但效率低。 CNN:空间特征提取王者,但对时序依赖不敏感。 Transformer:当前AI领域霸主,兼顾全局依赖和并行化,但计算资源需求高。 根据任务需求选择架构:图像处理优先CNN,长文本/跨模态用Transformer,轻量化场景可考虑RNN变体(如LSTM)。**