结课总结

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(无激活函数), 完成了从全连接神经网络到卷积神经网络的过渡。概括来说,前者的模型结构灵活度不足(处理不同大小的图片时无法使用同一个模型),参数过多(权重之间是全连接的关系)。对此,卷积神经网络采用局部连接,参数共享和pooling的方式来解决以上三个问题。确定了训练模型后,接下来是损失函数的确定,通过介绍可知,损失函数的选定不是千篇一律的,而是依赖于具体的工作任务,即如果要计算分类损失,则采用交叉熵(cross entropy)损失函数(loss(p,q)=−Σi=1np(xi)log⁡(q(xi))loss(p,q)=-\Sigma_{i=1}^{n}{p(x_i) \log(q(x_i))}loss(p,q)=−Σi=1n​p(xi​)log(q(xi​)),其中ppp为set {0,1} label, q为predicted 概率);若是回归损失,则采用误差平方和(Mean Square Error, MSE) 损失函数(简单,不列)。

第四天,“口罩分类”,开课内容和课后作业均围绕此进行。今天课程的内容在LeNet的基础上,引入其他经典网络结构,或者说,介绍了其他经典CNN结构的发展过程。详细地说,AlexNet引入了Dropout和ReLU,使用了Data augmentation, 为2013 ILSVRC冠军,2014冠军 GoogLeNet引入了Inceptive v2, BN,借鉴了NIN, 效果优于VGG网络(但该网络在其他任务中因表现出色而广泛使用),2015年冠军 ResNet加入残差机制。除此以外,还介绍了计算机视觉的几大主要任务,图像分类/目标检测/图像语义分割/图像实例分割,他们之间的联系如下图所示。

通过一个口罩分类的案例,理解并掌握了如何使用paddlepaddle动态图来搭建一个 经典的卷积神经网络

第五天 的任务是学习paddlepaddle 的PaddleHub库,该库是实现迁移学习的良好去处,但由于学习得不够精深,此处先不做评论,等以后深入学习,再展开详细讨论。本次的课后作业是结合一个竞赛 “人流密度检测” 来完成的,由于数据标注的多样性和数据集足够大,因此完成的难度不小,目前还在进行中,借鉴了群里很多大佬的意见,希望能尽快跑出一个baseline再在它的基础上慢慢将精度提上去。

最后一天 正式学习的任务是paddleSlim, 这个库是对模型进行压缩的封装良好的库函数,有益于模型在终端平台的部署(考虑到了不同平台的硬件性能)。尽管实际用途很大, 但该库也是第一次听(有时候我们是不是越有用的知识接触得越少?),因此在牢牢掌握前面五个课程的基础上,还需花费一番功夫去学习啊。通过老师讲授,可知道,所谓的模型压缩其目标是降低模型总的参数、提高小模型的精度,从而减少计算量和提高计算效率。具体的方法可分为四类,即 剪裁(剪去网络通道数)、量化(变浮点型计算为整形计算)、蒸馏(迁移大模型的知识到小模型上,让大模型监督小模型的训练)、NAS(Network Architecture Search, 与硬件、搜索策略有关)。最后,通过作业体验了paddleSlim的易用性。

总结: 本次课程在4.8晚上的总结会后完满结束了,这门课使我大致了解了深度学习的发展过程,了解了很多以前听过但没有深入了解的概念。感谢paddlepaddle这个框架和aistudio这个平台带来的便捷性(免去了配置环境的烦恼)。同时还有在群里讨论的这种氛围对学习的促进作用很明显(偶尔在里面调侃也是有的)。期待下次继续参加aistudio组织的公开课。

百度AI Studio飞桨平台 “深度学习”结课总结相关推荐

  1. AI Studio 飞桨 零基础入门深度学习笔记4-飞桨开源深度学习平台介绍

    AI Studio 飞桨 零基础入门深度学习笔记4-飞桨开源深度学习平台介绍 深度学习框架 深度学习框架优势 深度学习框架设计思路 飞桨开源深度学习平台 飞桨开源深度学习平台全景 框架和全流程工具 模 ...

  2. AI Studio 飞桨 零基础入门深度学习笔记2-基于Python编写完成房价预测任务的神经网络模型

    AI Studio 飞桨 零基础入门深度学习笔记2-基于Python编写完成房价预测任务的神经网络模型 波士顿房价预测任务 线性回归模型 线性回归模型的神经网络结构 构建波士顿房价预测任务的神经网络模 ...

  3. AI Studio 飞桨 零基础入门深度学习笔记6.3-手写数字识别之数据处理

    AI Studio 飞桨 零基础入门深度学习笔记6.3-手写数字识别之数据处理) 概述 前提条件 读入数据并划分数据集 扩展阅读:为什么学术界的模型总在不断精进呢? 训练样本乱序.生成批次数据 校验数 ...

  4. AI Studio 飞桨 零基础入门深度学习笔记1-深度学习的定义

    AI Studio 飞桨 零基础入门深度学习-笔记 人工智能.机器学习.深度学习的关系 机器学习 机器学习的实现 机器学习的方法论 案例:牛顿第二定律 确定模型参数 模型结构介绍 深度学习 神经网络的 ...

  5. 1.3 飞桨开源深度学习平台介绍

    介绍飞桨在行业内的应用情况.产品全景.技术优势,以及飞桨的安装方法和联系方式. 深度学习框架 近年来深度学习在很多机器学习领域都有着非常出色表现,在图像识别.语音识别.自然语言处理.机器人.网络广告投 ...

  6. 飞桨开源深度学习平台介绍

    深度学习框架 近年来深度学习在很多机器学习领域都有着非常出色的表现,在图像识别.语音识别.自然语言处理.机器人.网络广告投放.医学自动诊断和金融等领域有着广泛应用.面对繁多的应用场景,深度学习框架有助 ...

  7. 百度飞桨七日深度学习手势识别

    百度飞桨七日深度学习手势识别,paddlepaddle免费GPU算力,以及很好的封装,对初学者灰常友好~~~~. 下面是其中的手势识别作业,采用LeNet网络,初步感受了调参的魅力(雾

  8. 国产首款——飞桨PaddlePaddle深度学习框架介绍

    现在深度学习框架不但内卷严重,而且头部效应明显.一提起深度学习框架,首先想到的肯定是Google家的TensorFlow,和Facebook家的PyTorch.究竟排名谁先谁后,还要看你是工业界还是学 ...

  9. 飞桨PaddlePaddle深度学习实战

    作者:刘祥龙,杨晴虹,胡晓光,于佃海 著 出版社:机械工业出版社 品牌:机工出版 出版时间:2020-09-01 飞桨PaddlePaddle深度学习实战

最新文章

  1. Eclipse:定制toString()
  2. python爬虫自学网站_Python爬虫3步曲:5分钟学习用Python解析网页
  3. Ueditor百度编辑器中的 setContent()方法的使用
  4. python 元组与列表的异同点 1125
  5. CodeSmith实用技巧(五):利用继承生成可变化的代码
  6. java pfx提取私钥加签,详解pfx证书提取公私钥的方法
  7. Python入门--文件的读写,相对路径,绝对路径
  8. QT之交叉编译qmake的ARM版本套件(三)
  9. 利用tensorflow自动生成英文摘要
  10. Ubuntu下载QQ
  11. JNI 调用流程 与 JNIEvn逻辑概述
  12. 110千伏变电站对人体的危害
  13. C++/EasyX面向对象编程实现-简单双人对战五子棋
  14. PWM的周期和占空比是如何计算
  15. ORACLE应用产品和SAP、SSA、SYMIX产品的比较分析
  16. 鸿蒙系统第一批升级名单,鸿蒙系统首批升级名单详细介绍
  17. 通读《C++ primer plus》— C++中的5种数据类型转换方式
  18. 更改计算机一级密码,详细教您如何更改win10系统电脑密码
  19. 内存优化 · 基础论 · 初识 Android 内存优化
  20. 硬件产品经理的学习之路(一)

热门文章

  1. 《大国大城》读书笔记
  2. canvas初体验-图片上画方框
  3. 计算机与网络安全基本概念
  4. 4维俄罗斯方块 java_HTML5边玩边学(九)-俄罗斯方块之数据模型篇
  5. 计算机组装防呆,电脑内存如果没有防呆口反插有什么后果?
  6. linux pv命令-q,pv命令 - Linux命令大全 | linux教程
  7. 【摸鱼吃瓜工作录】刚到公司,如何让项目经理对你刮目相看
  8. 魔方(10)金字塔魔方、金字塔二重奏魔方
  9. Android AR ---HelloAR(用的EasyAR 免费版)
  10. 微信小程序 实现背景色渐变(css实现)