最近在Coursera上了一门Machine Learning的MOOC课程。
该课程是由Stanford的Andrew教授授课,内容由浅入深,从基础的机器学习概念到中期的几个利用机器学习的例子再到后来比较复杂的运用,Andrew教授讲得很清晰,哪怕你没有接触过机器学习,也能很容易理解课程。而且大部分课后都会有一个编程的大作业,让你用这周学到的东西实现一个真实的Machine Learning结果。编程大作业里面的内容被分割成一个个的小部分,当你完成了里面的一部分时,可以使用submit进行在线评判该部分是否正确。这有点像我平时OnlineJudge上刷题然后返回结果。
而当完成一份编程大作业的时候,那种感觉真的是非常满足。
比如在学到中期时,我了解了神经网络的算法,并使用该算法成功做出了简单的图像识别(识别图片中的阿拉伯数字):预先将图像的像素点处理好,然后构建多层神经网络,机器一步步学习调节参数,直到最后可以用作预测。
当一张图片显示在屏幕上,并且你的程序给出了该图片中的数字时,我发现原来自己这一周学的东西并不是非常理论性的内容,它能确确实实做出点很COOL的东西。
课程使用的是Matlab/Octave 进行编程,如果你没接触过这两门语言并不要紧,Andrew教授在课程中有讲解该怎么使用。而且,课程也会提供给你一定时限的Matlab授权(课程时间左右),同时,你也可以使用免费的Octave(GNU项目,两者语法基本相同)编程。我自己在Ubuntu下就是使用Octave完成编程大作业。
在此,我强烈推荐对Machine Learning感兴趣的童鞋去听一下这课,由于他的MOOC形式,你可以在任何你有空的时间看,形式非常自由。
我自己把我每周完成的编程作业上传到了>>Github<<以供自己复习和大家参考。
Post a Comment