Coursera Machine Learning 学习笔记(十四)
来源:互联网 发布:英国网络制式 编辑:程序博客网 时间:2024/06/16 15:01
- Cost function
对于线性回归模型,我们定义的代价函数是所有模型误差的平方和。理论上来说,我们也可以对逻辑回归模型沿用这个定义,但是问题在于,当我们将带入到这样定义了的代价函数中时,我们得到的代价函数将是一个非凸函数(non-convex function)。
这意味着我们的代价函数有许多局部最小值,这将影响梯度下降算法寻找全局最小值。
因此,我们重新定义逻辑回归的代价函数为:
其中
与
之间的关系如下图所示:
这样构建的函数的特点是:当实际的y=1且
也为1时误差为0,当y=1但
不为1时误差随着
的变小而变大;当实际的y=0且
为0时代价为0,当y=0但
不为0为误差随着h的变大而变大。
将构建的代价函数简化如下:
带入代价函数得到:
在得到这样一个代价函数以后,我们便可以用梯度下降算法来求得能使代价函数最小的参数了。
算法为:
求导后得到:
注:虽然得到的梯度下降算法表面上看上去与线性回归的梯度下降算法一样,但是这里的假设函数与线性回归中不同,所以实际上是不一样的。另外,在运用梯度下降算法之前,进行特征缩放依旧是非常必要的。
另外,还有一些梯度下降算法之外的选择:
除了梯度下降算法以外还有一些常被用来令代价函数最小的算法,这样算法更加复杂和优越,而且通常不需要人工选择学习率,通常比梯度下降算法更加快速。这些算法有:共轭梯度(Conjugate Gradient),局部优化法(Broyden fletcher goldfarb shann, BFGS)和有限内存局部优化法(LBFGS)
fminunc是matlab和octave中都带的一个最小值优化函数,使用时我们需要提供代价函数和每个参数的求导,下面是octave中使用fminunc函数的代码实例:
- Coursera Machine Learning 学习笔记(十四)
- Coursera Machine Learning 学习笔记(一)
- Coursera Machine Learning 学习笔记(二)
- Coursera Machine Learning 学习笔记(三)
- Coursera Machine Learning 学习笔记(四)
- Coursera Machine Learning 学习笔记(五)
- Coursera Machine Learning 学习笔记(六)
- Coursera Machine Learning 学习笔记(七)
- Coursera Machine Learning 学习笔记(八)
- Coursera Machine Learning 学习笔记(九)
- Coursera Machine Learning 学习笔记(十)
- Coursera Machine Learning 学习笔记(十一)
- Coursera Machine Learning 学习笔记(十二)
- Coursera Machine Learning 学习笔记(十三)
- Coursera课程《Machine Learning》学习笔记(week1)
- coursera Machine Learning Week 1学习笔记
- coursera Machine Learning Week2 学习笔记
- coursera Machine Learning Week3-1 学习笔记
- light oj 1090 Trailing Zeroes (II)
- 分糖果
- Android中Selector的初步认识
- 如何优化服务器的性能
- 黑马程序员------学习笔记(9)android五种布局及布局属性
- Coursera Machine Learning 学习笔记(十四)
- php 常用算法
- 逆序输出链表节点
- php折半查找算法-递归实现和非递归实现
- php 数组从两端踢数循环去除
- 记些东西
- iOS模拟器iOS Simulator详细图文使用教程
- ArcGIS Runtime SDK for iOS移动开发地图图层-草图层
- 《JAVA编程思想》笔记-操作符&控制执行流程