入门深度学习真的有这么难吗

大家好啊,我是董董灿。

今天在微信上回答聊一个同学的问题:**?我在入门深度学习的过程中,从配环境到 debug 全是坑,解决问题的时间远超跑模型的时间,为什么入门深度学习这么难?**

这个问题真的问到我的心坎里了,我只能说,入门深度学习这件事,我是真的有经验。

1、我是如何入门深度学习的

我从机械硕士毕业就转码开始搞软件开发,然后转行做深度学习算法,已有不少年了。

这个过程,经历了不少,这一段经历可以查看这个链接:跨行学人工智能。

无论是自学 C++、python 这种基础编程技能,还是从零学习 AI 算法,还是钻研计算机体系结构,每一部分都有很多的感悟。

这里重点说一下学习 AI 算法的经历和感受。

记得第一次参加与深度学习算法的面试时,是一个小公司,面试官问我什么****是权值?

那会儿深度学习还远不像现在这么火,面试问的问题很基础,什么是权值这种简单的问题,我估计是真的很难再碰到了。

我当时的回答是:你说的是不是达不溜(w)。

面试官笑着说,什么达不溜?

我说我看很多文章中的权值,都用 w 表示。

那次的面试是失败了,后来又面过很多公司。最后幸运的是进入了一家 AI 芯片算法公司,在那里有大量的时间边工作边学习,算是入门了深度学习。

从我的经历来看,现在很多打算入门深度学习的同学的水平,包括上面问问题的同学的水平,是绝对可以很好的回答上来"什么是权值的"。

虽然我现在在 AI 行业混了很久了,也熟悉了不少算法和神经网络,但我相信你肯定可以比我学的更好。

看下我当时是怎么入的门?

2、基础技能欠缺,就买课看课

我当时 C++ 基础薄弱,就买了一个 399 的 C++ 课程,是一个百度资深工程师的录播课。

我每天上下班路上坚持看。

从家里到公司坐地铁刚好半小时,每天上下班看一个小时,坚持了 3 个月,将课程视频来回看了 6 遍,然后到公司一有闲暇时间就练习课程中的技术,3个月下来,C++ 就真的是很熟练了。

以至于后来的某次面试,我甚至可以和面试官探讨"引用计数"的底层实现。

学会了 C++ 再去学 python 就真的很容易。

2、深度学习算法一定要练手,一定要亲自写算法

吴恩达的课程很经典,很多入门深度学习的同学都会看,我当时也看了,吴恩达也算是我半个深度学习理论的领路人吧。

在学习算法原理的基础上,我会把很多算法都自己实现一遍,这得益于C++和 python 技能的熟练。

自己手写这些算法是为了加深对这些算法的理解,比如我手写过很多版本的卷积算法等等。

为什么我要手写,因为调用三方库和自己手写是两种完全不一样的学习体验。

调用三方库比如 numpy 或者 torch,很多人都会调用,但是对初学者来说只是会使用,我认为算法本身只有自己可以手写出来才是真正学到手。

我还手写过不少的神经网络,比如Github上放的这个 github.com/dongtuoc/re...

竟然还被 20 个小伙伴星标了,有点意外。

在完成以上两点(编程基础和算法基础)之后,我的深度学习入门基本就完成了。

剩下的就是在工作中不断地打磨自己对算法的理解,不断的精进自己的水平。

业余的时间写一些文章,谈一下自己对于一些算法和行业的认识。

当你看到这篇文章的时候,我已经在公众号上发了100篇原创文章,很多都是在给想入门深度学习算法的同学做算法科普。

因为我经历过当时初学算法的难度,也就知道有些算法该怎么理解起来会更加简单。

这里放一个我认为到目前为止写的最棒的一篇算法科普文章:5分钟搞懂矩阵乘法的本质

最后,再回答一下上面那个同学的问题。

深度学习入门确实很难,但秘诀也很简单,那就是:学习加实践,再加一条坚持就可以了。

初学确实很多东西看起来都不懂,但是一点点啃下来之后,就会发现难点正在就一点点消失,这其中最怕的就是半途而废。

所以对于想入门学习人工智能或者深度学习算法的同学,我想说的是一定要坚持,然后找对方法,一定可以的。

写文不易,点个赞呗,如果对你有帮助可以关注一下,全网唯一IP @董董灿是个攻城狮, 本文首发于:入门学习深度学习

相关推荐
Dontla39 分钟前
Rust泛型系统类型推导原理(Rust类型推导、泛型类型推导、泛型推导)为什么在某些情况必须手动添加泛型特征约束?(泛型trait约束)
开发语言·算法·rust
Ttang231 小时前
Leetcode:118. 杨辉三角——Java数学法求解
算法·leetcode
喜欢打篮球的普通人1 小时前
rust模式和匹配
java·算法·rust
java小吕布1 小时前
Java中的排序算法:探索与比较
java·后端·算法·排序算法
杜若南星1 小时前
保研考研机试攻略(满分篇):第二章——满分之路上(1)
数据结构·c++·经验分享·笔记·考研·算法·贪心算法
路遇晚风1 小时前
力扣=Mysql-3322- 英超积分榜排名 III(中等)
mysql·算法·leetcode·职场和发展
Neophyte06081 小时前
C++算法练习-day40——617.合并二叉树
开发语言·c++·算法
木向1 小时前
leetcode104:二叉树的最大深度
算法·leetcode
一个不喜欢and不会代码的码农2 小时前
力扣113:路径总和II
算法·leetcode