吴恩达机器学习笔记(三)

文章介绍了逻辑回归中的Sigmoid函数及其作用,讨论了线性与非线性决策边界。逻辑回归的代价函数被详细阐述,包括其在y=1和y=0时的行为。过拟合问题被提出,解释了其原因和解决方法,如增加训练数据、特征选择和正则化。正则化通过调整参数大小防止过拟合,文中提到了正则化参数lambda的影响以及如何在梯度下降中应用正则化。
摘要由CSDN通过智能技术生成

逻辑回归

Sigmoid函数

 

决策边界

所谓决策边界就是能够把样本正确分类的一条边界,主要有线性决策边界(linear decision boundaries)和非线性决策边界(non-linear decision boundaries)。

决策边界是假设函数的属性,由参数决定,而不是由数据集的特征决定。

线性决策边界:

非线性决策边界:

逻辑回归中的代价函数

之前线性回归中的代价函数:J(\theta ) = \tfrac{1}{m}\sum_{i=1}^{m}\tfrac{1}{2}(h_{\theta }(x^{(i)})-y^{(i)})^{2}

重新表示后半部分:Cost(h_{\theta }(x^{(i)}),y^{(i)})=\frac{1}{2}(h_{\theta }(x^{(i)})-y^{(i)})^{2}

逻辑回归的代价函数是:

J(\theta )=\frac{1}{m}\sum_{i=1}^{m}Cost(h_{\theta }(x^{(i)}),y^{(i)})

Cost(h_{\theta }(x),y)=-\log (h_{\theta }(x))\; \; \; \;\; \, \; \; \; \; if \: y=1

Cost(h_{\theta }(x),y)=-\log (1-h_{\theta }(x))\; \; \; \; if\: y=0

原理:

当y=1时,Cost(h_{\theta }(x),y)函数的图像是一个对数函数,如下:

其中 hθ (x)  是我们预测的值,它的范围在 [0, 1] 区间。当我们预测值 hθ (x)  =1 时,此时与真实值 y 相同,预测正确,那么它的代价值就为 0;当我们预测值 hθ (x)  = 0 时,此时与真实值 y = 1 恰恰相反,预测错误,那么这个代价就是无穷大的。

当y=0时,Cost(h_{\theta }(x),y)的图像如下,其工作原理与y=1相同。

简化逻辑回归代价函数:

Cost(h_{\theta }(x),y)=-y\log (h_{\theta }(x))-(1-y)\log (1-h_{\theta }(x))

实现梯度下降

代价函数:J(\vec{w},b)=-\frac{1}{m}\sum_{i=1}^{m}[y^{(i)}\log (f_{\vec{w},b}(\vec{x}^{(i)}))+(1-y^{(i)})\log (1-f_{\vec{w},b}(\vec{x}^{(i)}))]

repeat:{

w_{j}=w_{j}-\alpha \frac{\partial }{\partial w_{j}}J(\vec{w},b)                 \frac{\partial }{\partial w_{j}}J(\vec{w},b)=\frac{1}{m}\sum_{i=1}^{m}(f_{\vec{w},b}(\vec{x}^{(i)})-y^{(i)})x_{j}^{(i)}

b=b-\alpha \frac{\partial }{\partial b}J(\vec{w},b)                          \frac{\partial }{\partial b}J(\vec{w},b)=\frac{1}{m}\sum_{i=1}^{m}(f_{\vec{w},b}(\vec{x}^{(i)})-y^{(i)})

}

用于逻辑回归的梯度下降:

repeat{

w_{j}=w_{j}-\alpha [\frac{1}{m}\sum_{i=1}^{m}(f_{\vec{w},b}(\vec{x}^{(i)})-y^{(i)})x_{j}^{(i)}]

b=b-\alpha [\frac{1}{m}\sum_{i=1}^{m}(f_{\vec{w},b}(\vec{x}^{(i)})-y^{(i)})]

}simultaneous updates

过拟合问题

过拟合:

第一个模型是一个线性模型,处于欠拟合状态,不能很好地适应我们的训练集;第三个模型是一个四次方的模型,过于强调拟合原始数据,而丢失了算法的本质:预测新数据。我们可以看出,若给出一个新的值使之预测,它将表现的很差,是过拟合,虽然能非常好地适应我们的训练集但在新输入变量进行预测时可能会效果不好;而中间的模型似乎最合适。 

过拟合的根本原因:是特征维度过多,导致拟合的函数完美的经过训练集,但是对新数据的预测结果则较差。即指学习时选择的模型所包含的参数过多,模型复杂度高,以致于出现这一模型对已知数据预测得很好,但对未知数据预测得很差的现象。

解决过拟合

一:收集更多的训练数据。

二:尝试只选择和使用特征的一个子集

三:使用正则化来减小参数的大小

正则化

正则化就是不改变特征的数量,通过改变参数的大小,来使得曲线更好的拟合数据。

如果使得参数w3, w4 接近于0 ,那么拟合的曲线就会接近二次函数了,它可能比二次函数更适合。

正则化的参数是lambda

在实际中特征总是会很多,我们没有办法知道哪些是重要特征,哪些是惩罚特征,所以通常实现正则化的方式是惩罚所有的特征,准确来说就是惩罚所有的参数w和j。这样来让拟合更加的平滑、简单,不容易过度拟合。

假设我们惩罚所有的100个特征,使用一个新的值lambda,它被称为正则化参数regularization parameter与学习率一样,我们必须给lambda选择一个数字λ>0,一般情况下,我们不会因为参数b太大而惩罚它,因为是否这样做,我们在实际中得到的结果都是差不多的,当然你也可以选择惩罚参数b 

 如果 lambda 设置为0,我们这时候就相当于没有使用正则化,因为正则化项为0,拟合的曲线也会过度拟合

如果 lambda 设置为一个非常非常大的值,则等式右边的正则化项就会变得很重要,
最小化这种情况的唯一方法就是确保 参数 w 的所有值都接近于 0 ,这是模型就是拟合成一条直线了,这属于欠拟合或高偏差

所以 lambda 的值太大或太小都不行,它的取值应该适当,

这样才可以平衡新代价函数中的第一项的均方误差代价函数 和第二项的正则化项,保持较小的参数

用于线性回归的正则方法

如图这是新的代价函数,我们希望找到参数 w , b 来最小化正则化代价函数。来看看图左边,之前我们对代价函数使用梯度下降,我们反复更新参数w, b ,其实,正则化线性回归的更新看起来和这个是一样的,处理现在大代价函数 J 的定义有些不同了。改变的是 J 对 w 的求导,如图右边所示,求导后面还加上了正则化项的求导,由于没有正则化参数 b ,所以 J 对 b 的求导不变。将这些导数项写入公式,我们可以得到正则化线性回归的梯度下降算法公式

正则化就是让参数 w 乘以一个略小于1 的数,具有收缩的效果
也就是在每次迭代中缩小参数 w 一点点,这就是正则化的工作原理。

用于逻辑回归的正则方法

如果我们使用高阶多项式来表示 z ,它会传递到 sigmoid 函数来计算 f ,我们会得到 一个复杂的为训练集拟合的决策边界。如果我们含有多个特征,逻辑回归拟合的决策边界就可能会存在过拟合或高方差风险 

J(\vec{w},b)=-\frac{1}{m}\sum_{i=1}^{m}[y^{(i)}\log (f_{\vec{w},b}(\vec{x}^{(i)}))+(1-y^{(i)})\log (1-f_{\vec{w},b}(\vec{x}^{(i)}))]+\frac{\lambda }{2m}\sum_{j=1}^{n}w^{2}_{j}

Gradient descent

repeat{

w_{j}=w_{j}-\alpha \frac{\partial }{\partial w_{j}}J(\vec{w},b)                             \frac{1}{m}\sum_{i=1}^{m}(f_{\vec{w},b}(\vec{x}^{(i)})-y^{(i)})x_{j}^{(i)}+\frac{\lambda }{m}w_{j}   

b=b-\alpha \frac{\partial }{\partial b}J(\vec{w},b)                                    \frac{1}{m}\sum_{i=1}^{m}(f_{\vec{w},b}(\vec{x}^{(i)})-y^{(i)})

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值