# Summary
实践中,过于复杂的模型族不一定包括目标函数或真实数据生成过程,甚至也不包括近似过程。我们几乎从未知晓真实数据的生成过程,所以我们永远不知道被估计的模型族是否包括生成过程。然而,深度学习算法的大多数应用都是针对这样的情况 其中真实数据的生成过程几乎肯定在模型族之外。深度学习算法通常应用于极为复杂的领域,如图像、音频序列和文本,本质上这些领域的真实生成过程涉及模拟整个宇宙。从某种程度上说,我们总是持方枘(数据生成过程)而欲内圆凿(模型族)。
这意味着控制模型的复杂度不是找到合适规模的模型(带有正确的参数个数)这样一个简单的事情。相反,我们可能会发现,或者说在实际的深度学习场景中我们几乎总是会发现,最好的拟合模型(从最小化泛化误差的意
#第一性原理 现在学习的重点,已经从“如何从零实现一个反向传播”变成了“如何快速利用现有工具解决一个实际问题,并深刻理解其原理和局限性”。
大模型普及将减少传统深度学习工程师岗位,但增加对大模型优化、多模态集成、伦理治理等新兴领域的需求 su开源与标准化:模型库(如Hugging Face)和API服务(如ChatGPT)将降低技术门槛,推动AI从“定制化”转向“平台化”。
- 编译器技术革新:深度学习编译器(如TVM)通过自动代码生成替代人工优化,适配特定硬件和网络结构。其优势在于“无限算力”可针对性优化每个场景,超越人工经验的局限性。
- 硬件协同设计:[[FPGA]]等可编程硬件将加速深度学习推理。未来芯片设计会更贴合神经网络计算需求,降低能耗。
- 可解释性需求:当前深度学习模型缺乏透明度(如无法解释为何识别为“猫”)。未来需发展“可解释AI”技术,确保决策机制可追溯。
- [[通用人工智能(AGI)]]路径:[[Geoffrey Hinton]]等专家认为AGI将基于深度神经网络实现,但需突破符号主义与连接主义的融合瓶颈。脑机接口(BCI)结合深度学习可能加速这一进程。
-
# Cues
[Hugging Face](Hugging%20Face.md) - [[Transformers]]
[Transformer架构](Transformer架构.md)
# Notes
## 一、类型
| | | | |
| ------------------------- | --------------- | -------------- | ------------------------------------- |
| [循环神经网络RNN](循环神经网络RNN.md) | 具有记忆能力,可处理序列数据 | 自然语言处理、时序预测 | [[循环神经网络RNN]]、[[长短期记忆网络LSTM]]、[[GRU]] |
| 生成对抗网络 | 由生成器和判别器组成的对抗学习 | 图像生成、数据增强、风格迁移 | DCGAN、StyleGAN、CycleGAN |
| 自动编码器 | 无监督学习,可压缩和重构数据 | 降维、特征学习、数据去噪 | [[自动编码器(Autoencoder)]]、VAE、DAE |
| 卷积神经网络(CNN)| | | TextCNN、[[CNN]] |
| 图神经网络 | 可处理图结构数据 | 社交网络分析、分子性质预测 | GCN、GAT、GraphSAGE |
| 概率神经网络 | 基于概率论,可量化不确定性 | 贝叶斯推理、风险评估 | BNN、PNN、DBN |
| [[Transformer架构]] | 基于注意力机制,并行处理能力强 | 机器翻译、文本理解、视觉任务 | [BERT](BERT.md) [[判别式任务]] |
| | | | GPT、[千问 Qwen](千问%20Qwen.md) |
## 二、过程
| 组件 | |
| ----------------- | ----------- |
| criterion | 定义什么是误差 |
| [[优化器 optimizer]] | 在山谷中的下山移动策略 |
## 实践思路
前段时间刚重写了一个 dl 任务,在此说下心得体会:
1. 顺序上,先 [dataset](https://zhida.zhihu.com/search?content_id=434978403&content_type=Answer&match_order=1&q=dataset&zhida_source=entity),检查基本的 [transform](https://zhida.zhihu.com/search?content_id=434978403&content_type=Answer&match_order=1&q=transform&zhida_source=entity),再搭 [model](https://zhida.zhihu.com/search?content_id=434978403&content_type=Answer&match_order=1&q=model&zhida_source=entity),构建 head 和 [loss](https://zhida.zhihu.com/search?content_id=434978403&content_type=Answer&match_order=1&q=loss&zhida_source=entity),就可以把一个基础的、可以跑的网络就能跑起来了(这点很重要);
2. 可视化很重要,如果是本地开发机,善用 [cv.imshow](https://zhida.zhihu.com/search?content_id=434978403&content_type=Answer&match_order=1&q=cv.imshow&zhida_source=entity) 直观、便捷地可视化处理的结果;
3. 一个基础的 train/inference 流程跑通后,分别构建 1 张、10 张的数据用于 debug,确保任意改动后,可以 overfit;
4. 调试代码阶段避免随机性、避免数据增强,一定用 [tensorboard](https://zhida.zhihu.com/search?content_id=434978403&content_type=Answer&match_order=1&q=tensorboard&zhida_source=entity) 之类的工具观察 loss 下降是否合理;
5. 一般数据集最好处理成 coco 的格式,我的任务跟传统任务不太一样,但也尽量仿照 coco 来设计,写 dataset 的时候可以参考开源实现;
6. 善用开源框架,比如 [Open-MMLab](https://zhida.zhihu.com/search?content_id=434978403&content_type=Answer&match_order=1&q=Open-MMLab&zhida_source=entity),[Detectron2](https://zhida.zhihu.com/search?content_id=434978403&content_type=Answer&match_order=1&q=Detectron2&zhida_source=entity) 之类的,好处是方便实验,在框架里写不容易出现难以察觉的 bug,坏处是开源框架为了适配各种网络,代码复杂程度会高一点,建议从第一版入手了解框架,然后基于最新的一边阅读一边开发。
最后,想要更稳健的开发流程,参考 [Karpathy](https://zhida.zhihu.com/search?content_id=434978403&content_type=Answer&match_order=1&q=Karpathy&zhida_source=entity) 大神的:
https://karpathy.github.io/2019/04/25/recipe/
# 工具 & 平台
| 工具或平台名称 | 主要用途 | 特点与优势 | 备注 |
| --------------------------- | -------------- | ------------------------------- | ------------------- |
| [[wandb]](Weights & Biases)| 深度学习实验管理与结果可视化 | 实验记录云端同步;超参配置一目了然;支持交互式图表嵌入 | 强烈推荐,免费使用 |
| Hydra + OmegaConf | YAML配置管理与实验提交 | 配置变量自动填充;命令行动态修改;支持继承与引用 | 与Wandb结合效果最佳,Meta出品 |
| Plotly | 高度自定义化数据可视化 | 支持交互式图表,定制化曲线导出;可与Wandb联动 | 弥补Matplotlib交互性不足 |
| VS Code Remote | 远程服务器与集群开发调试 | 支持SSH与Docker容器访问;远程Git管理;远程图片查看 | 调试与开发一站式完成 |
| Fitlog | 实验管理与版本控制 | 自动记录超参与结果;代码版本自动管理;前端可视化操作 | 轻量级,适用不同深度学习框架 |
| Google Sheets | 灵活记录实验信息 | 自由配置字段;支持多人协作 | 定制化需求较高时推荐 |
| Acronymify | 模型或论文缩写自动生成 | 快速创建朗朗上口的缩写 | 适合论文命名传播 |
| Linggle | 英文写作词语搭配查询 | 精准提供学术英文写作常见搭配 | 特别适合非母语写作者 |
| Mathpix | 手写或截图公式转LaTeX | 一键截图公式生成代码,快速高效 | 大幅节省LaTeX公式输入时间 |
| Colorbrewer2 | 色盲友好型颜色搭配 | 提供学术论文作图的常用配色方案 | 保证论文图表视觉友好性 |
| Papers with Code | 快速查找论文相关代码 | 查找论文复现代码最有效的工具之一 | 与GitHub结合使用效果最佳 |
| Google Text-to-Speech | 高质量文字转语音 | 提供多种语速与音调选择,适合制作论文讲解视频 | Google官方产品,品质高 |
这些工具组合使用,能够大幅提高深度学习研究与开发过程中实验管理、数据可视化和学术写作的效率。
| Category | Tasks |
| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [多模态](多模态.md) | • Image-Text-to-`Text<br>`• Visual Question `Answering<br>`• Document Question Answering |
| [计算机视觉CV](计算机视觉CV.md) | • Depth `Estimation<br>`• Image `Classification<br>`• [目标检测](目标检测.md)<br>• Image `Segmentation<br>`• Text-to-`Image<br>`• Image-to-`Text<br>`• Image-to-`Image<br>`• Image-to-`Video<br>`• Unconditional Image `Generation<br>`• Video `Classification<br>`• Text-to-`Video<br>`• Zero-Shot Image `Classification<br>`• Mask `Generation<br>`• Zero-Shot Object `Detection<br>`• Text-to-`3D<br>`• Image-to-`3D<br>`• Image Feature Extraction |
| [自然语言处理](自然语言处理.md) | • Text `Classification<br>`• Token `Classification<br>`• Table Question `Answering<br>`• Question `Answering<br>`• Zero-Shot `Classification<br>`• `Translation<br>`• `Summarization<br>`• Feature `Extraction<br>`• Text `Generation<br>`• Text2Text `Generation<br>`• Fill-`Mask<br>`• Sentence Similarity |
| Audio | • Text-to-`Speech<br>`• Text-to-`Audio<br>`• Automatic Speech `Recognition<br>`• Audio-to-`Audio<br>`• Audio `Classification<br>`• Voice Activity Detection |
| Tabular | • Tabular `Classification<br>`• Tabular `Regression<br>`• Time Series Forecasting |
| [强化学习(Reinforcement Learning)](强化学习(Reinforcement%20Learning).md) | • Reinforcement `Learning<br>`• Robotics |
| Other | • Graph Machine Learning |
[[余弦退火]]
```Java