总结:Coursera:Machine Learning By Andrew Ng
能够和贫僧打成平手的,世上没有几人
存在的问题
这门课程的概念的阐述与课后作业编程作业都力求简单明了,可以感受到省略了很多数学证明,虽然学完每一章都带着一些疑问,但正是复杂的数学原理与直观理解之间的平衡,才可以让缺乏相关基础的人感受到机器学习的魅力。机器学习的魅力感受到了,但存在的疑惑也是需要寻求答案的,下面先罗列一下我在课程中遇到的疑惑:
- 线性回归代价函数的形式,为什么是预测结果与训练集之间的差的平方
- 逻辑回归的假设为什么是S型函数
- 逻辑回归的代价函数的形式的由来
- 反向传播算法的证明
- 神经网络激活函数的由来与选择
- 主成分分析的原理
- 支持向量机的引入,在逻辑回归的基础上进行修改的,但是为什么要那么修改呢
- 为什么高斯分布可以用于异常检测
以上就是我在学习这门过程中存在的疑惑,但是肯定的,这个过程中必定存在我没有意识到,但是我仍然不清楚的地方,我也十分期待在接下来我能够有幸发现它们,接下来我也会带着这些问题继续寻求答案。
未来的计划
未来计划我主要参考了知乎用户”微调”的文章如何用3个月零基础入门机器学习
需要准备的基础数学知识
- 线性代数:矩阵/张量乘法、求逆,奇异值分解/特征值分解,行列式,范数等
- 统计与概率:概率分布,独立性与贝叶斯,最大似然(MLE)和最大后验估计(MAP)等
- 优化:线性优化,非线性优化(凸优化/非凸优化)以及其衍生的求解方法如梯度下降、牛顿法、基因算法和模拟退火等
- 微积分:偏微分,链式法则,矩阵求导等
- 信息论、数值理论等
入门(3-6个月)
- Coursera:Machine Learning By Andrew Ng:入门课程,升级版本是Ng在斯坦福的CS229
- Python机器学习:快速了解sklearn,内容涉及数据预处理、维度压缩、核函数、评估方法、集成学习、情感分析、聚类、神经网络、Theano
- Introduction to Statistical Learning with R,频率学派圣经ESL的入门版本,除去了复杂 的数学推导,加入R编程方便快速上手。
- 周志华《机器学习》,入门阶段的参考书,辅助网课和书籍学习。
进阶(3-6个月)
- Kaggle 挑战赛/练习,类似的还有国内的平台,天池竞赛以及其他公司举办的比赛,使用Kaggle将技能落到实处,避免产生什么都懂的幻觉。
- sklearn文档学习,与使用kaggle的目的一致,该文档写得和教程差不多。
- 周志华机器学习,在kaggle挑战和阅读Sklearn文档的过程中你还会时不时的遇到一些新的名词,比如流形学习(manifold learning)等。这个时候你会发现西瓜书真的是一本中级阶段大而全的书籍:)
深度学习(3-6个月)
- Andrew Ng深度学习课程
- Deep Learning - by IanGoodFellow:阅读建议,为了补充基础可以阅读第1-5章其中也包含了一些数学知识,只关注主流神经网络知识可以阅读6-10章,介绍了DNN/CNN/RNN,需要进一步了解一些调参和应用技巧,推荐阅读11和12章。第13-20章为进阶章节,在入门阶段没有必要阅读。其实比较实际的做法是吴恩达的课程讲到什么概念,你到这本书里面可以阅读一些深入的理论进行概念加深,按章节阅读还是比较耗时耗力的。
深入研究
如果你希望继续深入的话,中文可以继续阅读周志华老师的《机器学习》和李航老师的《统计学习基础》,英文可以入手《Elements of Statistical Learning》。在这个阶段,重点要形成成体系的知识脉络,切记贪多嚼不烂,切记!
从阅读论文角度来说,订阅Arxiv,关注机器学习的顶级会议,如ICML/NIPS等,相关的方法在知乎上可以很容易搜索到,不在此赘述。
实践经验:
嗑盐- 企业实习,打破幻想,了解工业界的主流模型。补上学术界忽视的内容,比如可视化和数据清洗。了解技术商业化中的取舍,培养大局观。
- 在工作中使用