逻辑回归二分类&多分类原理
这一部分主要介绍逻辑回归的分类原理,即逻辑回归怎么实现二分类,接着怎么升维推广到多分类任务上。要了解逻辑回归我认为首先可以先简单了解下线性回归,在线性回归的基础上加一个sigmoid函数,概率的概念被提出来之后就得到了基本的逻辑回归二分类,然后将标签从0/1升维到one-hot向量就变成了多分类逻辑回归任务,所以咱们从线性回归讲起。
一、线性回归的一个简单概述
1.线性回归到底要做一件什么事情呢?
首先我们会拿到一群数据 X n ∗ m X_{n*m} Xn∗m及其对应的分类标签 Y n ∗ 1 Y_{n*1} Yn∗1,这群数据中一共有 n n n个样本,每个样本有 m m m个特征,现在我们需要有这样的一个 w 1 ∗ m w_{1*m} w1∗m和一个偏置项 b b b,使得对数据集中的任意一个样本 x i x_{i} xi,计算 y ^ = w T ∗ x i \hat{y}=w^{T}*x_{i} y^=wT∗xi得到的结果尽可能地与实际分类结果 y i y_{i} yi接近。这样再给我一个新的样本 x x x时,其对应的分类结果就是 y = w T ∗ x + b y=w^{T}*x+b y=wT∗x+b,于是咱们就是一个怎么求 w w w和 b b b的问题了,对吧,所以咱们接下来就浅浅地求一下吧。
2.具体推导过程
希望 y ^ = w T ∗ x + b \hat{y}=w^{T}*x+b y^=wT∗x+b,把偏置项插入到样本数据中去,这时 x = [ x 1 ] x=[x\,1] x=[x1], w = [ w b ] w=[w\,b] w=[wb],做一个简化得到下面这个形式: y ^ = w T ∗ x \hat{y}=w^{T}*x y^=wT∗x,这时我们只要求 w w w就可以了,用二范数作为损失函数,现在我们目的就是求: m i n F = ∥ Y − X ∗ w ∥ 2 2 minF=\|Y-X*w\|_{2}^{2} minF=∥Y−X∗w∥22,其中 Y Y Y表示已知分类标签向量, X X X为样本矩阵,用损失函数对 w w w求导得到: d F d w = d ( ( Y − X ∗ w ) T ( Y − X ∗ w ) ) d w = y T y − y T X w − w T X T y + w T X T X w d w = − 2 X T y + 2 X T X w \frac{dF}{dw}=\frac{d((Y-X*w)^{T}(Y-X*w))}{dw}\\\,\\=\frac{y^{T}y-y^{T}Xw-w^{T}X^{T}y+w^{T}X^{T}Xw}{dw}\\\,\\=-2X^{T}y+2X^{T}Xw dwdF=dwd((Y−X∗w)T(Y−X∗w))=dwyTy−yTXw−wTXTy+wTXTXw=−2XTy+2XTXw,令导数为0,有: w ^ = ( X T X ) − 1 X T y \hat{w}=(X^{T}X)^{-1}X^{T}y w^=(XTX)−1XTy,现在我们的线性回归就此结束了,嗯!比较简单吧。
3.伪代码
1.训练部分
step1 添加人工向量, X → [ X 1 ] X\rightarrow[X\,\,\,1] X→[X1]
step2 计算权值向量, w ^ = ( X T X ) − 1 X T y \hat{w}=(X^{T}X)^{-1}X^{T}y w^=(XTX)−1XTy
2.预测部分
step3 计算预测类别, y n e w = w ^ ∗ x n e w y_{new}=\hat{w}*x_{new} ynew=w^∗xnew
4.总结一下
到这里就over啦,是不是超简单,看到这里线性回归差不多就学完了,因为我也是刚学了一下,可能学得也不是很深,如果让我一句话概括一下,我感觉这就是数值计算里的拟合问题,就比较简单。但是呢,我们学东西嘛,就是得抱着一种“对于简单的内容,我们就要做到信手拈来,倒背如流的程度吧,对于难的问题呢我们就浅浅地给它学明白,然后能举一反三就行”的态度去学习吧。
于是我们要考虑一下,数据对模型有什么影响,为什么会产生会在哪里产生影响,这个模型什么时候适用什么时候不适用呢?以及这些问题都要怎么解决。
这边稍稍提一个吧,就是在计算 w w w的值的时候会发现有个求逆的过程,来看一下 w ^ = ( X T X ) − 1 X T y \hat{w}=(X^{T}X)^{-1}X^{T}y w^=(XT</