机器学习分为有监督学习和无监督学习。
机器学习算法可分为:分类算法,回归算法,等
分类算法:输入离散或连续值向量,可输出单个离散值(该向量的分类)。
回归算法:输入离散或连续值向量,可输出连续值向量。
机器学习算法要素: 机器学习算法 = 算法表达 + 算法评估 + 算法优化
算法表达:为解决问题,将问题域抽象为算法表达。通过算法学习找到问题解。问题域的特性通过特征工程选择,作为算法的输入。举例:
K-nearest neighbor |
Support vector machines |
Naive Bayes |
Logistic regression |
Decision trees |
Neural networks |
Bayesian networks |
算法评估:即 损失函数(lost/cost function) 或 evaluation函数, 用于评估算法的好坏。举例:
Accuracy/Error rate |
Precision and recall |
Squared error |
(Maximal) Likelihood |
Posterior probability |
Information gain |
K-L divergence |
Cost/Utility |
Margin |
算法优化:将损失函数值最小化,或将evaluation函数值最大化的算法调优技术。举例:
Greedy search |
Beam search |
Branch-and-bound |
Gradient descent |
Conjugate gradient |
Quasi-Newton methods |
Quadratic programming |
要素的组合形成不同算法。如:Linear Regression + Squared error + SGD 。
算法的灵活性和可解释性存在trade-off。灵活性更大的算法可解释性相对更小。(灵活性表示degrees of freedom,可解释性表示可被人类理解程度)。举例如,灵活性: Linear Regression < Trees < Bagging/Boosting < SVM , 可解释性: SVM < Bagging/Boosting < Trees < Linear Regression
随着算法灵活性增加,训练集的误差不断减少,测试/验证集的误差先减少,再增加。训练集的误差很小而验证集误差很大的现象称为过拟合(overfitting)。
以线性回归的Squared Error为例,Mean Squared Error:
MSE的期望值(Expected Value)可分解为Variance 和 Bias:
其中, ,
, 可知MSE期望值不可能小于
(称为irreducible error)。
Variance和Bias存在trade-off。 Variance是估计值的变化量,例如,引入不同训练集时导致的估计值变化。Bias是算法估计值中固有的偏差量。训练数据的目的是使Variance和Bias都达到最小。一般更灵活的算法具有更大的Variance和更小的Bias。选择的算法逐渐灵活时,Bias逐渐减少,Variance逐渐增加。这两个量的相对变化率决定测试/验证集MSE增加还是减少。算法灵活度增加初始,Bias减少速度大于Variance增加速度,使得MSE不断下降,到某种程度时,Bias减少速度变小,Variance增加速度增大,使得MSE转而上升( 过拟合 overfitting)。
参考:
[1] A Few Useful Things to Know About Machine Learning -- Pedro Domingos
[2] An Introduction to Statistical Learning -- Gareth James Daniela Witten Trevor Hastie Robert Tibshirani