机器学习相关知识。其中涉及到概率论、线性代数和离散数学知识。
◼标记(label):示例的结果信息。
◼样例(example):拥有了标记的示例。(Xi,Yi)表示第i个样例,其中Yi ∈ Y,Y是所有标记组成的集合,称为“标记空间”或“输出
空间”。
◼分类(classification):预测值为离散值的问题。例如,好瓜、坏瓜。
◼回归(regression):预测值为连续值的问题。例如,西瓜成熟度,
0.95、0.37等。
◼二分类(binary classification):只涉及两个类别,通常将其中一
个称为正类(positive class),另一个称为反类(negative class)
◼多分类(multi-class classification):涉及多个类别。
测试(testing):使用模型进行预测的过程。
◼测试样本(testing sample):被测试的样本。
◼泛化(generalization)能力:学得的模型适用于新样本的能力。
◼独立同分布(independent and identically distributed,IID):通
常假设样本空间中全体样本服从一个未知分布(distribution),获
得的每个样本都独立地从这个分布上采样获得,即“独立同分布”。
◼归纳(induction):从特殊到一般的泛化(generalization)过程,
也就是从具体的事实归纳出一般性规律。
◼演绎(deduction):从一般到特殊的特化(specialization)过程,
也就是从基础原理推演出具体状况。
◼归纳学习(inductive learning):从样例中学习显然是一个归纳的
过程。
◼广义的归纳学习:从样例中学习。
◼狭义的归纳学习:从训练数据中学习概念,因此称为概念生成/概
念(concept)学习。
计算:每个属性的值的种类数加一然后相乘,再加一。
◼错误率(error rate):m个样本中有a个样本分错,则错误率为a/m。
◼精度(accuracy)、又称准确率 : 1-a/m,即“精度 =1-错误率”。
◼误差(error):学习器实际预测输出与样本真实输出间的差异。
◼经验误差(empirical error):在训练集上的误差,又称“训练误差”
(training error)
◼泛化误差(generalization error):在“未来”样本上的误差。
◼过拟合(overfitting):当学习器把训练样本学得“太好”了的时候,很可能
已经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,这
样就会导致泛化性能下降。
◼欠拟合(underfitting):对训练样本的一般性质尚未学好。
数据集划分示意图
X_train, X_test, y_train, y_test =train_test_split(train_data, train_target,
test_size=0.3, random_state=0)
KFold(n_splits=5, shuffle=False, random_state=None)
该方法中有个特例:留一法
自助采样 (bootsrap sampling):又称有放回采样/可重复采样。给定包含M个
样本的数据集D,对它采样产生数据集D′:每次随机从D中挑选一个样本,将
其拷贝放入D′,然后再将该样本放回初始数据集D中,使得该样本在下次采
样时仍有可能被采到;该过程重复执行D次,得到包含D个样本的数据集D′ 。
加粗样式
二分类混淆矩阵
confusion_matrix(true,pred,label)
ROC和AUC
ROC 由线上每一点对应了代价平面上的一条线段 ,设ROC曲线上点的坐标为(TPR,FPR),则可相应计算出FNR,然后在代价平面上绘制一条从(0,FPR)到(1,FNR)的线段,线段下的面积即表示了该条件下的期望总体代价;如此将ROC曲线土的每个点转化为代价平面上的一条段,然后取所有线段的下界,围成的面积即为在所有条件下学习器的期望总体代价。
通过属性的线性组合来进行预测的函数,既可以用于分类(如果预测值是离散值,就是分类) 也可以用于回归(预测值是连续值,就是回归)。从数学角度讲,回归就是用超平面做拟合,分类就是用超平面做分割。
有时这些输入的属性值并不能直接被我们的学习模型所用,需要进行相应的处理。举例
对于连续值的属性,一般都可以被学习器所用,有时会根据具体的情形作相应的预处理,例如:归一化等;
对于离散值的属性,可作下面的处理:
1)若属性值之间存在“序关系”,则可以将其转化为连续值,例如:身高属性分为“高”“中等”“矮”,可转化为数值:{1, 0.5, 0}。
2)若属性值之间不存在“序关系”,则通常将其转化为向量的形式,例如:性别属性分为“男”“女”,可转化为二维向量:{(1,0),(0,1)}。
线性回归是回归问题中的一种,线性回归假设目标值与特征之间线性相关,即满足一个多元一次方程。通过构建损失函数,来求解损失函数最小时的参数w和b。通长我们可以表达成如下公式:
y^为预测值,自变量x和因变量y是已知的,而我们想实现的是预测新增一个x,其对应的y是多少。因此,为了构建这个函数关系,目标是通过已知数据点,求解线性模型中w和b两个参数。
求解最佳参数,需要一个标准来对结果进行衡量,为此我们需要定量化一个目标函数式,使得计算机可以在求解过程中不断地优化。
针对任何模型求解问题,都是最终都是可以得到一组预测值y^ ,对比已有的真实值 y ,数据行数为 n ,可以将损失函数定义如下:
即预测值与真实值之间的平均的平方距离,统计中一般称其为MAE(mean square error)均方误差。把之前的函数式代入损失函数,并且将需要求解的参数w和b看做是函数L的自变量,可得:
现在的任务是求解最小化L时w和b的值,即核心目标优化式为
最小二乘法
求解 w 和 b 是使损失函数最小化的过程,在统计中,称为线性回归模型的最小二乘“参数估计”(parameter estimation)。我们可以将 L(w,b) 分别对 w 和 b 求导,得到
令上述两式为0,可得到 w 和 b 最优解的闭式(closed-form)解:
梯度下降
梯度下降核心内容是对自变量进行不断的更新(针对w和b求偏导,其中α就是后面说的学习率),使得目标函数不断逼近最小值的过程:
一般步骤如下:(这部分可学习最优化算法知识)
将样例投影到一条直线(低维空间),因此也被称为”监督降维“技术。
可参考LDA
因为机器学习和深度学习课程是分开上的,所以博主总结这部分比较简单,此处仅介绍BP算法,其他见博客深度学习及神经网络篇。
它是一种与最优化方法(如梯度下降法)结合使用,用来训练人工神经网络的常见方法。该方法对网络中所有权重 w 和偏置 b计算损失函数的梯度,这个梯度会反馈给最优化方法,用来更新权值以最小化损失函数。
待补充
麻了,这儿是真没理解,看大佬文章吧SVM
主要思想:
(1) 它是针对线性可分情况进行分析,对于线性不可分的情况,通过使用非线性映射算法将低维输入空间线性不可分的样本转化为高维特征空间,使其线性可分,从而使得高维特征空间采用线性算法对样本的非线性特征进行线性分析成为可能;
(2) 它基于结构风险最小化理论之上在特征空间中建构最优分割超平面,使得学习器得到全局最优化,并且在整个样本空间的期望风险以某个概率满足一定上界。
常用核函数
蓝色的矩阵(输入图像)对粉色的矩阵(filter)进行矩阵内积计算并将三个内积运算的结果与偏置值b相加(比如下面图的计算:2+(-2+1-2)+(1-2-2) + 1= 2 - 3 - 3 + 1 = -3),计算后的值就是绿框矩阵的一个元素。
输入通道3,填充为1,步长为2 ,
卷积计算
例如
卷积核参数计算(以LeNet5为例)
最大池化层: 每个窗口中最强的模式信号
平均池化层: 窗口中的平均信号强度
◼ 多模型平均:不同的固定神经网络会有不同的过拟合,多个取平均则有可能
让一些相反的拟合抵消掉,而Dropout每次都是不同的神经元失活,可以看
做是多个模型的平均,类似于多数投票取胜的策略。
◼ 减少神经元间的依赖:由于两个神经元不一定同时有效,因此减少了特征间
依赖,迫使网络学习有更鲁棒的特征,因为神经网络不应该对特定的特征敏
感,而应该从众多特征中学习共同规律,这也起到了正则化的效果。
◼ 生物进化:类似于性别在生物进化中的角色,物种为了适应环境变化,在繁
衍时取雄性和雌性的各一半基因进行组合,这样可以适应更复杂的新环境,
避免了单一基因的过拟合,当环境发生变化时也不至于灭绝。
◼ 缓解梯度消失,加速网络收敛。可以让激活函数的输入数据落在非饱和区,缓解
了梯度消失问题。此外,由于每一层数据的均值与方差都在一定范围内,深层网络
不必去不断适应浅层网络输入的变化,实现了层间解耦,允许每一层独立学习,加
快了网络的收敛。
◼ 简化调参,网络更稳定。在调参时,学习率调得过大容易出现震荡与不收敛,BN
层则抑制参数微小变化随网络加深而被放大的问题,对于参数变化的适应能力更
强,更容易调参。
◼ 防止过拟合。将每个batch的均值与方差引入到网络中,由于每个batch的值都不相
同,可看做为训练过程增加了随机噪音,起到一定的正则化效果,防止过拟合。
集成学习(ensemble learning): 通过构建并结合多个学习器来完成学习任务,
有时候也被称为多分类器系统(multi-classifier system)、 基于委员会的学习
( committee voting method)。
一般结构:先产生一组“个体学习器”(individual learner) ,再用某种策略
将它们结合起来。
个体学习器:通常由一个现有的学习算法从训练数据产生,如C4.5决策树算法、
BP神经网络算法等。
数据样本扰动(适合不稳定基学习器,如决策树、神经网络等):
通常基于采样法,如在Bagging中使用自助采样,在AdaBoost采用序列采样
输入属性扰动(适合包含大量冗余属性的数据)不同的子空间(即属性子集)
提供了观察数据的不同视角。显然,从不同的属性子集训练出的个体学习器必然有所不同。随机子空间(random subspace)算法采用输入属性扰动:从初始属性集中抽取出若干个属性子集,再基于每个属性子集训练-个基学习器。
输出表示扰动
对输出表示进行操纵可以增强多样性对训练样本的类标记稍作变动,如翻转法:
随机改变一些训练样本的标记对输出表示进行转化,如输出调制法:将分类输出
转化为回归输出后构建个体学习器将原任务拆解为多个可同时求解的子任务,如
ECOC法:利用纠错输出码将多分类任务拆解为一系列二分类来训练基学习器
算法参数扰动
通过随机设置不同的参数,往往可产生差别较大的个体学习器。
例如负相关法:显示地通过正则化项来强制个体神经网络使用不同的参数。使用
单一学习器时通常使用交叉验证等方法确定参数值,这事实上已经使用了不同参
数训练出多个学习器,只不过最终选取其中-个学习器进行使用,而集成学习则
相当于把这些学习器都利用起来。
拉普拉斯矩阵计算