p25-p41
特征缩放
例:房屋的价格模型:f=w1*x1+w2*x2+b,x1=房屋大小,x2=卧室数量。
比如其中某房型号是x1=2000,x2=5,,真实价格y=500k。所以说
那么可见,w1的取值范围较小(因为x1较大),而w2的取值范围较大,若在训练时,保持原样训练,则会导致梯度下降法在寻找最小值之前来回弹跳很长时间。
为此可以把训练数据进行转换,让x1和x2都在0~1之间变化(归一化?),使它们有可比较的取值范围。这样等高线图就是同心圆了。
特征缩放的目的就是让梯度下降更快找到局部最小值
方法1:除以最大值(x1÷2000,x2÷5)
方法2:均值归一化(μ为均值)
方法3:Z-score归一化
求μ和σ(标准差)
判断梯度下降是否收敛
学习曲线:
iterations:迭代次数(就是算了多少次)
图上可见300次往后,曲线几乎水平了→收敛了
关键因素:学习率
如果学习曲线长这样:说明代码有问题或者学习率太大了(一脚迈过山谷,导致J变大了)
特征选择
例如:对于房屋的特征我们可以选择x1=长度,x2=宽度,但是还有x3=面积可能更合适估计价格。
那我该怎么选特征?
逻辑回归(分类算法)
逻辑回归介绍
我收到一封邮件,要判断它是不是垃圾广告?
答案只有两个:是和不是。这叫二分类,使用0表示“不是”,1表示“是”
逻辑回归的目的就是得到这样一条拟合曲线。
sigmoid函数(激活函数?):
曲线长这样:
使用方法:
逻辑回归模型:输入特征或特征集X,输出0到1之间的数字。
设置阈值:如选择0.5,g>0.5 那么 y-hat=1 , g<0.5 那么 y-hat=0
决策边界
让z=0的那条线被称为决策边界
一个更复杂的例子:
问题一:我要怎么构建z函数呢?这里选择用x²而不是别的是因为【把图画出来看它是不是像个圆】吗?我尚且如此,那机器要怎么看得出来它像什么呢?还是说要我自己先把z函数自己想出来,然后教给机器来寻找最佳参数吗?
如果是的话,|x1|+|x2|=1是不是也行?
问题二:参数的选择靠梯度下降找到了最佳组合(1,1,-1),可是一开始应该选什么呢?随机吗?
脑壳痛
逻辑回归中的损失函数
均方误差不再是理想的损失函数:目标y只有两个取值0和1,如果按照老样子就会变成这样。
现在的目的就是构造一个函数,让J的图像是U形(就是凸函数。怎么学高数的时候管这个叫凹函数?为了不混淆自己,先叫他U形函数好了,听说最优化理论说了这个凸函数)。有了如下函数:
弹幕说底数一般是e或者2,我可以理解成>1就行吧。
画出图可以看到,这两个函数是关于x=1/2对称的。
简化损失函数:
和上面那个是一样的意思,如果Yi=1那后半截没了,如果Yi=0,那前半截没了,这样做就不用把两种情况分开了,这是不是“交叉熵损失函数”啊?
那么成本函数就是这样的:
为什么没有那个1/2了→因为之前的是均方差,有平方,方便梯度下降时求导放了个1/2系数在前面。
这个特定的成本函数是使用最大似然估计出来的(概率论)
实现梯度下降:
和前文的线性回归长得居然是一样的,但是由于x和f的定义不同,实际上不是。
线性的f=wx+b,逻辑的f=sigmoid=1/(1+e^-z),其中z=wx+b。
拟合问题
例:预测房价的问题
图中可以看出,随着住房大小的增加,房价趋于平稳,但是认为数据是线性的先入之见导致它拟合度不佳,这叫“欠拟合”→高偏差(bias)。更合适的:
当出现不在训练集上的房屋大小时,算法也能得出较合适的房价:泛化。
但假如模型长这样(泰勒?):
这样在训练集上的误差为0了,但是预测的结果可能不对(中间有个山谷)。这样的情况就是过拟合→只适合训练集,没法推广,另一种说法叫“高方差”。
所以需要选择合适的特征数量。
解决过拟合:
1.收集更多数据
2.可否使用更少的多项式特征。比如大小、楼层数、邻居的收入、离咖啡馆的距离等等...我们只选择最相关的特征→但凭直觉选择一部分子集会丢失信息,万一那些特征都对房价有影响呢?
3.正则化:减小一些特征的参数,它保留所有特征,并防止特征产生过大的影响(导致过拟合),通常只对w做正则化。
正则化
把参数变小,让模型变简单。比如我有4个特征,但是我不知道哪些是更合适的特征,于是我构造了一个含有4个特征的模型,来惩罚一下:(后面加了一项)
λ:正则化系数,类似α。
:正则化项。
正则化项的削弱作用:当添加了正则化项后,对某权重的偏导变大,为了使J取值较小,就不得不减小该w。我理解的就是“专门分析w们的权重的工具”
当λ过小:正则化了个寂寞→过拟合
当λ过大:正则化项的权重过大,不得不让所有的w都很小才能保证J小→欠拟合
用于线性回归的正则化方法
为什么正则项求偏导后没有求和符号,而前面有:前面项(原本的J函数)里的“i”是从“1到样本数”,正则项里的“j”是从“1到特征数”,我们对Wj求偏导,其他没有Wj的项就都没了,即“只有一个特征的系数是Wj”,而前面那坨“每个样本都要计算一次”,即每个样本都含有Wj参与了运算。
用于逻辑回归的正则化
同上,除了f的定义不一样。
第一课完结了