Intorduction:

时隔好几个月,我准备重新进入Deep Learning 的领域。昨天和老师聊了很多,之前觉得我做的工作就是排列组合,在水论文,灌水。但老师却说:这也是为将来的研究打基础。 我想是这么个道理,科研这一块,写论文,发论文,画图等等细枝末节的工作都是需要经验积累的,一开始搞个大的,不现实,就算搞出来,其他细节工作没做好,影响整体质量,也白搭。

任何问题都要辩证地看。

之后老师给我讲了他的一个idea,几年前想的,时空序列方向,通过arrange不同时间维度组成tensor进行卷积,想法很新颖,我从未听说过,但据他说跑出来效果不好,可能调参没做好,后面事情就搁置了。我听到这个idea,欣喜若狂,又恍然大悟。这不就是Deep Learning 领域做research 的过程吗?

想出一个你认为绝妙的idea,实验验证- 不断打磨-不断验证 重复进行,最终要么出成果,要么变成垃圾扔掉。

Coding:

现在呢,对这个领域重拾了一些信心。越来越意识到,在Deep Learning 领域做research 重要的不是Idea 而是 Implementing ability. 说白了就是Coding 的能力。

面向对象要会,基本的编程思想得懂。python要学过,至少要看得懂别人的代码,就算看不懂,也得具备查阅资料把它看懂的能力。框架得熟悉(pytorch),这和python是一个道理。其中贯穿始终的是coding style。

我这几个月的coding 经历发现,很多beginner 包括我,写出来的代码都很烂,像上完厕所用过的纸。 根本没有复用性,没有鲁棒性。这一块想提高,一是去看代码规范的书,二是多做实战多看别人的代码,自己敲一遍,learn by doing。

我推荐的学习顺序是,先做实战,学到点皮毛,再去看书。有实践经验再看书,会有恍然大悟,茅塞顿开的感觉,你在实践中学到的规范会在书里以高观点的方式体现,诠释。相反,先看书再实践,就没有这样的效果了。只会云里雾里。

当然这一切都建立在你有一个comprehensive idea of deep learning( machine learning),这一方面推荐Andrew Ng 的课程。

Keep following:

基础都搭建好了,那每天就得follow 最新的资讯,看看title,abstract,实在懒看看图片也好。总之,follow领域内的热点,看看大家都在干什么。这一步能create new idea,也能enhance 对一些概念的理解,

看到好的文章,甚至能提升你的维度,以更高的观点俯视问题。这方面需要关注一些AI自媒体,我推荐的:@爱可可老师,机器之心等等。这些都能在一些网站上找到:国内有微博、微信公众号、知乎....国外就是reddit, twitter, medium......

Idea:

他们都说Idea是这个领域最不值钱的东西了,现在人人都有idea,就看谁能最快实现出来。所以我反复强调coding 能力,定期去跑跑demo 实现一个implementation有益科研之路。更何况coding是每个学计算机的人的看家本事,不论将来从事的方向如何,coding都是基本技能,在一个领域内锻炼出来的coding能力换一个领域也同样适用。即使换方向,你的学习速度也会比别人快很多。这大概就是transfer learning?

关于idea,有一篇文章写的相当 informative.我还没看完,但前几章让我受益匪浅。我意识到,好的idea也是排列组合,只不过他们站在更高,更深的维度上发现的。而不断挖掘深度,是我们一以贯之的使命。

如何在计算机应用领域寻找研究想法 - 钱志云的文章 - 知乎 https://zhuanlan.zhihu.com/p/341685279

计算机教授@加州大学河滨分校

Help:

学会寻求帮助,前提是保持humble。coding上,理论上总有牛人,他们懂的比你多,理解的深度比你深,他们的work会惊掉你的下巴。和他们学习,遇到问题向他们寻求帮助。我所认识的绝大多数人都很nice,不会嫌弃你的问题。我最开始做的时候,需要复现一段代码,当时代码跑不通,我去调,coding上遇到了好多问题,就是一位学长不停的指导我,恶补了很多知识,学到很多技巧,有时问他这段代码应该怎么写,他直接把代码敲好发我。其次应该多找老师帮忙,前提是老师人很好。一些研究上的事,一些郁闷的事情,都能和老师交流。我是间隔了快一个学期才去找老师聊聊,聊完后豁然开朗。后悔没有找点找他。当然了,和nice的人交往,自己也要足够nice。这一点至关重要。

最后一段话是写给自己的。出国只看重绩点,而在这个学校,等到考试周抱佛脚,也能有个不错的成绩。学校不卷,绩点不难刷。因此你有大把的时间来做其他事情。你的退路有很多。科研是你的一个爱好,和运动、弹吉他一般,但略高于他们。你会面临更大的困难,要付出更多的时间,精力。做研究不像上课,你面对的是未知的深渊,没有正确答案,没有人懂你的研究内容,你没有同学可以交流讨论。结果的正确性只能靠实验结果验证。突然有一天你脑袋里冒出一个你认为绝妙的idea,你为这个理论想到了完美的解释,根据你的解释,模型一定会work的非常好,经过几个月的实验验证,你怎么都调不好,performance越来越差,你会自我怀疑,妄自菲薄。习惯他,推倒重来。你舍不得,不甘心。但没有用。深渊没有感情,错了就得放弃。

但行好事,莫问前程。做pure researcher~

idea the content of cognition; the main thing you are thinking about More (Definitions, Synonyms, Translation)

Deep Learn I'm back.的更多相关文章

  1. What are some good books/papers for learning deep learning?

    What's the most effective way to get started with deep learning?       29 Answers     Yoshua Bengio, ...

  2. 论文翻译:2021_Towards model compression for deep learning based speech enhancement

    论文地址:面向基于深度学习的语音增强模型压缩 论文代码:没开源,鼓励大家去向作者要呀,作者是中国人,在语音增强领域 深耕多年 引用格式:Tan K, Wang D L. Towards model c ...

  3. TensorFlow入门学习(让机器/算法帮助我们作出选择)

    catalogue . 个人理解 . 基本使用 . MNIST(multiclass classification)入门 . 深入MNIST . 卷积神经网络:CIFAR- 数据集分类 . 单词的向量 ...

  4. ubuntu17.10 安装CUDA

    1. 更新apt-get源列表 sudo apt-get update sudo apt-get upgrade 2. 添加驱动源 sudo add-apt-repository ppa:graphi ...

  5. keras_训练人脸识别模型心得

    keras_cnn_实现人脸训练分类 废话不多扯,直接进入正题吧!今天在训练自己分割出来的图片,感觉效果挺不错的,所以在这分享一下心得,望入门的同孩采纳. 1.首先使用python OpenCV库里面 ...

  6. cvpr2015papers

    @http://www-cs-faculty.stanford.edu/people/karpathy/cvpr2015papers/ CVPR 2015 papers (in nicer forma ...

  7. 论文笔记:Learning how to Active Learn: A Deep Reinforcement Learning Approach

    Learning how to Active Learn: A Deep Reinforcement Learning Approach 2018-03-11 12:56:04 1. Introduc ...

  8. Deep learning:五十一(CNN的反向求导及练习)

    前言: CNN作为DL中最成功的模型之一,有必要对其更进一步研究它.虽然在前面的博文Stacked CNN简单介绍中有大概介绍过CNN的使用,不过那是有个前提的:CNN中的参数必须已提前学习好.而本文 ...

  9. 【深度学习Deep Learning】资料大全

    最近在学深度学习相关的东西,在网上搜集到了一些不错的资料,现在汇总一下: Free Online Books  by Yoshua Bengio, Ian Goodfellow and Aaron C ...

随机推荐

  1. 三、git学习之——管理修改、撤销修改、删除文件

    一.管理修改 现在,假定你已经完全掌握了暂存区的概念.下面,我们要讨论的就是,为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件. 你会问,什么是修改?比如你新增了一行, ...

  2. Array的简单使用(Boost和STL通用)

    目录 目录 介绍 使用 Boost和STL的区别 介绍 本来这一次是想简单介绍一下Boost里面的协程库的使用的,但是Boost.Coroutine已经被废弃了,而Boost.Coroutine2目前 ...

  3. 推荐系统实践 0x0f AutoRec

    从这一篇开始,我们开始学习深度学习推荐模型,与传统的机器学习相比,深度学习模型的表达能力更强,并且更能够挖掘出数据中潜藏的模式.另外.深度学习模型结构也非常灵活,能够根据业务场景和数据结构进行调整.还 ...

  4. 三、LoadRunner卸载

    由于安装的时候没看提前了解清楚,LoadRunner社区版只能模拟50个用户,满足不了工作需求,删了重装吧. 1-打开"控制面板"-点击"卸载程序" 2-找到H ...

  5. 确定Linux系统位数

    1:getconf LONG_BIT 2:uname -a 3:uname -r 4:cat /proc/version

  6. 用 Roslyn 做个 JIT 的 AOP

    0. 前言 上接:AOP有几种实现方式 接下来说说怎么做AOP的demo,先用csharp 说下动态编织和静态编织,有时间再说点java的对应内容. 第一篇先说Roslyn 怎么做个JIT的AOP d ...

  7. linux环境下jdk安装以及配置

    linux 环境安装jdk和配置环境变量: (此处以root用户安装,此方式安装一台虚拟机装一个jdk即可,所有普通用户可以共用) 1.下载安装jdk 链接: https://pan.baidu.co ...

  8. 仙剑4CPK加密解密算法(转)

    // RSTEncDec.h: interface for the CRSTEncDec class. // ///////////////////////////////////////////// ...

  9. MQTT协议 局域网和广域网 云服务器和虚拟主机、VPS SSH和FTP、SFTP

     MQTT协议 MQTT协议就很好的解决了coap存在的问题.MQTT协议是由IBM开发的即时通讯协议,相比来说比较适合物联网场景的通讯协议.MQTT协议采用发布/订阅模式,所有的物联网终端都通过TC ...

  10. 通过PHP代码将大量数据插入到Sqlite3

    PHP代码 读入txt文件,并写入到sqlite数据库里 <?php date_default_timezone_set('PRC'); $pdo = new PDO('sqlite:db/qq ...