以下是对目前学习到的机器学习进行整体复盘总结
文章目录
前言
以下是我看完李宏毅23年前9节机器学习视频的总结,以及更正自己的错误认知
一、有监督与无监督
有监督学习是给出的训练数据有正确的输入以及正确的输出
相反无监督学习是只有输入而无输出的
这几节课主要讲了有监督的学习
二、生成模型(Generative)和判别模型(Discriminative)
- 在课程中老师举了两个例子
1)根据宝可梦的一个特征(feature)来预测进化后的的宝可梦的这个特征值
第一个例子老师用的是先验概率的方式,即根据现有的数据我们预测一个函数,这里老师首先采用了一个线性的函数 y ^ = w 1 x + b \hat{y} =w_{1}x + b y^=w1x+b
根据已有的数据预测w1和b的值,采用的均方差公式
∑ ( y ^ n − ( b + w x n ) ) 2 \sum (\hat{y} ^{n} -(b + wx^{n} )) ^{2} ∑(y^n−(b+wxn))2来计算误差,并用梯度下降的方式更正参数从而减小误差
这个是用判别模型
2.根据给出一个宝可梦预测其属于哪个分类,分类有两个,分别是水类和普通类,这是一个二分类问题。即给出一个x来预测是来自class1,还是class2
第二个例子老师用的是后验概率的方式,并采用贝叶斯的方式来预测属于哪个问题。即若P(c1|x)>0.5,则x属于class1,否则属于class2.
p ( c 1 / x ) = p ( x / c 1 ) p ( c 1 ) p ( x / c 1 ) p ( c 1 ) + p ( x / c 2 ) p ( c 2 ) p(c1/x)=\cfrac{p(x/c1)p(c1)}{p(x/c1)p(c1)+p(x/c2)p(c2)} p(c1/x)=p(x/c1)p(c1)+p(x/c2)p(c2)p(x/c1)p(c1)
其中p(c1)和p(c2)很好计算,直接加权平均即可。对于分母我们采用生成模型来计算。这里老师采用了两个feature来计算p(x/c1),假设的模型是高斯分布(这里两个feature,其实就是二维正态分布,假设独立同分布)。老师用了79个数据,来估计期望和协方差矩阵。用最大似然估计的方法来估计出最合适的期望和协方差矩阵。这样就顺利解决出p(x/c1)和p(x/c2)了。
总结:判别式模型认为数据就可以代表原始分布,因此直接拟合参数。而生成模型认为采样过程式是不稳定的,也就是直接估计的参数和目标估计的参数是有误差的,因此生成式模型是直接估计分布参数。
通常情况下,采用判别式比较好。
三、Logistic Regression
1.sigmod函数和softmax函数
sigmod函数是关于二分类的问题,在课上老师讲的是大于0.5为分界线。这里我们直接把他当作0和1,也就是如果被激活,就是1,否则为0.
softmax函数是解决多分类的问题,通常输出所有的概率相加为1,判断输出的概率哪个分类大,则对应某个分类。
2.Liner Regression VS Logistic Regression
这两个的损失函数都可以用一个表达式表达(关于线性回归是第一个例子,逻辑回归是指不同的x共用同一个协方差矩阵)即:
f
w
,
b
(
x
)
=
(
∑
i
w
i
x
i
+
b
)
f_{w,b} (x)=(\sum_{i}^{}w_{i} x_{i} +b )
fw,b(x)=(i∑wixi+b)
但是逻辑回归是用伯努利交叉熵计算出来的,而线性回归是用均方差直接从数据计算出来的。逻辑回归一般不能用均方差来计算损失函数,原因:
1.在0和1的边界状态会出错
2.如果随机值在边界处,用梯度下降方法优化,可能很难得到正确结果,因为均方差会导致离最佳值较远的地方过于平坦。
拓展
当然如果只有输入层和输出层,可能会有解决不了的问题如:
这个时候,我们可以多添加几层,来转换成合适的函数。越来越像深度学习了。
四、问题整理
1.回归跟分类
按照我们对分类和回归的理解,回归应该对应连续情况,而分类应该对应离散情况,那为什么还有奇怪的逻辑回归,到底是分类还是回归?
查过资料发现:分类是基于回归的,因为分类的结果可以是线性或非线性的边界值,而回归则是寻找拟合函数。
chatGPT回复:逻辑回归虽然名为"回归",但它实际上是一种分类算法,而不是回归算法。虽然名称上有"回归"二字,但逻辑回归通常用于处理二分类问题(有时也可以用于多分类问题)。逻辑回归的主要目标是对数据进行分类,预测出样本属于某个类别的概率,而不是直接预测连续数值。
逻辑回归的工作原理是将线性函数与逻辑函数(或称为Sigmoid函数)结合起来,通过对输入的特征进行线性加权求和,然后通过逻辑函数将结果转换为0到1之间的概率值。这样就可以将其视为一个概率模型,进而进行分类任务。
因此,尽管逻辑回归的名称可能会让人产生误解,但它实际上是一种用于解决分类问题的算法,而不是回归问题。
2.优化算法对应什么情况?注意些什么?
学到现在总共出现两种优化算法
1.梯度下降:这里我们要保证可微,如第一个问题损失函数是一个均方差,是可微的,所以我们可以用其计算。但是第二个函数的损失函数不可微,我们会采用其他方法。
2.将问题转换为求最大似然函数,以估计出最优解。按照目前已学知识适用于分类,当然在概率中不同的对象应该保证独立同分布
3.在老师上课讲的第一个问题,一个参数的情况下,使用梯度下降是局部最优还是全局最优?两个参数呢?
都是全局最优的,因为一个参数的情况下,均方差求微分只有一个最小值,可以用数学二次函数的图像来思考极值点。两个参数的情况下也是全局最优的。
五、课中遇到的数学问题
1.协方差矩阵:
是实对称矩阵,可以用正交变换相似对角化,且对角线是方差,每个元素是彼此协方差如, Σ = [ x 1 y 1 x 2 y 2 ] \Sigma =\begin{bmatrix} x1& y1\\x2 &y2 \end{bmatrix} Σ=[x1x2y1y2]则 a x 1 , y 1 = C O V ( x 1 , y 1 ) a_{x1,y1} =COV(x1,y1) ax1,y1=COV(x1,y1)
2.多维高斯概率分布函数
其实就是我们说的正态分布,学这个目的主要是我们需要在有很多的feature的情况下,把问题抽象成多维空间,虽然我们人类不好想出来,但是用机器可以帮我们处理。
f
μ
,
Σ
(
x
)
=
1
(
2
Π
)
D
2
1
∣
Σ
∣
1
2
e
x
p
{
−
1
2
(
x
−
μ
)
T
Σ
−
1
(
x
−
μ
)
}
f_{\mu ,\Sigma } (x)=\cfrac{1}{(2\Pi)^{\frac{D}{2} } } \cfrac{1}{|\Sigma |^{\frac{1}{2} } } exp\left \{ -\frac{1}{2} (x-\mu )^{T} \Sigma^{-1} (x-\mu ) \right \}
fμ,Σ(x)=(2Π)2D1∣Σ∣211exp{−21(x−μ)TΣ−1(x−μ)}
3.矩阵求导
对Ax求导为A
x
T
A
x
x^{T} Ax
xTAx对其求导为2A
还需后续学习