一、什么是深度学习
1.普通程序:人写死规则,机器照着执行
特点:规则明确,不会自己学习
2.机器学习:人不给死规则,给数据,让机器自己找规律
特点:从数据里学习,能处理复杂,模糊的事
3.深度学习:机器学习的分支,复杂+缺乏可解释性
二、了解深度学习组成模块
六大模块:所需库+参数解析+模型+训练+评估+主函数
1.所需库模块(requirements.txt)
import XXX
import XXX as YYY
from XXX import ZZZ
2.参数解析模块(调参侠,第三优化部分)
不是要学习的参数,而是针对训练过程或者程序运行所作的一些限制性超参数
data-dir、batch_size、epochs、lr、checkpoint、train、download、visualize、limit-train、
num-workers、device等等
3.模型模块(第一优化部分)
4.训练模块(第二优化部分)
(1)损失函数:评分标准,明确什么是好的表现
(2)优化器:训练教官,负责指导与改进
(3)训练循环:训练周期,循序渐进地提升技能
5.评估模块(领域内统一)
根据任务场景选择合适的评估指标
6.主函数模块(确定程序执行流)
类似与C语言的main()函数
三、了解深度学习常用框架和模型
基本所有任务可以使用框架+模型进行描述
1.框架
(1)将框架理解为“巨大的”“完整的”库函数
(2)不同框架设计理念不同
2.一句话描述主流深度学习框架
PyTorch 以动态图为核心,语法贴近 Python 原生写法,上手简单、调试灵活,更适合科研探索和快速原型开发;
TensorFlow 原生侧重静态图,工业级部署工具链完善,对大规模训练、多平台落地支持更好,更适配生产环境需求。
2.模型
(1)基础模型就是适应不同数据类型的贪心函数/优化器
(2)基础模型只有那几个,更多的都是改进
3.一句话描述最基础的深度学习模型
MLP(全连接神经网络)
最基础的神经网络,由输入层、隐藏层、输出层全连接组成,适用于简单分类与回归
CNN(卷积神经网络)
利用卷积提取局部特征、池化降维,主要处理图像,具有权值共享和局部感受野特性
RNN(循环神经网络)
适用于处理序列数据,但容易梯度消失
LSTM(长短时记忆网络)
用遗忘门、输入门、输出门解决长序列依赖问题,适合文本、时序。
Transformer
完全基于自注意力机制,并行处理序列,是现在所有大模型的基础架构
AutoEncoder
无监督特征学习,通过编码压缩,解码还原,适用于降维、去噪、特征提取
GAN(生成对抗网络)
由生成器和判别器对抗训练,让生成数据逼近真实分布,是生成模型的基础
四、参考资料(优先完成算法思想学习)
1.吴恩达-机器学习-前37讲-2天(算法思想)
2.李宏毅-深度学习-前63讲(37+26)-5天(算法思想)
3.小土堆-pytorch-7天(代码实现)
4.刘二大人-pytorch-14天(代码实现)