需求:建立一个图像分类模型,提供自动识别有(猫、狗、飞机、汽车等等) 图片的功能
ResNet50图像分类
图像分类是最基础的计算机视觉应用,属于有监督学习类别,如给定一张图像(猫、狗、飞机、汽车等等),判断图像所属的类别。昇思使用ResNet50网络对CIFAR-10数据集进行分类。
ResNet网络介绍
ResNet50网络是2015年由微软实验室的何恺明提出,获得ILSVRC2015图像分类竞赛第一名。在ResNet网络提出之前,传统的卷积神经网络都是将一系列的卷积层和池化层堆叠得到的,但当网络堆叠到一定深度时,就会出现退化问题。下图是在CIFAR-10数据集上使用56层网络与20层网络训练误差和测试误差图,由图中数据可以看出,56层网络比20层网络训练误差和测试误差更大,随着网络的加深,其误差并没有如预想的一样减小。
ResNet网络提出了残差网络结构(Residual Network)来减轻退化问题,使用ResNet网络可以实现搭建较深的网络结构(突破1000层)。论文中使用ResNet网络在CIFAR-10数据集上的训练误差与测试误差图如下图所示,图中虚线表示训练误差,实线表示测试误差。由图中数据可以看出,ResNet网络层数越深,其训练误差和测试误差越小。
感知机
我们这个模型会接收一张图片,然后会输出一组概率,分别是该图片为 猫、狗的概率与该图片为其他图片的概率,从而通过概率来判断这张图片是 Logo 类还是 Other 类,如下图所示:
我们将上面的模型进一步拆分,看看如何才能获得这样的一组输出。
其中输入的图片,就是输入 X,将其展开后,可以获得输入 X 为 , 而模型可以看做有两个节点,每个节点都会有一个输出,分别代表着对输入为 Logo 和 Other 的判断,但这里的输出暂时还不是概率,只是模型输出的一组数值。这一部分内容 如下图所示:
上图这个结构其实就是感知机了,中间绿色的节点叫做神经元,是感知机的最基本组成单
元。上图中的感知机只有中间一层(绿色的神经元),如果有多层神经元的话,我们就称
之为多层感知机。
那什么是神经元呢?神经元是关于输入的一个线性变换,每一个输入 x 都会有一个对应的
权值,上图中的 y 的计算方式为:
其中, 是神经元的权重, 为神经元的偏移项。权重与偏移项都是通过 模型学习到的参数。 为激活函数,激活函数是一个可选参数。 那如何将一组数值,也就是 与 转换为一组对应的概率呢?这个时候 Softmax 函数 就要登场了。它的作用就是将一组数值转换为对应的概率,概率和为 1。
卷积神经网络的最大作用就是提取出输入图片的丰富信息,然后再对接上层的一些应用,
比如前面提到的图片分类。把卷积神经网络应用到图像分类原理中,得到的模型如下图所
示: