Coursera Machine Learning 学习笔记(十四)

- 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函数的代码实例:

时间: 2024-12-19 08:05:11

Coursera Machine Learning 学习笔记(十四)的相关文章

Coursera Machine Learning 学习笔记(四)

 II. Linear Regression with One Variable (Week 1) - Model representation 以之前预测房价的问题为例,假设我们回归问题的训练集(Training Set)如下所示: 我们用如下符号来描述回归问题中的量: - m 代表训练集中实例的数量 - x 代表特征/输入变量 - y 代表目标变量/输出变量 - (x,y) 代表训练集中的实例 -  代表第i个观察实例 - h 代表学习算法的解决方案或函数,也称为假设(hypothesi

Coursera Machine Learning 学习笔记(一)

之前就对Machine Learning很感兴趣,假期得闲看了Coursera Machine Learning 的全部课程,整理了笔记以便反复体会. I. Introduction (Week 1) - What is machine learning 对于机器学习的定义,并没有一个被一致认同的答案. Arthur Samuel (1959) 给出对机器学习的定义: 机器学习所研究的是赋予计算机在没有明确编程的情况下仍能学习的能力. Samuel设计了一个西洋棋游戏,他让程序自己跟自己下棋,并

Coursera Machine Learning 学习笔记(十)

- Learning rate 在梯度下降算法中,算法收敛所需要的迭代次数根据模型的不同而不同.由于我们不能提前预知,因此我们可以绘制出迭代次数和代价函数的对应关系图来观测算法在何时是趋于收敛. 当然,也有一些可以自动检测是否收敛的方法,例如我们将代价函数的变化值与某个预先设定的阈值(如0.001)进行比较,从而判断是否收敛.但是通常情况下,观测上面的图表更加直观. 梯度下降算法每次的迭代会受到学习率的影响,如果学习率过小,则达到收敛所需的迭代次数会非常高:如果学习率过大,每次迭代可能不会减小代

Coursera Machine Learning 学习笔记(十二)

- Normal equation 到目前为止,线性回归问题中都在使用梯度下降算法,但对于某些线性回归问题,正规方程方法是更好的解决方案. 正规方程就是通过求解如下方程来解析的找出使得代价函数最小的参数: 假设我们的训练集特征矩阵为X,我们的训练集结果为向量y,则利用正规方程解出向量: 以下表所示的数据为例: 运用正规方程方法求解参数为: 注意:对于那些不可逆的矩阵(通常是因为特征之间相互不独立,如同时包含英尺为单位的尺寸和米为单位的尺寸两个特征,或者是因为特征数量大于训练集的数量),正规方程的

Coursera Machine Learning 学习笔记(六)

- Gradient descent 梯度下降算法是一个用来求得函数最小值的算法,这里我们将使用梯度下降算法来求出代价函数的最小值. 梯度下降的思想是:开始的时候我们随机选择一个参数的组合并计算代价函数,之后我们寻找下一个能使得代价函数值下降最多的参数的组合. 我们持续如此过程直到一个局部最小值(local minimum),由于我们并没有完全尝试完所有参数的组合,所以我们不能够确定我们得到的局部最小值是否为全局最小值(global minimum),而且选择不同的参数组合,我们可能会找到不同的

Coursera Machine Learning 学习笔记(二)

- Supervised Learning 对于监督学习我们先看一个例子,下图中表示的是一个房价预测的例子.图中横坐标表示房屋占地面积,纵坐标表示房屋交易价格.图中的每个叉则表示一个房屋实例. 现在,我们希望能够预测一个房屋占地面积为750平方英尺的房屋的交易价格是多少.简单的方法是根据这些数据点的分布,画出一条合适的直线,然后根据这条直线来预测.当然,在此房价预测例子中,一个二次函数更加适合已有数据的分布.因此,我们可能会更加希望使用这个二次函数的曲线来进行房价预测. 因此,我们称上述这样的学

Coursera Machine Learning 学习笔记(三)

- Unsupervised Learning 在监督学习中,无论是回归问题还是分类问题,我们所用到数据都有明确的标签或相应的预测结果. 而在非监督学习中,我们现有的数据没有相应的结果或标签,有的只是特征.因此,非监督学习要解决的问题是发现这些数据是否可以分为不同的组. 非监督学习的一个典型问题是聚类问题,例如: - 分析大型数据中心网络传输数据情况,分析哪些机器在协同工作. - 社交网络分析 - 市场分割 - 天文数据分析 - 人类基因聚类分析 还有一个经典的例子是鸡尾酒会问题,在一个满是人的

Coursera Machine Learning 学习笔记(十三)

VI. Logistic Regression (Week 3) - Classification 在分类问题中,我们所尝试预测的是结果是否属于某一类(例如正确或错误).分类问题的例子有:判断一封电子邮件是否是垃圾邮件:判断一封电子邮件是否是垃圾邮件:判断一次金融交易是否是欺诈等等. 我们从二元的分类问题开始讨论. 我们将因变量(dependent variable)可能属于的两个类分别称为负向类(negative class)和正向类(positive class),则因变量 - Hypoth

Coursera Machine Learning 学习笔记(五)

- Cost function 针对训练集以及我们的假设,下面我们将考虑如何确定假设中的系数. 我们现在要做的就是选择合适的参数,参数的选取直接影响着所得到的直线对于训练集描述的准确程度.所预测的值与训练集中实际值之间的差距就是建模误差(Modeling Error). 通过计算建模误差的平方和,进而定义代价函数(Cost Function).我们的目标则是通过对参数的选择来使得代价函数最小. 通过绘制等高线,我们可以看出三维空间中确实存在一个可以使得代价函数最小的点. 下图则展示了,通过选择合