一、上周工作
吴恩达的机器学习、实验-回顾之前密集连接部分
二、本周计划
继续机器学习,同时思考实验如何修改,开始整理代码
三、完成情况
3.1 多类特征、多元线性回归的梯度下降、特征缩放、逻辑回归
多类特征:
多元线性回归的梯度下降:
线性回归求w和b的另一种方法:normal equation(正规方程法),只适用于线性回归、不需要进行迭代。
缺点:
1.不能适用于logistic回归算法等
2.速度慢
特征缩放:
特征缩放可以使梯度下降运行得更快。
如何进行特征缩放?
1)让每一个特征除以特征的可能最大取值
2)做均值归一化(mean normalization)
3)Z分数归一化(Z-score normalization)
总结:当变量范围太大、太小时,或者本身值与其它的变量差值过大,就可以考虑使用特征缩放。
检查梯度下降是否收敛:
1)自行绘制loss的值与迭代次数的关系图,这个曲线应该一直下降,最后趋于平稳,若某一次迭代曲线突然增长说明代码有bug或者学习率偏大。
2)自动检测方法,设置一个很小的阈值,当某一次迭代之后曲线降低的值小于这个,就说明到达了收敛,也就意味着找到了参数接近损失函数的全局最小值。
阈值是很难确定的,所以一般倾向于第一种方法。
学习率的选择:
如果损失函数-迭代次数这个学习曲线出现了上下浮动或者持续增大的现象,则说明代码存在bug或者学习率过大。
常用的一种判断是bug还是学习率过大的方法是:使用一个非常小的学习率,如果成本函数依然不会在每次迭代中减小,说明代码存在bug。
注:这个非常小的学习率并不是最终的学习率的选择,而是代码的一种调试策略。
逻辑回归的代价函数:
对于平方误差成本函数,如果使用在线性回归上面,得到的曲线就是一个凸函数,然而当使用在逻辑回归上,得到的就不是一个凸函数,此时运行梯度下降,就可能会陷入很多局部最小值。
如果真实标签为1,那么图像如下,此时当预测值接近1,loss接近0,反之预测值接近0,loss接近无穷。
3.2 实验修改方向
从之前一直思考的分阶段调整损失函数,后面计划提出了一种新的联合损失函数。
重新去学习了几类常用损失函数,计划采用两种损失结合的方式。
从简单一点的方式入手。
3.3 开始整理实验代码
因为之前是在aba的基础上进行编写的
四、存在的主要问题
无太大问题
最初的分阶段调整损失函数在代码实现这块对于目前有点难,调整成联合损失函数
五、下一步计划
整理代码,尝试设计新的联合损失函数并进行实验
安装LaTex
继续机器学习