【深度学习】Cifar-10-探究不同的改进策略对分类准确率提高

本文基于TensorFlow在CIFAR-10数据集上研究不同改进策略对分类准确率的影响。通过数据增强、模型改进(如权重衰减、dropout、批正则化、LRN)和学习率调整,逐步提高模型性能。实验证明,数据增强和批正则化显著提升准确率,过深的网络可能导致性能下降,而残差网络可有效缓解梯度消失问题。
摘要由CSDN通过智能技术生成

cifar10数据集上进行图片分类,基于tensorflow框架,

旨在探究不同的改进策略对分类准确率的影响,如何一步步得提高准确率 

一、问题描述

当我们在处理图像识别或者图像分类或者其他机器学习任务的时候,我们总是迷茫于做出哪些改进能够提升模型的性能(识别率、分类准确率)。。。或者说我们在漫长而苦恼的调参过程中到底调的是哪些参数。。。所以,我花了一部分时间在公开数据集CIFAR-10 [1] 上进行探索,来总结出一套方法能够快速高效并且有目的性地进行网络训练和参数调整。

CIFAR-10数据集有60000张图片,每张图片均为分辨率为32*32的彩色图片(分为RGB3个信道)。CIFAR-10的分类任务是将每张图片分成青蛙、卡车、飞机等10个类别中的一个类别。本文主要使用基于卷积神经网络的方法(CNN)来设计模型,完成分类任务。

首先,为了能够在训练网络的同时能够检测网络的性能,我对数据集进行了训练集/验证集/测试集的划分。训练集主要用户进行模型训练,验证集主要进行参数调整,测试集主要进行模型性能的评估。因此,我将60000个样本的数据集分成了,45000个样本作为训练集,5000个样本作为验证集,10000个样本作为测试集。接下来,我们一步步来分析,如果进行模型设计和改进。

二、搭建最简单版本的CNN

对于任何的机器学习问题,我们一上来肯定是采用最简单的模型,一方面能够快速地run一个模型,以了解这个任务的难度,另一方面能够有一个baseline版本的模型,利于进行对比实验。所以,我按照以往经验和网友的推荐,设计了以下的模型。


模型的输入数据是网络的输入是一个4维tensor,尺寸为(128, 32, 32, 3),分别表示一批图片的个数128、图片的宽的像素点个数32、高的像素点个数32和信道个数3。首先使用多个卷积神经网络层进行图像的特征提取,卷积神经网络层的计算过程如下步骤:

  1. 卷积层1:卷积核大小3*3,卷积核移动步长1,卷积核个数64,池化大小2*2,池化步长2,池化类型为最大池化,激活函数ReLU。
  2. 卷积层2:卷积核大小3*3,卷积核移动步长1,卷积核个数128,池化大小2*2,池化步长2,池化类型为最大池化,激活函数ReLU。
  3. 卷积层3:卷积核大小3*3,卷积核移动步长1,卷积核个数256,池化大小2*2,池化步长2,池化类型为最大池化,激活函数ReLU。
  4. 全连接层:隐藏层单元数1024,激活函数ReLU。
  5. 分类层:隐藏层单元数10,激活函数softmax。

参数初始化,所有权重矩阵使用random_normal(0.0, 0.001),所有偏置向量使用constant(0.0)。使用cross entropy作为目标函数,使用Adam梯度下降法进行参数更新,学习率设为固定值0.001。


该网络是一个有三层卷积层的神经网络,能够快速地完成图像地特征提取。全连接层用于将图像特征整合成分类特征,分类层用于分类。cross entropy也是最常用的目标函数之一,分类任务使用cross entropy作为目标函数非常适合。Adam梯度下降法也是现在非常流行的梯度下降法的改进方法之一,学习率过大会导致模型难以找到较优解,设置过小则会降低模型训练效率,因此选择适中的0.001。这样,我们最基础版本的CNN模型就已经搭建好了,接下来进行训练和测试以观察结果。

训练5000轮,观察到loss变化曲线、训练集准确率变化曲线和验证集准确率变化曲线如下图。测试集准确率为69.36%

结果分析:首先我们观察训练loss(目标函数值)变化,刚开始loss从200不断减小到接近0,但是在100轮左右开始出现震荡,并且随着训练幅度越来越大,说明模型不稳定。然后观察训练集和验证集的准确率,发现训练集准确率接近于1,验证集准确率稳定在70%左右,说明模型的泛化能力不强并且出现了过拟合情况。最后评估测试集,发现准确率为69.36%,也没有达到很满意的程度,说明我们对模型需要进行很大的改进,接下来进行漫长的调参之旅吧!

三、数据增强有很大的作用

使用数据增强技术(data augmentation),主要是在训练数据上增加微小的扰动或者变化,一方面可以增加训练数据,从而提升模型的泛化能力,另一方面可以增加噪

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网络毒刘

授人玫瑰,手有余香。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值