布里斯托大学机器人 Robotics (Msc) 的学习攻略
前言:
作为布大 Robotics Msc 2018~2019 的一名学生,首先我不得不给将来的学弟妹们
3个警醒:想通过上课考试就学到知识的人同学要清醒一下,国外硕士 80% 的知识都来自于课外自学。转专业到 Robotics 想一年后回国有份不错的 AI 工作的同学要有危机意识对布里斯托 Top 50 排名有沾光想法的同学请刹车并保持谦卑(虽然快掉出 top 100了 :D)
原因很简单:掌握知识和技能永远没有捷径,时间是深度思考和沉淀知识的前提,一年 master 的硬伤在于时间回国面试国内大厂的技术岗,你面对的是项目和实习经历比你丰富的对手综排跟 master 教学质量无关,读研奔着 QS 综排去有点盲目;英国整体 master 招生门槛确实不高
但有一个事实:清华后20%的学生比不上普通985前5%的学生。因此,既来之,则精进之,最大化这一年的留学收获是重点。而我个人的亲身感受也是:确实能学到很多。
接下来,本文将从【课程介绍 & 课件资料】、【提前准备】、【选课策略】、【毕业设计】、【学习Tips】5个方面给大家帮助。
1. 课程介绍 & 课件资料
与18-19学年相比,19-20学年的 Robotics 课程安排只有1个变更:Introduction to AI 从19年的选修变为必修,Bio-inspired AI 从必修变为选修,而具体内容应该无太大变化。因此,我将简单介绍自己上学期的5门课,下学期6门课的内容。最重要的是章末附上了课件的网盘资源,供大家提前浏览 + 后续深挖。
1.1 Robotics Fundamental(必修)——第一学期
介绍机器臂的运动学、逆运动学、动力学、运动轨迹设计等。
需要具备:良好的线性代数,一般的机械原理。
1.2 Image Processing and Computer Vision(必修)
分为2部分:图像处理 + 计算机视觉。
前者主要包括图像表达,卷积处理,边缘识别,霍夫变换,傅里叶变换等。后者介绍3D视觉。(如果大家提前看了下文第二章提到的 Udacity 的课程,那这门课上起来就 so easy 了)
需要具备:良好的线性代数,一般的微积分
1.3 Uncertainty Modeling(选修)
包含:概率论、信息论、贝叶斯网络,D-S证据理论,模糊逻辑、模态逻辑。
这门课可以不用提前做准备,但建议选修,因为对其他课程(intelligent information system, AI, adaptive intelligent sytem)很有帮助。
1.4 Technology and Context of Robotics(必修)
这门课由 Robotics 实验室的9大研究领域的研究员轮流进行各自领域的通俗介绍,便于后续大家选毕设课题。有感兴趣的领域记得第一时间联络导师(争取12月底圣诞节假前确定导师和毕设选题)
1.5 Research Preparation(必修)
每周读一篇论文,并撰写500-1000字的 paper review。特别建议大家尽早确定自己最终毕业设计的方向,并利用每周读一篇论文的课程要求,专注阅读和理解该方向的论文。同时,在精读论文的时候记得多做笔记,这对于大家最后撰写毕设的论文非常有帮助。
此外,每学期有一次基于所读paper 的 presentation 的要求。
1.6 Robotics System(必修)
从1.6开始就全都是第二学期的课了。这门课的目的是基于单片机实践机器人的几大类算法(localisation/mapping/path planning/navigation),实践中会基于 C++ 语言和 Arduino 平台搭建一个自动化系统。如果想以后从事机器人方向的算法岗,这门课极其重要,难度相应也很大。
1.7 Introduction to AI(必修)
很庆幸学院将这门课从选修 → 必修,因为我知道很多人学 robotics 是冲着 AI 来的。这门课的授课质量还不错,成体系的内容编排,CSDN 也容易找到对应资源。
课程涵盖:线性回归和分类、非监督学习、信息论和决策树、搜索算法、贝叶斯网络、马尔科夫决策过程、强化学习、博弈论。
1.8 Human-robot Interaction(必修)
在下学期的选修里,必须从UWE选一门课作为必修,个人推荐选这门。原因如下:UWE的教学很水;下学期很忙,另外一门课比较浪费时间,选这门轻松一点,为其他课程腾出时间。
1.9 Bio-inspired AI (选修)
个人而言,此课程的教学质量排倒数第一(教学内容凌乱分散,目的不清晰,课堂授课没什么干干货)。但还是简单介绍一下这门课的核心思想和内容:从自然界(动物)的行为获得启发,用于工程领域,典型的有神经网络,遗传算法,DNA计算。但每一部分都是很浅的理论介绍,对于 postgraduate 学生来说不实用。并且,就像2013年生物学诺奖得主苏德霍夫所言:“今天的 AI 和 脑神经科学没有半毛钱关系”,Bio-inspired AI 的那些算法也只是发明者们牵强附会地连系上生物学。因此,个人极力不推荐选修这门课。
1.10 Intelligent information system(选修)
个人而言,此课程的教学质量排倒数第二。(老师学术水平高但授课水平较差,课件质量差)
课程包括:逻辑推理系统、数据挖掘、多代理系统、不确定性推理
1.11 Research Preparation(必修)
每周读一篇论文,并撰写500-1000字的 paper review。每学期有一次基于所读paper 的 presentation 的要求。与上学期不同的是,下学期需要在4月中旬交毕业设计的开题报告(3000字),如我前面所说,尽早确定毕设方向的话,这个开题报告写起来就会顺畅很多,因为你已经在上学期积累了大量的该领域的论文阅读经验。
【课件资料】
上述除 research preparation 和 technology and context of robotics 之外,其他课程均有课件和个人笔记连接。笔记中有很多知识点的网站链接
链接:https://pan.baidu.com/s/1XFsy2Z_Q3-PC-EsmAOK6GQ
提取码:v36u
2. 提前准备
在各位还没有来英国之前的3个月里,熟悉下述几项技能会对接下来一年的学习有极大帮助,让原本喘不过气来的催熟式学习变得轻松不少。这些内容也非常适合准备入门 AI 的同学。
温馨提示:大家自学这些内容的时候请务必做好笔记,以便后淡忘时能直接根据笔记回忆起知识点。
2.1 听力
说个很严肃的事实。我本人在来英国前雅思 7.5 的听力,并且一直坚持每周的听力训练,到现在快毕业了,仍然只能听懂 70% 的课堂内容, 30~60% 的英国本地人的日常对话。所以,请保持英语的训练。
推荐资源:BBC 6 minutes English。每周精听并跟读,做好笔记,时间会见证你的自信曼妙的纯正地道英语。https://www.youtube.com/watch?v=g2Ki5GeMevU&list=PLcetZ6gSk96-FECmH9l7Vlx5VDigvgZpt
2.2 线性代数
收到了 offer 的同学可能都留意到了,我们 Robotics 专业是归属在 Mathmatical Engineering 系之下的,因此对数学基础要求其实还挺高的。这其中,线性代数是我个人认为最重要的也最难的部分。
下述是个人所接触过的最好的线性代数资源。这位ID为 3blue1brown 的哥们儿的视频首发是 Youtube,当然B站熟肉看起来当然更轻松。哔哩哔哩 ( ゜- ゜)つロ 乾杯~ Bilibili
由于国内高校线性代数教得不好,有了上述视频建立体感之后,我还强推 MIT 老头子的完整线代的课,构筑你完整的线性代数知识体系。(此课程被公认是地表最强的线代教学)MIT线性代数【全】_哔哩哔哩_bilibili
2.3 Matlab & Python
Matlab 是我们 Robotics master 甚至是 PhD 用得最多的一个工具。它的特点是语法灵活,简单易上手。 掌握了 Matlab,其实基本上整个 Robotics Msc 的学习就够用了。https://www.coursera.org/learn/matlab
之所以推荐 Python,原因有二:首先很多开源的 AI 工具包是基于 Python 环境开发的;其次 Python 被广泛地商用,对于以后各位找工作是有帮助的。至于资源,大家上 Coursera 或者 Udacity 找一个自己喜欢的熟悉就好
2.4 机器学习
首推 StatQuest 的 ML 视频系列,内容非常通俗易懂且有趣,适合入门。并且部分算法还有附带的 python 代码演示,建议通过代码练手加深理解。同时是我也推荐一本书《统计学习方法》-李航,这本书的作用是帮你建立 ML 的整体框架,用来做知识定位用的,不需要通读。A Gentle Introduction to Machine Learning
最后,入门AI的人在理论层面需要打好基础,力荐吴恩达的"机器学习"。抱歉达哥,你的视频听起来确实容易打瞌睡,主要是 visualisation 做的不是很好,而且无实操。https://www.coursera.org/learn/machine-learning
2.5 深度学习
3blue1brown 出品,必属精品。视频形象生动地说明了神经网络的运作原理,拿掉神经网络黑盒子的帽子。哔哩哔哩 ( ゜- ゜)つロ 乾杯~ Bilibili
卷积神经网络(Convolutional neural networks)作为深度学习领域的一大主力军,被广泛应用在计算机视觉中做物体识别等。嗯,这个时候我们的达哥又闪现如下。Convolutional Neural Networks | Coursera
由于吴恩达在 CNN 的原理层面的讲解不多,作为理论和 intuition 的补充,我找到了下述非常棒的资源(建议看完前两个资源再看这个作为强化)。A Beginner's Guide To Understanding Convolutional Neural Networks
入门之后,想深钻 CNN 领域的同学,可以参考下述资料蒋竺波:CNN 入门讲解专栏阅读顺序以及论文研读视频集合(8月11日更新)
2.6 计算机视觉(偏传统CV)
由美国佐治亚大学的一位 CS 教授授课,他貌似是MIT背景。授课风格幽默,结构框架清晰,内容易懂。学完这门课,布里斯托上学期的那门《图像处理和计算机视觉》就可以起飞了。【计算机视觉概论】入门教程_培训课程_基础技术-优达学城(Udacity)官网
3. 选修策略
总体来说,选修课除了 Uncertainty Modelling 不坑之外,我们大部分过来人都觉得选修课很坑。但考虑到不同同学的不同学习目的和方式,我给出了不同的选修课选课策略。
想腾出更多时间自学并专精自己兴趣领域的同学:全部选 100% 考试。每门课的考核方式在我们学校的官网的课程介绍里有提到,可自行参考。
期望通过选修课了解不同领域的同学:请随意选。2020 届 Robotics (Msc) 课程信息
4. 毕业设计
这一章我会聊多一点,因为整个 master 读下来,最艰难收获也最大的非毕设莫属了。我先罗列出这一章节需要准备学习哪些东西(以CNN为例):thesis 写作技巧CNN的理论知识基于 TensorFlow 框架搭建CNN基于 LaTex 撰写论文
4.1 thesis 写作技巧
我之所以把了解 thesis 写作技巧放到首位,出于3个原因:毕设的唯一评分标准是一份 12000-15000 字的 thesis;英美的学术研究注重严谨性,因此 thesis 写作要求强逻辑;提前锻炼这种思维对于后续毕设的实际开展和个人科研水平,甚至发 paper 水平都有质的提升减少 thesis 的写作时间,提高 thesis 质量(我自己是先做完毕设再写论文的,踩过无数的坑。。。)
关键来了,关于 thesis 写作的指导,我目前发现的框架最饱满、指导最细、干货最多的网站如下:How to Write a Dissertation Introduction
4.2 理论知识基础
由于我已经给出了CNN相关的较优质的资料,因此这部分我只说一下个人对于自学一个新领域的心得和步骤:从一个通俗版的介绍性的教程入手,对该领域建立体感找到一个能手把手教你把这个技术去实践的教程实践后,知其然并要知其所以然,这个阶段需要剖析该技术的每个细节背后的原理看原汁原味的论文。之所以把论文放到最后一步,是为了切身去体会经典论文的精髓,否则一上来就读论文,基本上就是走个过场。因为论文一般是写给该领域的学者看的,作为一个 beginner 这个门槛太高了总结,检验自己的掌握程度
4.3基于 Pytorch 框架搭建CNN
关于深度学习的框架的话,必须首推 Pytorch,我找到的最好的一个教程如下PyTorch 中文手册(pytorch handbook)
此外,建议大家不要用神经网络库 Keras 来上手,这个库都是高级 api,不便于理解底层细节(但对 CNN 技术细节已经很熟练的朋友可以直接上手 Keras)
4.4 基于 LaTex 撰写论文
推荐 Overleaf 在线 LaTex 编译器,云端保存资源,并且方便与他人 co-work。学校其实提供了毕设论文的 LaTex 的模板,直接找导师要就好了。Log in to Overleaf
5. 课程学习 tips
5.1 课前预习
如果说我只能给大家一个建议的话,那就是这条了。课前看课件,查生词,带着问题去听课的主动式学习在一年的 master 紧凑生活中尤为重要。不预习的后果通常是听不懂老师在讲什么(语言障碍其实几乎会横跨整个1年的学习生涯)。
5.2 充分利用网络资源
总的来说,master 80%靠自学,20%靠老师。老师授课通常是给一个知识树干,而细节的掌握则依赖学生课后查资料和同学之间的学习。借助CSDN、知乎等网络资源理解课件的核心内容,尤其是对于算法的讲解。大学老师由于授课时长有限,不可能讲得很透彻,这个时候 CSDN 的优势就尤为明显了。
5.3 主动找老师交流
英国大学的老师有个优点:开放式地如朋友一般对待师生交流。因此有困惑或者想与老师有课堂内容之外的深入交流,请主动大方地联络他。有的老师甚至可以提供做毕设的机会。
5.4 同学交流
英国教育的一大特点是注重 peer review,也可理解为普通的同学交流,表现在几个同学一起做 Coursework 等。与优秀同学交流、共享学习资源、取长补短是我觉得除自学外最快的成长途径。
结束语
文末再聊聊自己写这篇文章的初衷——做一件一劳永逸的利人事情。我当初在入学前迫切渴望能得到本专业过来人(师兄姐)的一些指点。但事与愿违,没人能给出我上文的这些从宏观到细节的帮助,我个人因此也走了一些弯路。并且,当我自己即将走完这一年求学之路时,发现我们专业的中国人在学习上比较孤立且较为看重考试分数,分享氛围不浓。其实每个人都是不同领域的行家,都有各自擅长的点,在 master 阶段相互学习会比闭门造车更开视野更高效。因此,我鼓励大家以一颗开放的心态,撇开成绩,注重收获地去对待这一年难得的留学机会。