week3 归一化

xiaoxiao2021-02-28  121

逻辑回归 logistic regression

5.1 分类问题

在分类问题中,我们尝试预测新出现的物体是否属于某个类,从二元分类开始,我们将两个种类分为负向类和正向类,则因变量 y(0,1)

回顾乳腺癌问题,我们用线性回归方法求出合适的方法求出适合数据的一条直线,如果对于 hθ ,我们可以预测 - 当 hθ 大于或等于0.5的时候,y=1 - 当 hθ 小于0.5的时候,y=0

对于上面这个例子,似乎这条直线可以很好的解决这个问题,但是,如果我们这时候又观测到一个非常大的恶性肿瘤,加入数据,得到一个新的直线,此时,0.5的标准就不那么合适了。

我们这里引入一个新的模型,称为逻辑回归模型,该模型的输出范围始终处于0到1之间: hθ(x)=g(θTX) 其中: - X代表特征向量 - g代表逻辑函数,是一个非常常用的s形函数 Sigmoid function,

g(z)=11+ez 图像如下:

合起来,有:

hθ(x)=11+eθTX 如果用此模型,则对于给定的输入变量,根据选择的参数计算输出变量=1的可能性 hθ(x)=P(y=1|x;0) 例如,对于给定的x,通过已经确定的参数计算出 hθ(x) =0.7,那么表示有70%的几率为正向类,相应的有30%几率负向

5.2判定边界

在逻辑回归中,我们预测: - 当 hθ0 时,预测y=1; - 当 hθ<0 时,预测y=0; 既 - 当 θTX0 ,预测y=1; - 当 θTX<0 ,预测y=0;

现在假设我们有一个模型 hθ(x)=g(θ0+θ1x1+θ2x2),θ 是[-3 1 1] 当 3+x1+x20 ,预测y=1,可以用 x1+x2=3 这条线分开数据点。

也有可能我们的分割线不是直线,二是曲线,例如下面这个,分割线我们可以设为

hθ(x)=g(θ0+θ1x1+θ2x2+θ3x21+θ4x22)

5.3 代价函数

对于线性回归模型,我们定义的代价函数是所有模型误差的平方和,但对于逻辑回归来说,此时 hθ(x)=11+eθTX ,这样,代价函数J将是一个非凸函数,它有着许多局部最小值,将影响算法寻找最小值

所以,我们将对逻辑回归的例子重新定义代价函数,

J(θ)={1mmi=1(log(hθ(x)))1mmi=1(log(1hθ(x)))y=1y=0 hθ(x)Cost(hθ(x),y)={log(hθ(x))log(1hθ(x))y=1y=0

从上图可以看出,当实际y=1时, hθ 等于1则代价为0,越偏离1,代价越高,实际y=0时, hθ 等于0则代价为0,越偏离0,代价越高。

将构造的新 Cost(hθ(x),y) 函数简化如下:

Cost(hθ(x),y)=y×log(hθ(x))(1y)×log(1hθ(xi)) 带入代价函数中,得到新的代价函数为: J(θ)=1m[i=1myilog(hθ(xi))+(1yi)log(1hθ(xi))]

得到新的代价函数以后,我们可以继续用梯度下降算法来求得能使代价函数最小的参数: 循环,直到收敛:

θj=θjαθjJ(θ)

=θjαi=1m(hθ(xi)yi)xij 看起来与线性回归的结果是一致的,但这里的 hθ(x)=g(θTX) 与前面的不同,所以答案是不一样的。 fminunc是matlab中自带的最小值优化函数,具体使用如下:

function[jval,gradient]=costfunction(theta) jval=[求出J(theta)的代码] gradient=[求出J(theta)倒数的代码] end options=optimset('GradOBJ','on','MaxIter','100'); inittheta=zeros(2,1); [opttheta,functionval,exitflag]=fminunc(@costfunction,inittheta,options)

5.4 多类分类

多类分类中,我们有多个最后的类别,无法使用二元变量(0 or 1)来分类,解决这种问题通常采用一对多的方法来做,我们将多类分类问题转化为二元分类问题,将多个类的其中一个类标记为正向类(y=1),此外其他的标记为负向类,当训练完成后,我们将另外一个类标记为正向类(y=2), 其他都为负向类,以此类推。 最后当我们需要预测时,每个分类机都运行一遍,得到每种正向类的概率,得到概率最高的那个。

6 归一化

6.1 过拟合问题 overfitting

下面三个分别是低度拟合,正常拟合,过度拟合:

在分类问题中也有这种情况发生:

在低度拟合中,我们不能很好的利用训练集来得到准确的结果,而如果是过度你和,虽然我们拟合的结果非常适应训练集,但往往用它进行预测的时候效果不好,或者所花时间过长。 我们可以采取的措施有: - 丢弃一些无关特征 - 保留特征,但是减小参数的大小

6.2 归一化代价函数 regularization cost function

如果是上一节中第一种预测的过拟合,此时我们的模型是:

hθ(x)=θ0+θ1x1+θ2x22+θ3x33+θ4x44 我们要做的就是减少 θ3θ4 的作用,主要目标就是最后选择较小的 θ3θ4 , 我们可以做的是在代价函数中加重 θ3θ4 的比重,这样在整个学习过程的时候最后得到的 θ3θ4 就比较小。 J(θ)=12mi=1m(hθ(xi)yi)2+λj=1nθ2j λ 又称归一化参数,经过归一化处理的模型与原模型的可能对比如下:

如果 λ 选择过大,则所有参数都变小了,就像上图的中线一样,低度拟合

6.3 归一化线性回归

归一化线性回归的代价函数为:

J(θ)=12mi=1m(hθ(xi)yi)2+λj=1nθ2j 如果我们要进行梯度算法,因为我们未对 θ0 进行归一化,所以将变为: θ0=θ0α1mi=1m((hθ(xi)yi)·xi0) θj=θjα1mi=1m((hθ(xi)yi)·xij+λmθj) 其中第二式子可以写为: θj=θj(1αλm)α1mi=1m((hθ(xi)yi)·xij) 可以看出,归一化线性回归的算法在于每一次递减的基础上再额外令 θ 减少了一个值 同样我们可以用正规解方程的方法来解决归一化的问题。

6.4 归一化逻辑回归

对于逻辑回归,我们也可以增加一个归一化表达式,其代价函数可以写为: J(θ)=1m[i=1myilog(hθ(xi))+(1yi)log(1hθ(xi))]+λ2mj=1iθ2j 如果此时用梯度下降算法,有: 循环直至收敛: θ0=θ0α1mi=1m((hθ(xi)yi)·xi0) θj=θjα1mi=1m((hθ(xi)yi)·xij+λmθj) 与线性回归一致,但此时 hθ(x)=g(θTX)
转载请注明原文地址: https://www.6miu.com/read-43355.html

最新回复(0)