结课总结
2020.4.1-2020.4.8期间参加了百度AI Studio的“深度学习7日入门-CV疫情特辑”课程,这是今年自新冠疫情以来参加的第一次线上课程,偶尔通过paddlepaddle的公众号推送获得该课程的开课信息。该课程主要通过教师网络直播,学生在AI STUDIO上完成作业和竞赛,通过群里讨论的方式来开展,通过该课程,基本了解的深度学习的基本概念,在完成作业的基础上了解了深度学习的工作流程和具体的应用。总体来说,受益匪浅。
本次开课一共七天,下面简单罗列自己在这七天内的学习内容。
第一天,紧跟当前新冠疫情的发展趋势,使用python爬虫爬取丁香园网站所公布的我国各省份新冠感染人数,并使用pyecharts来可视化这些数据。第一次接触pyecharts绘图库,这个库由于由百度开发维护,因此特别适用于我们国人。参考该工具包,可谓良心,documentation和API相当详尽,有时间再好好研究下。
第二天,“手势识别”,即给定一张大小为100×100的手部图片,识别出该图片指示的数字是什么。开课的内容和课后作业均围绕该主题来进行。从这次课程内容后,我了解到识别是深度学习中的一个重要应用,识别过程需要依次进行以下三个步骤,即 建立模型-损失函数-优化算法 。其中建立模型使用了早期的 前馈神经网络(输入层与隐藏层,隐藏层与输出层之间均使用全连接实现,输出层使用softmax激活函数,其他层不使用激活函数);损失函数则使用了最简单的误差平方和(常用的还有交叉熵损失函数); 优化算法则借助链式法则计算变量的梯度值,并用分批次的梯度下降算法来更新每次的参数值。
在实际做作业过程中,发现尽管在训练过程中得到的训练精度很高(基本在1.0附近产生微小波动)、损失值很低(0.04712838),但在测试时的精度偏低,在群中讨论后的结果是,应该是产生了过拟合的现象,即参数“过于完美”地拟合了训练数据,但一旦应用到测试集时效果就大打折扣。经过讨论,使用dropout丢weight和在loss function上加入正则项的方法,在不改变epoch的情况下测试accuracy有了显著提升。(调参也不是一门毫无技巧的学问)
第三天,开课内容和课后作业都是围绕 “车牌识别” 展开。尽管与第二天的内容同为识别,但今天的内容相对来说更进一步,主要表现在“手势识别”使用的是前馈神经网络,而今天的内容则使用 LeNet-5(无激活函数), 完成了从全连接神经网络到卷积神经网络的过渡。概括来