目录
Part One.数学基础
一、线性代数
1.标量、向量、张量和矩阵
标量:只有大小没有方向的量。如时间,温度等, 如果标量a是实数,记作
向量:既有大小又有方向的量。如速度、位移等, 如果a是n维实数矢量,记作一般用粗体变量表示 。向量=矢量
张量:可用来表示在一些标量、向量和其他张量之间的线性关系的多线性函数。三维及以上数组一般称为张量
矩阵:矩阵是一个二维数组,其中每一个元素由两个索引来确定,用大写变量表示。m行n列的实数矩阵,记作
关系:
张量是矢量概念的推广,标量是0阶张量,向量是一阶张量,矩阵是二阶张量 ;
向量是矩阵的特殊类型 也就是只有一行或者一列的矩阵 分别称为行矩阵(行向量)和列矩阵(列向量);
矩阵是由m×n个数组成的一个m行n列的矩形表格;
特别地,一个m×1矩阵也称为一个m维列向量;而一个1×n矩阵 ,也称为一个n维行向量;
矩阵用阶数表示,比如2阶方阵;向量通常用维数表示,比如n维向量;
向量圆括号,矩阵方括号;
总之,向量的本质是矩阵, 矩阵包含向量,向量的计算全部参考矩阵计算的运算律 。
例子:
2.矩阵的相关运算
矩阵加法 :两个矩阵满足行数和列数相等时,两个矩阵可以相加。对应元素做操作。
矩阵乘法 :两个矩阵满足第一个矩阵的列数与第二个矩阵的行数相等时,两个矩阵可以相乘。相乘再相加。
矩阵转置:将矩阵的行列互换得到的新矩阵称为转置矩阵,m×n的矩阵转置后为n×m的矩阵。行列互换。
矩阵的秩:矩阵列向量中的极大线性无关组的数目,记作矩阵的列秩,同样可以定义行秩。通常记作rank(),行秩=列秩=矩阵的秩(三秩相等)。
矩阵中的线性无关组:矩阵 , ∈, ∈ 。如果存在不全为零的数 , 使: = 𝒐,其中𝒐是m维的全零向量,那么向量组称为线性相关。反之,如果不存在不全为零的数, 使: = 𝒐,其中𝒐是 m 维的全零向量,那么向量组称为线性无关,即。
下面这个例子中,是线性相关的,可以任意两个向量表示第三个向量。但是这两个向量我们怎么也无法找到两个不全为零的实数,使得=𝒐,所以这两个向量就是线性无关的。在加上这个向量就变成线性相关的了,所以不能再“大了”,所以秩为2。
矩阵中的极大线性无关组:极大线性无关组首先是一个向量组,什么样的向量组呢?一个包含原向量组的向量组。这个向量组的特点是它是原向量组的一部分,原向量组的一个子集。极大线性无关组还要满足两个条件:极大(最多:维持线性无关的状态的最多的向量组的个数,再多一个向量就会构成线性相关);线性无关。总而言之:极大无关组就是原向量组中线性无关的最多的向量组。
矩阵的逆:前提是方阵。相当于矩阵的除法。若矩阵为方阵,当rank()<n 时(该矩阵的秩不是满秩),称为奇异矩阵或不可逆矩阵;若矩阵为方阵,当rank()=n 时,(该矩阵的秩是满秩)称A为非奇异矩阵或可逆矩阵,其逆矩阵满足以下条件,则称为矩阵A的逆矩阵,==,其中是n×n 的单位阵。单位阵就是主对角线元素全部为1,其他部分的元素为0,相当于实数中的1。
矩阵的广义逆矩阵:如果矩阵不为方阵或者矩阵是奇异矩阵,不存在逆矩阵,但是可以计算其广义逆矩阵或者伪逆矩阵。对于矩阵A,如果存在矩阵B使得ABA=A,则称B为A的广义逆矩阵;通过对矩阵A进行奇异值分解,来计算其广义逆矩阵。
相关计算都存在库函数
• MATALB: inv() 和 pinv()函数
• PyTorch: inverse()和pinverse()函数
矩阵的特征值和特征向量:若矩阵A为方阵,存在非零向量和常数λ满足A𝒙 = λ𝒙,则称λ为矩阵A的一个特征值,为矩阵A关于λ的特征向量。的矩阵具有n个特征值,λ1 ≤ λ2 ≤ ⋯ ≤ λ𝑛,其对应的n个特征向量为 ,矩阵的迹tr()和行列式||的值为:
矩阵的迹tr()是特征值之和;行列式||是特征值的积
矩阵的特征值分解:对满秩的矩阵,若矩阵存在n个不同的特征值,那么矩阵A可以分解为,其中是对角矩阵,和是2个正交矩阵。向量的特征值是,向量的特征值是……。即对角矩阵(读作大写的)中,第一个特征值对应的特征向量是,第二个特征值对应的特征向量是。正交矩阵中任意一个向量的二范数是1;任意两个向量的内积是1(同一个向量的内积)或者0(不同的向量的内积),因此=。
矩阵的奇异值分解:对于任意矩阵,存在正交矩阵,,使得其满足 ,,则称上式为矩阵A的特征分解,其中 Σ 为m xn 的对角矩阵。Σ 的对角线的前面的部分是A的奇异值,后面的部分就是0。
注意在求解过程当中,特征值 要从小到大排序,对应排序特征向量和 ,排序好的特征向量 构成矩阵 ,排序好的特征向量 构成矩阵 。
二、概率和统计
1.随机变量
随机变量可以是离散的或者连续的,随机变量通常用概率分布来指定它的每个状态的可能性。
例如:
1. 投掷一枚硬币为正面是离散型随机事件X,发生概率P(X=1)=0.5
2. 每次射箭距离靶心的距离X可以认为连续型随机变量,距离靶心小于1cm的概率P(X<1cm)
2.常见概率分布
伯努利分布:又称0-1分布,伯努利试验:只可能有两种结果的单次随机实验,单个二值型离散随机变量的分布 ,其概率分布:P(X=1)=p, P(X=0)=1-p
二项分布:二项分布即重复n次伯努利试验,各试验之间都相互独立,如果每次试验时,事件发生的概率为p,不发生的概率为1-p,则n次重复独立试验中事件发生k次的概率为
均匀分布:又称矩形分布,在给定长度间隔[a, b]内的分布概率是等可能的,均匀分布由参数a,b定义。
概率密度函数为:
累积概率分布函数为(密度函数积分是分布函数):
高斯分布:又称正态分布,是实数中最常用的分布,由均值μ(决定波峰)和标准差σ(决定走向)决定其分布。标准差的平方就是方差。
概率密度函数为:
累积概率分布函数为(密度函数积分是分布函数):
指数分布:常用来表示独立随机事件发生的时间间隔。指数分布重要特征是无记忆性,例如某元件寿命为X,已知该元件已经使用了x小时,那么它总共至少使用x+s 小时的条件概率,与从开始使用时算起它使用至少s小时的概率相等,即:𝑃(𝑋 > 𝑠 + 𝑥|𝑋 > 𝑥)= 𝑃(𝑋 > 𝑠)
参数为λ的指数分布概率密度函数为:
累积概率分布函数为(密度函数积分是分布函数):
3.多个随机变量概率分布
条件概率:表示事件X在事件Y发生的条件下发生的概率,P ( X | Y )
联合概率:表示两个事件X和Y共同发生的概率, P ( X , Y )
条件概率和联合概率的性质为:
推广到n个事件,条件概率的链式法则为:
先验概率:根据以往经验和分析得到的概率,在事件发生前已知
后验概率:指得到“结果”的信息后重新修正的概率。后验概率是基于新的信息,修正后来的先验概率,获得更接近实际的概率估计
全概率公式:设事件{} 是样本空间Ω的一个划分,且P()>0 (i=1,2,…,n),样本空间划分的定义为:(1) Ω = A1 ∪A2∪… ∪An;(2) Ai ∩Aj = ∅, ∀𝑖,𝑗, 𝑖 ≠ 𝑗,那么:
贝叶斯公式:全概率公式给我们提供了计算后验概率的途径,即贝叶斯公式:
三、信息论模型
1.熵
熵即信息熵,可以看作是样本集合纯度一种指标,也可以认为是样本集合包含的平均信息量。假定当前样本集合X中第 i 类样本所占的比例为 (i=1,2,…,n),则样本集合X 的信息熵定义为:
H(X)的值越小,则X 的纯度越高,蕴含的不确定性越少。
2.联合熵
联合熵就是两个随机变量X和Y的联合分布可以形成联合熵,度量二维随机变量X,Y的不确定性。
3.条件熵
条件熵是在随机变量X发生的前提下,随机变量Y发生带来的熵,定义为Y的条件熵,用H(Y|X)表示,定义为:
条件熵用来衡量在已知随机变量X的条件下,随机变量Y的不确定。
熵、联合熵和条件熵之间的关系如下:𝐻(Y|X) = 𝐻(X, Y)−𝐻(X);互信息:(X;Y) = H(X)+H(Y)-H(X,Y)
纯粉: H(X|Y), 纯蓝: H(Y|X),左边圆圈:H(X),右边圆圈:H(Y),两圆圈相交:(X;Y)
4.相对熵
相对熵又称互熵、交叉熵、KL散度、信息增益。描述两个概率分布P和Q差异的一种方法,记做D(P||Q) 。在信息论中,D(P||Q)表示用概率分布Q来拟合真实分布P时,产生的信息表达的损耗,其中P表示信源的真实分布,Q表示P的近似分布,D表示距离。即:使用基于Q的分布来编码服从P的分布的样本所需的额外的平均比特数。
根据熵的定义有:表示样本P的熵;表示用Q来估计样本P的熵,两种不同方法之间产生的不同的损耗是
四、常用统计量
1.期望
在概率和统计学中,数学期望是试验中每次可能结果的概率乘以其结果的总和,反映随机变量平均值的大小。
2.方差
方差用来衡量随机变量与数学期望之间的偏离程度。统计中的方差则为样本方差,是各个样本数据分别与其平均数之差的平方和的平均数,计算过程为:
即:假定给定N个样本,我们可以这样计算方差:,其中 表示样本均值,表示样本。
3.协方差
协方差是用来衡量两个随机变量X和Y直接的总体误差,计算过程为:
同理我们也可以这样计算协方差:
五、最优化估计方法
1.最小二乘法介绍
最小二乘法又叫做最小平方法,是一种数学优化方法。它通过最小化误差的平方和寻找数据的最佳函数匹配。最小二乘法经常应用于回归问题,可以方便地求得未知参数,当然分类问题中也是可以使用。例如曲线拟合、最小化能量或者最大化熵等问题。下图中直线和曲线都可以拟合数据,但是直观来看,曲线拟合的更好,误差最小。
2.最小二乘法的定义
给定函数f (x;𝛼0,α1 , α2 ,…, αm )及其在N个不同点x1 ,x2 ,…,xn的测量值y1 ,y2 ,…,yn , 即f (x;𝛼0, α1 , α2 ,…, αm )的值,那么确定位置参数集,可以通过使得下式最小获得(n>m时有解)。函数f (x;𝛼0,α1 , α2 ,…, αm ),其中x表示特征或者向量,𝛼0,α1 , α2 ,…, αm表示参数,如果特征有m维,就可能有m个参数,这m个参数确定了那么模型(函数)就确定了。这个时候可以通过最小二乘法求解模型。
损失函数就是代价函数,但是目标函数的范围是大于前两者的。例如最大化损失函数、最小化代价函数都是目标函数的范围。
要想上式有解,首先要满足n>m,n代表样本的个数,一个样本(xi,y)产生一个上面的方程式,所以会有n个方程式;𝛼0,α1 , α2 ,…, αm代表m个未知数,要想方程有解,必须方程的个数大于未知数的个数,方程才可能有解;否则方程有无穷解。
3.最小二乘法的通用形式
将上式写成更加通用的形式如下,其中𝜑𝑗(𝑥𝑗)是一个映射函数,可以适用于线性或者非线性函数。如果 ,那么f 是线性函数;如果 ,那么f 是非线性函数。
对于线性函数,我们可以有:
对于非线性函数,我们可以有:,
对于此两项,这里面原来我们是,非线性里面是,这样我们相当于进行了特征的变换,原来是1次幂,现在是2次幂,以此得到更好的估计。特征变换的解释可以参考:https://www.cnblogs.com/HuZihu/p/10144425.html
此时对应的模型求解的目标函数为:
将n个样本(xi,y)带入目标函数中,可以把目标函数写成:,即最后求2范数的最小,其中是个向量,也是一个向量,向量相减剩下还是向量,向量具有2范数。
其中 ,提取式子所有的特征组成矩阵,m个参数组成矩阵𝛼 ,函数值yi组成矩阵。A中一列是不同的观测样本对应所在维度所具有的特征,一行是一个观测样本对应的不同维度的特征。
上面的一个简单的应用:比如识别图像中的猫和狗,一行代表一个样本(即一张图像),对于列,第一列可以代表常量,第二列可以代表平均颜色值,第三列可以代表垂直梯度等。
4.最小二乘法的求解方法
最小二乘法的求解方法1:(疑问:为什么分为n>=m 和n=m)
注意病态矩阵:如果对数据进行较小的扰动,则得出的结果具有很大波动,这样的矩阵称为病态矩阵。
即使给出nm的方程组,但是由于矩阵A的第一行元素和第二行元素之间成比例倍数的关系,即实际上不满足nm,因为第一行和第二行实际上是相等的。出现上面的原因是400 -201和401 -201这两对数据很接近2倍的关系。
病态矩阵的解决办法就是加入正则化
最小二乘法的求解方法2:求矩阵的逆,有时候复杂度会很高,梯度下降法会更好,即沿着负的梯度的方向更新。是修正的步长,又叫做学习率,学习率对模型的影响是很大的。黑色的箭头表示沿着梯度的方向找到最优值。
初始值会导致梯度下降法得到不同的局部最优解,常用的方法有两个:•随机初始值;•已有网络参数,进行fine-tune。第二种方法更加常用。
学习率影响收敛速度,甚至是否收敛。学习率过大,会使得损失函数不断的震荡,无法收敛;学习率过小,会使得训练的速度太慢。学习率应该是逐渐地调小,而不是一下子取很小的,也就是说接近收敛的时候让变得越来越小。
Part Two.机器学习基础
一、数据集
1.数据集的定义
数据集就是观测样本的集合。具体地, 𝐷={𝑥1 ,𝑥2 ,⋯,𝑥𝑛 }表示一个包含n个样本的数据集,其中, 𝑥𝑖是一个向量,表示数据集的第𝑖个样本,其维度𝑑称为样本空间的维度。向量𝑥𝑖就是一个样本,向量𝑥𝑖中的元素称为样本的特征,其取值可以是连续的,也可以是离散的。从数据集中学出模型的过程,便称为“学习”或“训练”。
2.数据集分类
训练集:用于模型拟合的数据样本
验证集:是模型训练过程中单独留出的样本集,它可以用于调整模型的超参数和用于对模型的能力进行初步评估。例如SVM中参数c和核函数的选择,或者选择网络结构。
测试集: 用来评估最终模型的泛化能力。但不能作为调参、选择特征等算法相关的选择的依据
二、误差分析
1.误差
误差就是算法实际预测输出与样本真实输出之间的差异
• 模型在训练集上的误差称为“训练误差”
• 在新样本上的误差称为“泛化误差”。
由于我们事先并不知道新样本会是什么,手头上只有训练的样本而没有新的样本,所以我们只能尽量最小化训练误差,从而会导致训练误差和泛化误差有可能存在明显差异。导致泛化误差的原因是训练集和新样本集之间有差异。
2.过拟合
过拟合是指模型能很好地拟合训练样本,而无法很好地拟合测试样本的现象,从而导致泛化性能下降
训练误差小,泛化误差大。为防止“过拟合”,可以选择减少参数、降低模型复杂度、正则化等
3.欠拟合
欠拟合是指模型还没有很好地训练出数据的一般规律,模型拟合程度不高的现象,模型不好
训练误差大,泛化误差大。为防止“欠拟合”,可以选择调整参数、增加迭代深度、换用更加复杂的模型等
补充:
训练过程中的误差,就是训练误差
在验证集上进行交叉验证选择参数(调参),最终模型在验证集上的误差就是验证误差
训练完毕、调参完毕的模型,在新的测试集上的误差,就是测试误差
假如所有的数据来自一个整体,模型在这个整体上的误差,就是泛化误差。通常,测试误差的平均值或者期望就是泛化误差
综合来说,它们的大小关系为:训练误差 < 验证误差 < 测试误差 ~= 泛化误差
4.泛化误差分析
假设数据集上需要预测的样本为 Y,特征为X,潜在模型为Y=f (X)+ε,其中ε是噪声,因为样本或多或少会存在一些噪声,ε 服从ε~N(0, ), 估计的模型为。
注意:
的均值是0;,
是样本本身的噪声,可以不考虑
偏差反映了模型在样本上的期望输出与真实标记之间的差距,即模型本身的精准度,反映的是模型本身的拟合能力
方差反映了模型在不同训练数据集下学得的函数的输出与期望输出之间的误差,即模型的稳定性,反应的是模型的波动情况
关于这部分泛化误差分析的详细介绍可以参考我的另一篇博客;
博客地址:https://blog.csdn.net/weixin_40645361/article/details/105014951
5.交叉验证思路
基本思路:将训练集划分为K份,每次采用其中K-1份作为训练集,另外一份作为验证集,在训练集上学得函数后,然后在验证集上计算误差---K折交叉验证
• K折重复多次,每次重复中产生不同的分割
• 留一交叉验证,留出一个样本做测试
三、代表性机器学习方法
1.机器学习分类
有监督学习:代表任务“分类”和“回归”。
无监督学习:代表任务“聚类”和“降维”
2.有监督学习
有监督学习是数据集有标记(答案);数据集通常扩展为(𝑥𝑖 ,𝑦𝑖 ),其中𝑦𝑖∈Y是𝑥𝑖的标记,Y是所有标记的集合,称为“标记空间”或“输出空间”。
有监督学习的任务是训练出一个模型用于预测𝑦的取值,根据𝐷={(𝑥1 ,𝑦1 ),(𝑥2 ,𝑦2 ),⋯, (𝑥𝑛 ,𝑦𝑛 )},训练出函数或者模型𝑓,使得𝑓(𝑥)≅𝑦。≅代表比较好的接近于。
3.无监督学习
数据集没有标记信息(自学)。
聚类:我们可以使用无监督学习来预测各样本之间的关联度,把关联度大的样本划为同一类,关联度小的样本划为不同类,这便是“聚类”
降维:我们也可以使用无监督学习处理数据,把维度较高、计算复杂的数据,转化为维度低、易处理、且蕴含的信息不丢失或较少丢 失的数据,这便是“降维”
4.有监督学习-线性回归
在样本属性和标签中找到一个线性关系的方法。根据训练数据找到一个线性模型,使得模型产生的预测值与样本标签的差距最小。若用表示第𝑘个样本的第𝑖个属性,则线性模型一般形式为:
线性回归学习的对象就是权重向量𝑤和偏置向量𝑏。如果用最小均方误差(即:最小二乘法)来衡量预测值与样本标签的差距,那么线性回归学习的目标函数(损失函数)可以表示为:
5.有监督学习-逻辑回归
利用𝑠𝑖𝑔𝑚𝑜𝑖𝑑函数,将线性回归产生的预测值压缩到0和1之间。此时将𝑦视作样本为正例的可能性,即:
注意,逻辑回归本质上属于分类算法,sigmoid函数的具体表达形式为:
6.有监督学习-SVM
SVM又叫支持向量机,是有监督学习中最具有影响力的方法之一,是基于线性判别函数的一种模型。
SVM基本思想:对于线性可分的数据,能将训练样本划分开的超平面有很多,于是我们寻找“位于两类训练样本正中心的超平面”,即 margin最大化。从直观上看,这种划分对训练样本局部扰动的承受性最好。事实上,这种划分的性能也表现较好
以线性可分为例:二类可分数据集𝐷 = (, 𝑦1 ), (, 𝑦2), ⋯ , (,𝑦𝑛) , 其中y=1和y= -1分别表示两类样本,定义分类的超平面f(x)=,决策边界是=0。“最合适”的分类标准:超平面距离两边数据的间隔最大。
点在决策面上的投影是,是和之间的距离。是超平面的法向量,表示把向量用二范数规范化,最终代表法向量的方向,所以有:
所以,目标函数是:
①
也就是最大化最近点的距离,约束项表示分类正确的点,即对于分类正确的点,最大化最近点的距离。
通常为方便优化,我们选择加强约束条件:
也就是选择 平面上的这些点,以及该平面后面的这些点,我们就是最大化这些距离,因为这些点确定以后①式的分子就是确定的距离,只要分母尽可能的小,那么我们就是最大化这些距离了。这样我们就可以把①式中最大化目标函数的问题转化成最小化参数的问题。即原问题可以近似为:
此时,我们称和平面上的点为支撑向量。
以线性不可分为例:特征空间存在超曲面将正类和负类分开,这个时候我们会用到核函数,使用非线性函数将非线性可分问题从原始的特征空间映射至更高维,以此达到可分的目的。
决策边界的超平面表示为:,定义映射函数的内积为核函数:。对于不同的特征我们选择不同的核函数,常见的核函数有以下几类:
7.有监督学习-决策树
决策树是一种基于树结构进行决策的机器学习方法,在这些树的结构里, 叶子节点给出类标而内部节点代表某个属性 。
例如,银行在面对是否借贷给客户的问题时,通常会进行一系列的决策。银行会首先判断:客户的信贷声誉是否良好?良好的话,再判断客户是否有稳定的工作? 不良好的话,可能直接拒绝,也可能判断客户是否有可抵押物?……这种思考过程便是决策树的生成过程。
下面,我们以一个实例,来介绍决策树中的ID3算法 。
决策树的生成过程中,最重要的因素便是根节点的选择,即选择哪种特征作为决策因素。
ID3算法使用信息增益作为准则
示例中样本集合D中有15个样本,包括9借贷样本,6个不借贷样本,那么样本集合的熵,或者说不确定性是:
另外样本集合D中有属性集合{年龄,有工作,有房子,借贷情况} ,到底应该选择哪个属性节点作为根节点去判断是不是应该借给他呢,那么我们可以分别计算、、和的信息增益。
信息增益表示:得知属性 的信息后而使得样本集合不确定度减少的程度,那么需要计算得知 后样本集合的熵,即条件熵:
例如:A1是年龄属性,那么,和分别是青年、中年和老年。在中对应的label具有不确定性{否否是是否},这个不确定性就是H()
信息增益:原来样本集合的熵-知道第类属性之后,样本集合剩余的熵
以此类推计算其他几个属性的信息增益有:即对于不确定性减少了0.083;对于不确定性减少了0.324;对于不确定性减少了0.420;对于不确定性减少了0.363。
由于特征𝐴3(有房子)的信息增益最大,所以选择𝐴3作为最优特征。𝐴3取值为“是”的情况下,类别都是“是”,意味着均可贷款,无需再细分,为叶结点;将𝐴3取值为“否”的样本提取出,构成子数据集𝐷2,D2={1,2,3,5,6,7,13,14,15}。
进一步地有D2集合的熵是0.918:
由于特征𝐴2(有工作)的信息增益最大,所以选择𝐴2作为最优特征;又因为A2的信息增益是0.918=D2集合的熵0.918,该特征划分的两个样本集合都属于同一个类别,即有工作的给贷款,没有工作的不给贷款。也就是到这里我们就能够完全的判断出银行是不是会给贷款。所以算法结束。
显然,决策树的生成是一个递归过程,有三种情况会导致递归返回:当前结点包含的样本属于同一类别;当前属性集为空,或所有样本在所有属性取值相同;当前结点包含的集合。
最终:
8.有监督学习-随机森林
随机森林采用了集成学习的思想。集成学习就是组合多个弱监督模型以期得到一个更好更全面的强监督模型,集成学习潜在的思想是即便某一个弱分类器得到了错误的预测,其他的弱分类器也可以将错误纠正回来。随机森林算法用随机的方式建立起一棵棵决策树,然后由这些决策树组成一个森林,其中每棵决策树之间没有依赖,即决策树独立而多样。当有一个新的样本输入时,就让每棵树独立的做出判断,按照多数原则决定该样本的分类结果。
随机森林构建的基本步骤:
Step1:随机有放回地从训练集中的抽取m 个训练样本,训练集
Step2:从Dt 对应的特征属性中随机选择部分特征,构建决策树;
Step3:重复上述步骤构建多个决策树
预测步骤:
Step1:向建立好的随机森林中输入一个新样本
Step2:随机森林中的每棵决策树都独立的做出判断
Step3:将得到票数最多的分类结果作为该样本最终的类别
9.无监督学习-聚类
目的:将数据分成多个类别,在同一个类内,对象(实体)之间具有较高的相似性,在不同类内,对象之间具有较大的差异。
对一批没有类别标签的样本集,按照样本之间的相似程度分类,相似的归为一类,不相似的归为其它类。这种分类称为聚类分析,也称为无监督分类
常见方法:K-Means聚类、均值漂移聚类、基于密度的聚类等
以K-means聚类为例介绍聚类。K-means聚类是一个反复迭代的过程,算法分为四个步骤:
– 1) 选取数据空间中的K个对象作为初始中心,每个对象代表一个聚类中心;
– 2) 对于样本中的数据对象,根据它们与这些聚类中心的欧氏距离,按距离最近的准则将它们分到距离它们最近的聚类中心(最相似所对应的类;
– 3) 更新聚类中心:将每个类别中所有对象所对应的均值作为该类别的聚类中心,计算目标函数的值;
– 4) 判断聚类中心和目标函数的值是否发生改变,若不变,则输出结过,若改变,则返回2)
10.无监督学习-降维
降维的目的:将原始样本数据的维度𝑑降低到一个更小的数𝑚,且尽量使得样本蕴含信息量损失最小,或还原数据时产生的误差最小。
降维的优势:数据在低维下更容易处理、更容易使用;相关特征,特别是重要特征更能在数据中明确的显示出来;如果只有二维或者三维的话,能够进行可视化展示;去除数据噪声,降低算法开销等。
以主成分分析法为例介绍降维:
Part Three.神经元模型
一、M-P模型
1.M-P模型的介绍
在M-P模型中,神经元接受其他n个神经元的输入信号(0或1),这些输入信号经过权重加权并求和,将求和结果与阈值θ 比较,然后经过激活函数处理,得到神经元的输出。
2.M-P模型的多种逻辑运算
取反运算可以用单输入单输出模型表示,即如果输入为0则输出1,如果输入为1则输出0。由M-P模型的运算规则可得𝑤=-2,θ =-1。
1x(-2)-(-1)=-1;0x(-2)-(-1)=+1
逻辑或与逻辑与运算可以用双输入单输出模型表示。
以逻辑与运算为例, 𝑤1=1,𝑤2=1, θ =1.5。x1=1,x2=1有(1x1+1x1)-1.5=0.5,f(0.5)=1。
以逻辑与运算为例, 𝑤1=1,𝑤2=1, θ =1.5。x1=0,x2=1有(0x1+1x1)-1.5=-0.5,f(-0.5)=0
当时还没有通过对训练样本进行训练来确定参数的方法,上述参数只能人为事先计算后确定。
Part Four.感知器及多层感知器
一、感知器与M-P之间的关系
感知器可以构建多层的M-P。与 M-P 模型需要人为确定参数不同,感知器能够通过训练自动确定参数。训练方式为有监督学习,即需要设定训练样本和期望输出,然后调整实际输出和期望输出之差的方式(误差修正学习)。
那么既然采用了有监督学习的方式来训练确定参数,那我们就需要有标定好的训练集,也就是设定好训练样本,以及训练样本对应的输出。然后呢,根据感知器实际的输出以及我们期望的输出,就是这些训练样本上期望的输出,它们之间的误差,来修正感知器的权重。以及感知器中的每一个神经元的阈值。那在这里呢,它是采用的这种误差修正学习的方式,参数和阈值修正的一个表达式如下图。其中是学习率然后。r代表的是训练样本的期望输出,y是这个感知器实际的输出。就是这个神经元对应的输入。(r-y)就是误差
感知器权重调整的基本思路:实际输出 y 与期望输出 r 相等时, w 和 θ 不变 ,因为满足要求了;实际输出 y 与期望输出 r 不相等时,调整 w 和 θ 的值,以此降低输出的误差。感知器是以神经元为基础的,神经元的输入和输出是0和1,所以感知器的输入和输出也是0和1。所以有2种情况讨论:
期望输出r=1是期望被激活的,但实际输出y=0是实际未被激活的;
期望输出r=0是期望未被激活的,但实际输出y=1是期望被激活的;
减小阈值神经元才有可能会被激活;增大有可能会被激活;=1的连接权重不变。
感知器训练过程:
二、多层感知器
单层感知器只能解决线性可分问题,而不能解决线性不可分问题;为了解决线性不可分问题,我们需要使用多层感知器。
多层感知器指的是由多层结构的感知器递阶组成的输入值向前传播的网络,也被称为前馈网络或正向传播网络。
以三层结构的多层感知器为例,它由输入层、中间层及输出层组成。与M-P 模型相同,中间层的感知器通过权重与输入层的各单元相连接,通过阈值函数计算中间层各单元的输出值;中间层与输出层之间同样是通过权重相连接。
Part Five.BP算法
多层感知器权重调节的方式就是BP算法。多层感知器的训练使用误差反向传播算法,即BP算法。
一、多层感知器的训练基本过程
基本过程:
(1)• 前向传播计算:由输入层经过隐含层向输出层的计算网络输出
(2)• 误差反向逐层传递:网络的期望输出与实际输出之差的误差信号由输出层经过隐含层逐层向输入层传递
(3)• 由“前向传播计算” 与“误差反向逐层传递”的反复进行的网络训练过程
二、BP算法
1.BP算法概述
BP算法就是通过比较实际输出和期望输出得到误差信号,把误差信号从输出层逐层向前传播得到各层的误差信号,再通过调整各层的连接权重以减小误差。权重的调整主要使用梯度下降法。如何调整权重,调整多大?沿着什么方向调整?
是学习率,会控制每次调整的步长的大小。
BP算法中激活函数:通过误差反向传播算法调整多层感知器的连接权重时,一个瓶颈问题就是激活函数
• M-P 模型中使用阶跃函数作为激活函数,只能输出 0或 1,不连续所以不可导。
• 为了使误差能够传播,我们要使用可导函数sigmoid作为激活函数
Sigmoid函数的导数:
其他常用的激活函数:ReLU (Rectified Linear Unit,修正线性单元)和tanh等。
2.BP算法示例
以包含一个中间层和一个输出单元的多层感知器为例:会有两组权重,分别是:
第一组权重: 表示输入层与中间层之间的连接权重;1表示第一组的权重,i表示输入层的序号,j表示中间层的序号。
第二组权重: 表示中间层与输出层之间的连接权重;2表示第二组的权重,j表示中间层的序号,1表示输出层的序号。
表示输入层单元,表示中间层单元。
第一步:首先调整中间层与输出层之间的连接权重。其中y=f (u ), f是激活函数:
根据以上:把误差函数对连接权重的求导展开成复合函数求导:
这里,表示的是中间层的值,误差函数是模型的期望输出与实际输出之间的差的平方:。最小化误差,用梯度下降法,也就是误差相对于权重的导数,梯度的负的方向就是调整权重的方向。误差函数的导数中,常数项-2可以忽,因为后面我们调整权重的时候,还有一个学习率,也是一个常数。
第二步:中间层到输出层的连接权重调整值。权重的调整就是倍的负的误差函数对连接权重的导数,
即权重的调整是负的梯度的方向:
中间层到输出层网络连接权重的调整过程就是:
第三步:调整输入层与中间层之间的连接权重。输入层与中间层之间的连接权重调整值是根据输出层的误差函数确定的,求导公式如下所示,先放着不计算,中间差几步。
其中由中间层的值 和连接权重计算得到,中间层与输出层单元之间的激活值对中间层的值求导,结果只和连接权重相关。
中间层的值对连接权重求导:
和y一样,也是sigmoid函数,对求导,得到下式:
输入层与中间层单元之间的激活值对中间层与输入层之间的连接权重求导,结果只和𝑥𝑖相关:
综上,输入层与中间层之间的链接权重调整值如下:
最后以图示的方式总结BP算法:
中间层到输出层:
输入层到中间层:
Part Six.中英文术语对照
❑ 标量:Scalar
❑ 向量:Vector
❑ 张量:Tensor
❑ 期望:Expectation
❑ 方差:Variance
❑ 熵:Entropy
❑ 过拟合:Overfitting
❑ 欠拟合:Underfitting
❑ 监督学习:Supervised learning
❑ 无监督学习:Unsupervised learning
❑ 数据集:Data set
❑ 训练集:Training set
❑ 验证集:Validation set
❑ 测试集:Testing set
❑ 泛化:Generalization
❑ 线性回归:Linear Regression
❑ 支持向量机:Support Vector Machine
❑ 决策树:Decision Tree
❑ 随机森林: Random Forest
❑ 感知器:Perceptron
❑ 反向传播算法: (error) Back Propagation, BP
❑ 梯度下降:Gradient Descent
❑ 修正线性单元:Rectified Linear Unit, ReLU