
好事发生
这里推荐一篇实用的文章:https://cloud.tencent.com/developer/article/2465556?shareByChannel=link
《使用Python实现深度学习模型:智能食品包装设计》
这篇文章介绍了如何使用Python构建一个用于智能食品包装设计的深度学习模型。主要内容包括数据准备、模型构建、训练、评估和预测应用。作者展示了如何通过卷积神经网络(CNN)进行包装图像分类,利用数据增强提升模型的泛化能力,并最终实现对新图像的预测。此技术可提升包装设计的效率和质量,为消费者提供更个性化和智能化的体验。这种智能化设计有望在未来的食品包装中得到更广泛的应用。
前面已经推导过线性回归和逻辑斯特回归的梯度下降算法。
它们各自的梯度下降算法公式为:


其中g为sigmoid函数

如上图,左图展示了一个拟合曲线不能很好的拟合数据,这个现象被称为“欠拟合问题(underfitting)”;而最右图虽然能够很好的拟合数据,但是曲线过于复杂,当需要预测新数据时,可能会有偏差,这时候被称为“过拟合问题(overfitting)”
J。如果只关注J_{train}(训练集误差)的话,通常会导致过拟合,因此还需要关注J_{cv}(交叉验证集误差)。J_{train}和J_{cv}都很大,并且J_{train} \approx J_{cv}。对应欠拟合。J_{train}较小,J_{cv}远大于J_{train}。对应过拟合。如何理解高偏差和高方差?
(1)高偏差对应着欠拟合,此时J_{train}也较大,可以理解为对任何新数据(不论其是否属于训练集),都有着较大的J_{cv}误差,偏离真实预测较大。
(2)高方差对应着过拟合,此时J_{train}很小,对于新数据来说,如果其属性与训练集类似,它的J_{cv}就会小些,如果属性与训练集不同,J_{cv}就会很大,因此有一个比较大的波动,因此说是高方差。

就像打靶一样,偏差描述了我们的射击总体是否偏离了我们的目标,而方差描述了射击准不准。
对于 多项式回归,当次数选取较低时,我们的 训练集误差 和 交叉验证集误差 都会很大;当次数选择刚好时,训练集误差 和 交叉验证集误差 都很小;当次数过大时会产生过拟合,虽然 训练集误差 很小,但 交叉验证集误差 会很大( 关系图如下 )。

所以我们可以计算 J_{train}(θ)和 J_{cv}(θ),如果他们同时很大的话,就是遇到了高偏差问题,而 J_{cv}(θ)比 J_{train}(θ) 大很多的话,则是遇到了高方差问题。
正则化主要是用来解决过拟合问题。

右图因为比左图增加了两个参数\theta_3和\theta_4,所以造成了过拟合现象。而如果我们在最小化代价函数J(\theta)的时候,也同时把\theta_3和\theta_4缩小到近乎等于0,这时候就可以变为左图的曲线,从而解决过拟合问题。
实际上,最小化公式可以变为:

这个公式在最小化代价函数的时候,也使得\theta_3和\theta_4缩小到近乎等于0。
因为我们不知道哪个参数对模型有效果,所以可以把整体的参数都进行缩小,借鉴公式(2-1)可以把代价函数改写成:

\lambda是用来平衡“原始代价函数的值”和“参数和”之间的关系。根据公式(2-2),当使用梯度下降算法更新参数\theta时,\frac{1}{2m} \sum_i^{m}(h_\theta(x^{(i)}) - y^{(i)})^2对\theta_j求偏导数还是和原来的一样,而\lambda \sum_j^{n} \theta_j^2对\theta_j求偏导数:

\lambda中.最后公式(1-1)更新为:

同理,逻辑斯特回归加上正则项后,公式(1-2)更新为:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。