概念:
回归是机器学习中一个基础概念,通俗来讲,即从有限的现实事件中提取一系列特征,通过发现这些特征之间的关系,寻找其规律,来通过已有的特征来预测或判断一个相关的结果,对应数学概念来说,即建立一个数学模型(建模),并对一些已有数据提取其特征转换为自变量,将这一系列自变量输入到模型之中(输入),经过模型计算得到因变量(输出),通过把计算得到的因变量与已有的真实因变量对比(使用损失函数),应用一些优化方法来优化模型(训练),使用训练过的模型来对一些已有的自变量去预测其结果(预测)。
数学中的回归方法很多,各类回归方法虽然在一些细节方面有所差异去,但本质上却是比较一致的,不同的回归方法的提出,主要基于不同的应用场景,当需要解释的现实规律不同时,需要找出不同的模型来进行适配,而线性回归与逻辑回归即为比较典型的两种类型。
-
线性回归
一种当自变量与因变量之间主要呈现线性关系的经典模型,应用于金融、经济学、流行病学等各个领域,其表达式如下:
f ( x ) = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 . . . + θ n x n + b f(x)=θ_0x_0+θ_1x_1+θ_2x_2...+θ_nx_n+b f(x)=θ0x0+θ1x1+θ2x2...+θnxn+b
简化为向量形式:
h θ ( x ) = θ T x + b h_\theta(x)=\theta^Tx+b hθ(x)=θTx+b
损失函数一般可以选用均方差,表达式如下:
l o s s = 1 2 m ∑ i = 1 m ( h θ ( x i ) − y i ) 2 loss=\frac{1}{2m}\sum_{i=1}^m(h_\theta(x_i)-y_i)^2 loss=2m1i=1∑m(hθ(xi)−yi)2
写成矩阵形式:
L ( w ) = 1 2 ∣ ∣ Y − X T W ∣ ∣ 2 L(w)=\frac{1}{2}||Y-X^TW||^2 L(w)=21∣∣Y−XTW∣∣2
可以证明该函数为凸函数,因此可以通过求导的方式得到其极值,以此得到最优参数使loss最小。
优化模型的方法可以采用最小二乘法,用损失函数对w求导,并令结果为0:
∂ L ( w ) ∂ w = − ( Y − X T W ) = 0 W = ( X X T ) − 1 X Y \frac{\partial L(w)}{\partial w}=-(Y-X^TW)=0\\ \ \\ W=(XX^T)^{-1}XY ∂w∂L(w)=−(Y−XTW)=0 W=(XXT)−1XY此外,也可以采用交叉熵作为损失函数,使用梯度下降法进行优化,相关的资料和文章很多,这里就不多做介绍了。
从表达式上来看,线性回归的特点很明显,需要数据特征之间存在线性关系,当输出量为差别较大的离散量时,模型的训练会很困难,而且无法很好的预测结果,只能简单的以某个阈值作为分类的标准,因此,提出逻辑回归模型来弥补这个缺陷。
-
逻辑回归
常见逻辑回归解决的问题中,因变量一般是true or false的关系,例如在判定某种癌症问题上,通过提取一类人群的特征如身高体重等(自变量),以及结果如是否患有该种类癌症(因变量),去寻找自变量和因变量的关系(参数θ),并用以推断某人是否患有该类癌症,其结果不具有连续性特征。
逻辑回归主要在线性回归的基础上,将结果输入到sigmoid函数中去,即将该连续结果映射到0-1的区间中,因此可以将输出的结果视为分类为True的概率。sigmoid函数表达式如下:
f ( z ) = 1 1 + e − z f(z)=\frac{1}{1+e^{-z}} f(z)=1+e−z1
因此逻辑回归的表达式为:
h θ ( x ) = 1 1 + e − θ T x h_\theta(x)=\frac{1}{1+e^{-\theta^Tx}} hθ(x)=1+e−θTx1
对于逻辑回归损失函数的选择上,由于对输出加入了sigmoid激活函数,如果采用均方差作为损失函数,当输出接近0或者1时,会出现梯度消失的问题,结合sigmoid函数曲线来看:
很显然,当输出接近0或者1时,其斜率几乎为0,而均方差损失函数在求导后,在反向传播的过程中会再次与sigmoid函数的导数向乘,造成梯度消失,而采用交叉熵则可以避免这个问题,后续文章中会详细讲到,交叉熵表达式如下:
l o s s = − 1 2 m ∑ i = 1 m ( y i l o g ( h θ ( x i ) ) + ( 1 − y i ) l o g ( 1 − h θ ( x i ) ) ) loss=-\frac{1}{2m}\sum_{i=1}^m(y_ilog(h_\theta(x_i))+(1-y_i)log(1-h_\theta(x_i))) loss=−2m1i=1∑m(yilog(hθ(xi))+(1−yi)log(1−hθ(xi)))
此外,有文章提出,在逻辑回归中采用均方差损失函数与与线性回归另一个不同之处在于该损失函数会出现许多局部极小值,对于使用梯度下降等方法求解全局最优解不利,本文尚未进行相应证实。之后采用梯度下降法来优化参数,使损失函数逐步趋于最优解,以此来进行模型的优化。