机器学习3 多类别分类(Multi-class Classification)和神经网络(Neural Networks)

Posted 拉风小宇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习3 多类别分类(Multi-class Classification)和神经网络(Neural Networks)相关的知识,希望对你有一定的参考价值。

多类别分类

我们在上一篇博客中利用logistic回归做了二分类,这里我们继续利用logistic回归做多类别分类。
这里我们利用一种非常常见的情形作为例子,就是手写数字识别。

数据集

我们在这里用到的是课程提供的数据集,共有5000个数据,从0到9每个数字有500个数据组成,每个数据都是一张20*20像素的图,因此每张图具有400个像素点。数据集用一个矩阵表示,是5000*400的规模,下图是随机挑选了100张图进行显示


首先分为10类本质上就是做了十个分为两类:是1和不是1,是2和不是2等等。分别基于特征计算其概率,换句话说,就是计算 θTx θ T x 值的大小(这里可以看出其实二分类就是一个特例,二分类中认定的标准是大于0或者小于0,但是多分类中可以同时有好几个都是大于0的,就需要计算大小进行判别了),取对应几率最大的一个数,可以认为这个数就是最有可能出现的数,从而进行判断。至于特征,我们可以认为图片具有400个特征,就是每个像素点都是判断的一个特征,因此 θ θ 是有401个数组成的向量。

向量化Logistic回归

利用多个一对多(one-vs-all)logistic回归,为了使得训练更加有效,需要对其进行向量化,以避免进行循环(loop)操作。

向量化代价函数

在logistic回归中,代价函数是

J(θ)=1mi=1m[y(i)log(hθ(x(i)))(1y(i))log(1hθ(x(i)))] J ( θ ) = 1 m ∑ i = 1 m [ − y ( i ) log ⁡ ( h θ ( x ( i ) ) ) − ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ]
为了在加法中计算高效,我们可以利用矩阵乘法。令 X X θ分别为: X=(x(1))T(x(2))T(x(m))T,θ=θ0θ1θn X = [ − ( x ( 1 ) ) T − − ( x ( 2 ) ) T − ⋮ − ( x ( m ) ) T − ] , θ = [ θ 0 θ 1 ⋮ θ n ]

矩阵相乘,有

Xθ=(x(1))Tθ(x(2))Tθ(x(m))Tθ=θT(x(1))θT(x(2))θT(x(m)) X θ = [ − ( x ( 1 ) ) T θ − − ( x ( 2 ) ) T θ − ⋮ − ( x ( m ) ) T θ − ] = [ − θ T ( x ( 1 ) ) − − θ T ( x ( 2 ) ) − ⋮ − θ T ( x

以上是关于机器学习3 多类别分类(Multi-class Classification)和神经网络(Neural Networks)的主要内容,如果未能解决你的问题,请参考以下文章

多类别分类任务(multi-class)中为何precision,recall和F1相等?

多类别分类任务(multi-class)中为何precision,recall和F1相等?

多分类学习多标签学习多任务学习的区别

系统学习机器学习之总结--多标签分类问题

系统学习机器学习之总结--多标签分类问题

focal loss for multi-class classification