一、深度学习与点云
本节课程主要介绍深度学习基础内容,梯度下降作为核心方法将贯穿讲解过程。
1.深度学习概述 00:16
深度学习概述部分包含以下内容:
- 网络基本组件的构成原理
- PointNet及PointNet++的核心架构
1) 预期学习结果 00:39
本节课程需掌握:
- 网络基本构成的底层逻辑
- 不同网络架构的对比分析方法
- PointNet的具体实现方法
- 目标分类等实际应用场景
2) 人工智能、机器学习与深度学习 01:00
| 概念层级 | 定义范畴 | 典型算法 |
|---|---|---|
| 人工智能 | 所有模拟智能行为的算法 | PID控制器 |
| 机器学习 | 数据驱动的规律挖掘方法 | 支持向量机、随机森林 |
| 深度学习 | 基于多层神经网络的表征学习 | 卷积神经网络、全连接网络 |
深度学习兴起于2010年后,其核心组件原理可追溯至1960年代,现广泛应用于图像识别、语音处理及三维分析等领域。
3) 机器学习与深度学习 03:48
- 例题:车分类区分机器学习深度学习
传统机器学习流程包含:
- 人工设计特征(如SIFT、KPC)
- 分类器处理特征向量(如支持向量机)
深度学习流程则通过端到端网络直接输出分类结果,特征提取与分类合并为统一黑箱系统,但存在可解释性差的缺陷。
4) 深度学习 05:31
深度学习本质是优化问题,通过梯度下降方法求解目标函数最小值。其优势在于解决传统方法难以处理的复杂优化问题,但需注意步长选择对收敛性的影响。
5) 深度学习概述 06:22
深度学习通过优化损失函数实现模型训练,以线性模型为例:
基础形式:
-
y=wTx+by=w^Tx+by=wTx+b
(可通过齐次坐标简化为y=wTxy=w^Txy=wTx )
-
例题:房价预测
房价预测模型构建步骤:
-
定义特征向量 xxx(面积、楼层等)
-
建立线性关系 y=wTxy=w^Txy=wTx
-
通过最小化平方误差求解参数www
-
梯度下降
-
梯度下降的基本概念
-
梯度下降适用于f:Rn→Rmf: \mathbb{R}^n \to \mathbb{R}^mf:Rn→Rm的优化问题,核心是通过偏导方向迭代更新参数。
-
梯度下降算法的原理
-
迭代公式为:
xn+1=xn−γ∇f(xn)x_{n+1} = x_n - \gamma \nabla f(x_n)xn+1=xn−γ∇f(xn)
其中步长γ\gammaγ需满足f(xn+1)≤f(xn)f(x_{n+1}) \leq f(x_n)f(xn+1)≤f(xn),在驻点处梯度为零。
- 步长(伽马)的选择
步长选择策略:
-
过大会导致震荡发散
-
过小会降低收敛速度
-
优化器(如SGD、Adam)可动态调整步长
- 例题1: 多元线性回归中的梯度下降
单样本损失函数JJJ对参数www的偏导计算:
∂J∂w=2(z)x\frac{\partial J}{\partial w} = 2(z)x∂w∂J=2(z)x
其中z=wTx−yz=w^Tx-yz=wTx−y,向量求导遵循分母布局规则。
- 求导规则
链式法则是反向传播的基础:
dfdx=dgdu⋅dhdx\frac{df}{dx} = \frac{dg}{du} \cdot \frac{dh}{dx}dxdf=dudg⋅dxdh
- 矩阵求导
矩阵求导布局分为两种:
- 分母布局:导数维度与分母一致
- 分子布局:导数维度与分子一致
深度学习通常采用分母布局,因损失函数为标量而参数为向量,输出维度更直观。常见规则包括:
-
标量对向量求导结果为同维向量
-
向量对向量求导结果为雅可比矩阵
-
感知器
线性模型的优化本质是一个神经元,构成神经网络的基本单元。训练参数w和输入x决定输出y。该神经元形式于1968年发明,但深度学习在2010年左右才对人类进程产生重大影响。神经元的数学表达为y=w^T x,其中w为参数向量,x为输入向量,constant one代表偏置项bias,即齐次坐标表达形式。向量点乘运算后需通过激活函数将线性模型转换为非线性模型,以增强模型表达能力。
- 例题:回归损失函数
衡量预测接近程度的损失函数选择:
-
标量输出问题(如房价预测)可使用L1损失(绝对值)或L2损失(平方误差)。
-
梯度下降法通常采用L2损失(如最小二乘法),因其连续可导特性更利于优化。
-
分类损失函数
分类任务需使用交叉熵损失函数,其核心为衡量预测概率分布q与真实分布p的差异:
-
单标签分类中,真实分布p为one-hot向量,交叉熵简化为-log(q_y^*),即最大化真实类别的预测概率。
-
多类别分类需通过softmax函数将输出分数转换为概率分布,公式为softmax(s_i) = e^{s_i} / Σ_j e^{s_j}。
-
交叉熵最终形式为-log(softmax(s_y^*)),示例中网络输出三类别(狗、猫、青蛙)时,损失值为 - 89。
-
多层感知机
多层感知机(MLP)由多个神经元堆叠构成:
-
结构示例:输入层→隐藏层(4神经元)→输出层(2神经元),共20个可训练参数(每条边对应独立权重)。
-
线性组合局限性:无激活函数时,多层线性变换等效于单层线性模型,无法解决非线性问题(如异或逻辑)。
-
例题:异或问题
异或(XOR)问题揭示线性模型缺陷:
| 输入组合 | 输出 | 空间分布 |
|---|---|---|
| (0,0) | 0 | 不可线性分割 |
| (0,1) | 1 | 需非线性边界 |
| (1,0) | 1 | |
| (1,1) | 0 |
- 激活函数
激活函数的作用与选择:
-
核心功能:将线性变换转为非线性,使MLP具备万能逼近定理能力(需至少一层隐藏层)。
-
历史函数(如sigmoid、tanh)易引发梯度消失/爆炸问题,现代网络常用ReLU等改进函数。
-
术语等价性:MLP与全连接网络(FC)为同义概念。
-
如何训练一个MLP
MLP训练方法:
-
反向传播:高效梯度下降实现,通过链式法则逐层计算梯度并更新参数。
-
优化器选择:SGD(随机梯度下降)收敛慢但稳定,Adam等自适应算法结合动量加速训练。
-
卷积神经网络
卷积神经网络(CNN)的核心特性:
-
局部感受野:卷积核在输入空间(如图像)滑动计算局部特征,参数共享大幅减少计算量。
-
空间维度扩展:支持一维(时序)、二维(图像)、三维(视频)等多维数据卷积运算。
-
一维卷积
-
一维卷积的图示和公式如下:卷积核包含三个元素(k=3),输入为一维数组x,输出为数组y。通过乘法加法运算(如1×3+0×2+2×2=7)生成输出元素。
-
感知域指每个输出元素对应的输入元素数量。初始情况下,每个y元素的感知域为x中的三个元素。若对y再次卷积得到z,则z在x中的感知域扩展至五个元素。
-
卷积核在输入数组上滑动计算,直至覆盖全部输入。
-
为什么用CNN
| 对比维度 | 卷积网络 | 全连接网络 |
|---|---|---|
| 连接方式 | 稀疏连接(输出仅关联输入局部区域) | 密集连接(输出关联全部输入) |
| 参数数量 | 共享卷积核参数(如3个) | 独立参数(如3×6=18个) |
| 特征提取 | 相同输入产生相同输出(如识别多只狗) | 相同输入可能产生不同输出 |
-
一维卷积padding
-
边界处理:通过添加padding(通常为零值)解决边界卷积问题。padding数量可自定义(如左右分别加2和1个零值)。
-
输出长度公式:无padding时输出长度为n-k+1;有padding时替换n为n+p(p为左右padding总数)。
-
padding规则:需根据输入长度和卷积核大小合理设置,避免无效计算。
-
一维卷积stride
-
stride作用:通过调整滑动步长(如s=2)减少计算量并扩大感知域。例如s=2时感知域扩展至7个输入元素。
-
输出长度公式:⌊(n+p-k)/s⌋+1(⌊⌋表示向下取整)。
-
应用场景:较大感知域有助于图像分类等任务,需覆盖更广的输入区域以获取全局信息。
-
二维卷积
-
基本操作:在二维输入(如图像)上沿两个维度滑动卷积核(尺寸为kh×kw),通过乘法加法生成输出矩阵。
-
padding模式 :
- valid:不加padding,输出尺寸小于输入。
- same:添加padding使输出尺寸与输入一致。
-
多卷积核:每个卷积核(共co个)生成一个特征图(feature map),输出为co个矩阵叠加。
-
输入输出维度:输入为ci×h×w,卷积核为co×kh×kw,输出为co×h'×w'(h'/w'由padding和stride决定)。
-
池化(Pooling):无参数操作,分为最大池化(取区域最大值)和平均池化(取区域平均值),输出通道数与输入相同。
-
复杂度计算:与卷积核数量(co)、输入通道数(ci)及输出尺寸(h'×w')成正比。
6) 三维卷积 50:20
二维卷积可扩展为三维卷积,需具备高维空间想象能力。三维卷积核本身为三维结构,输入数据为四维(三维空间加一维通道),输出数据同样为四维。三维卷积核在空间中进行滑动计算,每次滑动通过乘加运算生成一个标量输出,最终堆叠形成完整输出结果。