相关文章链接
机器学习的基本概念
模型的评估与选择
回归分析
决策树与随机森林
支持向量机SVM与隐马尔可夫模型
卷积神经网络CNN与循环神经网络RNN
聚类与集成算法
机器学习的基本概念
监督学习:
表示机器学习的数据是带标记的。通过大量带有标记的数据来训练机器,机器将预测结果与期望结果进行比对;之后根据比对结果来修改模型中的参数,再一次输出预测结果;然后将预测结果与期望结果进行比对,重复多次直至收敛,最终生成具有一定能够鲁棒性的模型来达到智能决策的能力。
按照训练数据是否存在标签,将监督学习分为传统监督学习、非监督学习和半监督学习;按照标签是连续还是离散,将监督学习分为回归和分类。
支持向量机、人工神经网络、深度神经网络
分类(Classification)是将一些实例数据分到合适的类别中,它的预测结果是离散的。
回归(Regression)是将数据归到一条“线”上,即为离散数据生产拟合曲线,其预测结果是连续的。
无监督学习:
表示机器学习的数据是没有标记的。机器从无标记的数据中探索并推断出潜在的联系。
常见的无监督学习有聚类和降维。EM算法(Expectation-Maximization algorithm)、主成分分析(Principle Component Analysis)
聚类(Clustering):通过数据样本在特征空间中的分布,从而将不同数据分开,把相似数据聚为一类。
降维(Dimensionality Reduction):可以通过主成分分析等其他方法,考虑主要影响因素,舍弃次要因素,从而平衡准确度与效率。
强化学习:
强化学习(Reinforcement Learning)是带有激励机制的。
深度学习:
其核心思想是通过数据驱动的方式,采用一系列的非线性变换,从原始数据中提取由从低层到高层、由具体到抽象、由一般到特定语义的特征。
泛化
如果一个模型能够对没见过的数据做出准确预测,我们就说它能够从训练集 泛化(generalize)到测试集。
误差
学习器的实际预测输出与样本的真实输出之间的差异。
- 学习器在训练集上的误差称为:训练/经验误差
- 学习器在新样本上的误差称为:泛化误差
欠拟合
就是模型没有很好地捕捉到数据特征,不能够很好地拟合数据。
解决方法:
1)添加其他特征项,有时候我们模型出现欠拟合的时候是因为特征项不够导致的,可以添加其他特征项来很好地解决。例如,“组合”、“泛化”、“相关性”三类特征是特征添加的重要手段,无论在什么场景,都可以照葫芦画瓢,总会得到意想不到的效果。除上面的特征之外,“上下文特征”、“平台特征”等等,都可以作为特征添加的首选项。
2)添加多项式特征,这个在机器学习算法里面用的很普遍,例如将线性模型通过添加二次项或者三次项使模型泛化能力更强。例如上面的图片的例子。
3)减少正则化参数,正则化的目的是用来防止过拟合的,但是现在模型出现了欠拟合,则需要减少正则化参数。
过拟合
即是过分拟合了训练数据,使得模型的复杂度提高,泛化能力较差(对未知数据的预测能力)。
解决方法:重新清洗数据、增加训练数据、正则化、dropout、early stopping、减少特征值、集成学习等。
1)重新清洗数据,导致过拟合的一个原因也有可能是数据不纯导致的,如果出现了过拟合就需要我们重新清洗数据。
2)增加训练数据,还有一个原因就是我们用于训练的数据量太小导致的,训练数据占总数据的比例过小。
3)采用正则化方法。正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化项就越大。正则化方法包括L0正则、L1正则和L2正则,而正则一般是在目标函数之后加上对于的范数。但是在机器学习中一般使用L2正则,下面看具体的原因。
L0范数是指向量中非0的元素的个数。L1范数是指向量中各个元素绝对值之和,也叫“稀疏规则算子”(Lasso regularization)。两者都可以实现稀疏性,既然L0可以实现稀疏,为什么不用L0,而要用L1呢?个人理解一是因为L0范数很难优化求解(NP难问题),二是L1范数是L0范数的最优凸近似,而且它比L0范数要容易优化求解。所以大家才把目光和万千宠爱转于L1范数。
L2范数是指向量各元素的平方和然后求平方根。可以使得W的每个元素都很小,都接近于0,但与L1范数不同,它不会让它等于0,而是接近于0。L2正则项起到使得参数w变小加剧的效果,但是为什么可以防止过拟合呢?一个通俗的理解便是:更小的参数值w意味着模型的复杂度更低,对训练数据的拟合刚刚好(奥卡姆剃刀),不会过分拟合训练数据,从而使得不会过拟合,以提高模型的泛化能力。还有就是看到有人说L2范数有助于处理 condition number不好的情况下矩阵求逆很困难的问题(具体这儿我也不是太理解)。
4)采用dropout方法。这个方法在神经网络里面很常用。dropout方法是ImageNet中提出的一种方法,通俗一点讲就是dropout方法在训练的时候让神经元以一定的概率不工作。具体看下图:
图源网络整理,侵删
如上图所示,左边a图是没用用dropout方法的标准神经网络,右边b图是在训练过程中使用了dropout方法的神经网络,即在训练时候以一定的概率p来跳过一定的神经元。
5)采用early stopping方法。在训练集上进行训练,并且在验证集上获取测试结果(比如每隔5个epoch测试一下),随着epoch的增加,如果在验证集上发现测试误差上升,则停止训练; 将停止之后的权重作为网络的最终参数。
左图即为欠拟合,中图为合适的拟合,右图为过拟合。
图源网络整理,侵删
机器学习的应用:
机器学习可应用在图像识别、语音识别、自然语言处理、医疗保健、信息检索等领域。