Machine Learning-Andrew Ng 课程第三周——Logistic Regression

版权声明: https://blog.csdn.net/Dr_destiny/article/details/82805136

1.关于Logistic Regression的一些基本问题

(1) Logistic Regression的名字

虽然字面上Logistic Regression是一种回归方法,但实际上,它是一种分类(Classification) 方法。

(2) 假设 h θ ( x ) h_\theta(\mathbf{x}) 的内在含义

在Logistic Regression回归中,假设函数的形式如下:
h θ ( x ) = 1 1 + e θ T x h_\theta(\mathbf{x})=\frac{1}{1+e^{-\theta^T\mathbf{x}}}
这就是所谓的Logistic函数或者Sigmoid函数。
在这里插入图片描述
该函数的值域是(0,1),可以将其输出解释为:对于输入 x \mathbf{x} h θ ( x ) h_\theta(\mathbf{x}) 是该输入所对应输出 y = 1 y=1 的概率

(3) Logistic Regression的梯度下降推导

先说结论:Logistic Regression的参数更新表达式在形式上和线性回归是一样的,只不过假设 h θ ( x ) h_\theta(x) 的形式不同,接下来是推导过程:
θ j : = θ j α J ( θ ) θ j \theta_j:=\theta_j-\alpha\frac{\partial J(\theta)}{\partial \theta_j}
J ( θ ) = 1 m i = 1 m [ y ( i ) log ( h θ ( x ( i ) ) ) + ( 1 y ( i ) ) log ( 1 h θ ( x ( i ) ) ) ] J(\theta)=-\frac{1}{m}\sum_{i=1}^m{[y^{(i)}\log(h_\theta(x^{(i)}))+(1-y^{(i)})\log(1-h_\theta(x^{(i)}))]} # 关于为什么 J ( θ ) J(\theta) 这样表示,这里就不赘述了,详情参见吴恩达的机器学习课程。
J ( θ ) θ j = 1 m i = 1 m [ y ( i ) 1 h θ ( x ( i ) ) h θ ( x ( i ) ) θ j ( 1 y ( i ) ) 1 1 h θ ( x i ) h θ ( x ( i ) ) θ j ] = 1 m i = 1 m [ y ( i ) ( 1 e θ T x ( i ) ) ( x j ( i ) e θ T x ( i ) ( 1 e θ T x ( i ) ) 2 ) ( 1 y ( i ) ) 1 e θ T x ( i ) e θ T x ( i ) ( ( x j ( i ) e θ T x ( i ) ( 1 e θ T x ( i ) ) 2 ) ) ] = 1 m i = 1 m [ y ( i ) x j ( i ) e θ T x ( i ) 1 e θ T x ( i ) ( 1 y ( i ) ) x j ( i ) 1 e θ T x ( i ) ] = 1 m i = 1 m x j ( i ) ( y ( i ) ( 1 e θ T x ( i ) ) 1 ) 1 e θ T x ( i ) = 1 m i = 1 m ( h θ ( x ( i ) ) y ( i ) ) x j ( i ) \therefore \frac{\partial J(\theta)}{\partial \theta_j}=-\frac{1}{m}\sum_{i=1}^m{[y^{(i)}\frac{1}{h_\theta(x^{(i)})}\frac{\partial h_\theta(x^{(i)})}{\partial \theta_j}-(1-y^{(i)})\frac{1}{1-h_\theta(x^{i})}\frac{\partial h_\theta(x^{(i)})}{\partial \theta_j}]} \\=-\frac{1}{m}\sum_{i=1}^m{[y^{(i)}(1-e^{-\theta^Tx^{(i)}})(-\frac{x^{(i)}_je^{-\theta^Tx^{(i)}}}{(1-e^{-\theta^Tx^{(i)}})^2})-(1-y^{(i)})\frac{1-e^{-\theta^Tx^{(i)}}}{-e^{-\theta^Tx^{(i)}}}((-\frac{x^{(i)}_je^{-\theta^Tx^{(i)}}}{(1-e^{-\theta^Tx^{(i)}})^2}))]} \\=-\frac{1}{m}\sum_{i=1}^m{[\frac{-y^{(i)}x^{(i)}_je^{-\theta^Tx^{(i)}}}{1-e^{-\theta^Tx^{(i)}}}-\frac{(1-y^{(i)})x_j^{(i)}}{1-e^{-\theta^Tx^{(i)}}}]} \\=-\frac{1}{m}\sum_{i=1}^m{\frac{x_j^{(i)}(y^{(i)}(1-e^{\theta^Tx^{(i)}})-1)}{1-e^{\theta^Tx^{(i)}}}} \\=\frac{1}{m}\sum_{i=1}^m{(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}}
可以看出,Logistic Regression的参数更新表达式在形式上和线性回归是一样的。

2.关于正则化的一些基本问题

(1) 正则化的初衷

我的理解是:因为不知道哪些项会导致过拟合,所以干脆将所有系数变小。(虽然这样的方法比较粗暴,但是管用啊!)(当然,正则化系数也不能太大,否则反而会造成欠拟合)

(2) 关于添加特征和运用正则化后的模型预测效果

这一点是从课程测验里总结出来的:

  • 添加一个新特征, h θ ( x ) h_\theta(\mathbf{x}) 在训练集数据上会表现得更好(这个很好理解,添加特征能使模型更加拟合训练集数据,但是对于新数据会导致更加严重的过拟合)
  • 运用正则化后, h θ ( x ) h_\theta(\mathbf{x}) 在预测新数据时表现得不一定更好(说不定本来就拟合得很好,结果用了正则化,所有系数变小,反而不如正则化之前的表现了)

(3) 关于Logistic Regression的cost function正则化表达式

这一条是在我做完本章作业之后加上的,因为自己忘记了一个很重要的细节:
Logistic Regression的正则化cost function如下:
J ( θ ) = 1 m i = 1 m [ y ( i ) log ( h θ ( x ( i ) ) ) + ( 1 y ( i ) ) log ( 1 h θ ( x ( i ) ) ) ] + λ 2 m j = 1 n θ j 2 J(\theta)=-\frac{1}{m}\sum_{i=1}^m{[y^{(i)}\log(h_\theta(x^{(i)}))+(1-y^{(i)})\log(1-h_\theta(x^{(i)}))]}+\frac{\lambda}{2m}\sum_{j=1}^{n}{\theta_j^2}
重点就在于后面的正则项!!! θ 0 \theta_0 不进行正则化所以正则项里并没有包含 θ 0 \theta_0 。但是在matlab的矩阵中是从theta(1)开始的,所以我在参照公式编程的时候忘记正则项里并没有包含 θ 0 \theta_0 这一点!!!浪费了我好长时间。

一定要记住这个教训!

猜你喜欢

转载自blog.csdn.net/Dr_destiny/article/details/82805136