zoukankan      html  css  js  c++  java
  • 吴恩达机器学习笔记

    一、简介

    cost fuction是用来判断机器预算值和实际值得误差,一般来说训练机器学习的目的就是希望将这个cost function减到最小。本文会介绍如何找到这个最小值。

    二、线性回归的cost function

    假设现在有个一元一次方程式 h(x) = wx + b,要用来预测实际值y, 今天我输入了一组(x0, x1, x2......xm)and(y0, y1, y2, y3.......ym),那cost function = [(h(x0) - y0)**2 +......(h(xm) - ym)**2]/2m

    函数的图如下,一元一次方的线性代数cost function图都是碗状的,不会有local minimun的问题。

     接着我们就要去改变w和b来找到让cost function J函数最低的值,方法为下

    temp0 := w - α∂J(w,b)/∂w

    temp1 := b - α∂J(w,b)/∂b

    w := temp0

    b := temp1

    :=就是相当于程式语言里面的=,用右边的值取代左边。α是learning rate,在sklearn和tensorflow都可以配置,代表了学习速度,如下图所示,如果α越大代表优化的速度越快,但有可能会过头造成震荡,速度太慢会导致学习时间过长。正常情况下cost function J 都是一直下降的,如果J一直增加那就代表这边要注意的是α过大,要如何选α值呢?在教学里建议用0.01、0.1、1依序测试,看哪个的结果最好。另外要强调的是,必须要先对w,b两值进行完计算再替换,否则新的w会影响到b的计算。 

    下图以一维图表示系数逼近的过程,当wi > wmin时,J会小于0,wi会不断减少,直到趋近于wmin,当wi < wmin时,J会大于0,wi会不断增加,造成的结果也是会使wi逼近wmin。在逼近的过程,J的斜率会越来越小,所以wi变化的幅度也会逐渐趋于缓和,直到最小值时J=0。

    三、逻辑回归的cost function

    逻辑回归的方程式和线性回归的很不一样,可是有趣的是,最后推导出的公式非常类似。首先先看逻辑回归的公式,当θTx越大,h(x)就越趋近于1,当θTx越小,h(x)就越趋近于0,当θTx = 0的时候h(x)就会等于0.5。

    接下来是逻辑回归的cost function,可以看到对于y = 0 和 y = 1有两种不同的结果,所以我们要把他简化

    下面为逻辑回归cost function简化后的样子,可以看到当y = 0的时候前面的就会消失,当y = 1的时候后面的就会消失

    接着对cost function做微分就会发现跟线性回归的公式是一样的,只是h(x)的公式不同

    最后要说的是,要顺利找到cost function的最小值,必须对输入的系数做缩放,假如今天影响房价的参数有面积(0-5000),房间数(1-5)。显然面积的量太大,对J值得影响力过大,所以需要对所有的数据做调整,理想的学习数据应该是在-1 ~ 1 之间,可以利用(数据 - 平均值) / 间距 来对所有的训练数据做统一量化。

  • 相关阅读:
    西瓜书的读书笔记
    Tensorflow-gpu在windows10上的安装(anaconda)
    php 设置报错等级
    PHP 类型比较表
    PHP中的定界符格式
    php进制转换函数
    php魔法常量
    php中双$$与多$$
    php引用传值
    CSS3过渡效果实现菜单划出效果
  • 原文地址:https://www.cnblogs.com/yenpaul/p/10122276.html
Copyright © 2011-2022 走看看