《神经网络与深度学习》学习笔记一

《神经网络与深度学习》学习笔记一

本文档整理自邱锡鹏教授的《神经网络与深度学习》教材内容


目录

  1. 人工智能发展概述
  2. 深度学习基本概念
  3. 线性模型与经典算法

人工智能发展概述

AI发展历程

本课程从人工智能的发展历史出发,帮助学习者理解神经网络和深度学习在AI领域中的核心地位。人工智能经历了多个重要发展阶段,从早期的符号主义AI到现代的深度学习,每个阶段都为后续技术的发展奠定了基础。

深度学习框架概览

在当前的深度学习生态中,存在多个重要的开源和商业框架,各自具有不同的特点和应用场景:

  • TensorFlow:由Google开发的开源机器学习框架,具有强大的生产部署能力
  • PyTorch:由Meta开发的动态计算图框架,因其易用性在研究领域广泛应用
  • Keras:高级神经网络API,提供用户友好的接口
  • MXNet:支持多种编程语言的深度学习框架
  • MindSpore:由华为开发的深度学习框架,专为端边云场景设计,为Ascend AI处理器提供原生支持,实现软硬件协同优化

深度学习基本概念

特征表示与编码方式

独热编码(One-Hot Encoding)

独热编码是一种常见的分类变量表示方法。其核心特点是:

  • 每个类别用一个向量表示,向量长度等于类别总数
  • 对应类别的位置为1,其余位置为0
  • 本质上等同于单维向量的多维表示

示例:对于三分类问题,各类别编码如下:

复制代码
类别A: [1, 0, 0]
类别B: [0, 1, 0]
类别C: [0, 0, 1]
嵌入(Embedding)

嵌入是将高维的稀疏表示(如独热编码)映射到低维的密集向量空间的过程。

  • 本质:嵌入就是一种映射关系,将离散符号映射到连续向量空间
  • 优势:降低维度,提高计算效率,发现特征之间的隐含关系
  • 应用:广泛用于自然语言处理(词嵌入)和推荐系统等领域

映射示例

复制代码
独热编码 [0, 1, 0] ------映射→ 嵌入向量 [0.2, 0.8, 0.1]

端到端学习(End-to-End Learning)

定义

端到端学习(End-to-End Learning)也称为端到端训练,是指在学习过程中不进行分模块或分阶段训练,而是直接优化任务的总体目标。

核心特征
  • 整体优化:不将任务分解成多个子任务分别优化,而是在单一目标函数下进行全局优化
  • 简化流程:减少中间步骤,从原始输入直接映射到最终输出
  • 自动特征学习:网络自动学习所需的中间特征表示,无需人工设计
端到端学习的优势
  1. 性能提升:全局优化通常能获得更优的整体性能
  2. 减少误差传播:避免了模块化方法中各阶段错误的累积
  3. 降低开发成本:无需设计中间表示和多个优化目标
  4. 更强的适应性:网络能够自动调整内部表示以适应任务需求
应用场景
  • 图像识别:从原始像素直接预测物体类别
  • 机器翻译:从源语言直接翻译到目标语言
  • 自动驾驶:从传感器数据直接输出控制指令
  • 语音识别:从声学信号直接输出文本

线性模型与经典算法

概述

线性模型是深度学习的基础。虽然单个线性模型的表达能力有限,但通过堆叠多层线性和非线性变换,可以构建表达能力强大的深度神经网络。

主要线性模型对比

下表总结了常见线性模型的主要特征、激活函数、损失函数和优化方法:

1. 线性回归
属性 内容
激活函数 恒等函数(Identity): g ( w T x ) g(\mathbf{w}^T\mathbf{x}) g(wTx)
损失函数 均方误差(MSE): ( y − w T x ) 2 (y - \mathbf{w}^T\mathbf{x})^2 (y−wTx)2
优化方法 最小二乘法、梯度下降
用途 连续值预测

原理:假设输出与输入呈线性关系,通过最小化预测值与真实值的平方差来学习参数。

2. Logistic回归
属性 内容
激活函数 Sigmoid函数: σ ( w T x ) = 1 1 + e − w T x \sigma(\mathbf{w}^T\mathbf{x}) = \frac{1}{1+e^{-\mathbf{w}^T\mathbf{x}}} σ(wTx)=1+e−wTx1
损失函数 交叉熵: − y log ⁡ σ ( w T x ) -\mathbf{y}\log\sigma(\mathbf{w}^T\mathbf{x}) −ylogσ(wTx)
优化方法 梯度下降
用途 二分类问题

原理:虽然名称含有"回归",但Logistic回归是一个分类模型。通过Sigmoid函数将线性模型的输出压缩到(0,1)区间,表示正类的概率。

3. Softmax回归
属性 内容
激活函数 Softmax函数: softmax ( W T x ) \text{softmax}(\mathbf{W}^T\mathbf{x}) softmax(WTx)
损失函数 交叉熵: − y log ⁡ softmax ( W T x ) -\mathbf{y}\log\text{softmax}(\mathbf{W}^T\mathbf{x}) −ylogsoftmax(WTx)
优化方法 梯度下降
用途 多分类问题

原理:Softmax是Sigmoid的多分类推广。对多个类别的线性输出进行指数化和归一化,得到各类别的概率分布。

Softmax函数公式
softmax i ( z ) = e z i ∑ j e z j \text{softmax}_i(\mathbf{z}) = \frac{e^{z_i}}{\sum_j e^{z_j}} softmaxi(z)=∑jezjezi

4. 感知器(Perceptron)
属性 内容
激活函数 符号函数: sgn ( w T x ) \text{sgn}(\mathbf{w}^T\mathbf{x}) sgn(wTx)
损失函数 感知器损失
优化方法 梯度下降
用途 二分类问题

原理:最早的神经网络模型,使用符号函数作为激活函数,输出为-1或1。对线性可分的问题有很好的效果。

5. 支持向量机(SVM)
属性 内容
激活函数 符号函数: sgn ( w T x ) \text{sgn}(\mathbf{w}^T\mathbf{x}) sgn(wTx)
损失函数 Hinge损失: max ⁡ ( 0 , − y w T x ) \max(0, -y\mathbf{w}^T\mathbf{x}) max(0,−ywTx) 或 max ⁡ ( 0 , 1 − y w T x ) \max(0, 1-y\mathbf{w}^T\mathbf{x}) max(0,1−ywTx)
优化方法 随机梯度下降、二次规划、SMO等
用途 二分类和多分类问题

原理:通过最大化分类间隔来学习最优的决策边界。Hinge损失只在预测错误或置信度不足时产生损失。

各模型的关键激活函数详解

Sigmoid函数

σ ( z ) = 1 1 + e − z \sigma(z) = \frac{1}{1+e^{-z}} σ(z)=1+e−z1

  • 特点:将任意输入映射到(0,1)区间
  • 导数 : σ ′ ( z ) = σ ( z ) ( 1 − σ ( z ) ) \sigma'(z) = \sigma(z)(1-\sigma(z)) σ′(z)=σ(z)(1−σ(z))
  • 缺点:梯度消失问题,易导致网络学习缓慢
Softmax函数

将向量 z = [ z 1 , z 2 , ... , z K ] \mathbf{z} = [z_1, z_2, \ldots, z_K] z=[z1,z2,...,zK]映射到概率分布:

softmax ( z ) i = e z i ∑ j = 1 K e z j \text{softmax}(\mathbf{z})i = \frac{e^{z_i}}{\sum{j=1}^K e^{z_j}} softmax(z)i=∑j=1Kezjezi

  • 特点:输出为概率分布,各分量和为1
  • 应用:多分类问题的标准选择

损失函数与优化目标

均方误差(MSE)

L = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 L = \frac{1}{n}\sum_{i=1}^n (y_i - \hat{y}_i)^2 L=n1i=1∑n(yi−y^i)2

适用于回归问题,度量预测值与真实值的平方差。

交叉熵(Cross-Entropy)

对于二分类(Logistic回归):
L = − [ y log ⁡ y ^ + ( 1 − y ) log ⁡ ( 1 − y ^ ) ] L = -[y\log\hat{y} + (1-y)\log(1-\hat{y})] L=−[ylogy^+(1−y)log(1−y^)]

对于多分类(Softmax回归):
L = − ∑ i = 1 K y i log ⁡ y ^ i L = -\sum_{i=1}^K y_i\log\hat{y}_i L=−i=1∑Kyilogy^i

其中 y i y_i yi是独热编码的真实标签, y ^ i \hat{y}_i y^i是模型预测的概率。

优势:相比MSE,交叉熵更适合分类问题,梯度性质更好,有助于加速收敛。

Hinge损失

L = max ⁡ ( 0 , 1 − y ⋅ y ^ ) L = \max(0, 1 - y \cdot \hat{y}) L=max(0,1−y⋅y^)

其中 y ∈ { − 1 , 1 } y \in \{-1, 1\} y∈{−1,1}是真实标签, y ^ \hat{y} y^是预测的决策函数值。

  • 特点:只在分类错误或置信度不足时产生损失
  • 应用:支持向量机的标准损失函数
  • 优势:稀疏性,只有支持向量对决策边界有影响

优化方法概览

最小二乘法

直接求解使损失函数最小的参数的解析解:

w ∗ = ( X T X ) − 1 X T y \mathbf{w}^* = (\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{y} w∗=(XTX)−1XTy

适用场景:线性回归,数据量较小,矩阵可逆的情况。

梯度下降(Gradient Descent)

参数更新规则:
w ← w − α ∇ L ( w ) \mathbf{w} \leftarrow \mathbf{w} - \alpha \nabla L(\mathbf{w}) w←w−α∇L(w)

其中 α \alpha α是学习率, ∇ L ( w ) \nabla L(\mathbf{w}) ∇L(w)是损失函数的梯度。

变体

  • 批量梯度下降(BGD):每次更新使用全部数据
  • 随机梯度下降(SGD):每次更新使用单个样本
  • 小批量梯度下降(Mini-batch GD):每次更新使用小批量数据
随机梯度下降(SGD)

w ← w − α ∇ L ( w , x i ) \mathbf{w} \leftarrow \mathbf{w} - \alpha \nabla L(\mathbf{w}, x_i) w←w−α∇L(w,xi)

其中只使用单个样本 x i x_i xi计算梯度。

优势:计算高效,在线学习能力强;引入的噪声有助于逃离局部最优。

二次规划与SMO

二次规划:用于求解支持向量机的对偶问题。

SMO(Sequential Minimal Optimization):一种高效的SVM训练算法,每次只优化两个拉格朗日乘数,大大降低了计算复杂度。


总结

本篇学习笔记介绍了神经网络与深度学习的基础内容:

  1. 理论基础:理解了特征表示(独热编码和嵌入)与端到端学习的核心概念
  2. 经典模型:掌握了线性回归、Logistic回归、Softmax回归、感知器和SVM的基本原理
  3. 关键技术:了解了激活函数、损失函数和优化方法在不同模型中的应用
  4. 深度学习框架:认识了主流的深度学习框架及其特点

这些基础知识为后续学习多层神经网络、卷积神经网络、循环神经网络等深度学习模型奠定了坚实的理论基础。


相关推荐
mm-q29152227292 小时前
YOLOv5(PyTorch)目标检测实战:TensorRT加速部署!训练自己的数据集(Ubuntu)——(人工智能、深度学习、机器学习、神经网络)
人工智能·深度学习·机器学习
Coovally AI模型快速验证3 小时前
未来已来:从 CVPR & ICCV 观察 2025→2026 年计算机视觉的七大走向
人工智能·深度学习·目标检测·计算机视觉·stable diffusion
TL滕3 小时前
从0开始学算法——第一天(如何高效学习算法)
数据结构·笔记·学习·算法
仰望—星空3 小时前
MiniEngine学习笔记 : CommandAllocatorPool
笔记·学习
B站_计算机毕业设计之家3 小时前
计算机视觉:python车辆行人检测与跟踪系统 YOLO模型 SORT算法 PyQt5界面 目标检测+目标跟踪 深度学习 计算机✅
人工智能·python·深度学习·算法·yolo·目标检测·机器学习
kblj55554 小时前
学习Linux——网络——网卡
linux·网络·学习
暖阳之下4 小时前
学习周报二十
人工智能·深度学习·学习
蒋星熠4 小时前
多模态技术深度探索:融合视觉与语言的AI新范式
人工智能·python·深度学习·机器学习·分类·数据挖掘·多分类
charlie1145141914 小时前
CSS学习笔记3:颜色、字体与文本属性基础
css·笔记·学习·教程·基础