吴恩达机器学习笔记-第三周

六、逻辑回归

6.1 分类问题

对于二分类问题, 我们一般将结果分为0/1,在理解逻辑回归时可以引入感知机,感知机算是很早的分类器,但因为感知机是分布函数,也就是输出的值小于某一临界值,则分为-1,大于某一临界值,则分为1,但由于其在临界点处不连续,因此在数学上不好处理,而且感知机分类比较粗糙,无法处理线性不可分的情况,因此引入了逻辑回归,逻辑回归相当于用一个逻辑函数来处理回归的值,导致最终输出的值在[0, 1]范围内,输入范围是?∞→+∞,而值域光滑地分布于0和1之间。

小于0.5的分为0类,大于0.5的分为1类。

6.2 hypothesis

逻辑回归的hypothesis可以表示为hθ(x)=g(θTX)hθ(x)=g(θTX), 其中g 代表逻辑函数(logistic function)是一个常用的逻辑函数为S形函数(Sigmoid function),公式为: g(z)=11+e?zg(z)=11+e?z。

在这里我们可以将hθ(x)的作用理解成,对于给定的输入变量,根据选择的参数计算输出变量=1的可能性(estimated probablity)即hθ(x)=P(y=1|x;θ)(条件概率事件, 在特定的x,θ下y=1的事件发生的概率), 根据判断概率是大于0.5,还是小于0.5来决定回顾ide值是1还是0.

6.3 判定边界

在做分类的问题的时候必然会有一条边界来对数据集进行分类,在这里我们可以看到对于逻辑回归只要z大于0,则输出1,小于0则输出0,即以θTx是大于0还是小于0来作为判定边界

6.4 代价函数(损失函数)

一般来说判定一个hypothesis的好坏都是看其代价函数是否足够小(当然在后面我们会看到代价函数并不是最小就一定合适,因为这样很可能会造成过拟合),

在这里m表示数据集中数据的个数,n表示数据集的维度

现在我们来看看怎么建立逻辑回归的代价函数,因为逻辑回归的y输出的值只有0和1, 因此用欧氏距离来表示其代价函数的话所获得的函数为非凸函数,无法通过梯度下降法获得其最小值,

如上左图所示,欧氏距离表示的逻辑回归的代价函数曲线图,从曲线上看存在很多局部凸优化的点(即导数为0的点),无法下降到最低点,因此我们要根据逻辑回归的特点建立起代价函数

线性回归的代价函数为:J(θ)=1/m∑i=1m12(hθ(x(i))?y(i))2。
我们重新定义逻辑回归的代价函数为:J(θ)=1/m∑i=1mCost(hθ(x(i)),y(i)),其中

用cost(hθ(x), y)来表示hθ(x) 和y之间的误差, cost函数和hθ(x)的关系如下图所示,当y=1时,hθ(x)=1,cost函数等于0,hθ(x)=0, cost函数接近于正无穷,

我们将上面的分步函数cost整合一下表示为Cost(hθ(x),y)=?y×log(hθ(x))?(1?y)×log(1?hθ(x)),将cost函数代入到代价函数中可以得到,J(θ)=1/m∑i=1m[?y(i)log(hθ(x(i)))?(1?y(i))log(1?hθ(x(i)))]

得到上述的代价函数后我们就可以得到其运用梯度下降来求其最小值,求导的时候可以将log看作ln,并不会影响最终的结果,这样可以得到梯度下降的模型

Repeat {
θj:=θj?α1/m∑i=1m(hθ(x(i))?y(i))x(i)j
(simultaneously update all )
}

在这里的导数看上去和线性回归一样,但是里面的hθ(x)是不一样的,逻辑回归这里是sigmod函数。

6.5 简化成本和梯度下降

在进行θ的梯度下降时,我们可以用for循环来执行每一次对θ向量中的各个元素的梯度下降,但更多的是直接向量化,对向量进行操作,另外在逻辑回归的梯度下降时也可以使用特征缩放(归一化)处理,使得代价函数更快的收敛。

6.6 高级优化

除了梯度下降法,还有一些更高级的优化算法, 比如fminunc, 共轭梯度法BFGS和L-BFGS,这些算法的优点是不需要自己去选择学习速率α, 因为算法内部回去寻找最合适的学习速率,而且这些算法的收敛速度也更快,但是它的缺点就是算法太复杂,学习该算法需要一定的时间。

6.7 多类别分类:一对多

现实中存在很多多分类的问题,在处理多分类问题时可以借助二分类,首先我们看下多分类

在处理上述问题的时候我们可以借助二分类来训练多个分类器处理多分类问题,原理很简单,如下图所示,当你在训练三角形的分类器时,可以将不属于三角形的归为负类(y=0,在这里我们采用逻辑回归来做二分类的问题),而属于三角形的归为正类(y=1),

然后对于圆形和正方形依次同样处理,对于多分类问题,所需要的分类器的个数和类别的个数一样,我们可以将该分类器集合表示为hθ(x),那最终我们怎么判别测试点该分为那个类别呢?我们可以将该测试点依次用上述的分类器集合中的分类器来进行判别,然后输入概率最大(即在进行多个分类器分类时被输出的次数最多的那一类)的那个类别。因此会处理二分类问题,就可以处理多分类的问题了。

七、正则化

正则化的引入主要是为了处理过拟合的问题,通过降低模型的复杂度来实现的,也可以看作是降低模型的维度,或者说减小θ向量的长度。

7.1 、过拟合的问题

过拟合的问题又可以称为泛化能力差,即你训练出来的模型只是针对你的训练集表现的很好,而对于一些未知的数据却不会输出正确的结果,这种现象的出现是因为你在训练的过程中把训练集中各元素的特有性质带进去了,那么这样的模型是不具备学习的(即机器学习是不可行的)。

上左图属于欠拟合现象,欠拟合好处理,通过减小代价函数,增大模型的复杂度就可以解决,上右图属于过拟合现象,这种现象往往是很难处理的,因为不易发现。

就以多项式来说,x的次数越高,拟合的会越好,很容易出现右边的情况,导致学习能力差。

解决过拟合的问题:一可以在数据处理时去除那些对结果输出影响不大的特征,二就是采用正则化,正则化是保留所有的特征,但是会减小参数的大小,即降低一些特征的权重。

7.2 代价函数的正则化

因为正则化的目的是减小参数的大小,而我们在求参数的时候又是通过求代价函数的最小值来获得的,因此通过对代价函数加入正则化参数来实现这一目标。

hθ(x)=θ0+θ1x1+θ2x2+θ3x3+θ4x4,我们来看这个模型,过拟合往往是由于多项式中的高阶项造成的,在这里我们只要使这些高阶项的参数很小就可以很好的避免过拟合的现象,在这里我们假设x3,x4位高阶项,则我们可以修改代价函数

修改后的代价函数如下:minθ 1/2m[∑i=1m(hθ(x(i))?y(i))2+1000θ3+10000θ4],通过在θ前面加入一个大的系数,当要是的代价函数趋于0时,只有θ3,θ4趋于0才能实现。这种操作称为对特征的惩罚,但现实中我们不知道要惩罚哪些特征,因此我们会选择对所有的特征进行

惩罚,至于惩罚的力度我们让代价函数最优化的软件来决定,因此代价函数可以表示为

J(θ)=12m[∑i=1m(hθ(x(i))?y(i))2+λ∑j=1nθ2j]

上式中的lambda称为正则化参数,在这里我们需要选择合适的lambda,lambda过大时可能会造成hθ(x)  = θ0,如下图的红色直线

7.3 正则化的线性回归

在代价函数中加入正则化项,J(θ)=12m∑i=1m[((hθ(x(i))?y(i))2+λ∑j=1nθ2j)], 在求线性回归的代价函数最小值时我们可以使用梯度下降法,也可以使用正规方程来处理该问题,其正规方程表达式如下:

在这里括号内的矩阵必然是可逆的。

7.4 正则化的逻辑回归模型

逻辑回归的处理和线性回归一样,知识不能使用正规方程来求解,但是可以使用梯度下降法,甚至是更高级的优化算法来求解。

原文地址:https://www.cnblogs.com/jiangxinyang/p/8810684.html

时间: 2024-08-29 20:43:54

吴恩达机器学习笔记-第三周的相关文章

Coursera-AndrewNg(吴恩达)机器学习笔记——第三周

一.逻辑回归问题(分类问题) 生活中存在着许多分类问题,如判断邮件是否为垃圾邮件:判断肿瘤是恶性还是良性等.机器学习中逻辑回归便是解决分类问题的一种方法.二分类:通常表示为y?{0,1},0:"Negative Class",1:"Possitive Class". 逻辑回归的预测函数表达式hθ(x)(hθ(x)>=0 && hθ(x)<=1): 其中g(z)被称为逻辑函数或者Sigmiod函数,其函数图形如下: 理解预测函数hθ(x)的

Coursera-AndrewNg(吴恩达)机器学习笔记——第一周

一.初识机器学习 何为机器学习?A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.理解:通过实验E,完成某一项任务T,利用评价标准P对实验结果进行迭代优化! 机器学习主要包括监督学习

吴恩达第一课第三周随笔

2.1 双层神经网络 图 1 图 2 图1是一个双层网络模型,实际上有三层,但是通常把输入层给忽略掉 称为输入层 注意层了,图1层有4个节点,图2只要1个, 所以图1 应该是一个(4,3)的矩阵,图2的是一个(1,3)的矩阵 ps:坚持将前一层的特征的权重做成一列放入矩阵中,所以每一个都是(3,1)的列向量 以前一直都是使用,np.dot(.T,X),这里也同样也沿用这个设定 所以,所以 是一个(4,3)矩阵 ,b是一个[4,1]的列向量,要生成矩阵节点在前 图1的正向传播算法: A,Z的横向表

吴恩达“机器学习”——学习笔记五

朴素贝叶斯算法(Naive Bayes)(续学习笔记四) 两个朴素贝叶斯的变化版本 x_i可以取多个值,即p(x_i|y)是符合多项式分布的,不是符合伯努利分布的.其他的与符合伯努利的情况一样.(同时也提供一种思路将连续型变量变成离散型的,比如说房间的面积可以进行离散分类,然后运用这个朴素贝叶斯算法的变形). 第二个朴素贝叶斯的变化形式专门用来处理文本文档,即对序列进行分类,被称为朴素贝叶斯的事件模型(event model).这将使用一种不同的方式将邮件转化为特征向量. 之前的特征向量是:向量

【吴恩达机器学习】学习笔记——2.1单变量线性回归算法

1 回顾1.1 监督学习定义:给定正确答案的机器学习算法分类:(1)回归算法:预测连续值的输出,如房价的预测(2)分类算法:离散值的输出,如判断患病是否为某种癌症1.2 非监督学习定义:不给定数据的信息的情况下,分析数据之间的关系.聚类算法:将数据集中属性相似的数据点划分为一类. 2 单变量线性回归算法2.1 符号定义m = 训练样本的数量x = 输入变量y = 输出变量2.2 工作方式训练集通过学习算法生成线性回归函数hypothesis  hθ(x) = θ0 + θ1x 原文地址:http

吴恩达“机器学习”——学习笔记二

定义一些名词 欠拟合(underfitting):数据中的某些成分未被捕获到,比如拟合结果是二次函数,结果才只拟合出了一次函数. 过拟合(overfitting):使用过量的特征集合,使模型过于复杂. 参数学习算法(parametric learning algorithms):用固定的参数进行数据的拟合.比如线性回归. 非参数学习算法(non-parametric learning algorithms):使用的参数随着训练样本的增多而增多. 局部加权回归(locally weighted r

吴恩达“机器学习”——学习笔记四

生成学习算法 判别算法:进行P(y|x)的计算或者是进行h(x)(其中h只会是0与1)的计算. 生成学习算法:进行P(x|y)的建模,即给定类的条件下,某种特征显示的结果.同时也会对P(y)进行建模. 根据贝叶斯公式,我们可以得到,其中p(x) = p(x|y = 1)p(y = 1) + p(x|y = 0)p(y = 0).实际上,如果我们计算P(y|x)进行预测,我们不必计算分母的值,因为x是独立于y的,所以argmax是当式子取到最大值时,对应参数的取值. 高斯判别分析 多元高斯分布 如

【吴恩达机器学习】学习笔记——1.5无监督学习

1 无监督学习:在不知道数据点的含义的情况下,从一个数据集中找出数据点的结构关系. 2 聚类算法:相同属性的数据点会集中分布,聚集在一起,聚类算法将数据集分成不同的聚类.也就是说,机器不知道这些数据点具体是什么属性,到底是干什么的,但是可以将具有相同属性的数据点归为一类. 3 无监督学习的应用: 大型计算机集群:找出趋于协同工作的机器,将其放在一起将提高效率 社交网络分析:找出哪些人之间是好朋友的关系,哪些仅仅是认识 市场分割:将客户分类,找出细分市场,从而更有效的进行销售 天文数据分析:星系是

【吴恩达机器学习】学习笔记——代价函数

单变量线性回归函数  hθ(x) = θ0 + θ1x 为了使线性回归函数对数据有较好的预测性,即y到h(x)的距离都很小. 原文地址:https://www.cnblogs.com/JJJanepp/p/8453321.html