写在前面
文章是别人的,但是内容是真滴好
原文网址:https://mp.weixin.qq.com/s/NbSMiZ8U9Z_GoPiVFTIjaA
阶段1:入门级
以下掌握:
- 能够处理小型数据集
- 理解经典机器学习技术的关键概念
- 理解经典网络DNN、CNN和RNN
数据
数据处理
在入门级使用的数据集很小,可以放在主内存中,只需几行代码就可以实现操作,在此阶段的数据包括Audio(音频)、Image(图像)、Time-series(时间序列)和Text(文本)等类型
经典机器学习
在深度研究深度学习之前,学习基本机器学习技术是一个不错的选择,包括回归、聚类、SVM、树模型。
但是我觉得这里好像归类不太准确,我个人觉得应该有这些
(个人意见,不喜勿喷)
首先应该把握基本模型的算法流程(业务理解和数据、准备数据、数据建模、模型评估、应用)
其次就是一些算法
分类算法:KNN、决策树、朴树贝叶斯、支持向量机、人工神经网络
聚类算法:k-means、DBScan
回归问题:线性回归、逻辑斯提克回归
关联分析:Apriori与FP-Growth
自然语言处理NLP
计算机视觉CV
网络
掌握常见的网络层,以及相应的神经网络;GAN、AE、VAE、DNN、CNN、RNN 等等。在入门阶段,可以优先掌握DNN、CNN和RNN。
理论
没有神经网络就没有深度学习,没有(数学)理论就没有神经网络。可以通过了解数学符号来开始学习,可以从矩阵、线性代数和概率论开始你的学习。
这一点总结的相当到位,深刻理解线性代数!!!
补一些知识比如:
阶段2:进阶水平
进阶和入门级之间没有真正的分界,进阶水平能够处理更大的数据集,能够使用高级网络处理自定义项模型:
- 处理更大的数据集
- 能够自定义模型完成任务
- 网络模型精度变得更好
数据处理
能够处理几GB的数据集,需要自定义数据扩增方法和数据处理函数。
自己完成任务
能够根据具体任务完成代码的开发,而不是参考MNIST的教程完成编码。
自定义网络
处理自定义项目时,如何处理数据数据?如何定义自己的网络层
模型训练
掌握迁移学习的思路,学会使用预训练权重完成新任务。并掌握冻结部分网络层的方法。
深度学习理论
掌握深度学习模型的正向传播和反向传播,特别是链式求导法则。掌握激活函数和目标函数的作用,能够选择合适的激活函数和目标函数。
阶段3:熟练水平
与进阶相比你需要掌握更加的数据集处理方法,并掌握加速模型训练的方法:
- 大规模数据的处理和存储
- 网络模型的调参
- 无监督学习和强化学习
数据处理
需要掌握几百GB数据集的处理,学会Linux的操作。此阶段可能接触到多模态任务。
无监督项目
开始尝试无监督网络模型的搭建,如自编码器和GAN模型,能够掌握模型原理。
模型训练
掌握模型调参的方法和常见的日志和可视化工具,如TensorBoard的使用。掌握学习率的调节方法,如余弦退火。掌握多机和混合精度训练。
阶段4:专家级
掌握前沿的学术模型的发展,知道自己的兴趣是什么,并能提出新的模型:
- 学会使用JAX或DALI处理数据
- 熟悉图神经网络和Transformer模型
妈耶
导师喊我搞图神经网络,可是我的水平也只有也入门级,连进阶都不到!呜呜呜
这可咋整!!!!加油吧!