参考学习资料:http://cs229.stanford.edu/materials.html
通过对学习,掌握的知识点包括:
- 什么是 cost fuction
- Linear regression的概念
- Logistic regression的概念
============监督学习的引出==============
机器学习可以分为两个大类,一个是监督学习(supervised learning),一个是无监督学习(unsupervised learning)。监督学习的主要任务是通过给定输入样本,从而找出对应的分类或者变化的趋势,对应的术语概念就是分类和回归。之所以成为监督学习,是因为这类算法必须知道需要预测什么,即目标变量的分类信息。而无监督学习是没有类别信息的,也没有给定的目标值,需要完成的任务是将类似的对象归纳为一个类型,即聚类,或者寻找描述数据统计值得过程,即密度估计。一下是一个关于监督学习的一个例子,具体来说是实现回归:需要预测一组房子的大小和房价之间的关系:
房价和房子大小的二维显示如下:
进行建模分析:
1、代表第i-th个特征变量,这里代表的是第i个房子的房子的大小,对应上图的横坐标
2、代表第i-th个输出变量,或者目标值,在这个例子中代表需要预测的房价信息,对应上图的纵坐标
3、这样一组值,代表一组训练样本,trainning example,很多这样的的训练样本构成训练集,trainning set
4、代表特征变量构成的空间集合,代表目标值构成的空间集合
现在需要进行的任务是,确定学习算法,确立特征变量和目标值之间的存在的某种关系,即找出映射关系:,使得函数可以很好的预测测试样本,找到与之对应的目标值。在机器学习的术语中,h称为hypothesis。因此学习的模型大致如下:
以上就是监督学习的一个典型例子,更加确切的说是回归的一个例子。接下来介绍一个解决以上问题的一个解决方案:Linear regression,线性回归
===========Linear regression===========
在Linear regression中,模型建立的出发点是特征向量集&目标值集合存在某种线性关系,上面的例子中,即房子的大小和房价存在线性关系,即:
寻求的目标是,预测值和目标值的误差达到最小。通常这种误差用平方差来衡量,即:
cost function :
定义表征上述公式。这就是所谓的cost function。
cost funcion是用于:measure the accuracy
of our hypothesis(假设模型) function by using a cost function。
因此最终的目标Goal就是对最小化 :
解决以上cost function的方法有很多,在Andrew Ng的讲义中介绍了一种方法,即gradient descent,梯度下降法。
gradient descent:
Gradient descent, also known as steepest
descent, is an iterative optimization algorithm for finding a local minimum of differentiable functions. At each iteration, gradient descent operates by moving the current solution in the direction of the negative gradient of the function (the direction of
"steepest descent").
其核心思想即,对cost function J求偏导,让决定cost function的参数按照梯度下降的方向变化,一个三维的示意图说明一下这个算法:
如中的黑线即为梯度下降过程中,cost funcion的变化过程,最后cost
function达到了一个局部的最小值。最初的初始值选择不同,最后计算出的最小值以及达到收敛时的最优可能不一样。
梯度下降的算法过程如下:
对于上面的Linear regression模型而言,最后的算法实现为:
参数的更新过程为:其中:
称为learning rate,学习速率。学习速率太小,会导致梯度下降法收敛太慢,而学习速率太大,则最后计算出的hypothsis可能就不能很好的达到预测的目的。
经过线性回归的学习算法后,得到的预测效果如图所示,现在给定一个新的x值,通过函数,就可以达到预测房价的目的。
=========Logistic regression=========
Logistic
regression is a machine learning model for binary classification, i.e. learning to classify data points into one of two categories. It‘s a linear model, in that the decision depends only on the dot product of a weight vector with a feature vector. This means
the classification boundary can be represented as a hyperplane. It‘s a widely used model in its own right, and the general structure of linear-followed-by-sigmoid is a common motif in neural networks.
Logistic regression的主要目的是为了解决二分类的问题。对于0--1的分类问题,即判断好坏,是或者不是等问题,比如肿瘤的恶性或者良性,垃圾邮箱的处理问题,一般来说对于类别为0的成为negative class,而类别为1的则被成为positive
class。一般而言,相对于Linear regression中目标值的连续性,可以看出,这里的分类问题目标值更多的表现出它的离散性。
这里将Logistic regression仍然成为一种回归,我的理解是由于decision
boundry。在不等式的判决中,就算是以上的Linear regression,我们可以认为在直线上方的为大于直线所有值的一种类别,而在直线下方则是小于直线的一种类别,而在三维平面中,这种直线则表现出一种超平面,因此这种简单的分类分体仍然可以用回归的思想来解决,即通过一种曲线,可以很好的将类型分为两类。Logistic regression就是解决这种问题。
一种曲线,如下图,一种较为简单的Logistic
regression进行二分类:
其函数形式是:。
因此对于该,对于的cost
function可以理解为错误率的计算,错误率越低,则分类的错误率越高。从概率的角度出发,定义:
因此,所有个体的联合分布概率为:
因此,cost
function为:
注意,y的值在二分类问题中总是1或者0。
对该cost funcion的解释:
正确率的计算公式为:,
当正确率最大时,其负值也就最小,即对cost
function求最小值。依然采取梯度下降法进行求解:
带入到cost function中,即对上式进行反号,可以看出,最会得到的梯度和Linear
regression是一致的。梯度下降的更新过程为: