前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >用TensorFlow做Kaggle“手写识别”达到98%准确率-详解

用TensorFlow做Kaggle“手写识别”达到98%准确率-详解

作者头像
用户1332428
发布于 2018-03-09 02:52:26
发布于 2018-03-09 02:52:26
1.2K0
举报
文章被收录于专栏:人工智能LeadAI人工智能LeadAI
这是一个TensorFlow的系列文章,本文是第三篇,在这个系列中,你讲了解到机器学习的一些基本概念、TensorFlow的使用,并能实际完成手写数字识别、图像分类、风格迁移等实战项目。 文章将尽量用平实的语言描述、少用公式、多用代码截图,总之这将是一份很赞的入门指南。欢迎分享/关注。

上一期,我们用Tensorflow实现了Kaggle的手写识别项目,但准确率比较低,只有92%,这次我们打算把识别的准确率提升到98%以上。

为什么不是上次说的提升到99%以上呢?因为92%到98%是比较容易的,而再从98%到99%是要费不少功夫的,一篇文章难以承载这么多内容,所以将会分成两篇文章,首先是从92%到98%,下一次是从98%到99%。

不要小看提升1%,越往后面,难度就越大。如果我们做到99%准确率,在Kaggle的手写识别这个项目上,也就进入了前25%了,可以说入门了。

回顾上期

上期我们学习了梯度下降、神经网络、损失函数、交叉熵等概念,然后用42000张图片数据训练了一个简单的神经网络,准确度92%。可以说,这只是一个Hello World。

Hello World
Hello World

如何进行改进

首先,这次我们将使用卷积神经网络来进行图片识别。众所周知,卷积神经网络对于图片识别是非常有效的。

这里我打算这样来构建这个卷积神经网络:

卷积层1+池化层1+卷积层2+池化层2+全连接1+Dropout层+输出层

然而,什么是卷积神经网络?什么是卷积层、池化层、全连接层?Dropout又是什么鬼?

1、什么是卷积神经网络?

我们人看到一幅图像,眨眼之间就知道图像中有什么,图像中的主体在干什么。但计算机不同,计算机看到的每一副图像都是一个数字矩阵。那我们怎么让计算机从一个个数字矩阵中得到有用的信息呢,比如边缘,角点?更甚一点,怎么让计算机理解图像呢?

对图像进行卷积,就是接近目标的第一步。

图像在计算机里的表示可能是这样的:

对图像卷积,就是求卷积核作用在图像后,得到的图像对于该卷积核的累加数值。这些累加的数值可以代表这个图片的一些特征。

如果是针对猫进行识别,人可能知道猫头,猫尾巴等特征。CNN对图片进行处理后,也会学习到一些特征,它可能不知道猫头、猫尾巴这些特征,但也会识别出一些我们可能看不出来的特征,CNN通过这些学习到的特征去做判断。

2、什么是卷积层

卷积层的作用是指对图片的矩阵进行卷积运算,得到一些数值,作为图片的某些特征

3、什么是池化层

池化曾的作用是对上层的数据进行采样,也就是只留下一部分,这样的作用是可以缩小数据量和模糊特征。

4、什么是全连接层

全连接层就是连在最后的分类器。前面卷积层和池化层进行处理后,得到了很多的特征,全连接层使用这些特征进行分类。比如识别数字,那就是对0~9的十个类别进行分类。

5、Dropout是什么?

Dropout层是为了防止CNN对训练样本过拟合,而导致处理新样本的时候效果不好,采取的丢弃部分激活参数的处理方式。

这里对这些概念的解释都是比较简单的,如果希望详细了解,可以看知乎的这个链接:

CNN卷积神经网络是什么?(https://www.zhihu.com/question/52668301)

代码实现

1 标签的处理

2 把数据分为训练集和验证集

3 定义处理数据的函数

4 定义网络的结构

5 定义各类参数

6 进行训练

生成结果

这里迭代20个周期:

7 验证集上的准确度

然后我们使用这个模型对Kaggle的测试集进行预测,并生成cvs格式的结果

8 生成结果

这里建议跑30轮以上,因为在验证集上有98.35%准确率,上传到Kaggle往往就只有百分之九十七点几的准确率了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-10-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 人工智能LeadAI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
零基础用TensorFlow玩转Kaggle的“手写识别”
这是一个TensorFlow的系列文章,本文是第二篇,在这个系列中,你讲了解到机器学习的一些基本概念、TensorFlowa的使用,并能实际完成手写数字识别、图像分类、风格迁移等实战项目。 文章将尽量用平实的语言描述、少用公式、多用代码截图,总之这将是一份很赞的入门指南。欢迎分享/关注。 上一篇:《五分钟喝不完一杯咖啡,但五分钟可以入门TensorFlow》 今天将用TensorFlow实现一个手写数字识别功能,来展示TensorFlow如何用神经网络实现对图片的识别。google也为入门者提供了一个这样
用户1332428
2018/03/09
9020
零基础用TensorFlow玩转Kaggle的“手写识别”
最终章 | TensorFlow战Kaggle“手写识别达成99%准确率
这是一个TensorFlow的系列文章,本文是第三篇,在这个系列中,你讲了解到机器学习的一些基本概念、TensorFlow的使用,并能实际完成手写数字识别、图像分类、风格迁移等实战项目。 文章将尽量
用户1332428
2018/03/09
9890
最终章 | TensorFlow战Kaggle“手写识别达成99%准确率
10分钟教你用python 30行代码搞定简单手写识别!
毕业季刚结束,眼瞅着2018级小萌新马上就要来了,老腊肉小编为了咱学弟学妹们的学习,绞尽脑汁准备编一套大学秘籍,这不刚开了个头就遇上了个难题——做笔记到底是手写笔记好呢还是电子笔记好呢?
短短的路走走停停
2019/05/28
8081
30行代码搞定简单手写识别!
毕业季刚结束,眼瞅着2018级小萌新马上就要来了,老腊肉小编为了咱学弟学妹们的学习,绞尽脑汁准备编一套大学秘籍,这不刚开了个头就遇上了个难题——做笔记到底是手写笔记好呢还是电子笔记好呢?
用户1621951
2019/10/18
6950
[TensorFlow深度学习入门]实战六·用CNN做Kaggle比赛手写数字识别准确率99%+
参考博客地址 本博客采用Lenet5实现,也包含TensorFlow模型参数保存与加载参考我的博文,实用性比较好。在训练集准确率99.85%,测试训练集准确率99%+。
小宋是呢
2019/06/27
9670
视频 | 手把手教你构建图片分类器,备战 kaggle 大赛!
AI 研习社按:今天为大家带来硅谷深度学习网红 Siraj 的一则教学视频:如何从零开始构建一个图像分类器来对猫和狗进行分类。(内心OS:终于要开始图像部分了!)具体视频内容如下,Github 链接详见文末“阅读原文”。 为了照顾没有 WiFi 的小伙伴,我们特别提供了以下根据视频内容整理的文字版(hin 贴心有木有!): 图像分类发展历史 在80年代和90年代初出现了一些不同的尝试,都用了类似的方法——根据图片的构成特征来给每张图片手动编码进行分类,但变量实在太多了——世界上没有相同的两片叶子。所以结
AI研习社
2018/03/19
1.1K0
视频 | 手把手教你构建图片分类器,备战 kaggle 大赛!
转型AI产品经理需要掌握的硬知识二:AI常见概念和算法梳理
上一篇文章介绍AI产品经理能力模型,人工智能的发展历史,人工智能常见概念的结构梳理,也简要做了BAT人工智能的优势分析,感兴趣的朋友可以点击链接查看上文。转型AI产品经理需要掌握的硬知识一:AI产品能力框架和看待AI的几个视角 本文将继续介绍Ai产品经理需要理解的一些概念,常见AI算法,机器学习的工作方式和三大流派,使用Tensorflow实现手写数字识别,帮助大家理解技术实现流程和一些AI技术名词,更有助于同AI科学家或AI工程师的沟通。
用户2559057
2018/08/27
8540
转型AI产品经理需要掌握的硬知识二:AI常见概念和算法梳理
高精度人脸表情识别(附GitHub地址)
编者按:本文原作者吴捷,目前于中山大学就读研究生。研究领域为计算机视觉与自然语言处理。本文原载于知乎,经作者授权发布。欢迎去GitHub给大佬加星。
CV君
2019/12/27
10.4K1
高精度人脸表情识别(附GitHub地址)
TensorFlow系列专题(十四): 手把手带你搭建卷积神经网络实现冰山图像分类
这里我们要解决的任务是来自于Kaggle上的一道赛题(https://www.kaggle.com/c/statoil-iceberg-classifier-challenge),简单介绍一下赛题的背景:在加拿大的东海岸经常会有漂流的冰山,这对航行在该海域的船舶造成了很大的威胁。挪威国家石油公司(Statoil)是一家在全球运营的国际能源公司,该公司曾与C-CORE等公司合作,C-CORE基于其卫星数据和计算机视觉技术建立了一个监控系统。Statoil发布该赛题的目的是希望利用机器学习的技术,更准确的及早发现和识别出威胁船舶航行的冰山。
磐创AI
2019/05/14
6370
TensorFlow系列专题(十四): 手把手带你搭建卷积神经网络实现冰山图像分类
一步步提高手写数字的识别率(3)
在前面的两篇文章《一步步提高手写数字的识别率(1)》和《一步步提高手写数字的识别率(2)》中,我们分别介绍了使用Softmax回归和神经网络来实现手写数字识别,其准确率分别在92和98%左右,这在机器学习领域是一个非常不错的准确率,如果我们采用卷积神经网络,准确率还可以进一步提升。
云水木石
2019/07/02
7570
一步步提高手写数字的识别率(3)
苹果推出高精度手写识别系统,可准确识别3万字符集
安妮 编译自 苹果机器学习博客 量子位 出品 | 公众号 QbitAI 在手机、平板和可穿戴设备不断普及的今天,手写识别比以往任何时候都重要。但这并非易事,拿汉字来说,让移动设备识别大量手写汉字字符还是个挑战。 今天,苹果机器学习博客发表文章《Real-Time Recognition of Handwritten Chinese Characters Spanning a Large Inventory of 30,000 Characters》,介绍了苹果如何在iPhone、iPad和Apple Wat
量子位
2018/03/26
2.1K0
苹果推出高精度手写识别系统,可准确识别3万字符集
基于TensorFlow和Keras的图像识别
TensorFlow和Keras最常见的用途之一是图像识别/分类。通过本文,您将了解如何使用Keras达到这一目的。
小白学视觉
2019/10/13
2.8K0
卷积神经网络概述
在 2012 年的 ILSVRC 比赛中 Hinton 的学生 Alex Krizhevsky 使用深度卷积神经网络模型 AlexNet 以显著的优势赢得了比赛,top-5 的错误率降低至了 16.4% ,相比第二名的成绩 26.2% 错误率有了巨大的提升。 AlexNet 再一次吸引了广大研究人员对于卷积神经网络的兴趣,激发了卷积神经网络在研究和工业中更为广泛的应用。现在基于卷积神经网络计算机视觉还广泛的应用于医学图像处理,人脸识别,自动驾驶等领域。越来越多的人开始了解卷积神经网络相关
磐创AI
2018/04/24
9780
卷积神经网络概述
独家 | 如何在确保准确度>99%的前提下减少CNN的训练参数(附链接)
文:Sabrina Göllner 翻译:陈之炎 校对:zrx 本文约4800字,建议阅读10分钟 本文来自 Niantic 和 UCL 等机构的研究者使用精心设计和训练的 2D 网络,实现了高质量的深度估计和 3D 重建。 标签:CNN训练 性能优良的神经网络不一定要很大。 图Uriel SC (Unsplash) 近年来,图像识别领域的研究主要集中在深度学习技术上,并且取得了很好的进展。卷积网络(CNNs)在感知图像结构方面非常有效,它能够自动提取独特的特征。然而,大型神经网络往往需要大量的算力和长时
数据派THU
2022/09/27
5810
独家 | 如何在确保准确度>99%的前提下减少CNN的训练参数(附链接)
干货|如何做准确率达98%的交通标志识别系统?
摘要: 我们可以创建一个能够对交通标志进行分类的模型,并且让模型自己学习识别这些交通标志中最关键的特征。在这篇文章中,我将演示如何创建一个深度学习架构,这个架构在交通标志测试集上的识别准确率达到了98%。 交通标志是道路基础设施的重要组成部分,它们为道路使用者提供了一些关键信息,并要求驾驶员及时调整驾驶行为,以确保遵守道路安全规定。如果没有交通标志,可能会发生更多的事故,因为司机无法获知最高安全速度是多少,不了解道路状况,比如急转弯、学校路口等等。现在,每年大约有130万人死在道路上。如果没有这些道路标志
IT派
2018/03/29
2.3K0
干货|如何做准确率达98%的交通标志识别系统?
如何用NumPy搭建卷积神经网络实现手写数字识别(附代码)
当Yann LeCun发表了他关于开发一种新型神经网络架构——卷积神经网络(Convolutional neural network, CNN)——的研究成果时,他的工作基本上没有引起注意。在2012年的ImageNet计算机视觉大赛上,来自多伦多大学的一组研究人员花了14年的时间将CNN引入公众视野。当他们从数千个类别的中对数百万张图片进行分类时,只产生了15.8%的错误。快进到现在,当前最先进的卷积神经网络实现的精度超过人类水平的性能。
HuangWeiAI
2020/03/18
2.3K0
如何用NumPy搭建卷积神经网络实现手写数字识别(附代码)
教程 | 22分钟直冲Kaggle竞赛第二名!一文教你做到
选自微软机器学习博客 机器之心编译 参与:陈韵竹、路雪 本文介绍了如何使用微软 DVSM、利用迁移学习技术在 20 多分钟时间内达到 Kaggle 猫狗识别竞赛的第二名的性能。 引言 几周前,我写了一
机器之心
2018/05/09
1.1K0
教程 | 22分钟直冲Kaggle竞赛第二名!一文教你做到
如何一步一步提高图像分类准确率?
一、问题描述 当我们在处理图像识别或者图像分类或者其他机器学习任务的时候,我们总是迷茫于做出哪些改进能够提升模型的性能(识别率、分类准确率)。。。或者说我们在漫长而苦恼的调参过程中到底调的是哪些参数。。。所以,我花了一部分时间在公开数据集 CIFAR-10 [1] 上进行探索,来总结出一套方法能够快速高效并且有目的性地进行网络训练和参数调整。 CIFAR-10 数据集有 60000 张图片,每张图片均为分辨率为 32*32 的彩色图片(分为 RGB3 个信道)。CIFAR-10 的分类任务是将每张图片分
AI研习社
2018/03/19
2.2K0
如何一步一步提高图像分类准确率?
[TensorFlow深度学习入门]实战九·用CNN做科赛网TibetanMNIST藏文手写数字数据集准确率98%+
我们在博文,使用CNN做Kaggle比赛手写数字识别准确率99%+,在此基础之上,我们进行对科赛网TibetanMNIST藏文手写数字数据集训练,来验证网络的正确性。
小宋是呢
2019/06/27
6190
一步步提高手写数字的识别率(2)
在前面一篇文章《一步步提高手写数字的识别率(1)》中,我们使用Softmax回归实现了一个简单的手写数字识别程序,在MNIST数据集上的准确率大约为92%。这是一个线性模型,其特点是简单易用,但拟合能力不强。而深度神经网络在线性模型的基础上引入隐藏层,并增加非线性激活函数,使得拟合复杂函数的能力大大增强。
云水木石
2019/07/01
8590
一步步提高手写数字的识别率(2)
推荐阅读
相关推荐
零基础用TensorFlow玩转Kaggle的“手写识别”
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档