看到很多人都有写博客的习惯,现在开始实习了,也把之前写过的东西整理整理,发在这里,有兴趣的同学可以一起交流交流。文笔稚嫩,希望大家宽容以待!
机器学习是人工智能(AI,artificial intelligence)发展到一定阶段的必然产物。二十世纪五十年代到七十年代,人工智能为推理期,70年代中期之后,进入到知识期,在五十年代中后期,基于神经网络的“连接主义”(connection)学习开始出现,六七十年代,基于逻辑表示的“符号主义”(symbolism)学习技术蓬勃发展。到八十年代,美国举行了第一届机器学习研讨会,从此进入百花绽放时期。
现如今正处于一个数据横流的年代,互联网和人们的生活中无时无刻不在产生着数据,而分布式的节点所构成的云计算网络使得数据在节点处得以进行一定的处理和计算,但是最终还是会有数据上传至应用层(application),人们很难直接从原始数据本身获得所需信息,机器学习可以把无序的数据转换成有用的信息。从而为相关事业的发展提供数据分析支撑。
机器学习,“机器”就是计算机,“学习”就是对数据的训练,对模型参数的估计。事实上机器学习就是基于大量的输入、输出数据,通过训练算法让计算机习得一个判断规则。这也就是我们所说的“样例学习”或归纳学习。所用到的知识涉及数学中的线性代数(linear algebra)、统计理论(statistics theory)以及计算机科学中的寻优算法(optimizationalgorithm)等等。目前的机器学习的目的往往都是进行分类或是回归预测,分类任务从最简单的二分类到多分类任务,分类器(classifier)由简单的单一分类器到集成学习中的多分类器的结合与集成。学习任务又分为监督学习(supervised learning)与无监督学习(unsupervised learning),监督学习即知道样本的标记,而无监督学习则是标记未知,机器学习的目标是通过对这些无标记训练样本的学习来揭示数据的内在性质及规律,为数据分析提供基础。比如有一组西瓜的性质:色泽=青绿,根蒂=蜷缩,敲声=沉闷,如已知其为好瓜则为有监督学习,如未知其好坏则为无监督学习。
机器学习中有很多算法,这些算法便称之为“模型”。我们需要根据数据的不同特点选择合适的模型。有监督学习有线性回归、决策树、神经网络、SVM等大多数分类学习算法,而无监督学习以聚类分析(clustering analysis)为代表。对数据为离散值的预测称之为分类(classification),对连续值的预测称之为回归(regression)。在训练模型时,会将已有的数据(又称样例,example)划分为训练集和测试集,训练集用于模型训练,测试集用于对模型的泛化性能进行评估。输入和输出数据往往都是一组向量(vector)。这将有利于计算机进行计算。分类任务的目标就是误差最小,其包括经验误差(或经验误差empirical error,即预测值在训练集上的误差)和泛化误差(generalization error,近似为预测值在测试集上的误差)最小化。我们所需要的是该模型在新的样本中也能够表现出良好的性能,也就是泛化误差足够小。而在实际训练过程中往往会出现欠拟合(underfitting)和过拟合(overfitting)的现象,欠拟合就是拟合不到位,不能准确地描述输入数据的特征,而过拟合是已经把训练数据中的特殊性学习进去了,以至于不具有普遍性,难以获得较好的泛化性能。所以我们需要多次调整模型中所涉及的参数,甚至根据情况改良模型。
式1
以线性模型为例来简单介绍机器学习的相关知识,线性模型基于回归任务,包含基本线性回归、对数几率回归、线性判别分析、类别不平衡等问题。回归方程为 式1
利用最小二乘法(Least squares)对参数进行求解,此处往往借助计算机软件(如matlab,python等)。在二分类任务中单位阶跃函数具有不连续不可微的特性,稍作改良为连续函数
式2
,这样我们可以将大于0.5的值归类为1,小于0.5的值归类为0。这是0-1阶跃函数的替代函数,此处y为事件发生的几率,而对数几率函数则为:
式2
图1梯度下降法示意图
一般而言,可用用线性回归模型的预测结果去逼近真实标记的对数几率。而对数几率回归具有无需假设数据分布直接建模、任意阶可导凸函数的优良数学性质、可得到近似的概率预测,有益于分析概率辅助决策的任务等优点。除最小二乘法外,还可使用梯度下降法(gradient descent)用来递归性地逼近最小偏差模型。梯度下
降法是用负梯度方向为搜索方向的,梯度下降法越接近目标值,步长越小,前进越慢。优化过程是之字形的向极小值点靠近,速度非常缓慢。线性判别分析(Linear Discriminant Analysis,LDA)是指给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近、异类样例投影点尽可能远离,再对新样本进行分类时,将其投影到同类的这条直线上,再根据投影点的位置确定样本类别。是一种新颖的分类方法。对于类别不平衡问题,则可采用再缩放(rescaling)的方法,即丢弃一些样例使得正反样例数目趋于一致。
除此之外,还有支持向量机(SVM)算法:其通过核函数(kernel function)将原有的样例映射到高维平面,再利用超平面对其进行划分。神经网络算法:(neural networks),将每个输入值的权重(connection weight)设定为学习算法中的参数,模拟人脑的神经网络系统,通过数据的训练确定每个神经元的输入数据的权重。多个神经元构成一层神经元,多层便构成神经网络。目前最常用的是基于梯度下降(gradient descent)策略的BP神经网络算法,即累积误差逆传播(accumulated error backpropagation)以目标的负梯度方向对参数进行调整,学习率控制着每一轮迭代更新的步长,其通过计算输出层的误差,再将误差逆向传播至隐层神经元,最后根据隐层神经元的误差来对连接权和阈值进行调整,直到达到停止条件为止。
现在,机器学习已经被广泛应用于诸多学科领域,如生物信息学——已知大量癌症病人与正常人的血样,对其中的某几种蛋白质成分进行分析,通过机器学习的分类算法,可以习得一个癌症判断模型,从而对于任意一个癌症疑似病例,对其从数据科学的角度分析患有癌症的概率。其他领域还有:交通领域中自动汽车驾驶、人流量预测、大气科学天气预报、环境监测,地理研究与开发中的能源勘测,对卫星和传感器发挥的数据进行分析并作出准确预测,商业营销中为商家优化库存降低成本,设计营销策略等。机器学习在大数据不断发展的时代展现自己独有的价值。
作者:a微风掠过
链接:https://www.jianshu.com/p/a374373c740a