深度学习基础知识--2.3 分类问题算法
与回归问题不同的是,分类问题的输出不再是连续值,而是离散值,即样本的类别。分类问题在现实中的应用非常广泛,例如区分图片上的猫和狗、手写数字识别、垃圾邮件分类、人脸识别等。分类问题有二分类(“是”或“不是”)和多分类(多个类别中判别哪一类),而所有的多分类问题都可以转换成多个二分类问题,例如在分类动物的时候,可以逐步对猫、狗等每种动物都进行“是”或“不是”的判别,从而实现多分类的目标。本节主要以二分类问题来讨论。首先思考一个问题:能不能用回归问题的解法求解分类问题呢?答案是可以的。分类问题与普通回归问题最主要的区别在于要拟合的不是直线或曲线,而是一系列离散值。2.1节中提到的逻辑回归就可以很好地拟合线性二分类问题。逻辑回归基于如图2.4所示的逻辑函数(Logistic Function,又称为对数概率函数),即:
式中,e(.)——指数函数。
对于任意给定的输入值x,逻辑函数将其映射到范围为0~1的一个数值。当x>0时,输出值更接近1;当x<0时,输出值更接近0;x=0时为拐点,拥有最大斜率值。逻辑函数的输出值,通常被看作输出为1的概率。此外,逻辑函数的一个重要的性质在于,它是一个单调可微的函数,保证了可以使用梯度下降算法来训练模型。对于给定样本属性x,假设标签y∈{0,1},预测值[插图],这里[插图]。对于分类问题,若z(x)>0,则预测值为1;若z(x)<0,则预测值为0。这样就可以将预测值z(x)代入逻辑函数,得到:
从概率的角度来讲,可以把分类概率表达为,同样的,
对于给定数据集,在线性回归问题中,优化目标是最小化均方差,而在逻辑回归模型中,优化目标是最大化似然函数L,其计算公式为:
然而当样本数过大时,由于计算机浮点数的特性,很容易导致数值溢出,同时就计算梯度而言,连续加和的形式要比连续相乘容易。因此在实际应用中,往往对多个连续相乘项取对数处理,即使用如下公式的对数似然函数:
现在就可以用2.2节中介绍的梯度下降算法,以最小化损失函数来训练参数w,即:
这个损失函数又被称为交叉熵函数(Cross Entropy)。当y(i)的值分别为1或0时,单个样本上的损失函数J(x(i),y(i),w)分别对应式(2.21)的左或右部分。如图2.5所示,当y(i)=0时,如果h(x(i))越趋近于0,则损失函数值越小,同时斜率也越缓和;当y(i)=1时,则相反。逻辑函数对于分类错误的样本,将会产生更大的惩罚值和更大的梯度。
逻辑回归模型从回归概率的角度定义了线性二分类问题。图2.6(a)给出了线性分类器的图形表示,深色样本为y=0,浅色样本为y=1,而中间的曲线为训练得到的线性分类边界z(x)=wTx=0。当z(x)<0,即点在分界线的上方时,预测值为0,反之预测值为1。线性分类器具有很好的可解释性,然而如图2.6(b)所示的非线性分类器,实际中样本的分界线往往不是线性的。这个时候需要定义不同的参数模型,如多项式模型、支持向量机、神经网络(Neural Network)模型等,学习复杂的非线性的分类器。但值得注意的是,同样可以把非线性分类问题拆分为两部分:(1)通过特征函数将样本映射到线性空间。(2)利用线性分类模型学习最终分类边界。第3章将介绍如何利用逻辑回归模型来训练神经网络。
- 点赞
- 收藏
- 关注作者
评论(0)