人工智能基础
在机器学习中,数据并非通常意义上的数量值,而是对于对象某些性质的描述。被描述的性质叫做属性,属性的取值称为属性值,不同的属性值有序排列得到的向量就是数据,也叫实例。
根据输入输出类型的不同,预测问题可分为一下三类。
分类问题:输出变量为有限个离散变量,当个数为2时即为最简单的二分类问题;
回归问题:输入变量、输出变量均为连续变量;
标注问题:输入变量和输出变量均为变量序列。
集成学习:使用多个个体学习器来获得比获得比每个单独的个体学习器更好的性能。
个体学习器性能要有一定的保证,并且性能要有一定的差异,保持多样性。
集成学习的核心在于多样性和准确性之间做出这种,进而产生并结合各具优势的个体学习器。
个体学习器的生成方式很大程度上取决于数据的使用策略。
集成学习方法可以分成两类:个体之间存在强依赖关系必须串行生成的序列化方法,和个体学习器之间不存在强依赖关系可以同时生成的并行化方法。
序列化方法中的数据使用方式被称为提升(Boosting),其基本思路是对所用训练数据进行多次重复使用,每次应用前需要对数据的概率分布做出调整,以达到不同的训练效果。
与Boosting相比,并行化方法中数据使用机制是将原始的使用数据分成若干个互不交叠的子集,再根据每个子集独立的训练处不同的个体学习器,这种方式称为自助聚合。简称打包(Bagging)。在B啊刚刚ing机制中,不同的个体学习器之间多样性容易得到保障,但是由于每个个体学习器只能使用一小部分数据进行学习,其效果就容易出现断崖式下跌。
典型的序列化学习算法是自适应提升方法(Adaptive Boosting)。先通过改变训练数据的权重分布,训练出一系列具有粗糙规则的弱个体分类器,再基于这些弱分类器进行反复学习和组合,构造出具有精细规则的强分类器。Adaptive Boosting要解决两个问题:训练数据权重调整策略和弱分类器的组合策略。
随着训练过程的深入,弱学习器的训练中心逐渐被自行调整到被分类器错误分类的样本上,因而每一轮次的模型都会根据之前轮次模型的训练结果进行调整。
典型的并行学习方法是随机森林方法。随机森林就是对多个决策树模型的集成。随机的含义体现在两个方面:一是每个数据子集中的样本是在原始的训练数据集中随机抽取的;二是在决策树生成的过程中引入了属性的随机选择。在随机森林中,每棵决策树在选择属性划分时,首先从结点的属性集合中随机抽取出包含k个属性的一个子集,再在这个子集中选择最优的属性生成决策树。
计算机视觉:传统的计算机视觉通常包括图像预处理、特征提取、特征筛选、图像识别等几个步骤。
机器学习
概率这个基础概念村子着两种不同的解读,他们分别对应着概率的频率学派和贝叶斯学派。
机器学习是一门通过计算的手段利用经验来改善系统自身性能的学科。
频率学派和贝叶斯学派解决的是怎么学的问题,对于一个给定的问题到底要学到什么程度需要专门的计算学习理论来解释。
机器学习学的是输入和输出之间的映射关系,学到的映射会以模型的形式出现。
机器学习需要格努问题特定和已有数据确定具有最强解释性或预测力的模型。
其过程需要经过三个阶段:
模型拟合(利用训练数据集对模型的普通参数进行拟合);
模型选择(利用验证数据集对模型的超参进行调整,筛选出性能最好的模型);
模型评价(利用测试数据集来测试筛选出的模型在未知数据上的真实性能)。
脱离问题的实际情况谈论模型优劣是没有意义的,只有让模型的特点和问题的特征相匹配,模型才能发挥最大的作用。
模型本身及其背后学习方法的泛化能力,也就是模型对未知数据的预测能力,是机器学习的核心问题。
特征的本质是用于预测分类结果的信息,特征工程实际上就是对这些信息的编码。
正则化是抑制过拟合的方法的统称。它通过动态调整估计参数的取值来降低模型的复杂度,以偏差的增加为代价来换取方差的下降。这是因为当一些参数足够小时,它们对应的属性对输出结果的贡献就会微乎其微,这在实质上去除了非相关属性的影响。
逻辑回归是基于似然度的分类方法,通过对数据概率建模来得到软输出。
支持向量机并不关心数据的概率,而是要基于判别式找到最优的超平面作为二分类问题的决策边界。支持向量机有三个核心的概念:间隔、对偶、核技巧。
如果将局部特性持续加以细化,细化到让每个数据点都定义出不同局部特性的子区间,其结果就是基于实例的学习。
基于实例的学习也叫基于记忆的学习,它学习的不是泛化的模型而是样本之间的关系。
在基于实例的学习方法中,最典型的代表就是k近邻,它将每个训练实例都表示成高维特征空间中的一个点。
隐藏层指多级前馈神经网络中,除输入层和输出层之外的层。
当单个隐藏层在广度上难以实现时,一个自然的思路就是以网络结构的深度来换取广度,也就是增加隐藏层的数目来降低每个隐藏层中神经元的数目,这就是深度学习的起源。
准确的说,深度学习是一类学习方法,它应用的模型架构是深度神经网络。
深度学习既可以用于解释也可以用于预测。在实际中,这两个功能通常被组合使用,解释功能可以看做编码器,对高维信息进行低维重构;预测功能可以看做解码器,将低维重构恢复成高维信息。这样的两个深度网络级联起来,就形成了编码-解码结构。
卷积神经网络本身就可以看成是个庞大的编码器,其中的卷积层用于提取特征,不同的卷积核代表着不同的特征。
在图像的每个局部上,和卷积核相似度最高的区域都被下采样操作筛选出来,用于下一阶段的特征提取。在卷积层和下采样层的迭代过程中,低层次的特征不断组合成高层次的特征,数字图像的标识方式也从原始的像素集合变成卷积得到的特征组合,这两个层也就构成了卷积神经网络的编码器。
和卷积神经网络相比,编解码结构更直观的应用是在循环神经网络中。循环神经网络是增加了时间维度的神经网络,是自然语言处理、尤其是机器翻译的利器。
编解码结构的核心是生成数据表示,因而属于表示学习的范畴。
表示学习又叫特征学习,其目标是让机器自动发现原始数据中与输出相关度较高的隐含特征,因而能够生成新特征的技术都可以归纳到表示学习中。
局部化模型典型的处理方式先将整体划分成局部,使每个局部都体现出一定的规律性,再对每个局部的规律做出拟合。
集成学习是将多个基学习器进行集成,以得到比每个单独基学习器更优预测性能的方法。每个用于集成学习的基学习器都是弱学习器,其性能可以只比随机猜测好一点。集成学习的作用就是将这多个弱学习器提升成一个强学习器,达到任意小的错误率。
提升方法通过改变训练数据的分布来训练不同的弱学习器,再将他们组合成强学习器。提升方法的重点在取新模型之长补旧模型之短来降低偏差,尽可能获取无偏差的估计,模型之间是相互依赖的。如果去除对依赖性的限制,使用相互独立的模型来实现集成,典型的方法就是装袋法。
装袋法是自主聚合的简称,是模型均衡的一种手法。从训练数据集中利用重采样抽取出若干个子集,利用每个子集分别建立预测模型,再对这多个预测值求平均,就能够降低统计学习方法的方差。需要注意的是装袋法并没有降低偏差的效果,也没有提升预测的准确性,因此在选择基学习器时应当以偏差较小的优先。
直接使用提升发和装袋法只是初级的策略,将它们的强化版用在决策树上可以得到更加强大的万能模型,也就是梯度提升决策树和随机森林。
梯度提升法常见变种:梯度提升决策树(GBDT,使用决策树作为弱模型),极限梯度提升(XGBoost,加入了正则化和并行处理,提升了性能和速度)。
在深度学习和神经网络中,梯度是一个向量,表示损失函数(也成为目标函数)对模型参数的导数。换句话说,梯度指示了损失函数在参数空间的变化方向和速率。损失函数:衡量模型预测和实际目标之间差距的函数。常见的损失函数有均方误差(MSE),交叉熵损失等。
梯度消失是指在深度神经网络中,梯度在向后传播时逐渐变得非常小,最终接近于0。这会导致掐年层(靠近输入层)的参数更新极其缓慢,甚至无法更新,从而阻碍网络的训练和收敛。
卷积神经网络试图用向量来描述一个矩阵的信息。从工具的角度讲,卷积神经网络利用两个特殊的架构来对图像进行总结,卷积层和池化层。
常见网络模型:VGG、GoogleNet、ResNet