本科的时候虽然都学过这些东西,但是自己从来没有总结过这些东西,大多数时候都是抱着应付考试的态度学习的(逃~)。而且之前思考问题从来都不是以数学公式为主,不会找知识之间的关系,没有在较高维度上对这些问题进行联系与思考。最近学习老是陷入递归复习法无法自拔。算了,先简单的总结一下吧,之后面试之前可以详细的总结一波。
机器学习中的任务大多数可以分为分类问题或者回归问题。
- 输入变量与输出变量均为连续变量的预测问题是回归问题
- 输出变量为有限个离散变量的预测问题为分类问题
- 输入变量与输出变量均为变量序列的预测问题为标注问题
举个例子:
- 预测明天的气温是多少度,这是一个回归任务;
- 预测明天是阴、晴还是雨,就是一个分类任务。
在机器学习中,回归问题有很多种。例如:线性回归、多项式回归、逻辑回归(Logistic Regression)、softmax回归。下面对这些问题大概进行总结。
在讨论这些问题之前,我们首先介绍下下面要用的符号,我们一共有
线性回归
所谓线性回归就是对样本各个维度进行线性组合,这些的线性指的值对样本维度而言的,而不是对参数而言的。
线性回归模型可以用下面式子概括:
Logistic Regression
简单来说, 逻辑回归(Logistic Regression)是一种用于解决二分类(0 or 1)问题的机器学习方法,用于估计某种事物的可能性。比如某用户购买某商品的可能性,某病人患有某种疾病的可能性,以及某广告被用户点击的可能性等。 注意,这里用的是“可能性”,而非数学上的“概率”,logisitc回归的结果并非数学定义中的概率值,不可以直接当做概率值来用。该结果往往用于和其他特征值加权求和,而非直接相乘。
那么逻辑回归与线性回归是什么关系呢?
逻辑回归(Logistic Regression)与线性回归(Linear Regression)都是一种广义线性模型(generalized linear model)。逻辑回归假设因变量
Logistic Regression与softmax回归的区别如下:
- logistic回归(是非问题)中,
取0或者1; - softmax回归(多分类问题)中,
取 中的一个表示类别标号的一个数(假设共有 类)。
逻辑回归模型可以用下面式子概括
其中
所以
一个机器学习的模型,实际上是把决策函数限定在某一组条件下,这组限定条件就决定了模型的假设空间。当然,我们还希望这组限定条件简单而合理。而逻辑回归模型所做的假设是:
这个函数的意思就是在给定
这里
选择0.5作为阈值是一个一般的做法,实际应用时特定的情况可以选择不同阈值,如果对正例的判别准确性要求高,可以选择阈值大一些,对正例的召回要求高,则可以选择阈值小一些。
MSE损失函数
其中,
主要原因是逻辑回归配合MSE损失函数时,采用梯度下降法进行学习时,会出现模型一开始训练时,学习速率非常慢的情况(MSE损失函数)
交叉熵损失函数
之前我们已经讨论过交叉熵损失函数的具体含义、来源,他的表达式如下:
其中,
为类别的数量 为指示变量(0或1),如果该类别 和观测样本的类别相同就是1,否则是0; 对于观测样本属于类别 的预测概率。
对于批量样本的交叉熵计算公式是:
因为Logistic回归问题就是0/1的二分类问题,可以有
为了方便理解交叉熵损失函数的含义,我们只
在上式中,
那么对于第
其中,
那么对于一共
由以上表征正确的概率含义可知,我们希望其值越大,模型对数据的表达能力越好。而我们在参数更新或衡量模型优劣时是需要一个能充分反映模型表现误差的损失函数(Loss function)或者代价函数(Cost function)的,而且我们希望损失函数越小越好。由这两个矛盾,那么我们不妨领代价函数为上述组合对数概率的相反数:
这就是大名鼎鼎的交叉熵损失函数。其实如果从
softmax回归
Softmax回归处理多分类问题,不同于逻辑回归中
softmax回归主要是估算对于输入样本
这里的
下面来看个例子(图片来自台大李宏毅《一天搞懂深度学习》)
也就是说,softmax中的每一个类别都有自己的参数,所有这些向量通常都作为行存储在参数矩阵
下面直接来看softmax回归的交叉熵损失函数:
其中,
logistic、softmax回归和神经网络关系
神经网络是一个多层次的分类模型,其实logistic回归和softmax回归可以看出最简单的神经网络,结构如下图所示:
一般的神经网络有输入层,隐含层以及输出层构成,而上图中只有输入层和输出层,而没有隐含层。神经网络处理二分类时,输出层为一个节点,但处理
因此,可以把处理分类问题的神经网络分成两部分,特征学习和logistic回归或softmax回归。
参数冗余
Softmax 回归有一个不寻常的特点:它有一个“冗余”的参数集。为了便于阐述这一特点,假设我们从参数向量
换句话说,从参数向量
进一步而言,如果参数
注意,当
在实际应用中,为了使算法实现更简单清楚,往往保留所有参数
Softmax回归与Logistic 回归的关系
其实softmax回归是logistic回归的一般形式,logistic回归是softmax回归在
当k=2时,softmax回归的假设函数为:
前面说过softmax回归的参数具有冗余性,从参数向量
Softmax 回归 vs. k 个二元分类器
知道“one vs all”的都知道对于K元分类而言,可以训练K个二元分类器来实现K元分类,那么究竟何时该使用softmax回归,何时使用K个二元分类器呢,ng给出的标准是这样的:
如果你的数据集的K个类别是相互独立互斥的,比如手写体识别1-10,样本只能有一个类别,某一样本不可能既属于1又属于2。那么就用softmax回归
如果你的数据集的K个类别不是互斥的,比如音乐类型分类(考虑四个类别:人声音乐、舞曲、影视原声、流行歌曲),这些某类别不是互斥的,例如:一首歌曲可以来源于影视原声,同时也包含人声 。这种情况下,使用4个二分类的 logistic 回归分类器更为合适。这样,对于每个新的音乐作品 ,我们的算法可以分别判断它是否属于各个类别。
多项式回归
线性回归的局限性是只能应用于存在线性关系的数据中,但是在实际生活中,很多数据之间是非线性关系,虽然也可以用线性回归拟合非线性回归,但是效果将会很差,这时候就需要对线性回归模型进行改进,使之能够拟合非线性数据。
从下面两个图中可以看到两者之间的区别
如图所示,左图为数据呈现出线性关系,用线性回归可以得到较好的拟合效果。右图数据呈现非线性关系,需要多多项式回归模型。多项式回归是在线性回归基础上进行改进,相当于为样本再添加特征项。如右图所示,为样本添加一个
注意,这里所说的多项式回归指的是添加输入数据的多项式,而不是参数。也就是说,不管是线性回归还是多项式回归,其中的线性和多项式都是针对输入数据而言的,而不是参数。从另外一方面考虑,参数是训练出来的,所以对参数平方之类的操作并没有什么意义。
多特征下多项式回归的模型表达式?我个人猜测最简单的情况应该是这样的,线性回归中的模型表达式写成向量形式为
在这个式子中,每一个
岭回归
所谓岭回归就是为了解决过拟合问题,而在损失函数后面L2正则化。
参考
分类与回归的区别
交叉熵代价函数(损失函数)及其求导推导
逻辑回归(Logistic Regression)(一)
机器学习基础-6.多项式回归
多项式回归 Polynomial Regression
Logistic and Softmax Regression (逻辑回归和Softmax回归
softmax回归(Softmax Regression)
03.2-交叉熵损失函数.md
Related Issues not found
Please contact @zdaiot to initialize the comment