• 按部就班的吴恩达机器学习网课用于讨论(6)


    梯度下降的高级优化

    三种高级算法的优点:

     这些高级算法,有对应的库实现。使用方法如:

     其中的fminunc函数提供了优化算法。参考:https://www.zhihu.com/question/45955668?sort=created

    多类别分类

    多类别分类,使用多个分类器进行分类,当输入一个样本x,输入到所有的分类器,选择一个最大的h(x),作为对应的预测类别。

    过拟合问题的处理

    如图所示,

    特征减少:丢弃特征,手工保留特征,使用模型算法等。正则化:保留所有特征,但降低参数的量级。

    正则化线性回归

    正则化在损失函数J中,添加了theta项,并使用lambda调节theta的大小。

    目标是使得损失函数最小化,则更大的lambda意味着得出更小的theta,而在线回归中,theta是作用在输入变量x上的,因此使得输入特征x对输出预测值的影响减少,实现正则化。

     在实现过程中,偏移项x0,应该是不属于特征的一部分,因此不对theta0做正则化了。

    变化形式可以发现,认为学习率alpha,控制theta大小的lambda,数据条目m,与1之间的组合表达式结果基本为0.99,那可以说是theta每次更新是使用其折扣和梯度的共同作用,以防止过拟合。 

     对应的之前和之后的正规方程如下:

    正则化逻辑回归

     给出相似的代价函数:

     类似,对其求导,结合之前的theta,进行梯度下降,更新theta:

     但是h(x)的值和线性回归不同,使用了sigmoid对线性做了变换。如下:

     

     在实现过程中,仍然可以采用fminunc函数,传入按照要求的自定义的costFunction,和其它参数,进行高级优化。

    只是现在使用的costFunction中,含有了正则化部分,用于降低过拟合。

     一个costFunction的实例如下:

    神经网络

    在线性回归,逻辑回归等的线性过程中,根据数据特征,有时候可能需要构建更复杂的模型,如构建二次,三次等的表达式模型,来拟合具体的数据,但是这样引入了更高的计算负荷。如下的公式,进行高次方的排列组合,将很大的加重数据计算量,以便正确的得到模型:

     所以使用神经网络,能更通用的表示模型吧。。

  • 相关阅读:
    四,redis6版本的使用部署
    记录篇-浪潮服务器raid卡
    sudo漏洞解决方案--源码转rpm包(spec文件编写)
    关闭 Chrome 浏览器阅读清单功能
    【转译】如何成为一个数据工程师?
    Python 用最小堆获取大量元素 topk 大个元素
    Python 实现二分查找
    Python 排序算法之堆排序,使用 heapq 实现
    Python 排序算法之归并排序
    Python 排序算法之快速排序
  • 原文地址:https://www.cnblogs.com/bai2018/p/12626240.html
Copyright © 2020-2023  润新知