入行算法嘛,那么接下来你要面对的是...
你以为你只需要调调参数?实际上,你要面对的将是:生犯贪嗔痴戾疑,死受鞭笞斧灼烹(不好意思,杀批乱入了)。
好了,言归正传,作为一个合格的视频算法工程师,大概的技术链路就如下图所示,其中最重要的就是视频画质算法(超分/去噪/增强),这一领域不可避免地要深度依赖深度学习。“深度学习”这个概念大家耳熟不一定能详,但如何系统地掌握它?也就是从“知其然”到“知其所以然”?
阶段一:数学与编程基础 ( 2周左右,熟悉可跳过)
万丈高楼平地起,在开始搭建神经网络之前,你需要掌握底层的语言(Python)和逻辑(数学)。不要被复杂的公式吓跑,我们以“够用”为标准。
数学基础 | 线性代数:矩阵运算、特征值、特征向量 微积分:导数、偏导数、链式法则(用于理解反向传播) 概率统计:贝叶斯、期望、方差,主要是信息论 |
Python | 语法基础、列表推导式、类与对象 |
NumPy:矩阵运算核心(必须熟练) Pandas:数据处理 Matplotlib:数据可视化 |
阶段二:机器学习与神经网络入门 (4周左右)
这一阶段的核心目标是理解“模型是如何学习的”。
1. 传统机器学习 (1-2周,很多学校都应该有相关课程了)
虽然目标是深度学习,但理解传统 machine learning是必要的。可以从西瓜书入手啊,非常经典。
经典ML可从范式分为监督学习(回归、分类) 与无监督学习(聚类、降维等)。注:现在机器学习范式不止这些了。通过学习线性回归、SVM、K-means 等经典算法,建立对“过拟合/欠拟合”、“偏差/方差”、“正则化”等概念的直观认知。这些思想在深度学习中依然通用,且往往是模型调优的关键。
2. 深度学习核心 (2-3周)
这里开始进入真正的神经网络。
反向传播 (BP),这是神经网络的基石算法,一定要理解它是怎么更新梯度的。
关键组件有激活函数、损失函数、优化器等。框架方面推荐从 PyTorch 开始(相比 TensorFlow,它更符合 Python 编程直觉,Debug 极其方便👍)。推荐 Andrew Ng (吴恩达) 的 Deep Learning Specialization 。
阶段三:核心领域专项 (5周左右)
深度学习两大最主要的应用领域:计算机视觉(CV)和自然语言处理(NLP)。作为未来的视频算法工程师,建议重 CV,懂 NLP。入手也建议先从 CV 入手,因为它更直观。
1. 计算机视觉 (CV) - 卷积神经网络 (CNN)
理解CNN的核心操作, 彻底吃透卷积 (Convolution)、池化 (Pooling)、Padding等。模型入手的话,可以按 LeNet - AlexNet - VGG - ResNet 这个顺序来。ResNet (残差网络) 是重中之重。残差连接(Residual Connection)是现代超分、去噪网络(如 EDSR, DnCNN)的核心思想来源。
2. 自然语言处理 (NLP) - 序列模型与 Transformer
序列模型最重要的是理解如何捕捉时间依赖性,该思想来源于信号处理里的时延,从时延门到RNN 再到 LSTM/GRU 这里还有一个更重要的Attention Is All You Need,必须深入理解 Attention 机制 和 Transformer 架构 。Transformer 不仅统治了 NLP,现在也是 CV 的主流(Vision Transformer, Swin Transformer)。它是现代 AI 的基石。
阶段四:工程实战 (持续进行)
纸上得来终觉浅,绝知此事要躬行。这时候你需要选择综合性项目,打通从数据准备-模型训练-结果评估-部署优化的全流程。
使用 YOLO 系列进行实时的路面物体检测(检测类)。难点:如何提高 FPS?如何处理遮挡?
利用 GAN (生成对抗网络) 生成特定风格头像,或训练一个 Video Super-Resolution 模型。难点:如何保持视频帧之间的连续性?
等等,也可以根据自身遇到的问题去选择合适的方法去解决。模型训练完只是开始。尝试将 PyTorch 模型导出为 ONNX,甚至使用 TensorRT 进行加速,也可以对精度进行调整。
不要试图看完所有书再动手。代码跑不通是常态,Debug 的过程就是学习的过程。加油,未来的算法大佬!
#为了入行xx岗,我学了__#
查看1道真题和解析