zoukankan      html  css  js  c++  java
  • coursera-斯坦福-机器学习-吴恩达-笔记week3

    1 逻辑回归

    1. classification 分类

    eg:垃圾邮件分类、交易是否是欺诈、肿瘤类别。分类的结果是离散值。

    2. sigmoid函数

      使用线性方法来判断分类问题,会出现上图中的问题,需要人工判断分界点。有些特殊的样本点,也会使得分界点发生漂移,影响准确性。我们希望我们的分类器输出范围在0~1之间,此时分类问题转化为边界问题。sigmoid函数能保证数据在0~1之间,并且越趋近于无穷大,输出趋近于1。

    假设函数预测的是对于输入x,输出为1的概率。

    3. cost function

    如果代价函数依然采用平方误差函数,得到的是一个non-convex函数,此时梯度下降无法保证收敛得到全局最优值。因此我们用另一种方式表示cost function,使它作为convex函数,易于求解。

    如果把代价函数定义为上述形式,当真实的值是1时,我们预测的值越靠近1,cost的值越小,误差越小。如果真实值是0,那么预测的值越靠近1,cost的值越大。

    简化公式:


    4. 梯度下降

    一般形式:

    计算微分部分得到:

    5. 高级优化方法

     “共轭梯度Conjugate gradient”,“BFGS”和“L-BFGS” 是可以用来代替梯度下降来优化θ的更复杂,更快捷的方法。 
    都是求J函数和偏导数,然后进行优化。后三个算法优点:都不需要手动选择学习率阿尔法(他们有内部循环,线性搜索算法,可以自动尝试学习率,并选择最好的学习率);它们的收敛速度往往比梯度下降要快。缺点:更复杂 

    6. 多分类问题

     可以理解为采用多个Losgistic分类器进行分类,针对每个样本点进行一次预测,选择概率值最大的那个。

    2 正则化

    1. 过拟合


    图一 欠拟合,高偏差。图三 过拟合,高方差。
    2 解决方法
                      1. 减少特征的数量,可以通过一些特征选择的方法进行筛选。
                      2. 正则化,通过引入一个正则项,限制参数的大小。

    3 正则化用于线性回归

    4 正则化用于逻辑回归

    比如下面的曲线,针对高次项的参数,在后面多加一项乘以1000。这样在优化损失函数的时候,会强制θ3和θ4不会很大,并且趋近于0,只有这样才会保证损失函数的值足够小。

    得到的公式如下,注意只会针对x1开始,θ0相当于只是针对偏置项设置的,因此不需要加正则项。



    但是如果λ设置的过大,相当于所有的θ都变成了0,损失函数的曲线相当于一条直线,就没有任何意义了,因此选择适合的λ很重要,后面也会讲解如何选择正确的λ。
    5 梯度下降

    添加正则项之后,梯度下降的公式就发生了变化:

     3 编程作业——实现logistic regression

    还有很多看不懂的地方,这两篇博文说的很详细:

    https://blog.csdn.net/Cowry5/article/details/80247569

    https://blog.csdn.net/u012052268/article/details/78653293

     

     

  • 相关阅读:
    oracle实例的内存(SGA和PGA)调整,优化数据库性能
    Redhat 安装perl模块
    三、Java基础---------关于继承、构造函数、静态代码块执行顺序示例讲解
    二、Java基础--02
    一、Java基础--01
    提醒用户收到短信
    手机屏幕更改
    查看手机信息和SIM卡信息
    还原和设置手机桌面背景
    wifi的开与关
  • 原文地址:https://www.cnblogs.com/icode-girl/p/9695193.html
Copyright © 2011-2022 走看看