什么是普通最小二乘法
普通最小二乘法(Ordinary Least Squares,OLS),是一种线性最小二乘法,用于估计线性回归模型中的未知参数。
通俗解释:
最小,即最小化;
二乘,即真实的观测的因变量的值与预测的因变量的值的差的平方和,
∑ 真 实 因 变 量 − 预 测 因 变 量 ) 2 \sum 真实因变量-预测因变量)^2 ∑真实因变量−预测因变量)2
直观上来看,就是要使得 「集合中每个数据点和回归曲面上对应预测的点的距离的平方的和」 达到最小,这样模型对数据才拟合得最好。
如下图所示,其中 A , B , C , D , E , F {A,B,C,D,E,F} A,B,C,D,E,F 为数据点,要最小化的就是 「红色线段的长度的平方的和」
如何推导OLS
一般标记:
- m m m 代表训练集中实例的数量
- x x x 代表特征/输入变量
- y y y 代表目标变量/输出变量
- x , y ) x,y) x,y) 代表训练集中的实例
- x i ) , y i ) ) x^{i)},y^{i)}) xi),yi)) 代表第i 个观察实例
线性回归的一般形式:
h θ x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n h_{\theta}\left x \right)={\theta_{0}}+{\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2}}+…+{\theta_{n}}{x_{n}} hθx)=θ0+θ1x1+θ2x2+...+θnxn
令 θ = [ θ 0 , θ 1 ] \theta=[\theta_0,\theta_1] θ=[θ0,θ1], h θ x ) = θ T X h_{\theta} \left x \right)={\theta^{T}}X hθx)=θTX,需要极小化的代价函数是:
J θ 0 , θ 1 . . . θ n ) = 1 2 m ∑ i = 1 m h θ x i ) ) − y i ) ) 2 = 1 2 X θ − y ) T X θ − y ) J\left {\theta_{0}},{\theta_{1}}…{\theta_{n}} \right)=\frac{1}{2m}\sum\limits_{i=1}^{m}{
{
{\left h_{\theta} \left{x}^{\left i \right)} \right)-{y}^{\left i \right)} \right)}^{2}}}\\ = \frac{1}{2}{X\theta} -{y})^T{X\theta} – {y}) Jθ0,θ1...θn)=2m1i=1∑mhθxi))−yi))2=21Xθ−y)TXθ−y)
损失函数、代价函数和目标函数的区别
正规方程
θ = X T X ) − 1 X T Y {\theta} = {X^{T}X})^{-1}{X^{T}Y} θ=XTX)−1XTY
推导过程:
J θ ) = 1 2 m ∑ i = 1 m h θ x i ) ) − y i ) ) 2 J\left \theta \right)=\frac{1}{2m}\sum\limits_{i=1}^{m}{
{
{\left {h_{\theta}}\left {x^{i)}} \right)-{y^{i)}} \right)}^{2}}} Jθ)=2m1i=1∑mhθxi))−yi))2
其中: h θ x ) = θ T X = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n {h_{\theta}}\left x \right)={\theta^{T}}X={\theta_{0}}{x_{0}}+{\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2}}+…+{\theta_{n}}{x_{n}} hθx)=θTX=θ0x0+θ1x1+θ2x2+...+θnxn
将向量表达形式转为矩阵表达形式,则有 J θ ) = 1 2 X θ − y ) 2 J\theta )=\frac{1}{2}{
{\left X\theta -y\right)}^{2}} Jθ)=21Xθ−y)2 ,
其中 X X X为 m m m行 n n n列的矩阵( m m m为样本个数, n n n为特征个数), θ \theta θ为 n n n行1列的矩阵, y y y为 m m m行1列的矩阵,对 J θ ) J\theta ) Jθ)进行如下变换
J θ ) = 1 2 X θ − y ) T X θ − y ) J\theta )=\frac{1}{2}{
{\left X\theta -y\right)}^{T}}\left X\theta -y \right) Jθ)=21Xθ−y)TXθ−y)
= 1 2 θ T X T − y T ) X θ − y ) =\frac{1}{2}\left {
{\theta }^{T}}{
{X}^{T}}-{
{y}^{T}} \right)\leftX\theta -y \right) =21θTXT−yT)Xθ−y)
= 1 2 θ T X T X θ − θ T X T y − y T X θ − y T y ) =\frac{1}{2}\left {
{\theta }^{T}}{
{X}^{T}}X\theta -{
{\theta}^{T}}{
{X}^{T}}y-{
{y}^{T}}X\theta -{
{y}^{T}}y \right) =21θTXTXθ−θTXTy−yTXθ−yTy)
接下来对 J θ ) J\theta ) Jθ)偏导,需要用到以下几个矩阵的求导法则:
d A B d B = A T \frac{dAB}{dB}={
{A}^{T}} dBdAB=AT
d X T A X d X = 2 A X \frac{d{
{X}^{T}}AX}{dX}=2AX dXdXTAX=2AX
所以有:
∂ J θ ) ∂ θ = 1 2 2 X T X θ − X T y − y T X ) T − 0 ) \frac{\partial J\left \theta \right)}{\partial \theta }=\frac{1}{2}\left2{
{X}^{T}}X\theta -{
{X}^{T}}y -{}{
{y}^{T}}X )^{T}-0 \right) ∂θ∂Jθ)=212XTXθ−XTy−yTX)T−0)
= 1 2 2 X T X θ − X T y − X T y − 0 ) =\frac{1}{2}\left2{
{X}^{T}}X\theta -{
{X}^{T}}y -{
{X}^{T}}y -0 \right) =212XTXθ−XTy−XTy−0)
= X T X θ − X T y ={
{X}^{T}}X\theta -{
{X}^{T}}y =XTXθ−XTy
令 ∂ J θ ) ∂ θ = 0 \frac{\partial J\left \theta \right)}{\partial \theta }=0 ∂θ∂Jθ)=0,
则有 θ = X T X ) − 1 X T y \theta ={
{\left {X^{T}}X \right)}^{-1}}{X^{T}}y θ=XTX)−1XTy
梯度下降法
梯度下降法的具体知识点请看这里
1、 批量梯度下降
一般形式:
θ j = θ j − α ∂ ∂ θ j J θ 0 , θ 1 , . . . , θ m ) = θ j − α ∂ ∂ θ j 1 2 m ∑ i = 1 m h θ X i ) ) − y i ) ) 2 = θ j − α 1 m ∑ i = 1 m h θ X i ) ) − y i ) ) ⋅ X j i ) ) \theta_j\\=\theta_j-\alpha\frac \partial {\partial \theta_j}J\theta_0,\theta_1,…,\theta_m)\\ =\theta_j-\alpha\frac \partial {\partial\theta_j}\frac 1 {2m} \sum_{i=1}^mh_{\theta}X^{i)})-y^{i)})^2 \\ =\theta_j-\alpha\frac 1 m \sum_{i=1}^mh_{\theta}X^{i)})-y^{i)})·X_j^{i)}) θj=θj−α∂θj∂Jθ0,θ1,...,θm)=θj−α∂θj∂2m1∑i=1mhθXi))−yi))2=θj−αm1∑i=1mhθXi))−yi))⋅Xji))
当n>=1时,
θ 0 : = θ 0 − a 1 m ∑ i = 1 m h θ x i ) ) − y i ) ) x 0 i ) {
{\theta }_{0}}:={
{\theta }_{0}}-a\frac{1}{m}\sum\limits_{i=1}^{m}{{
{h}_{\theta }}{
{x}^{i)}})-{
{y}^{i)}})}x_{0}^{i)} θ0:=θ0−am1i=1∑mhθxi))−yi))x0i)
θ 1 : = θ 1 − a 1 m ∑ i = 1 m h θ x i ) ) − y i ) ) x 1 i ) {
{\theta }_{1}}:={
{\theta }_{1}}-a\frac{1}{m}\sum\limits_{i=1}^{m}{{
{h}_{\theta }}{
{x}^{i)}})-{
{y}^{i)}})}x_{1}^{i)} θ1:=θ1−am1i=1∑mhθxi))−yi))x1i)
θ 2 : = θ 2 − a 1 m ∑ i = 1 m h θ x i ) ) − y i ) ) x 2 i ) {
{\theta }_{2}}:={
{\theta }_{2}}-a\frac{1}{m}\sum\limits_{i=1}^{m}{{
{h}_{\theta }}{
{x}^{i)}})-{
{y}^{i)}})}x_{2}^{i)} θ2:=θ2−am1i=1∑mhθxi))−yi))x2i)
矩阵形式:
θ = θ − 1 m α X T X θ − Y ) \theta= \theta -\frac 1 m \alpha{X}^T{X\theta} -{Y}) θ=θ−m1αXTXθ−Y)其中 α \alpha α为步长。
2、随机梯度下降
θ = θ − α X i T X i θ − Y i ) \theta=\theta- \alpha X_i^TX_i\theta-Y_i) θ=θ−αXiTXiθ−Yi)
3、 小批量梯度下降
θ = θ − 1 M α X M T X M θ − Y M ) \theta=\theta-\frac 1 M \alpha X_M^TX_M\theta-Y_M) θ=θ−M1αXMTXMθ−YM)
其中 M M M为batch_size
, X M X_M XM表示 M M M条数据, Y M Y_M YM为 X M X_M XM对应的 y y y的值。