遇见
我是如何走上人工智能的入门之路的呢?其实说来也巧,平常接触到的大多是前后端相关的,而一个人学习是孤独且难以坚持的,于是我也尝试加入一些团队,以让自己更好的学习和进步,也多一些和相同方向的人交流的机会。但是我不太争气,每次的尝试总是半途而废、浅尝则止。
总有一些团队在招募新成员,我依然选择再尝试尝试。毕竟暑假了,能学点东西总还是好的。头脑一热之下,我就选择了人工智能这个方向。一晃两周也就已经过去,希望自己会继续走下去。
开始
我有过一些C/C++基础。常有人对我说,有过一门语言的学习基础,再学习其它语言都会很快。
确实,一门语言的基础会对其它语言的学习有所帮助,毕竟一些编程语言之间是有一些相似性的。但我有时感觉到,这基础也是桎梏,它给我的思维方式套上了一层枷锁。
我没学习过python,但我接下来的学习需要使用它。我可能有些自大了,没打算将python再从头到尾去仔细学习一遍,以为它也就想C一样,无非一些分支、循环、和函数。于是我打算就一边学习深度学习,一边在案例中熟悉python的使用。但我后来发现,这样的计划给我带来了很大的不便,python中的一些用法,有时给我的感觉是:匪夷所思。我常常需要花费很多时间去理解它们,这给我带来了极大的不便。
我还是太低估python了,各种封装的包十分丰富。写C程序时,对一个小问题脑海里基本上就在想通过一个怎样的过程才能够实现它;而写python程序时,往往是先考虑有没有已经封装好的相关的包可以调用。好在有个jupyter notebook,对于学习者还是比较友好,查询一些包和函数都比较方便。
在正式的学习开始之前,python的环境安装算是一个拦路虎。虽然有许多的教程可以参考,但往往会出现一些意料之外的问题,反复出现各种意料之外的问题,以至于我好几次以为自己要成功了,半路又是一片报错。环境安装,几乎花了我一整天,真的差点就在这里劝退了。
缺少前置知识
其实在开始之前,是听人说过,这方面对数学是有要求的。有个人问我看神经网络像是什么,我各种扯一些生物领域方面的东西以形象地描述我的感受,但是他说:“像函数,数学里的函数。”
虽然我现在也还学得很浅,连基础都还没入门。我感觉深度学习的数学方面相关知识是真的丰富。可怜我当初高数期末考试还是我老师给捞上来的,这对我将是一个不小的挑战。
虽然有人说,可以简单的做个调包侠。做调包侠确实可以更快地上手,更早地可以开始尝试一些项目。不深究数学原理,人工智能当然靠调包也能做,但对这些更底层逻辑的理解将决定能做到什么程度。所以,我数学是很有必要补一补的。
一些学习感受
不得不说,人工智能还是很有趣的。至少现在,我还对这方面保持着较高的兴趣,这是好事。我对李宏毅老师讲的机器学习入门的第一堂课印象比较深刻,那是一个用宝可梦进化的战斗力预测来讲线性回归的例子。我当时对机器学习还没有什么概念,却也听得有滋有味,有所收获。
在刚开始学习一些玩具式的案例时,我几乎对每一行代码是想要做什么事情、每一个数学公式是什么意思,都抱有疑惑。书籍并不是保姆式的教程,我只好在网上四处寻找可能的答案。在这方面,CSDN社区给了我许多帮助,在社区提的问题都有人给出了不错的回答和建议。CSDN上也有一些十分优质的文章,让我几乎怀着惊喜和敬仰的态度一直读完。但水文是真的不少,而且很多水文是在前面,这对我筛选文章也造成了一定的困难。
在摸爬滚打地学习了一段时间后,一些东西慢慢地就变成了习惯。我习惯了一个个地去查我不知道的python封装函数,习惯了一个问题去翻很多篇文章,习惯了去问答社区提问,习惯了半天也调不好的bug······
此处引用一句话“We first make habits. Then habits make us.”
在学习的过程中,我们学习到寻常意义上的知识,也在慢慢地学习学习本身。
结语:“革命尚未成功,同志仍需努力”
其实这两周的学习状态有些差。我其实很闲,暂时没有什么要紧的事情,然而这么多空闲的时间,我却没有取得应有的效果。我觉得主要是一个注意力难以长时间集中的问题,注意力一分散到各种杂七杂八的事情上,时间也就很快地过去了。
也不怕你们笑话,两周了,我才刚刚了解到多层感知机。这样的学习效率,等我成功入门,猴年马月。也就是说,这两周几乎没有学到多少东西,有些荒废了。
坚持写一些学习的笔记,确实能给我的学习带来一些鼓励作用,但写笔记本身也是一件十分耗费时间和精力的事情,我也得渐渐的学会去做好平衡。