一、模型选择:从任务类型出发,选择最适合的模型
1、回归任务
从使用Numpy推导,到使用深度学习框架,一步步走进最简单的回归任务:当人工智能邂逅蓝桥杯算法题,会擦除怎样的火花?(链接:https://aistudio.baidu.com/aistudio/projectdetail/1693536?channelType=0&channel=0)
(1)实现原理
a.从最简单的神经网路开始
b.神经网络工作原理概述
c.使用多个输入进行预测
d.只用一个输入做出多个输出
e.基于多个输入得到多个输出
f.用预测结果进一步预测
(2)拟合斐波那契数列
a.问题描述:输入格式、输出格式
b.生成数据:输入数据、数据对应的标签、将数组转换成张量
c.构建线性回归模型
d.构建优化器和损失函数
e.模型训练
f.模型验证
(3)大等于n的最小完全平方数
a.问题描述:输入格式、输出格式
b.生成数据
c.构建线性回归模型
d.构建优化器和损失函数
e.模型训练
f.模型验证
小结:先用传统方法人脑解题,写出能算出结果的函数,然后根据这一函数生成训练数据,最后训练出线性回归模型。使用简单的线性变换层组建网络,使用少量数据进行拟合,模型输出能近似预期结果,但还有一定的差距,有很大的提升的空间,感兴趣的开发者可以基于本项目,尝试使用更多的数据、更复杂的网络等。
人脸关键点检测:基于空间注意力SAN与GoogLeNet实现人脸关键点检测并自动添加表情贴纸(链接:https://aistudio.baidu.com/aistudio/projectdetail/1533049?channelType=0&channel=0)。
2、分类任务
CIFAR-10数据集也是分类任务中一个非常经典的数据集,在科研中,常常使用CIFAR数据集评估算法的性能。
图像分类:从论文到代码深入解析带有门控单元的gMLP算法。(链接:https://aistudio.baidu.com/aistudio/projectdetail/2134364)
3、场景任务
这里说的场景任务是针对某一个特定的场景开发的深度学习任务,相比于回归和分类任务来说,场景任务的难度更高。这里说的场景任务包括但不限于目标检测、图像分割、文本生成、语音合成、强化学习等。
目标检测:基于PaddleX的YOLOv3模型快速实现昆虫检测(链接:https://aistudio.baidu.com/aistudio/projectdetail/442375)。
人像分割:基于PaddleX核心分割模型 Deeplabv3+Xcetion65 & HRNet_w18_small_v1 实现人像分割,PaddleX提供了人像分割的预训练模型,可直接使用,当然也可以根据自己的数据做微调(链接:https://paddlex.readthedocs.io/zh_CN/release-1.3/examples/human_segmentation.html)。
文字识别:基于chinese_ocr_db_crnn_mobile实现文字识别,识别图片当中的汉字,该Module是一个超轻量级中文OCR模型,支持直接预测(链接:https://www.paddlepaddle.org.cn/hubdetail?name=chinese_ocr_db_crnn_mobile&en_category=TextRecognition)。
二、模型训练
仅基于原生Python和Numpy看模型训练基本原理:神经网络梯度下降原理详解(链接:https://aistudio.baidu.com/aistudio/projectdetail/757995)。
1. 基于高层API训练模型:通过Model.prepare接口来对训练进行提前的配置准备工作,包括设置模型优化器,Loss计算方法,精度计算方法等。
2. 使用PaddleX训练模型:YOLOv3模型的训练接口示例,函数内置了piecewise学习率衰减策略和momentum优化器。
三、超参优化
1. 超参优化的基本概念
2. 手动调整超参数的四大方法:使用提前停止来确定训练的迭代次数,让学习率从高逐渐降低,宽泛策略,小批量数据(mini-batch)大小不必最优。
四、效果展示
1. 可视化输入与输出:直接可视化输入与输出是最直接的方法。
2.巧用VisualDL:VisualDL文档:https://ai.baidu.com/ai-doc/AISTUDIO/Dk3e2vxg9#visualdl%E5%B7%A5%E5%85%B7
3.权重可视化:InterpretDL源码:https://github.com/PaddlePaddle/InterpretDL
总结:
1、重要的是神经网络工作的基本原理,搞懂了原理,才能更好地进行超参优化,得到更好的模型效果。
2、学会使用SubClass形式组网,科研需要一定要学会用SubClass形式组网。
3、模型训练,超参数的选择有很多讲究,超参的好坏往往会影响模型的最终结果。
4、效果展示十分重要,是一个项目的加分项。