目录
实现梯度下降
有了代价函数之后,就可以开始拟合啦。
先回顾下代价函数::
类似于线性回归,可以先写出repeat的部分,即对w,b进行修正:
后面偏导数的部分可以化简:
这一步的推导我感觉好复杂┭┮﹏┭┮,我找到了详细的推到过程:链接
过拟合问题
这是一个非常常见的问题,如果你有过科研或者项目经历,很多项目都会专门处理这个问题。
什么是过拟合?
用我自己的话说,就是一开始,随着维度增加,显而易见结果会更加准确,但是当到达某个阶段,你添加更多维度,会导致你的结果准确度不咋上升甚至下降,例子如下图:
第三个图的拟合曲线精确地通过了每个点,我个人感觉,是因为提供的数据本身就具有误差,过于拟合数据的曲线使得你的拟合中将数据的误差给继承了,这就称为过拟合(overfit),也可以叫做高方差(high variance)
过拟合同样也存在于分类问题,这里不多赘述。
解决过拟合问题
有多种方法来解决过拟合问题
增加数据量(水多了加面法)
我感觉,出现过拟合主要就是数据量和维度之间未达到平衡(阴阳玄学是吧),本着水多了加面,面多了加水的原则,可以增加数据量从而提高拟合效果。
减少数据特征数(水多了吸水法)
这个也很好理解,去掉几项特征就好啦,但是这种方法可能会导致你丢失掉一些重要的特征,要谨慎/(ㄒoㄒ)/~~。
当然,正因为直接粗暴的将某些特征变为0这样的方法过于粗暴,所以就出现了下面一种更加常用的方法——正则化。
正则化 Regularization
简而言之,正则化就是将某些特征的系数改变,从而降低其对于整个回归的影响。
从这两幅图可以从可视化的角度看出正则化的作用所在。右图将x的3、4次幂的系数进行了缩小,从而降低了影响,同时也保留了所有的特征。
一般来说正则化只会改变Wn的大小,改变b对于结果并无影响。
在下面一小节将展开讲解正则化有关内容。