中科大研二学生,深度学习放弃,浅度学习入门!?

举报
橘座 发表于 2019/10/14 20:54:39 2019/10/14
【摘要】 乍看题目,你可能会认为我在故弄玄虚,不过我觉得对我而言说深度学习确确实实不很恰当。首先,在这一年的学习中,我自己做的模型并没有那么“深”,一般十几层就结束了;其次,在学习深度学习的过程中,越发觉得自己很多方面研究的都不深入,比如对于我常用的生成对抗网络(GAN)而言,至今也没有把GAN相关的经典的paper读完,很多背后的数学原理也不清楚,学无涯,知无尽,由俭入奢易,由浅入深难,对于深度学习...

乍看题目,你可能会认为我在故弄玄虚,不过我觉得对我而言说深度学习确确实实不很恰当。首先,在这一年的学习中,我自己做的模型并没有那么“深”,一般十几层就结束了;其次,在学习深度学习的过程中,越发觉得自己很多方面研究的都不深入,比如对于我常用的生成对抗网络(GAN)而言,至今也没有把GAN相关的经典的paper读完,很多背后的数学原理也不清楚,学无涯,知无尽,由俭入奢易,由浅入深难,对于深度学习这方面,自己知道的还是很浅。

 

在谈谈自己的学习之路,或者说骗人之路前,先介绍下自己吧,混个脸熟,以后有机后蹭饭。本人现在在中国科学技术大学读研二,科研至今,手里只有一篇ACMMM的paper,一篇IEEE期刊在审。对于做CV的而言,没有篇CVPR,真的不敢露面。所以我就随便写写,大家随便看看好了。


1539911522220086718.jpg



 

阴差阳错入坑

 

入坑深度学习,不是我刻意跟风,或者被薪资吸引,而是因为各种阴差阳错。刚得知被科大录取,激动万分,然后开始选导师。本科时一直在做机器人比赛,于是给学院的大牛陈小平教授发了邮件,石沉大海;又想想,在中科院实习时一直做Android,不如找个研究Android的老师吧,尴尬地发现全学院没有研究这个的;最后中科院实习时的boss推荐了中科大的一个学长,学长给了我写了个推荐名单,然后就都发了邮件,选了回复我最早的老师。额,那时连老师做什么的都不知道;哈,我对整个计算机体系都感兴趣,就没有纠结专业方向。

 

朦朦胧胧学习

 

和老师签过协议后,交到研招办,算是正式成为老师的弟子了。接下来,导师发了两个视频链接给我:一个是Coursera上的Machine Learning课程,也就是大家熟悉的andrew ng的课程;另一个是Coursera上的概率图模型课程。我入门就看了第一个视频,这个视频真的是经典,而且老师的语速很慢,看英语也不费劲,关键是有字幕,后来还发现竟然还有中文的字幕,真的是良心之作。一边做毕设一边看,大概用了一个月修完了该课程,拿到了证书。对于后一个概率图的课程,真的是看不懂,而且连字幕也没有,小姐姐说话还听不懂。最后只好放弃了。

 

七月份刚刚拿到本科***书,休整了下来到了科大,进入实验室开始学习。开始时手上没有具体的工作,师兄说你先看看我们实验室一代代传下来的《统计学习方法》吧。拿起书,上面还有历年师兄留下的笔记痕迹,心中充满的神圣感。于是开始学习起来,前前后后,朦朦胧胧地读了两遍。师兄说SVM很重要,于是我又自己一边读,一边自己尝试实现了SMO算法。这样学习了Coursera的课程和阅读了《统计学习方法》,大概知道了些机器学习的概念和算法。正巧,导师准备进军深度学习——实验室以前只是做概率图模型,于是买了一些书籍,然后我就开始了《Tensorflow实战》的学习(至于Python,是我大二开始用的)。现在看来,拿一个框架来学习深度学习真的是最好的方式,如果一上来就读Goodfellow的厚厚的一本《Deep Learning》,估计要被一堆概念和公式吓死。在阅读《Tensorflow实战》的过程中,自己比着写了书上所有的代码,偶尔也会遇到API更新、版本不同的问题,所幸网上都找到了解决方案。对于Tensorflow的学习,感觉随便找本书,或者跟着官方的文档进行学习都是可以的,工具的掌握有利于我们去学习知识,但工具本身并不能成为我们纠结的地方。一些大佬的paper通常会开源代码,如果大佬用Pytorch实现的,就需要你再去学习Pytorch。因此,掌握多种工具也是必修课,但一定要把其中一种学扎实。对于《统计学习方法》这本书,可谓是不得不读。在三年前,师兄面试准备BAT就看了这一本书,三年后的今天,虽然只凭借这一本书完全不够用,但是经典依旧是经典。

 


1539911522231097508.png

跌跌撞撞科研

 

老板不知道从哪里看了一篇文章,感觉可以拿来“利用”一下,于是就让我和师姐一起做。这篇文章是关于生成对抗网络的,我和师姐都没做过,而且师姐也和我一样刚刚接触深度学习。于是开始了GAN的学习之路。首先从网上找来各种关于讲GAN的博文,乱七八糟的都有,浏览了一遍。接下来,去看了Goodfellow的提出GAN的那篇文章,和师姐讨论了这篇文章讲的是什么,大概算是知道了GAN的存在和基本的原理。


1539911586669077148.jpg


接下来就是设计网络结构,使用tensorflow实现代码,实现自定义设计的rank loss,在三个标准的数据库上进行实验。在最终被ACMMM接收前并不是一帆风顺的,期间出现了各种问题,后来自己总结出了一些:

(1)前期的调研要做充足:比如做GAN相关的,就要把近几年顶会,一区期刊以及引用量高的关于GAN的文章认真阅读,不能局限于自己本身的研究方向,你做的是风格迁移并不意味着在科研时不去读GAN做样本扩充的文章;阅读自己领域的比较好的文章,总结这些文章的模型特点,实验条件(比如利用哪些数据库进行了验证,数据集的划分),实验分析和实验结果,是否有公开代码(这点也很重要,因为你很可能需要跑别人的代码来做对比实验);思考自己提出的方案创新点在哪里,是不是已经有人做过我提出的方法了。

(2)GPU保证是必须的,对于做深度学习,现在数据量巨大,动不动就要跑几天,没有GPU真的很难做出成果,毕竟对于科研抑或是学习、比赛而言,时间比金钱更重要。即使买不起GPU,也可以在网上租GPU资源来使用。

(3)不断地学习:在科研期间,读了不少论文,也评审了不少文章,通读了周志华老师的西瓜书。技术在不断更新,需要我们时刻去学习充实自己。同时对于你用的工具,也要关注社区的动向,比如对于tensorflow而言,最近的Google开发者大会就提出了用Eager模式搭建模型,用Datasets处理数据,用Feature Columns提取特征,用Keras或Estimators搭建模型,用SavedModel打包模型的高效地进行模型原型设计、训练和生成投入的模式。使用这种模式,我们可以大大节省时间成本。发现自己还有身边的一些人,在习惯于一种模式后,就大概率地不愿意去接纳新的模式,我发现自己使用slim搭建模型比较多,就不太情愿去学习Keras或者Estimators,这样对于以后的发展有害无利,自己现在也在改变。

 


1539911625806076171.jpg

一无是处后记

 

这一年来,陆陆续续也在csdn上写了20几篇机器学习、人工智能方向的博文,基本都是为了整理下自己读的文章和学习的知识。加上以前写的乱起八糟的东西,写了130篇,有了20W的访问量,勉强算个中游分子,与大佬们相比还遥不可及。今年7月23号开始,转移写文章阵地到了自己的公众号上,陆陆续续也有了300多个粉丝,算是一点小小的成就吧。把自己学到的东西整理出来,既能巩固自己的知识,又能分享给大家,何乐而不为呢?自己和很多人一样,都是AI这个庞大网络中的一个小小的神经元,尽管我们很微小,但也为AI开花结果做着一点点贡献。借用喜欢的作家鲁迅先生的话——真正的勇士敢于直面惨淡的人生,敢于正视淋漓的鲜血;真的勇士,将更奋力而前行!



1539911758855069711.jpg

请关注我们公众号:机器学习Tensorflow案例ai昂钛客(angtkai)

这里能找到本文作者呦!



1539911851054022994.png

也可以关注本次征文的合作主办方异步社区公众号,异步图书

本文转载自异步社区

原文链接:https://www.epubit.com/articleDetails?id=N49e20db3-95e4-471a-8356-060f001dcbb9


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。