学习心得(一):什么是机器学习方法

吴恩达《机器学习》课程总结(9)神经网络的学习
吴恩达《机器学习》课程总结(9)神经网络的学习
9.1代价函数
(1)假设神经网络的训练样本有m个,每一个包含一组输入x和一组输出信号y,L表示神经网络的层数,Sl表示每一层的神经元个数,SL代表最后一层中处理单元的个数。
则代价函数为(同样不对θ0正则化):
9.2反向传播算法
前向传播算法:
用δ表示误差,则δ(4)=a(4)-y
前一层的误差为:
再前一层的误差为:
9.1代价函数
(1)假设神经网络的训练样本有m个,每一个包含一组输入x和一组输出信号y,L表示神经网络的层数,Sl表示每一层的神经元个数,SL代表最后一层中处理单元的个数。
则代价函数为(同样不对θ0正则化):
9.2反向传播算法
前向传播算法:
用δ表示误差,则δ(4)=a(4)-y
前一层的误差为:
再前一层的误差为:
输入层不存在误差。
每一层有了误差之后,即可分别进行求偏导,然后更新θ。
9.3反向传播算法的直观理解
9.4实现注意:展开参数
9.5梯度检验
用某点领域的两个点的连线的斜率作为该点的估算值,然后用该值与神经网络计算出来的值作比较。
9.6随机初始化
参数的初始化应该随机的,如果是相同的值的话,第二层的所有激活单元都会有相同的值,后面也类似。
9.7综合起来
使用神经网络时的步骤:
(1)网络结构:第一件要做的事是选择网络结构,即决定选择多少层以及决定每层分别有多少单元。
第一层的单元数即为我们训练集的特征数量。
最后一层的单元数是我们训练集的结果的类的数量。
(2)训练神经网络:
1.参数的随机初始化;
2.利用正向传播方法计算所有的hθ(x);
3.编写计算代价函数J的代码;
4.利用反向传播方法计算所有的偏导数;
5.利用数值检验方法检验这些偏导数;
6.使用优化算法来最小化代价函数。
9.8自动驾驶
用云栖社区APP,舒服~
【云栖快讯】云栖社区技术交流群汇总,阿里巴巴技术专家及云栖社区专家等你加入互动,老铁,了解一下?&&
阿里云机器学习是基于阿里云分布式计算引擎的一款机器学习算法平台。用户通过拖拉拽的方式可视化的...
帮助您基于阿里云构建出一个隔离的网络环境。您可以完全掌控自己的虚拟网络,如选择自有 IP 地...
专注于企业工作效率提升,解决重复有规律的工作并且帮助用户连接不同的系统和服务,实现工作流程自...
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效...机器学习培训学习心得
[问题点数:40分]
本版专家分:0
CSDN今日推荐
本版专家分:0
本版专家分:0
本版专家分:0
匿名用户不能发表回复!|
其他相关推荐Bad Request
Bad Request - Invalid URL
HTTP Error 400. The request URL is invalid.LESS IS MORE
机器学习总结
机器学习总结
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率统计、非线性优化、信息论、人工智能、计算复杂性和控制论等多门学科。目的是用计算机模拟或实现人类的学习行为,随着经验积累自动提高性能。
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):由贝叶斯公式得到的分类器,通过计算后验概率来分类。
逻辑斯蒂回归(LogisticRegression):在线性回归的基础上应用逻辑函数,函数值位于0到1之间,二值分类以0.5为界限。
支持向量机(SupportVector Machine,SVM):在较长一段时间被誉为二值分类问题最佳的模型。通过核函数映射,将低维线性不可分的数据集映射到高维,使其线性可分,并使分类界面间隔最大。算法求解过程用到了二次规划、拉格朗日乘子法、KKT条件、对偶问题、SMO算法等。SVM算法善于处理小样本问题。
K近邻(K-Nearest Neighbors,KNN):基于实例的算法,通过距离公式来寻找相似样本来做回归预测,依赖于样本数据的质和量,算法很成熟但计算量较大,因此后来又提出了KD树的方法。
决策树(Decision Trees,DT):直观运用概率的图解方法,按特征来生成决策树,使目标期望达到最大,实际使用过程特征选择方式和决策树的修剪是关键。
决策树算法包括迭代二叉树(IterativeDichotomiser 3,ID3)、C4.5和CART(ClassificationAnd Regression Tree)等衍生算法。
神经网络(NeuralNetwork,NN):模仿人类大脑的神经突触结构,从而完成信息的传递处理,是目前最流行的机器学习算法之一。
神经网络按照隐层数的多少可分为浅层学习和深层学习,浅层学习包括感知器(Perceptron)、多层感知器(Multi-LayerPerceptron,MLP)、反馈神经网络(BackPropagation Neural Network,BP-NN)、径向基函数神经网络(RadialBasis Function Neural Network,RBF-NN)、极限学习机(ExtremeLearning Machine,ELM)等,深层学习包括深度置信网络(DeepBelief
Nets,DBN)、循环神经网络(RecurrentNeural Network,RNN)、卷积神经网络(ConvolutionalNeural Network,CNN)等等。
在实际使用过程中,往往还使用模型融合算法(Ensemble Algorithms),这类的算法包括:
Bagging(Bootstrap aggregation):每次从样本集随机采样来训练弱分类器,重复多次,最后用投票的方式(分类)或求均值(回归)得到最后结果。
随机森林(RandomForest):随机构造很多的CART(由树组成森林),模型关键参数是树个数目和树节点输入特征的个数(总特征树的子集,随机选取),通过综合决策树的结果得到分类结果。
自适应提升方法(AdaptiveBoosting):采用赋权的方式,先设置初始权重,然后每个弱分类器训练完根据效果改变权重,训练失败的样本增加权重,最后综合多个弱分类器的结果得到强分类器。
在部分学者的观点来看,数据挖掘的核心就是聚类,聚类问题是典型的无监督学习,按一定的规则将类似的样本进行组合的方式。大量数据可先通过聚类划分不同的类别,然后再进行其他机器学习的处理。
常用的聚类算法包括:
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的一种处理方法。
偏最小二乘法(partialleast squares method,PLS):偏最小二乘是多种方法的结合,包括多元线性回归、典型相关分析和主成份分析。在主成份分析中所选取的变量都是独立的,在特征之间的相关性较大的时候容易漏掉关键特征,而偏最小二乘可以避免这个问题。
1.3 学习策略
(1)批量学习(BatchLearning)
(a) 样本全部同时进入模型;
(b)梯度下降的方法容易陷入局部最优;
(c) 学习并行性,速度快,但耗费存储量大。
(2)在线学习(Online Learning)
(a)样本按顺序进入模型,不断修正模型参数;
(b)随机性强,不容易陷入局部最优;
(c)学习串行性,需要依次迭代速度慢,但耗费存储量小。
2 模型选择
2.1 基础知识
系统识别主要是要解决两个问题:
(1)建模描述系统输入与输出的函数映射关系;
(2)确定模型参数。
建模过程考虑的几个重要因素:
泛化能力:对未知空间的预测能力,衡量模型优劣的主要指标;
解释能力:建模是用数学的方法来解释现实问题,目的是通过模型找寻实际问题的最佳解决措施。
维数灾难:模型可能涉及到很多的参数是无法通过样本来准确估计的,或者由于过多的参数而导致模型的泛化能力变差。
计算能力:通常,随着模型的复杂度增加,所带来的计算复杂度也会倍增,甚至是指数性增加。
输入选择:对于模型输入的变量并不是越多越好,如果输入中含有的无效成分太多,反而会影响最终输出结果。因此,要合理选择模型输入。
鲁棒性和抗扰性:传统的线性系统常常是建立在带有高斯噪音的线性时不变过程。而实际动态的过程往往是复杂、非线性、非平稳、随机且部分未知的,因此保证模型的鲁棒性和抗干扰性是一大难题。
在线更新:对于持续输入样本的模型,不仅要实现参数实时更新,也要实现模型结构的自适应调整。
2.2 “过拟合”
在过去,机器学习的目标往往是关注经验风险最小化(EmpiricalRisk Minimization,ERM),即以训练样本误差最小化来衡量模型的好坏,从而无限增加模型的复杂度。然而 随着模型复杂度增加,模型的泛化能力反而会下降,即出现了“过拟合”现象,而提高泛化能力要综合考虑模型的偏差(Bias)和方差(Variance)。
以均方误差来(MeanSquare error,MSE)来衡量模型的泛化误差的话,对于,是分布的噪声干扰(白噪声),则模型在处的泛化误差为:
如图1所示,随着模型的复杂度增加,虽然偏差会不断减小,但方差先减小后增大,模型的泛化误差也是先减小后增大,因此需要在“欠拟合”和“过拟合”之间寻找合适的模型复杂度。衡量模型的复杂度通常有AIC准则(AkalikeInformation Criterion)、BIC准则(BayesianInformation Criterion)等方法。
(1)赤池信息量准则(AkalikeInformation Criterion,AIC准则)
其中L是样本训练误差的极大似然值,假设误差服从正态分布,则误差越小,L越大,d是模型参数个数。AIC越小,则模型越好,即在保证参数个数少的情况下达到误差最小。
(2)贝叶斯信息量准则(BayesianInformation Criterion,BIC准则)
这是基于贝叶斯角度考虑的推论,但实际上其与AIC准则表达式类似,也是越小越好。
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阶范数。如果用形象化方式表达三者的关系。
LASSO的特征选择方式的几何解释可以参考修正的最小角回归(Least AngleRegression)算法。由最残差相关系数最大的方向出发,随着前进步长增大,最优方向与残差的相关系数变小,直至找到次优参数方向,参数依次进入模型
3 优化算法
3.1 优化问题分类
一维搜索:求目标函数在直线上的极小点,称为一维搜索,或称为线搜索
一维搜索可归结为单变量函数的极小化问题。一维搜索包括试探法和函数逼近法。试探法:针对单峰函数,包括0.618法(黄金分割法)和Fibonacci法等;函数逼近法(插值法):牛顿法、割线法和抛物线法等
无约束问题优化法:目标问题没有约束条件
包括最速下降法、牛顿法、共轭梯度法、拟牛顿法等求解方法。
约束问题优化法:目标问题有约束条件
包括可行方向法(Zoutendijk法)、惩罚函数法、乘子法、序列二次规划法等求解方法。
(4)整数规划:目标函数和约束函数是线性函数,还要求决策变量取整数值
包括分支定界法、割平面法等求解方法
(5)动态规划:解决多阶段决策过程最优化的一种数学方法,主要用于以时间或地域划分阶段的动态过程的最优化
最优性原理:作为整个过程的最优策略具有这样的性质:无论初始状态和初始决策如何,对前面的决策所形成的状态而言,余下的诸决策必须构成最优策略。
动态规划的经典问题是最短路问题和生成贮存问题。求解方法包括逆推法和顺推法。
(6)多目标规划:目标函数含有多个子目标,互相之间可能是相互矛盾的,在这多个子目标之间进行协调和权衡,使各个子目标尽可能地达到理想值。
对于多个目标可以采用加权等方式整合成单目标,也可以通过重要性排序等方式依次确定各个目标的最优,常用解法是遗传算法(GA)。
3.2 典型优化算法
(1)遗传算法(GeneticAlgorithm,GA)
人工智能算法的重要分支,原理是模拟生物进化论和遗传学机理的生物进化过程的计算模型,包含了“适者生存”、“优胜劣汰”等规则。
遗传算法包含遗传、变异和选择三个流程。个体编码常用无符号的二进制整数来表示。具体步骤包括:构造一定规模的初始种群,计算适应度决定遗传的概率,遗传运算(常用轮盘赌法),交叉运算(按概率发生片段交换)、变异运算(较小概率随机发生突变,防止陷入局部最优)。
(2)模拟退火算法(SimulatedAnnealing Algorithm,SA或SAA)
源于固体退火原理,基于蒙特卡洛(MonteCalro)法迭代求解测量的一种随机寻优的算法。在某一初温下,伴随温度不断下降,结合概率突跳特性在解空间中随机寻找目标函数的全局最优解。
模拟退火包括加温、等温和冷却(退火)过程。设定初始值,进行蒙特卡洛模拟新状态,优化状态完全接受,也以一定概率接受劣化状态(防止局部最优),直到得到满足要求的解。这种方法本质还是随机求解法,计算量大,时间长。
(3)蚁群算法(AntColny Optimization,ACO)
是一种用来在图中寻找优化路径的几率型算法,源于蚂蚁在寻找食物过程发现最优路径的行为。典型的应用是用于解决旅行商问题(Travelingsalesman problem, TSP)。
算法的一般步骤:
(a) 初始化参数:开始时每条边的信息素量都相等;
(b)将各只蚂蚁随机放置各个顶点;
(c) 依次选取蚂蚁周游所有顶点,计算转移概率(由每条边的信息素和启发因子决定,启发因子为路阻的倒数),以轮盘赌法决定下一个顶点,计算蚂蚁留在各边的信息素,更新信息素表。
(d)计算各边的信息素增量,记录本次迭代的路径,更新当前最优路径,清空信息素表。
(e) 迭代运行,终止条件:最大迭代次数或停滞现象。
粒子群算法(Particle Swarm Optimization,PSO)
源于对鸟群捕食行为的研究,求解过程是从随机解出发,通过迭代寻找最优解,通过适应度评价解的品质。
粒子群算法的一般过程:
(a) 随机初始化一组微粒(问题可行解),包括随机位置和速度;
(b)评价每个微粒的适应度;
(c) 根据个体极值和群体极值来更新当前位置。
(d)重复(b)和(c),记录下每个微粒每次迭代的位置和适应度,直至找到最优解。
理解机器学习算法的一点心得
机器学习实验(一)—Linear Regression
机器学习心得
机器学习总结 第一课
机器学习导论总结
机器学习学习心得
机器学习感悟
机器学习--归纳总结
机器学习常用算法总结
没有更多推荐了,《机器学习系统设计》是一本不错的机器学习实战入门的书籍。第一章介绍了用于机器学习的Python相关工具,接下来分别用实战型例子讲解聚类、分类、回归、模式识别、降维等机器学习的主要的几种方法。
机器学习就是教机器自己来完成任务,机器学习的目标就是通过若干示例让机器学会完成任务。
像其他工程一样,设计一个机器学习系统工作一般花在一些极其平凡的任务上:
(1)读取和清洗数据;
(2)探索和理解输入数据;
(3)分析如何最好地将数据呈现给学习算法;
(4)选择正确的学习算法和模型;
(5)正确地评估性能。
分类是一种监督性学习(需要样本进行训练),书中第二章从最简单的肉眼观察方法,讲到K邻近算法和分类树方法。
聚类是一种无监督学习,书中第三章一种比较典型的聚类方法&&K均值(质心移动法)。
主题模型不同于聚类,而是把对象放入几个组(叫做主题)中。
分类、聚类和主题模型是主流的机器学习模型,是机器学习的基础知识,只有融会贯通这些基础知识才能在遇到更有挑战性地问题时能见招拆招。
设计机器学习系统免不了要对系统进行提升,我本基本有如下选择:
(1)增加更多数据:也许我们没有为学习算法提供足够数据,因此增加更多的训练数据即可。
(2)考虑模型复杂度:也许模型还不够复杂,或者已经太复杂了。例如在K邻近算法中 ,我们可以降低K值,使得较少的近邻被考虑进去,从而更好地预测不平滑数据。我们也可以提高K值,来得到相反的结果。
(3)修改特征空间:也许我们的特征集合并不好。例如,我们可以改变当前特征的范围,或者设计新的特征。又或者,如果一些特征和另外一些特征是别名关系,可以删除一些特征。
(4)改变模型:也许XX算法并不适合我们的问题,无论我们让模型变得有多复杂,无论特征空间会边得多负杂,它永远也得不到良好的预测结果。
逻辑回归是一种分类方法,当他处理基于文本的分类任务时,功能非常强大。
朴素贝叶斯是一种分类方法,也许是最优美的有实际效用的机器学习算法之一了,尽管名字叫做朴素,但是当你看到其分类的实际效果时,你会发现并不是那么朴素。他对无关特征的处理能力十分强悍,无关特征会被自然地过滤掉。用它进行机器学习和预测的时候,速度都非常快,而且并不需要很大的存储空间。(之所以称作朴素,是因为有一个能让贝叶斯方法最优工作的假设:所有特征需要相互独立。而实际应用中,这种情况很少出现。尽管如此,在实践中,即使在独立假设并不成立的情况下,他仍然能达到很高的正确率。
关回归预测模型中首先介绍a kind old method&&普通最小二乘法回归(Ordinary Least Squares,OLS)。有时候为了避免过拟合用到了岭回归、Lasson法和弹性网(他们是最前沿的回归方法)。
Apriori算法在形式上会将一些集合当作输入,并返回这些集合中出现频率非常高的子集。Apriori的目标就是寻找一个高支持度的项集。其解决的经典问题是购物篮问题(挖掘购买A的人可能还会购买什么)。当然,购物篮问题也可以尝试用基于概率的关联规则挖掘方法。
涉及到语音、音乐等样本的机器学习系统则略显不同,因为他们的描述值并不是那么明显(比如花朵分类问题中,对特征的描述花瓣数量、花朵颜色等都比较明确),而对于一段长3分钟的MP3歌曲,显然我们不能用MP3数据的每一bit来表示。书中介绍了一种基于音乐频率的分类方法(FFT)&&一种可以从音频中提取频率强度的方法(快速傅里叶变换)。但是FFT仅仅是一个方向,却正确率不高!其实对于音乐分类已经有人遇到同样的问题,并成功解决了,甚至有一个每年举办的会议专门用来解决音乐分类问题。这个组织是由音乐信息检索国际协会(ISMIR)组织的。很明显自动音乐体裁分类是音乐信息检索的一个子领域。在AMGC中一个应用比较多的音乐体裁分类方法就是梅尔倒频谱系数(MFCC)技术。梅尔倒频谱(MFC)会对声音的功率谱进行编码,它是通过对信号谱的对数进行傅里叶变换得到的。
而涉及到图像、视频的机器学习系统则又和之前不同,这方面甚至直接独立出来单独研究。
总结:整本书主要以实战为主,介绍性地引入机器学习中许多基础的方法。可以作为机器学习入门导读类书籍进行阅读~
@beautifulzzzz
智能硬件、物联网,热爱技术,关注产品
博客:http://blog.beautifulzzzz.com
sina:http://weibo.com/beautifulzzzz?is_all=1
阅读(...) 评论()

我要回帖

更多关于 机器学习预测世界杯 的文章

 

随机推荐