(此文纯记录自己的学习进度。)
机器学习sklearn——线性回归1
一、线性回归
机器学习包含监督学习、非监督学习、以及强化学习三大部分。监督学习又分为分类和回归两大类。线性回归模型就属于监督学习里的回归模型。
1. 定义
线性回归模型
通过属性的线性组合进行预测的函数,即
f(x)=w1.x1+w2.x2+w3.x3+…+wn.xn+b
向量形式为:f(x)=wT∗x+b
其中 w=(w1,w2,w3,…,wn)
令x0=1,w0=bx0=1,w0=b,则
f(x)=wT∗x
其中 w=(w0,w1,w2,w3,…,wn)
2.线性模型的图示
3.损失函数
3.1损失函数定义
作为目标函数进行优化,使其函数值最小化。在线性模型中,损失函数为:
3.2 损失函数的图像
损失函数为一个凸函数
3.2最小化损失函数
我们模型的优化目标为最小化损失函数。要最小化损失函数,需要沿下降速度最快的方向走,使目标函数最小化。
损失函数拓展
机器学习中的损失函数
1. 损失函数
损失函数(Loss function)是用来估量你模型的预测值 f(x)f(x) 与真实值 YY 的不一致程度,它是一个非负实值函数,通常用 L(Y,f(x))L(Y,f(x)) 来表示。损失函数越小,模型的鲁棒性(“抗变换性”/“相对稳定性”)就越好。损失函数是经验风险函数的核心部分,也是结构风险函数的重要组成部分。模型的风险结构包括了风险项和正则项,通常如下所示:
其中,前面的均值函数表示的是经验风险函数,L代表的是损失函数,后面的 Φ 是正则化项(regularizer)或者叫惩罚项(penalty term),它可以是L1,也可以是L2,或者其他的正则函数。整个式子表示的意思是找到使目标函数最小时的θ值。
2. 常用损失函数
常见的损失误差有五种:
- 铰链损失(Hinge Loss):主要用于支持向量机(SVM) 中;
SVM参考资料:[ https://baike.baidu.com/item/支持向量机/9683835?fromtitle=SVM&fromid=4385807&fr=aladdin ] - 互熵损失 (Cross Entropy Loss,Softmax Loss ):用于Logistic 回归与Softmax 分类中;
- 平方损失(Square Loss):主要是最小二乘法(OLS)中;
最小二乘法参考资料:[ https://baike.baidu.com/item/最小二乘法/2522346?fr=aladdin ] - 指数损失(Exponential Loss) :主要用于Adaboost 集成学习算法中;
- 其他损失(如0-1损失,绝对值损失)
2.1 Hinge loss
Hinge loss 的叫法来源于其损失函数的图形,为一个折线,通用的函数表达式为:
L(mi)=max(0,1−mi(w))
表示如果被正确分类,损失是0,否则损失就是 1−mi(w)1−mi(w) 。
在机器学习中,Hing 可以用来解 间距最大化 的问题,最有代表性的就是SVM 问题,最初的SVM 优化函数如下:
将约束项进行变形,则为:
ζi≥1−yiwTxi
则损失函数可以进一步写为:
因此, SVM 的损失函数可以看作是 L2-norm 和 Hinge loss 之和。
2.2 Softmax Loss
有些人可能觉得逻辑回归的损失函数就是平方损失,其实并不是。平方损失函数可以通过线性回归在假设样本是高斯分布的条件下推导得到,而逻辑回归得到的并不是平方损失。在逻辑回归的推导中,它假设样本服从伯努利分布(0-1分布),然后求得满足该分布的似然函数,接着取对数求极值等等。而逻辑回归并没有求似然函数的极值,而是把极大化当做是一种思想,进而推导出它的经验风险函数为:最小化负的似然函数(即maxF(y,f(x))→min−F(y,f(x)))maxF(y,f(x))→min−F(y,f(x)))。从损失函数的视角来看,它就成了Softmax 损失函数了。
log损失函数的标准形式:
L(Y,P(Y|X))=−logP(Y|X)
刚刚说到,取对数是为了方便计算极大似然估计,因为在MLE中,直接求导比较困难,所以通常都是先取对数再求导找极值点。损失函数L(Y,P(Y|X))L(Y,P(Y|X)) 表达的是样本XX 在分类Y的情况下,使概率P(Y|X)P(Y|X) 达到最大值(换言之,就是利用已知的样本分布,找到最有可能(即最大概率)导致这种分布的参数值;或者说什么样的参数才能使我们观测到目前这组数据的概率最大)。因为log函数是单调递增的,所以logP(Y|X)logP(Y|X) 也会达到最大值,因此在前面加上负号之后,最大化P(Y|X)P(Y|X) 就等价于最小化LL 了。
逻辑回归的P(Y=y|x)P(Y=y|x) 表达式如下(为了将类别标签y统一为1和0):
其中 :
2.3 Squared Loss
最小二乘法是线性回归的一种,OLS将问题转化成了一个凸优化问题。在线性回归中,它假设样本和噪声都服从高斯分布(中心极限定理),最后通过极大似然估计(MLE)可以推导出最小二乘式子。最小二乘的基本原则是:最优拟合直线应该是使各点到回归直线的距离和最小的直线,即平方和最小。
平方损失(Square loss)的标准形式如下:
当样本个数为n时,此时的损失函数为:
Y−f(X)Y−f(X) 表示残差,整个式子表示的是残差平方和 ,我们的目标就是最小化这个目标函数值,即最小化残差的平方和。
在实际应用中,我们使用均方差(MSE)作为一项衡量指标,公式如下:
2.4 Exponentially Loss
损失函数的标准形式是:
exp-loss,主要应用于 Boosting 算法中,在Adaboost 算法中,经过 mm 次迭代后,可以得到 fm(x):
Adaboost 每次迭代时的目的都是找到最小化下列式子的参数αα 和GG:
易知,Adabooost 的目标式子就是指数损失,在给定nn个样本的情况下,Adaboost 的损失函数为:
2.5 其他损失
0-1 损失函数
绝对值损失函数
3. Hinge loss 与 Softmax loss
SVM和Softmax分类器是最常用的两个分类器。
1.SVM将输出 f(xi,W)作为每个分类的评分(没有规定的标准,难以直接解释);
2.与SVM 不同,Softmax 分类器可以理解为逻辑回归分类器面对多个分类的一般话归纳,其输出(归一化的分类概率)更加直观,且可以从概率上解释。
在Softmax分类器中, 函数映射f(xi,W)f(xi,W) 保持不变,但将这些评分值看做每个分类未归一化的对数概率,且将折叶损失替换为交叉熵损失(cross-entropy loss),公式如下:
或等价的
fj 表示分类评分向量f 中的第i 个元素,和SVM一样,整个数据集的损失值是数据集中所有样本数据的损失值Li的均值和正则化损失之和。
概率论解释:
解释为给定数据xi , W 参数,分配给正确分类标签yi 的归一化概率。
参考资料:[ https://blog.csdn.net/u010976453/article/details/78488279 ]
4.梯度下降算法(GD)
目标函数下降最快的方向为梯度的负方向。因此梯度下降算法为沿梯度的负方向逐步的使目标函数值最小化的过程。
对应的数学表达式为:
2.梯度下降算法的伪代码描述:
参考资料:[ https://www.cnblogs.com/GuoJiaSheng/p/3928160.html ]
参考资料:[ https://blog.csdn.net/sinat_20623345/article/details/78879379 ]