前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【学员分享】深度学习计算机视觉,两个星期从入门到上线

【学员分享】深度学习计算机视觉,两个星期从入门到上线

作者头像
用户1508658
发布2019-07-25 15:23:05
2800
发布2019-07-25 15:23:05
举报
文章被收录于专栏:有三AI

Hello,everyone!今天给大家讲述一个深度学习项目。

在讲这个项目之前,很多业外人士可能不明白人工智能(AI),机器学习(ML),深度学习(DL),这三者是什么关系。先科普一下小常识,它们三者是包含子集关系。即人工智能是最大范畴,包含机器学习,机器学习包含深度学习。

好了,进入正题。本人所解决的是人脸识别登录的业务,最后抽象为一个深度学习的三分类问题。接下来会以解决问题的顺序进行展开描述。用的深度学习框架是caffe,网络结构是mobilenet。

01数据的获取

首先深度学习的数据很重要。而数据集的获取则应该根据业务需求去寻找。本项目是图片数据集的获取,可以从各大开源数据集寻找,之后发现有些类别的数据集量还是不够大,又去各大影视中寻找录屏,然后按帧数切分成图片。

02数据的清洗

该部分将消耗大概百分之七十的时间。数据清洗包括对图片数据集的筛选,分类,又称标注数据。尤其是数据的分类很重要。数据分类的准确性可能就决定了你训练模型能否收敛。该部分是个细活,过程比较琐碎,暂时先不说。数据集分为9类,为啥是9类,解决的不是3分类问题吗?因为前期3分类训练模型的准确率不是很高,考虑到3个大类内部的数据方差过大,于是调整策略为训练为9分类问题,最后测试为3分类,因为最后业务解决的还是3分类问题。

以下是9类图片标注标准:

03训练模型

接下来就是训练模型了,模型的训练由于是在服务器上训练,加上模型不是很大,训练很快,正常跑个4个小时左右就可以迭代出一个模型。模型的acc,loss,随迭代次数的关系可以通过绘制图表观看,很直观。训练集上的acc只能做个参考,主要还是最后测试的表现,因为你模型可能参数很多,最后导致模型过拟合。

该部分还包含模型的调优,也就是调参,这是个学问,值得好好继续学习。

04测试模型

该部分是拿一批最接近业务的数据去测试,看每一类准确率。3分类是标注为0,1,2三个大类。由于业务追求0,1,2的准确率很高,允许2的召回率可以低一些,所以测试时要关注这些。

下面是训练模型在验证集上的表现:

acc

0.9183

acc0

0.9676

acc1

0.8

acc2

0.9723

准确率已经达到业务需求了,然后就结束了吗?当然没有。作为一个专业人士,我们要追求细节,哈哈。因为训练的是9分类,我们要看9分类的具体情况,以及那些错分的样本是哪些。

下面是9类的结果:

acc

0.9183

acc0

0.9676

acc1

0.8748

acc2

7665

acc3

0.5178

acc4

0.8152

acc5

0.9125

acc6

0.9837

acc7

0.5072

acc8

0.6136

怎么3,7的准确率那么低,怎么解决了?此处先埋下伏笔。

祭出大杀器,矩阵统计。

下图是在服务器上运行结果的矩阵部分截图:

看着很不舒服,于是把它调整到文本中,方便观看。

以上矩阵共有arrays1,arrays2,arrays3三个矩阵,每个矩阵的每一行代表真实标签label,共有9行,依次表示label从0到8,每一列代表预测标签predict,共有9列,依次表示predict从0到8,所以每个矩阵都是一个9*9的矩阵。arrays1表示共有81种可能组合,每一个元素表示模型把样本的label预测为predict的可能的个数。例如arrays1[0][0]表示模型把0预测为0的样本共有5975张。arrays2表示模型把样本的label预测为predict的概率总和,例如arrays2[0][0]表示模型把0预测为0的样本概率总和为5.53879372e+03。arrays3表示模型把样本的label预测为predict的概率平均值,arrays3=arrays2/arrays1。例如arrays3[0][0]表示模型把0预测为0的样本概率均值为0.92699476。从arrays3可以看出,主对角线的值(表示模型预测正确的概率均值)还是蛮大的,其它值不是很大,说明模型的整体性能还是挺优的。

好,下面解决上面埋下的伏笔: 3,7的准确率怎么那么低,答案得在arrays3中寻找,我们得看label为3时,分为predict的情况,从arrays3可以看出,arrays3[3][0]较大,表示模型把3错分为0的概率,再去看对应的arrays1[3][0]=9, 表示模型把3错分为0的样本数为9,数据量不是很大啊,然后我们再去查看这9个样本的情况,发现是自己标注错了,好了,这不是模型的锅,模型是还是不错的。同理,分析7的准确率情况。

经过以上的环节,基本深度学习的模型可以出第一版本了,之后再根据业务需求看模型是否需要迭代。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-05-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 有三AI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
人脸识别
腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档