如何提高cifar-10数据集的分类的准确率
一、问题描述
当我们在处理图像识别或者图像分类或者其他机器学习任务的时候,我们总是迷茫于做出哪些改进能够提升模型的性能(识别率、分类准确率)。。。或者说我们在漫长而苦恼的调参过程中到底调的是哪些参数。。。所以,我花了一部分时间在公开数据集 CIFAR-10 [1] 上进行探索,来总结出一套方法能够快速高效并且有目的性地进行网络训练和参数调整。
CIFAR-10 数据集有 60000 张图片,每张图片均为分辨率为 32*32 的彩色图片(分为 RGB3 个信道)。CIFAR-10 的分类任务是将每张图片分成青蛙、卡车、飞机等 10 个类别中的一个类别。本文主要使用基于卷积神经网络(编码解码器)的方法(CNN)来设计模型,完成分类任务。
首先,为了能够在训练网络的同时能够检测网络的性能,我对数据集进行了训练集 / 测试集的划分。训练集主要用户进行模型训练,测试集主要进行模型性能的评估。因此,我将 60000 个样本的数据集分成了,50000 个样本作为训练集,10000 个样本作为测试集。接下来,我们一步步来分析,如何进行模型设计和改进。
二、搭建最基础的自编码器模型
自编码器结构图示如下:
对于深度学习的模型,我们一上来肯定是采用最简单的模型,一方面能够快速地 run 一个模型,以了解这个任务的难度,另一方面能够有一个 baseline 版本的模型,利于进行对比实验。所以,我按照以往经验和网友的推荐,设计了以下的模型。
模型的输入数据是网络的输入是一个 4 维 tensor,尺寸为 (batch_size, 32, 32, 3),分别表示一批图片的个数 、图片的宽的像素点个数 32、高的像素点个数 32 和信道个数 3。首先使用多个卷积神经网络层进行图像的特征提取,卷积神经网络层的计算过程如下步骤:
编码部分
**卷积层 1**:卷积核大小 3*3,卷积核移动步长 1,卷积核个数 64,池化大小 2*2,池化步长 2,池化类型为最大池化,激活函数 ReLU。
**卷积层 2**:卷积核大小 3*3,卷积核移动步长 1,卷积核个数 128,池化大小 2*2

最低0.47元/天 解锁文章
7119

被折叠的 条评论
为什么被折叠?



