线性神经网络是最简单的神经网络形式,通常指 单层感知机(Perceptron) 或 线性回归模型,其核心特点是 仅包含线性激活函数(或无激活函数)。
线性神经网络主要用于解决 线性可分问题~,即数据可以通过一个 超平面(直线/平面) 完全分开。典型应用包括:
线性回归(Linear Regression) 预测连续值(如房价预测)。 目标:最小化预测值与真实值的均方误差(MSE)。 二分类问题(Logistic Regression) 使用 Sigmoid 激活函数(虽然非线性,但决策边界仍是线性的)。 目标:分类(如垃圾邮件检测)。 模式识别(如单层感知机) 1958年由罗森布拉特(Rosenblatt)提出,用于简单分类任务。
无法解决非线性问题 问题:如果数据 非线性可分(如异或问题 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')。 这意味着 增加层数不会增强模型能力,反而可能导致数值不稳定(梯度消失或爆炸)。
由于线性神经网络的局限性,后续发展出 非线性神经网络,主要改进方式包括:
引入非线性激活函数(如ReLU、Sigmoid、Tanh)→ 使网络能拟合非线性关系。 增加隐藏层(多层感知机,MLP)→ 提高模型表达能力。 使用卷积(CNN)、循环(RNN)、注意力(Transformer)等结构→ 适应特定任务(如图像、序列数据)。
核心区别:MLP 引入了 非线性激活函数 和 隐藏层,目的是解决线性神经网络无法处理的 非线性可分问题(如异或问题)和 复杂模式学习。
特性 | 单隐藏层MLP | 深层网络(如CNN、ResNet) |
---|---|---|
理论能力 | 可逼近任何连续函数(需足够宽) | 可逼近任何连续函数(需足够深) |
参数效率 | 低效(可能需要极多神经元) | 高效(分层抽象减少参数量) |
实际用途 | 理论证明,简单任务 | 主流方案(图像、NLP等复杂任务) |
数据从输入层 → 隐藏层 → 输出层逐层计算,最终得到预测值。
根据预测误差(损失函数)从输出层 → 隐藏层 → 输入层反向传播,计算梯度并更新权重。
卷积神经网络(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) | 复合缩放(深度/宽度/分辨率) | 提轻量化与高效计算 |
循环神经网络(Recurrent Neural Network, 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)。