初学计算机视觉的切身建议

最近有不少小伙伴问我,打算开始学习计算机视觉(机器学习,深度学习)等这方面的内容,有没有什么建议?

我按照我个人的学习历程给出了不少建议,虽然不一定权威,但也算有用。因此在这里把这些最常见的问题整理一下,希望对各位初学者有帮助。如果能帮到你,我会感到很开心,不过我也不是大神,所以大神们略过就好。

一、看书和听课

这个问题一开始也让我很迷惑,但是经过一段时间的尝试之后,我觉得可以这样来操作。对于基础的东西,并且自己完全没接触过,那有必要看书或者听课程系统的学习,不然后面有很多坑,就算遇见了可能自己还不知道。不过对于工具类的使用或者一些学过的东西,遇到问题的时候就使用搜索来解决问题,如果搜索还解决不了,那就请教一些厉害的人。

对于看书,现在的理论书籍动不动就是几百页,入门的时候想要看完是很难坚持下去的。刚开始我也是定个小目标,要把某某大部头看完,后来发现根本不可行。一是没有这么多的时间看,看这种书需要整块整块的时间,必须每天都给强制规划出时间来才行,这对我来说有点困难;二是在看书的时候遇到不懂的又得去网上查资料,这样学习进程缓慢,比较打击自信心;三是就算看完之后,但很多东西都用不到,或者学习得并不透彻,时间一久就又会忘记。而对于一些由代码和截图堆叠起来的书,那就更看不下去了,有时候真心搞不懂这种书也能出版。

对于听课,我认为这和看书差不多。但是课程有自己的课后作业,这个就相当于实践,一定要把作业好好做一遍,这样才算获得了这门课的精华。而视频的一个缺点就是不方便回顾,不像书籍可以直接根据记忆定位,视频需要找到视频章节,然后点击进度条逐步定位,对于像我这样没耐心的人就会立马放弃。所以,听课的时候有必要做点笔记,把自己不会的总结下来,以便复习回顾。

二、动手实践写代码

等基础掌握之后,放下书本,立马动手实践。有某位伟人说过,实践是检验真理的唯一标准,这句话还是很有道理的。编程也是一门实践性很强的科学,如果对于学到的东西不实际动手操作一下,我甚至都会怀疑这个知识点的正确性,也许是因为这些语言的各种细节不一样吧。而且动手看一看效果,可以去除掉头脑中那些模糊的地方,对整体和细节都有更好的把握。

那具体对于计算机视觉而言,可以去 github.com 网站上面找相关的小项目 fork 下来尝试看懂,然后自己再动手复现一遍。例如搜索目标检测,就可以看到 YOLO 和 SSD 算法的代码实现。

前面说过,课程的课后作业就是很好的实践材料,特别是与前面的知识相匹配。在这个过程中,遇到不会的,这就可以去查看书籍或者搜索来解决问题,用这样的方式带着目的和问题来看书,就能够把书本掌握的更透彻,也能够吸收书里面真正重要的内容,毕竟一本书不是所有的东西都是精华。

三、关于数学的学习

数学当然要学,而且要放在优先级高的地位。高等数学、线性代数、概率论这三门学科都是工科必学的。而对于考研来说也都是必考的学科,所以数学的重要性也可由此看出来。

但是对于数学,通常我们在大一大二的时候都会在学校的教导下把这三门学完。对于学习数学基础来说,这就已经足够了,足够你去看懂大多数比较简单的公式。但要注意,一定要是理解数学,而不是记忆数学的解题方法,纯粹为考试而学习。

此后,还会遇到一些更高阶的数学学习,比如凸优化、矩阵论等。这时候就可以在涉及到具体问题的时候,学那些要用到的东西,即带有目的性的学习。

所谓的学习,就是解决问题,在这个过程中一点点掌握自己不会的东西,而不要试图尝试一次性就把整个领域都学会。能够快速学习的技能都不重要,因为可以快速学会,所以不具备稀缺性;而重要的东西不可能快速学会,因此学会才有其价值,这不是我个人空想的理论,而是由经济学决定的。

四、初学如何看文献

初学的时候,看论文当然很吃力。但让你感到吃力地东西,一切都是由于熟悉度还不够高引起的。当你对某样东西很熟悉的时候,你就能够轻松应对,这就是熟能生巧。阅读文献也是同样的一个道理,对于我们来说,具体的难点在于英语阅读不够熟练和其中的一些知识点不够熟悉。

我在这里就说说我用过的一个小方法吧。首先我是先在国内的研究生期刊上找该领域的文章,包括硕士论文和少量博士论文,这些文章都是用中文写成的,所以对于英语就不必害怕。另外,这些论文通常都会为了写够字数,而把摘要部分和详细说明写的很清楚,这就是一个绝好的学习材料啊。然后从这些文章的引用来找其他文章,这样对内容有了一定熟悉度之后,相对也就能够更轻松的对付了。

论文网站有知网、万方、谷歌学术等,如果是在校生的话,学校图书馆通常会购买这些服务,可以自己去图书馆了解一下。

五、值得推荐的课程和书籍,资源

公开课 Stanford CS231N 是讲计算机视觉和深度学习的一门课程,授课老师是李飞飞,其人在学术界和工业界都很有名。这门课程能够在哔哩哔哩上面找到,作业也能够在GitHub网站上面找到。

吴恩达的《机器学习》和《深度学习》都是面向初学者的优秀的课程,可以在网易云课堂上面找到,但作业需要到 coursera 去找,不过 GitHub 肯定也有的。林轩田的《机器学习基石》和《机器学习技法》也是优秀的课程,不过我也没有看过,就不做过多推荐了。

经典书籍有冈萨雷斯的《数字图像处理》、Richard Szeliski 的《计算机视觉:算法与应用》、Ian Goodfellow 等人的《深度学习》、李航的《统计学习方法》等。

编程语言可以学习 C++ 或者 Python。C++推荐书籍《C++ Primer》,Python 推荐廖雪峰的 Python3 教程。

需要学习的开源库主要是 OpenCV 和一些深度学习机器学习的框架,比如 TensorFlow 和 Pytorch,这些都有较为完善的官方网站和技术文档,中文社区也很繁荣。

欢迎大家关注公众号“计算机视觉与机器学习”
计算机视觉和机器学习

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值