机器学习基础知识

password
icon
AI summary
type
status
date
slug
summary
tags
category
Property
Nov 22, 2024 02:43 AM
 

一、损失函数

损失函数用来评价模型的预测值真实值不一样的程度,损失函数越好,通常模型的性能越好。不同的模型用的损失函数一般也不一样。训练集的平均损失称作经验风险损失,验风险损失加上正则项后,就是结构风险损失,此时的函数就是目标函数
常用的损失函数如下:

1.1、0-1损失

0-1损失是指预测值和目标值不相等为1, 否则为0:
0-1损失函数直接对应分类判断错误的个数,但是它是一个非凸函数,不太适用.

1.2、绝对值损失(L1损失)

绝对值损失函数是计算预测值与目标值的差的绝对值:

1.3、平方损失(L2损失)

也叫均方误差:
经常应用与回归问题

1.4、log对数损失

特点:
1、log对数损失函数能非常好的表征概率分布,在很多场景尤其是多分类,如果需要知道结果属于每个类别的置信度,那它非常适合。
2、健壮性不强,相比于hinge loss对噪声更敏感。
3、逻辑回归的损失函数就是log对数损失函数。

1.5、合页损失(hinge loss)

下标“+”表示取正值的函数,我们用z表示括号中的函数:
也就是说,数据点如果被正确分类,损失就为0,如果分类错误,损失为z,
SVM函数的损失函数就是hinge损失函数加上正则化项:

1.6、交叉熵损失

以二分类的栗子为例:
我们希望的是概率 P(y|x) 越大越好。首先,我们对 P(y|x) 引入 log 函数,因为 log 运算并不会影响函数本身的单调性。则有:

二、正则化项

以均方误差MSE为例,在我们用经验风险损失函数去求解模型的参数的过程中,我们会要求均方误差越小越好,但是一味的追求均方误差最小化,会导致模型出现过拟合现象:对训练样本预测效果很好,对测试样本的预测效果会很差。
解决过拟合现象的方法之一就是在我们的目标函数中加入正则化项~
  • 这个正则化项是怎么来的呢?
  • 为什么正则化项能够在一定程度上防止过拟合?

2.1、公式层面的理解

首先,我们的经验风险损失函数是:
我们要求这个损失函数的最小值,此时,系数w在对应的解空间内没有受到约束。要使模型不会过拟合,那模型就不能太复杂,要是模型不会太复杂,那么就要对系数w进行一定的约束。so
缩写s. t表示“Subject to”,是“服从某某条件”的意思,m表示样本的特征数,Z是约束常数。
此时,我们得到了一个不等式约束的最优化问题。并且以上不等式约束满足KKT条件,那么我们就可以构造一个拉格朗日函数:
公式中的z在求导之后就消除了,不影响w,b,λ 的求解

2.2、图形层面的理解

假设一个样本X,特征维度是二,那么损失函数为
对系数w进行一定的约束
此时图形如下:
notion image
左图是L2正则,右图是L1正则。
  • 解析:
    • 此时w1和w2构成一个二维坐标的点
    • 蓝色的点表示没有加正则项的损失函数的“最优”系数,蓝色的圆圈代表等值线,在同一个圆圈上的点算出来的均方误差是相同的。
    • 暗黄色的图形表示我们规定的系数范围,系数w智能从这里面取值
    • 整体的意思就是,在保证w落在暗黄色区域内的前提下,求出一个使得损失函数最小化的系数w 。也就是等值线和暗黄色区域相切的点,就是我们要找的最优点
    • 在L1正则中,等值线与图形的顶点相交的可能性更大,这个时候w1=0,相当于系数就减少了;扩展到更高维也是同样的道理。
      • notion image

三、优化算法

优化算法的功能,是通过改善训练方式,来最小化(或最大化)损失函数E(x)。
在深度学习领域,优化算法的选择也是一个模型的重中之重。即使在数据集和模型架构完全相同的情况下,采用不同的优化算法,也很可能导致截然不同的训练效果。

3.1、梯度下降(Gradient Descent)

  • 传统的批量梯度下降缺点
    • 计算整个数据集梯度,但只会进行一次更新,因此在处理大型数据集时速度很慢且难以控制,甚至导致内存溢出。
    • 在训练大型数据集时存在冗余的权重更新。

(1)、随机梯度下降(SGD)

notion image
待更新~
优化算法对比:
notion image
notion image
推荐阅读:

四、向量和矩阵

4.1、向量

向量是由n个实数组成的一个n行1列(n✖️1)或一个1行n列(1✖️n)的有序数组;
一个行向量乘以一个列向量称作向量的内积,又叫作点积,结果是一个数;
一个列向量乘以一个行向量称作向量的外积,外积是一种特殊的克罗内克积,结果是一个矩阵。

4.1.1、点乘

向量的点乘,也叫向量的内积、数量积,对两个向量执行点乘运算,就是对这两个向量对应位一一相乘之后求和的操作,点乘的结果是一个标量。要求一维向量a和向量b的行列数相同。
点乘几何意义:点乘的几何意义是可以用来表征或计算两个向量之间的夹角,以及在b向量在a向量方向上的投影
a·b>0 方向基本相同,夹角在0°到90°之间
a·b=0 正交,相互垂直
a·b<0 方向基本相反,夹角在90°到180°之间

4.1.2、叉乘

两个向量的叉乘,又叫向量积、外积、叉积,叉乘的运算结果是一个向量而不是一个标量。并且两个向量的叉积与这两个向量组成的坐标平面垂直。
对于向量a和向量b:
notion image
叉乘几何意义:在三维几何中,向量a和向量b的叉乘结果是一个向量,更为熟知的叫法是法向量,该向量垂直于a和b向量构成的平面。

4.2、矩阵

4.2.1、矩阵乘法

我觉得矩阵本身就可以看作是n维向量的有序集合,从这个角度来看,矩阵与矩阵的乘法就变成了矩阵与一堆向量的乘法,举个例子,可以这样看:C=AB这个矩阵乘法,如果把B这个矩阵看作是向量有序集合,那就是用矩阵A对B集合里面的列向量分别进行映射(或者说变换),得到的新矩阵C的列向量刚好等于B矩阵列向量分别经过A矩阵映射后得到的向量;如果把A看作是向量有序集合,右乘B矩阵就相当于用B矩阵对A矩阵中的各行向量进行映射(或者叫变换),得到的新矩阵C的行向量刚好等于A矩阵行向量分别经过B矩阵映射后得到的行向量,这个证明很直观,直接看矩阵乘法公式就一目了然了。最后得到的C每一列对应着右边那个矩阵B里的各列向量看,你会发现,正好是B里面那些列向量乘上A矩阵得到的结果;同理,右乘B也是一样的,只不过变成了行向量的映射罢了。
在numpy中对应的方法为np.dot()
notion image
notion image

4.2.2、矩阵内积

两个相乘的矩阵维度一致,逐元素相乘,也叫哈达玛积(hadamard product)
notion image

4.2.3、矩阵外积(叉乘)

外积是一种特殊的克罗内克积(Kronecker product),克罗内克积是两个任意大小的矩阵间的运算,结果是一个矩阵
notion image
notion image
有争议,待验证:
如果想对一个矩阵进行行变换,可以左乘一个矩阵;相应的如果想对矩阵进行列变换,可以右乘一个矩阵。这种思想被应用到高斯消元的过程中。

4.3、矩阵分解

特征值
特征向量
特征分解
奇异矩阵分解
协方差矩阵
notion image

1、最大似然估计

抛100次硬币,正面朝上的概率 抛100次硬币,第几次正面朝上的概率
公务员考试的考试次数与通过人数(共100人)
考试次数(X)
1
2
3
4
>4
通过人数
35
25
15
15
10
  • 设:
    • 考试次数为:X
    • 通过考试的概率为:p
则考试三次通过的概率:
现在我们我们给出观测样本,要求概率p

(1)、方法一:大数定律

只看第一次考试,100人中,有35人通过;所以
大数定律只考虑了一部分人,会低估考试通过的概率

(2)、方法二:矩估计

根据公式 求概率p。【E(x) 表示样本的期望(平均值),这里简单理解成每个人平均的考试次数(只算了次数小于四次的)】
 
据估计没有考虑到考试未通过的人群,会高估考试通过的概率
 

(3)、方法三:最大似然估计

极大似然估计,通俗理解来说,就是利用已知的样本结果信息,反推最具有可能(最大概率)导致这些样本结果出现的模型参数值!
对于离散型变量,最大似然函数等于概率:
则单独一个样本在第n次通过的概率:
求一个概率p使得 L(p) 最大
解法①:求导,令倒数等于0,
解法②:两边同时取对数,在求导,令倒数等于0
最终 p=0.39(最合理)
推荐阅读:

2、距离公式

对于距离的度量,我们有很多的距离度量方式:
欧式距离、L2距离:(Euclidean Distance)
曼哈顿距离、L1距离、城市街区距离:(Manhattan Distance)
切比雪夫距离:(Minkowski Distance)
闵可夫斯基距离:
闵氏距离不是一种距离, 而是一组距离的定义, 是对多个距离度量公式的概括性的表述。
当p=1时, 就是曼哈顿距离;
当p=2时, 就是欧氏距离;
当p→∞时, 就是切比雪夫距离。

3、相似度计算

 
上一篇
科研名词解释
下一篇
算法学习记录
Loading...