作者 | 梁唐
大家好,我是梁唐。
最近因为对强化学习感兴趣,所以找了很多资料在学习。也花了一些冤枉钱买了一些所谓的付费课程,到最后发现,花钱什么的都是骗人的,真正厉害的资料都免费。今天就来和大家分享一下。
相信大家应该都听说过B站当中有很多免费的公开课,我其实很早之前也听说过。但知道是一回事,真正需要查资料的时候往往还是想不起来,我这次想要学强化学习第一反应还是去Coursera和一些高校的官网找公开课。
比如我找到了伯克利的强化学习课程的官网,官网里也有YouTube课程的链接。
但蛋疼的是,YouTube里的视频是没有字幕的,别说中文字幕了,就连英文字幕都没有。并且这个老师说话语速贼快,比我雅思1.5倍速的听力练习还要快。即使我自诩英语还算不错,但听着也非常非常吃力。
后来我抱着试试看的运气在B站里找到了同样的课程的视频,虽然是搬运的,但是up贴心的配上了字幕。虽然只有英文字幕,但由于大多是专业知识,基本上还是能看懂个8、9成,剩下的一点依靠脑补基本上也够了。
于是我花了点时间研究了一下B站当中的资源,一看不得了,简直是一个宝藏。但很多人既不知道要学什么,也不知道怎么搜索。这个时候只是摆出一个结论:B站里有充足的资源是不行的,解决不了这群人的问题。
看起来这是两个问题,其实是一个问题。
首先我们要知道我们要学什么,这个问题至关重要。如果这个问题没有一个明确的答案,很明显会导致的结果就是你会发现好多课程你都想要学。但是人的精力是有限的,学一门课程是要花大量时间的。所谓贪多嚼不烂,这也想学那也想学的结果往往是每个课程都看了一点,最终全部半途而废。
所以一定要先明确目标,明确自己想学的内容。
如果你是大一什么都不懂的萌新,迫切地想要入门,那么我推荐你去看哈佛的CS50,这是一门计算机科学的概论课。因为是早期的课程,有些编程语法或者是内容可能过时了,但是其中讲述的计算机科学的思想和理念依然非常值得学习。
对于萌新来说,看完这门课之后,对于很多知识就有了概念,是非常好的扫盲和科普的课程。
现在你已经知道了课程名,接下来要做的就是去B站中搜索关键字“哈佛 CS50”。
我们稍微发散一点就可以想到,其实这些名校的课程编号都是固定不变的。我们只需要知道公开课的编号,然后去B站或者是其它搜索引擎里搜索就可以了。
所以如果你想要找一些名校的公开课,也不用来问人,直接通过搜索引擎搜索就可以。
比如我就搜索最直接的“哈佛CS公开课 推荐”,就能找到一些大牛替我们整理好的课程。
甚至做好了分类归档的工作:
当你看过了几门公开课,对于国外的课程以及教材的内容有所了解之后。你会发现国外名校的CS专业中的核心课程其实只有三四门左右,其他的课程都是辅助。虽然只有三四门课,但是这些课的内容非常扎实,一门课会涉及好几次作业和project,实打实的都做完是非常非常锻炼人的。
我用伯克利强化学习的CS285的第一个作业举例子,它的代码结构是这样的:
这个作业是一个完整的项目,整个框架是老师/助教搭好的,但是核心的代码是空缺的,需要学生自己来实现。上课的时候,老师只会讲理论和原理,实现是自己需要根据理论知识来思考的。作业相关的文档里只会告诉你需要做什么,不会告诉你应该怎么做。
作业当中会把需要学生来实现的地方用TODO来标记,比如下面这个:
它的注释里会告诉我们要实现一个MLP,并给出了相关提示,可以使用nn.Module
。红框里的是我根据这段描述做的实现。
并不是说我们把所有TODO都填充完就可以了,最后还需要让整个项目跑起来。显然阅读整个项目的代码也是必须的,也有些TODO提示很少,需要自己根据前后逻辑来推导。总之,理解整个项目的结构和实现是必须的。
配合上课程内容,这样实打实的几个作业做下来,收获是非常大的。
最后,推荐几门算法相关的课程,都是B站里能够找到的。
机器学习基石
machine learning by Andrew
deeplearning.ai
cs231n(计算机视觉)
cs224n(自然语言处理)
cs234(强化学习)
这些课程都有字幕组配上了双语字幕,简直不要太幸福,我当年很多公开课都是硬啃的生肉,留下了羡慕的泪水……
如果你还在抱怨学校里环境LJ,抱怨自己错失了名校的机会,抱怨求学无门,希望今天的文章能够帮助你们并立即行动起来。
互联网时代,传统意义上的技术和知识的壁垒已经被打破,只剩下了执行力的壁垒还高高耸立着。