最近在整理知识要点,正好看到有许多关于面试知识点的文章,集百家之所长、取其精华去其糟粕,本文将汇总一些收集的资料并给予出处。
本文将分 机器学习 、 深度学习 和 基本素养 三大板块进行阐述。
注:本文属于入门级知识要点,掌握对应的知识点就相当于对该领域入门
0 x01 机器学习
1、Classification / Regression 常见的算法原理与推导,如 SVM 、 NN 、Trees & ensemble methods,其中 SVM 是重中之重。
2、Clustering 常见算法与用途,如 K-means/median/medoids 、DBSCAN 、Spectral clustering 等。
3、Bias 和 Variance 的含义,并结合 Ensemble Method 分析哪种算法降低 Bias,哪种算法降低 Variance
4、LR 与 SVM 的区别与联系
5、GBDT 与 Adaboost 的区别与联系,并理解原理
6、PCA 与 LDA 的区别与联系,并学会推导
7、白化的原理与作用
8、给定一个常见算法,如 LR ,询问该算法 model、evaluate、optimization 分别是什么
其中,LR 和 SVM 都要会手推,面试遇到的几率较大
入门书籍推荐
Introduction to Data Mining (Pang-Ning Tan, Michael Steinbach, Vipin Kumar)
进阶书籍推荐
The Elements of Statistical Learning (Trevor Hastie, Robert Tibshirani , Jerome Friedman)
0 x02 深度学习
1、Back Propagation 原理及推导,尤其是可以手推
2、梯度消失、爆炸的原因以及解决办法
3、常见激活函数的应用场景及优劣
4、常见优化函数的原理的区别与联系,SGD 、Momentum 、RmsProp 、Adam
5、Batch Normalization 的原理,以及和白化的联系
6、防止过拟合的方法
7、DNN 、CNN 、RNN 的区别与联系
8、Batch Size 对于训练以及收敛的影响
9、训练参数初始化对训练以及收敛的影响
进阶知识点
0 x03 基本素养
1、基本的 Coding 能力,可以熟练运用 Python / R / Matlab 其中之一的语言
2、基本了解常见深度学习框架,如 PyTorch / Keras / MXNet / Caffee2 / TensorFlow ,并选一框架熟练掌握
3、基本了解常见机器学习支持库,如 xgBoost / sklearn ,并有一定的使用经历
4、基本了解数据清洗、特征处理、特征选择的常见做法
5、基本了解常见算法及其思想,如 排序、分治、递归、贪心、DP 、DFS 、BFS 等
6、(进阶)熟练使用 Jupyter Notebook