视频通关的课(二)
准备在这个系列简单聊一聊我在YouTube上视频通关过的比较有意思的课,主要是提供一些主观上的感受和想法,还有提供评价和建议给同样想看这些课的人。这篇主要讲 Stanford CS229 (Machine Learning), MIT 6.006 (Intro to Algorithm), MIT 18.065 (Matrix Methods) 这三节比较受欢迎的课,和 MIT 18.086 (Computational Methods and Engineering II).
Stanford CS229, Andrew Ng: Machine Learning
可能这是全世界最有名的机器学习课,从头到尾看完了视频,练习题做了一部分(在这里能找到全部答案),回头想了一下一学期之内能够从头到尾有条不紊讲完这么多内容并且保持一致的高质量,这并不是件容易的事。很多实用向的课程到了后面就会开始放水讲一些自己都不太了解的内容,这节课这个问题不存在。我的一个PhD是ML方向的朋友说这课太粗浅了不值得去刷,我不同意,因为如果要把一个概念讲得面面俱到基本上在一门大课里是不可能的,而且学东西是需要有一个非常直观且高质量的入门课的,只要内容不注水就行。所谓一步到位不太可能,正常人在数学系也要从数学分析开始再刷实分析复分析对伐?
课程上基本无可挑剔,有个别课Andrew Ng离开是代课,风格变得更数学化而不是直观解释为主数学为辅,所以可能需要额外看一两个视频来辅助一下。非要说就是这门课缺点就是有点短,下面是几个我觉得应该提但是没提或者没讲清楚的几个点:1. 各种Linear regression里常用的regularization method,为什么要用,优点缺点在哪里,数学解释是什么?2. Random forest具体怎么回事,数学上或者直观上的解释和应用例子都没有提到。3. 没有提Non-parametric regression. 好在ML是个热门话题,YouTube都有大量内容存在所以对照着找就行。还有就是这个课有很多版本,各个版本对同一个话题都有不同的解释方式。如果一个看不懂翻翻别的基本也就看懂了。
另外说个不太相关的,看到挺多地方吐槽这个课挺难,我仔细想了下难度应该在线性代数那里,所以对线代不熟的应该稍微预习一下,比如刷一刷Gilbert Strang的线代课再过来。反正我觉得coursera的那个对应的课非常水,还要交钱,不推荐。这个课十分推荐。
Erik Demaine & Srini Devadas, MIT 6.006: Intro to Algorithm
这个是我真的觉得有难度的课,可能是我没正式受过CS训练的原因,上课觉得难度还行但是作业难度挺大,至少每道题都是仔细设计过的,没有碰到闭着眼睛可以做的那种。不过也正是这个原因觉得每节课都不虚,内容非常充实不会无聊。这个课非常有名,也可以在互联网上搜到相当多的评价,估计也不需要我推荐。
非要找个缺点的话就是作业是Python 2写的,而且实际自己写的代码其实不多,大多数时间都在做分析。不过作业一定要写,写完了对照答案仔细检查会觉得比上课学的还多。另外上完这门课如果要找正经工作的话该刷的Leetcode还是要刷,这门课只是用一个比较严谨的方式入门而已,实际代码写得并不多。
总之,好课,推荐。我准备这阵忙完了把他们的另一节算法课6.046也刷一遍。
Gilbert Strang, MIT 18.065: Matrix Methods in Data Analysis, Signal Processing and Machine Learning
这是门非常好的线性代数应用课,我觉得是入门课之后必须要过一遍的内容。Strang的友好讲课风格在这门课里表现得淋漓尽致,我觉得讲得尤其好的是SVD, Pseudo-inverse, matrix multiplication和stochastic gradient descent 这几个内容,又直观又精彩,intuition和technicality的平衡处理得非常好,而且这种方式讲完了不容易忘记。
对我个人而言这门课覆盖的内容以前绝大多数都学过,但是经Strang讲一遍之后有了更深的认识。总之这是门不可多得的好课,我觉得想在应用方向有点发展的这门课必须要看,甚至以后需要用到部分概念的时候还需要回来重新温习。
这门课的缺点就是到后面ML的内容,可能不是Strang的熟悉领域所以讲得有点散可以忽略一部分。但是前面25节内容强烈推荐。
Gilbert Strang, MIT 18.086: Mathematical Methods for Engineers II
这是 18.085 的后续课程,相对来讲结构没有18.085内容那么严密,而且很多内容也是点到为止,比较典型的研究生院高级话题课。一开始是讲ODE,然后到Finite Difference和Finite Volume,以及简单讲了下shock/rarefaction。我觉得这里其实是整节课的亮点,尤其是讲shock和rarefaction为什么会产生,以及正常应用的时候需要的解应该是什么形式都有很直观的解释。另一个讲得很好的点就是利用Von Neumann analysis来分析growth factor:这个内容一般因为技术上很简单所以上课的时候都是提一下然后跳过的,然而Strang在这里反复用这个方法并且解释了在frequency domain的影响和实际domain的影响的联系,尤其点到了K matrix的eigenvalue其实都可以理解为Von Neumann analysis里的对不同frequency的影响这个十分过瘾。这些其实还不太够拿来直接做numerical analysis,需要另外专门补一门finite difference/volume/element课,比如16.339.
这一块讲完后下一块是解线性方程组的方法,主要包含直接解和迭代方法。其实这一块也讲得挺不错,只是实例不太多,然后notation有点乱,但是对照整理好的notes看其实没多大问题。这一块是一个不错的numerical linear algebra入门,只是到了现在需要从零写这些算法的应用场景我个人觉得不太多。这一块Multigrid方法和Krylov matrix讲得很不错,推荐。然而很多算法细节太麻烦了黑板上写不下,所以需要用的时候应该是查书。
最后一块是Optimization,这里开始就有点散了,课上主要证明了weak duality并且有几个visualization,但是作为optimization很多话题也是点到为止。这里我觉得适合看一遍找找insight. 另外就是有两节课是专门讲regularization的,我觉得从线性代数的角度来说讲得很不错,但是推导出的结论不是ML里常提及的那几个方面。最后就是Lagrange Multiplier这个,我觉得有几个相当不错的几何直观解释,但是Strang只提了几个物理意义没有提几何意义,不知道为什么。
这门课的视频质量非常渣,经常看不清黑板上写的什么很头疼。刷完视频了之后回头想了下大部分内容也只是提过一遍并没有细节的解释,但是以后碰到这些内容应该不会彻底没概念了,所以上过18.085觉得意犹未尽又有时间的可以考虑,如果想专门恶补numerical methods应该找别的课。
这回扯完了,下回聊三门quant相关的
- Giovanni Bellettini, ITCP: Partial Differential Equations
- Egor Starkov, København Unversitet: Market Microstructure
- ICTP: Elements of Quantitative Finance
- L.A. Grzelak : Computational Finance
Blues, Lindy Hop and Argentine Tango Dancer. Photography Enthusiast...
热门话题 · · · · · · ( 去话题广场 )
-
加载中...