写在前面:所有关于深度学习的基础知识均为鄙人的笔记分享,很多内容摘自大神们的博客或论文,因时间太长记不清了分别来自哪里。若有侵权,请联系鄙人邮箱min.wenfang@qq.com
一、逻辑回归
逻辑回归(logistic regress)是一个二分类的问题,其输出y的值为0或1。用于解决监督学习问题的学习算法。logistic regress的目的就是使预测值与真实值之间的误差最小。损失函数(Loss Function)来衡量预测值(y^(i))与真实值(y(i))之间的差异。预测值计算如下:
y^(i) = h(w * x(i) + b),h(x)为激励函数。
在logistic回归中,一般采用log函数计算loss。
成本函数是整个训练集(m个训练数据)的损失函数的平均值:
而我们的目的就是要找到参数w和b使得这个成本函数的值最小。这时候就需要用梯度下降法。
二维图像中来看,顺着导数的方向,下降速度最快,用数学公式表达即是:
其中的“:=”意思为赋值,α为学习率,通常为一个小于1的数,用来控制梯度下降过程中每一次移动的规格,相当于迈的步子大小。α的不宜太小也不宜过大:太小会使迭代次数增加,容易陷入局部最优解;太大容易错过最优解。
可以看出,给定一个样本,就输出一个概率值(分类的本质),该概率值表示的含义是这个样本属于类别’1’的概率,因为总共才有2个类别,所以另一个类别的概率直接用1减掉刚刚的结果即可。如果现在的假设是多分类问题,比如说总共有k个类别。这时候就去要用softmax regression来得到每个类别的概率。
二、softmax回归
1. 什么是Softmax
Softmax 在机器学习和深度学习中有着非常广泛的应用。尤其在处理多分类(C > 2)问题,分类器最后的输出单元需要Softmax 函数进行数值处理。关于Softmax 函数的定义如下所示:
其中,Vi 是分类器前级输出单元的输出。i 表示类别索引,总的类别个数为 C。Si 表示的是当前元素的指数与所有元素指数和的比值。Softmax 将多分类的输出数值转化为相对概率,更容易理解和比较。我们来看下面这个例子。
一个多分类问题,C = 4。线性分类器模型最后输出层包含了四个输出值,分别是:
经过Softmax处理后,数值转化为相对概率:
很明显,Softmax 的输出表征了不同类别之间的相对概率。我们可以清晰地看出,S1 = 0.8390,对应的概率最大,则更清晰地可以判断预测为第1类的可能性更大。Softmax 将连续数值转化成相对概率,更有利于我们理解。
实际应用中,使用 Softmax 需要注意数值溢出的问题。因为有指数运算,如果 V 数值很大,经过指数运算后的数值往往可能有溢出的可能。所以,需要对 V 进行一些数值处理:即 V 中的每个元素减去 V 中的最大值。
2 softmax回归
softmax回归可以解决两种以上的分类,该模型是logistic回归模型在分类问题上的推广。同样的,softmax回归的目的就是使预测值y^(i)与真实值y(i)之间的误差最小,不同的是y(i)可以有k个取值(即k类)。softmax函数的本质就是将一个K维的任意实数向量压缩(映射)成另一个K维的实数向量,其中向量中的每个元素取值都介于(0,1)之间。
激励函数如下:
此时,损失函数如下:
其中的1{.}是一个指示性函数,即当大括号中的值为真时,该函数的结果就为1,否则其结果就为0。
上述公式简化就是(下述是概率,上述是损失)