实用机器学习笔记十二:线性模型
前言:
本文是个人在 B 站自学李沐老师的实用机器学习课程【斯坦福 2021 秋季中文同步】的学习笔记,感觉沐神讲解的非常棒 yyds。
线性回归例子:
还是以房价预测这个例子来说:
假设三个特征对房价影响比较大。=#beds(房间个数),=#baths(卫生间个数),=#living sqft(居住面积)
预测的价格
权重和偏置将会从训练数据中学习
通常情况下,已知数据,线性回归模型预测出值。都是可以学习的参数。
目标函数:
假设收集了 n 组的训练数据,x 代表样本,其实一个 p 维的向量,则 X 为 p*n 的矩阵。
目标函数就是最小化均方误差(MSE)。误差:真实值- 模型的预测值。
线性分类例子:
回归问题的输出是在一个连续范围内的实数,而分类问题的输出是一个样本的类别、类型。通常是多分类问题,也就是说数据集中有多个类别的物体。一个样本可能属于这多个类别中的任何一个类别。
多分类问题:
如果是多分类问题,输出不再是一个元素,可以是一个向量的输出。比如有 m 个类别,那么输出就是一个 m 维的向量。向量中第 i 个元素就代表这个样本属于第 i 类类别的概率或者是置信度。这个值越大,就代表这个样本越属于这一类。
为每一个类别学习一个线性模型,表示类别要学习的参数.
标号(标签)是一个 one-hot 编码的向量。如果,则,否则等于 0.
最小化 MSE 损失:
预测标号
softmax regression:
上面的 MSE 误差例子中,模型输出的是一个实数(负无穷到正无穷都有可能)。而且对于每一个样本,都会计算每一类类别对应的,尽管这个样本不属于这个类别。也就是说模型要学习的东西太多了,关注的太多了,实际上真正属于这个类别的的值够大够强就行了。
解决办法:让模型把正确分类的事情干好就行了,其他的不关心。把输出变为概率(每一个值大于等于 0,并且每一类加起来等于 1)。
这里虽然进行了线性变换,但仍然是一个线性模型。决定分类的类别根据:
交叉熵损失(cross-entropy):
前面我们提到,真实标签是一个 one-hot 编码,只有一个位置为 1,其他位置为 0(推导下面公式用到),实际上也是一个概率。可以使用交叉熵来衡量两个分布之间的差距。
上面这个式子就表示最终的结果只关心在正确类别上的概率是多少,其他不关心。
版权声明: 本文为 InfoQ 作者【打工人!】的原创文章。
原文链接:【http://xie.infoq.cn/article/d543865af854129654000837e】。文章转载请联系作者。
评论