一、什么是深度学习?
1.1 深度学习的定义
深度学习(Deep Learning)是机器学习的一种特殊形式,它依赖于具有多层结构的神经网络自动从数据中学习特征并完成任务,如图像识别,语音识别,自然语言处理等。
深度学习常常被认为是"端到端学习"的典范:从原始数据输入(如图像像素,音频波形,文本)直接学习到最终输出(分类,生成,预测等)。
1.2深度学习与传统机器学习对比
|-------|-------------------|-----------------------------|
| 维度 | 传统机器学习 | 深度学习 |
| 特征提取 | 人工设计(如颜色直方图,词袋模型) | 自动学习特征 |
| 模型结构 | 浅层(SVM,决策树,KNN) | 多层神经网络(DNN,CNN,Transformer) |
| 表达能力 | 有限 | 强大,可逼近任意非线性函数 |
| 依赖数据量 | 少量数据即可训练 | 通常需要大规模数据 |
| 计算资源 | 普通CPU即可运行 | 通常需要GPU,TPU |
| 应用场景 | 小规模结构化数据 | 图像,视频,文本,音频,大模型等 |
二、深度学习的核心组成模块(以神经网络为例)
2.1 网络基本结构
|-----------|-------------------|----------------------|
| 组成部分 | 功能 | 示例 |
| 输入层 | 接收原始数据(如图像,音频,文本) | 224*224图像,长度为128的句子 |
| 隐藏层(隐藏单元) | 提取高阶特征(可多个) | 卷积层,全连接层,注意力层 |
| 输出层 | 给出最终预测(分类,数值,掩码等) | softmax输出10类,回归数值等 |
2.2 核心机制解释
- 激活函数:使网络具备非线性表达能力(ReLU,Sigmoid,Tanh)
- 损失函数:衡量预测结果与真实值差距(交叉熵,均方误差MSE)
- 反向传播算法:根据损失计算梯度,用于参数更新
- 优化器:控制参数更新方式(SGD,Adam,RMSprop)
1.激活函数(Activation Function)
定义:
激活函数是作用在神经网络每个神经元输出上的非线性变换,使网络具备拟合复杂非线性关系的能力。
为什么需要激活函数?
- 若无激活函数(线性网络),无论堆叠多少层,其最终还是线性函数,无法学习复杂模型。
- 引入激活函数后,网络可以逼近任意非线性函数。
常见的激活函数 :
名称 | 表达式 | 特点 | 常用场景 |
---|---|---|---|
Sigmoid | 输出范围 (0,1),常用于概率 | 二分类输出层 | |
Tanh | 输出范围 (-1,1),中心对称 | 隐藏层早期模型 | |
ReLU | 稀疏激活,计算快,收敛快 | 最常用,CNN/RNN等隐藏层 | |
Leaky ReLU | 缓解ReLU"死亡"问题 | 深层网络或小批量训练 | |
Softmax | 输出为概率分布 | 多分类输出层 |
注意事项:
- 隐藏层通用ReLU(或其变体)
- 输出层根据任务选择:二分类用Sigmoid,多分类用Softmax,回归无激活或用线性
2.损失函数(Loss Function)
定义:损失函数用来衡量模型预测结果与真实标签之间的差距,是训练过程中优化的目标函数。
常见损失函数:
|-----|---------------------------|--------------------------------------------------------------------------|------------------------|
| 类型 | 损失函数 | 表达式/作用 | 使用场景 |
| 分类 | 交叉熵(Cross Entropy) | | 分类任务(Softmax/Sigmoid后) |
| 回归 | 均方误差(MSE) | | 连续值预测 |
| 回归 | 平均绝对误差(MAE) | | 对异常值鲁棒的回归任务 |
| 多标签 | BCE(Binary Cross Entropy) | 针对多个二分类 | 图像多标签分类 |
| 自监督 | 对比损失(Contrastive/InfoNCE) | 拉近正样本,推远负样本 | SimCLR,CLIP,Siamese网络 |
| 分割 | Dice Loss/IoU Loss | 关注区域重叠率 | 语义/实例分割任务 |
注意事项:
- 分类任务常用交叉熵(与Softmax配套)
- 回归任务慎选损失,MSE对异常值敏感
- 分割任务要考虑类别不平衡,形状连续性
3.反向传播算法(Backpropagation)
定义:
反向传播是一种高效计算神经网络中每个参数对损失函数梯度的方法,是深度学习模型的核心算法。
工作原理:
- 1.前向传播(Forward):输入从输入层到输出层,得到预测结果。
- 2.损失计算(Loss):预测与真实标签对比,计算损失。
- 3.反向传播(Backward):利用链式法则,从输出层向前逐层计算梯度。
- 4.梯度更新:结合优化器更新模型参数。
数学基础:
利用链式法则计算损失对每层参数的偏导数
示例:若 ,则
注意事项:
- 会出现梯度爆炸(值过大)或梯度消失(值趋近于0)的问题,尤其在深层网络中
- 为此需要使用梯度裁剪,BatchNorm,合适激活函数等技术
4.优化器(Optimizer)
定义:
优化器根据反向传播得到的梯度来更新神经网络的参数,使得损失函数逐步下降。
常见优化器:
|------------------|--------------|--------------|------------|------------------|
| 名称 | 原理简述 | 优点 | 缺点 | 备注 |
| SGD | 基础的梯度下降算法 | 简单,易实现 | 收敛慢,易陷局部最小 | 可配合动量Momentum |
| SGD+Momentum | 引入"惯性"概念 | 稳定收敛 能跳出局部极小 | 参数调节复杂 | Momentum 一般设为0.9 |
| RMSProp | 自动调整每个参数学习率 | 对稀疏数据友好 | 参数更新难以解释 | 常用于RNN |
| Adam | 自适应学习率+动量 | 收敛快,调参少 | 收敛精度有时候不稳定 | 当前最主流 |
| AdamW | Adam+正确的权重衰减 | 收敛更稳,防止过拟合 | 参数略多 | 常用于Transfromer训练 |
| Adagrad/Adadelta | 早期自适应优化器 | 对稀疏特征友好 | 会停止更新 | 现已经较少使用 |
学习率(Learning Rate)调节技巧:
- 可使用学习率衰减策略(如StepDecay,CosineAnnealing)
- 学习率过高可能发散,过低收敛慢
- 可用Warmup技术逐步升高学习率,适用于大模型(如BERT)
核心机制之间的配合逻辑总结图:
css
数据输入
↓
前向传播(激活函数)
↓
损失函数计算
↓
反向传播算法(链式法则)
↓
优化器根据梯度更新参数
↓
网络更新 → 下一轮训练
三、常见深度学习任务分类总览表
|-----------|--------------------|-----------|------------|-----------------------------|---------------------|
| 类别 | 任务名称 | 输入 | 输出 | 典型模型 | 特点 |
| 1.分类任务 | 图像分类, 文本分类 | 图像/文本 | 类别标签 | CNN,RNN, Transformer | 多为监督学习, 关注特征提取与决策边界 |
| 2.回归任务 | 股票预测、 房价预测 | 数值型数据 | 连续数值 | MLP、RNN、 LSTM | 输出为实数, 误差评估常用MSE等 |
| 3.目标检测 | YOLO、 Faster R-CNN | 图像 | 目标类别+ 位置信息 | CNN + Region Proposal | 输出包含类别和框, 评估指标为mAP |
| 4.语义分割 | UNet,DeepLab | 图像 | 像素级 类别标签图 | FCN,UNet | 精细化像素预测, 每个像素有标签 |
| 5.实例分割 | Mask R-CNN | 图像 | 每个实例的掩码 | 检测 + 分割网络 | 识别不同目标实例,难度更高 |
| 6.图像生成 | GAN,VAE | 随机噪声/图像 | 图像 | GAN,Diffusion,VAE | 生成式模型,关注图像逼真度 |
| 7.序列建模 | 机器翻译,语音识别 | 序列(文本/音频) | 序列 | RNN,LSTM,Transformer | 输入输出长度可能不同,注意时序关系 |
| 8.强化学习 | AlphaGo、 智能体控制 | 状态,奖励 | 行动策略 | DQN,PPO,A3C | 决策导向,目标是最大化累计奖励 |
| 9.多模态任务 | 图文检索,VQA | 图像+文本 | 回答/标签/图文匹配 | CLIP,BLIP,Flamingo | 融合多个模态的信息,需对齐特征空间 |
| 10.自监督学习 | SimCLR,MAE | 无标签数据 | 表征或预测结果 | 对比学习。自编码学习 | 训练无需标签, 通过任务设计学习表示 |
| 11.多标签分类 | 疾病诊断、 图像标注 | 图像/文本 | 多个标签集合 | CNN/Transformer | 每个样本可对应多个标签,非互斥 |
| 12.检索与排序 | 文本检索、 图像检索 | 查询+数据集 | 排序列表 | Siamese Net, BERT + Ranking | 关注匹配程度, 输出为排序或相似度 |
| 13.时间序列预测 | 股票预测,交通流量 | 历史数据 | 未来值 | LSTM,TCN | 强时序相关 |
| 14.文本生成 | ChatGPT,BERT | 文本 | 文本 | Transformer,GPT | 聊天机器人,摘要生成 |
四、各类任务特点简述
1.分类(Classification)
定义:将输入分到预定义的类别中
特点:任务简单,监督标签明确。广泛用于图像识别、文本情感分析,垃圾邮件识别等。
2.回归(Regression)
定义:根据输入预测连续数值输出
特点:输出实数。常用于房价预测,气温预测,股票预测等;常用损失函数为MSE(均方差)
3.目标检测(Object Detection)
定义:识别图像中所有物体及其位置(边界框)
特点:同时完成"分类+定义"任务,适用于安防,自动驾驶等场景;输出包括类别标签和坐标信息
4.语义分割(Semantic Segmentation)
定义:对图像中每个像素赋予语义标签。
特点:像素级别精细标注;每个像素对应一个语义类别,广泛用于医疗图像,遥感图像分析等。
5.实例分割(Instance Segmentation)
定义:识别图像中每个物体实例的掩码与类别。
特点:不仅需要分辨像素类别,还要区分不同个体;结合目标检测与语义分割。
6.图像生成(Image Generation)
定义:根据输入生成新的图像。
特点:典型的生成式任务,常用GAN,Diffusion模型;输出为逼真的新图像,用于AI作画,图像修复,风格迁移等。
7.序列建模(Sequence Modeling)
定义:处理序列到序列的输入输出映射关系。
特点:输入到输出均为变长序列,广泛用于机器翻译,语音识别,字幕生成等时许相关任务。
8.强化学习(Reinforcement Learning)
定义:智能体通过与环境交互学习最大化长期奖励的策略。
特点:无标签,靠奖励信号训练,训练较慢但适用于决策类问题。
9.多模态任务(Multimodel Learning)
定义:同时处理并融合来自多种模态(如图像,文本,音频等)的信息进行预测或生成。
特点:输入通常为图+文或视频+语音等,输出可以是分类标签,文本回答或图像;任务涉及模态对齐,跨模态生成,应用于图文回答,跨模态检索等。
10.自监督学习(Self-supervised Learning)
定义:从未标注数据中通过构造任务进行表示学习最大化长期奖励的策略。
特点:不依赖人工标签,通过数据自身生成监督信号(如BERT的遮蔽预测);适合大规模预训练,如SimCLR,MAE等。
11.多标签分类(Multi-label Classification)
定义:一个输入对应多个非互斥的标签
特点:适用于同时具有多个属性的对象
12.检索与排序(Retrieval and Ranking)
定义:根据查询样本从候选集合中找出最匹配项并排序。
特点:输出为排序结果或相似度分值;广泛用于搜索系统,推荐系统,图文匹配等。
13.时间序列预测(Time Series Forecasting)
定义:基于历史序列数据,预测未来时刻的值。
特点:具有时间依赖性和周期性,广泛应用于金融市场,交通流量,销售趋势等;输出为未来的数值序列或单点预测。
14.文本生成(Text Generation)
定义:基于输入生成新的文本序列。
特点:输出内容连贯,有逻辑;应用于对话生成,摘要生成,代码自动补全等,常用GPT,T5等语言模型。