机器学习----难点总结(持续更新)

1 机器学习算法

1.1 问题分类

              根据问题本身的特征来分类,机器学习问题可分为监督学习、无监督学习、半监督学习和强化学习。

              监督学习(Supervised Learning)的特点是训练数据是有标签的,即对于每个输入都有相对应的输出,算法的目的是训练出能反应输入与输出之间的映射关系的模型。对于输出值是离散的(有限个数),称之为分类问题(Classification Problem);对于输出值是连续的,则称之为回归问题(Regression Problem)
              无监督学习(Unsupervised Learning)的训练数据是没有标签的,即没有确定的输出值,就需要根据数据提取特征,这类问题的算法包括关联规则和聚类算法等。

              半监督学习(Semi-supervisedLearning)是介于监督学习和非监督学习之间,即数据一部分有标签,一部分没有标签,算法一半是需要考虑利用少量的标注样本和大量的非标注样本来完成训练、回归或分类。常用算法包括自训练(Self-training)、直推学习( TransductiveLearning)、生成式模型(GenerativeModel)。

              强化学习(Reinforcement Learning)这一新兴的分类。强化学习是从环境状态到行为映射的学习,通过反复与环境交互来改进策略,以使系统行为从环境中获得的累积奖赏值最大。强化学习现主要应用于智能控制及分析预测等领域。强化学习可以动态地调整参数,与监督学习的区别在于产生的动作和获得的奖赏没有明确的函数形式表示,只能采用试探的方式进行,如果某一动作获得的奖赏为正,则以后产生这一动作的趋势会增加,反之则会减弱。

1.2 算法分类

              现在机器学习的算法较多, 按照功能分类太大体可分为回归(Regression)、分类(Classification)、聚类(Cluster)、维度约减(Dimensionality Reduction)四个类别。其中回归和分类问题虽然在定义上有区别(连续和离散),但在本质上是一样的,算法是可以通用的,因此把二者涉及的算法归在一起。具体划分情况为:

(1)回归和分类

              线性回归(LinearRegression):拟合自变量和因变量线性关系的统计分析方法,常用最小二乘法来求解参数。

              多项式回归(Polynomial Regression):自变量次数大于1,但具体的次数选择往往要依靠经验,次数太高容易过拟合。
              朴素贝叶斯(NativeBayes,NB):由贝叶斯公式得到的分类器,通过计算后验概率来分类。

              支持向量机(SupportVector Machine,SVM):在较长一段时间被誉为二值分类问题最佳的模型。通过核函数映射,将低维线性不可分的数据集映射到高维,使其线性可分,并使分类界面间隔最大。算法求解过程用到了二次规划、拉格朗日乘子法、KKT条件、对偶问题、SMO算法等。SVM算法善于处理小样本问题。
              K近邻(K-Nearest Neighbors,KNN):基于实例的算法,通过距离公式来寻找相似样本来做回归预测,依赖于样本数据的质和量,算法很成熟但计算量较大,因此后来又提出了KD树的方法。有关KD树的介绍和详解,点击这里

              决策树(Decision Trees,DT):直观运用概率的图解方法,按特征来生成决策树,使目标期望达到最大,实际使用过程特征选择方式和决策树的修剪是关键。决策树算法包括迭代二叉树(IterativeDichotomiser 3,ID3)、C4.5和CART(ClassificationAnd Regression Tree)等衍生算法。

              模型融合算法(Ensemble Algorithms),这类的算法包括:

                            Bagging(Bootstrap aggregation):每次从样本集随机采样来训练弱分类器,重复多次,最后用投票的方式(分类)或求均值(回归)得到最后结果。

                            随机森林(RandomForest)*:随机构造很多的CART(由树组成森林),模型关键参数是树个数目和树节点输入特征的个数(总特征树的子集,随机选取),通过综合决策树的结果得到分类结果。

              自适应提升方法(AdaptiveBoosting):采用赋权的方式,先设置初始权重,然后每个弱分类器训练完根据效果改变权重,训练失败的样本增加权重,最后综合多个弱分类器的结果得到强分类器。

(2)聚类

              在部分学者的观点来看,数据挖掘的核心就是聚类,聚类问题是典型的无监督学习,按一定的规则将类似的样本进行组合的方式。大量数据可先通过聚类划分不同的类别,然后再进行其他机器学习的处理。 常用的聚类算法包括:

              K均值聚类(K-Means Cluster):随机选择K个样本作为类别中心,根据离中心的聚类确定各个样本的归属,然后通过迭代的方式不断更新类别中心,直至不变。K值大小的选取很关键。
              层次聚类法(HierarchicalCluster):由起初的所有样本各自归为一类,根据样本间的聚类合并类并重新计算样本中心,迭代进行直至中心间距离大于限定阈值或达到限定的类别个数。每次迭代要计算两两间距,计算量较大。

              期望最大算法(ExpectationMaximization ,EM):迭代分成E步和M步,用于含有隐变量(HiddenVariable)的概率模型参数的极大后验概率估计。典型的应用是高斯混合模型(GaussianMixture Model,GMM),随机选择初始中心,按所属各个分布的概率大小进行分类。

(3)维度约减

              维度约减,即降维,是特征提前的过程,对于特征数特别多的数据集往往需要提取主要的特征,剔除次要特征,将数据集由高维映射到低维。主要的算法包括:

              主成分分析(PrincipalComponent Analysis,PCA):数学基础是特征值分析,根据协方差矩阵求特征值和特征向量,按特征值大小依次选择特征向量构成特征矩阵。主成分分析得先做数据中心化。

              奇异值分解(SingularValue Decomposition,SVD):将原始矩阵X分解成三个矩阵相乘,前后是正交非方阵,中间的是XTX的特征值平方根构成的对角阵,然后也是按特征值大小来选取特征。SVD其实算是PCA的一种处理方法。算法计算点击这里

              主成分分析(PCA)与线性判别式分析(LDA)是两种最常用的特征选择算法。 LDA与PCA的一大不同点在于,LDA是有监督的算法,而PCA是无监督的,因为PCA算法没有考虑数据的标签(类别),只是把原数据映射到一些方差比较大的方向(基)上去而已。而LDA算法则考虑了数据的标签。

              偏最小二乘法(partialleast squares method,PLS):偏最小二乘是多种方法的结合,包括多元线性回归、典型相关分析和主成份分析。在主成份分析中所选取的变量都是独立的,在特征之间的相关性较大的时候容易漏掉关键特征,而偏最小二乘可以避免这个问题。

1.3 学习策略

(1)批量学习(BatchLearning)

                (a) 样本全部同时进入模型;

                (b)梯度下降的方法容易陷入局部最优;

                (c) 学习并行性,速度快,但耗费存储量大。

(2)在线学习(Online Learning)

                (a)样本按顺序进入模型,不断修正模型参数;

                (b)随机性强,不容易陷入局部最优;

                (c)学习串行性,需要依次迭代速度慢,但耗费存储量小。

2 模型选择

2.1 基础知识

系统识别主要是要解决两个问题:

              (1)建模描述系统输入与输出的函数映射关系;

              (2)确定模型参数。

建模过程考虑的几个重要因素:

              (1) 泛化能力:对未知空间的预测能力,衡量模型优劣的主要指标;

              (2) 解释能力:建模是用数学的方法来解释现实问题,目的是通过模型找寻实际问题的最佳解决措施。

              (3) 维数灾难:模型可能涉及到很多的参数是无法通过样本来准确估计的,或者由于过多的参数而导致模型的泛化能力变差。
              (4) 计算能力:通常,随着模型的复杂度增加,所带来的计算复杂度也会倍增,甚至是指数性增加。

              (5) 输入选择:对于模型输入的变量并不是越多越好,如果输入中含有的无效成分太多,反而会影响最终输出结果。因此,要合理选择模型输入。

2.2 “过拟合”

              在过去,机器学习的目标往往是关注经验风险最小化(EmpiricalRisk Minimization,ERM),即以训练样本误差最小化来衡量模型的好坏,从而无限增加模型的复杂度。然而 随着模型复杂度增加,模型的泛化能力反而会下降,即出现了“过拟合”现象,而提高泛化能力要综合考虑模型的偏差(Bias)和方差(Variance)。

              均方误差来(MeanSquare error,MSE)来衡量模型的泛化误差的话,对于,是分布的噪声干扰(白噪声),则模型在处的泛化误差为:

              随着模型的复杂度增加,虽然偏差会不断减小,但方差先减小后增大,模型的泛化误差也是先减小后增大,因此需要在“欠拟合”和“过拟合”之间寻找合适的模型复杂度。衡量模型的复杂度通常有AIC准则(AkalikeInformation Criterion)、BIC准则(BayesianInformation Criterion)等方法。

2.3 正则化

              在满足一定训练精度要求的情况下,倾向于选择、稀疏的模型结构来避免“过拟合”,这就是奥卡姆剃刀定律(Occam’sRazor):“如无必要,勿增实体”(Entities should not be multiplied unnecessarily),即用简单有效的方法完成要求做的事。

              在机器学习中,控制模型复杂度典型方法是采用正则化。正则化的思想是结构风险最小化(StructuralRisk Minimization,SRM)策略,在经验风险上加一个正则化项(Regularizer)或罚项(Penaltyterm)。从贝叶斯估计的角度来看,正则化项对应于模型的先验概率,模型越复杂则先验概率概率越大,结构风险也就越大。

              正则化方法有L0阶、L1阶和L2阶范数三种,其中L0阶范数的求解是NP难问题,较少采用;L1阶范数又称LASSO(least absolute shrinkage and selection operator),作用是特征选择;L2阶范数又称岭回归(ridge regression),作用是权值衰减。

              在实际应用中,岭回归是保证回归矩阵权值的平方和尽可能小,无法产生稀疏化的回归矩阵和起到选择重要参数的目的,但在样本数较多的情况下,岭回归的精度高于LASSO。介于L1阶和L2阶范数之间还有elastic net方法,此时代价函数为:

              这里,式子右边的第二、三项分别对应L1阶和L2阶范数。如果用形象化方式表达三者的关系。

              ASSO的特征选择方式的几何解释可以参考修正的最小角回归(Least AngleRegression)算法。由最残差相关系数最大的方向出发,随着前进步长增大,最优方向与残差的相关系数变小,直至找到次优参数方向,参数依次进入模型

3 优化算法

优化问题分类

              (1) 一维搜索:求目标函数在直线上的极小点,称为一维搜索,或称为线搜索

              一维搜索可归结为单变量函数的极小化问题。一维搜索包括试探法和函数逼近法。试探法:针对单峰函数,包括0.618法(黄金分割法)和Fibonacci法等;函数逼近法(插值法):牛顿法、割线法和抛物线法等

              (2) 无约束问题优化法:目标问题没有约束条件包括最速下降法、牛顿法、共轭梯度法、拟牛顿法等求解方法。

              (3) 约束问题优化法:目标问题有约束条件包括可行方向法(Zoutendijk法)、惩罚函数法、乘子法、序列二次规划法等求解方法。

              (4)整数规划:目标函数和约束函数是线性函数,还要求决策变量取整数值
包括分支定界法、割平面法等求解方法

              (5)动态规划:解决多阶段决策过程最优化的一种数学方法,主要用于以时间或地域划分阶段的动态过程的最优化

猜你喜欢

转载自blog.csdn.net/Sakura55/article/details/81051965