机器学习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回归中,代价函数是
为了在加法中计算高效,我们可以利用矩阵乘法。令 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 ]
矩阵相乘,有
以上是关于机器学习3 多类别分类(Multi-class Classification)和神经网络(Neural Networks)的主要内容,如果未能解决你的问题,请参考以下文章
多类别分类任务(multi-class)中为何precision,recall和F1相等?