|
@@ -0,0 +1,216 @@
|
|
|
+### 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)。**
|