人类的视觉系统是世界奇迹之一。 考虑下面的手写数字序列:

[img]http://dl2.iteye.com/upload/attachment/0130/0307/278367c2-72b9-338a-9add-9f75d202344d.png[/img]

大多数人毫不费力地将这些数字识别为504192.这种缓解是欺骗性的。 在我们大脑的每个半球中,人类都有一个主要的视觉皮层,也被称为V1,含有1.4亿个神经元,它们之间有数以百亿计的联系。 然而,人类视觉不仅涉及V1,而且包括V2,V3,V4和V5在内的整个视觉皮质系列 - 逐渐进行更复杂的图像处理。 我们的头脑中有一台超级计算机,根据数亿年的演变进行调整,并且非常适合了解视觉世界。 识别手写数字并不容易。 相反,我们人类是惊人的,非常擅长理解我们的眼睛向我们展示的东西。 但几乎所有这些工作都是在无意识中完成的。 所以我们通常不会意识到我们的视觉系统解决问题有多艰难。

如果您尝试编写计算机程序来识别上述数字,则视觉模式识别的难度就会变得明显。 当我们自己做这件事似乎很容易突然变得非常困难。 关于我们如何识别形状的简单直觉 - “一个9在顶部有一个循环,而在右下方有一个垂直的冲程” - 结果并不是那么简单,以便在算法上表达。 当你试图精确地制定这样的规则时,你很快会迷失在例外和警告以及特殊情况之中。 它似乎无望。

神经网络以不同的方式解决问题。 这个想法是采取大量的手写数字,称为训练示例,

[img]http://dl2.iteye.com/upload/attachment/0130/0309/26bcd752-6130-3dc8-9b89-18c09a505680.png[/img]

然后开发一个可以从这些培训例子中学习的系统。换句话说,神经网络使用这些例子来自动推断识别手写数字的规则。此外,通过增加训练示例的数量,网络可以了解更多关于手写的内容,从而提高其准确性。所以,虽然我只显示了上面的100个训练数字,但也许我们可以使用数千甚至数百万或数十亿个训练示例来构建更好的手写识别器。

在本章中,我们将编写一个计算机程序,实现一个学习识别手写数字的神经网络。该程序只有74行,并且不使用特殊的神经网络库。但是这个简短的程序能够以超过96%的精度识别数字,无需人工干预。此外,在后面的章节中,我们将开发可以将准确度提高到99%以上的想法。事实上,最好的商业神经网络现在非常好,银行用它来处理支票,并由邮局来识别地址。

我们专注于手写识别,因为它对于一般学习神经网络来说是一个很好的原型问题。作为原型,它迎来了一个甜蜜点:它很具有挑战性 - 识别手写数字并不是一件容易的事情 - 但它并不是一个非常复杂的解决方案或者巨大的计算能力。此外,这是开发更深入学习等更先进技术的好方法。因此,在整本书中,我们会一再回顾手写识别的问题。在本书后面,我们将讨论这些想法如何应用于计算机视觉中的其他问题,以及语音,自然语言处理和其他领域。

当然,如果本章的要点只是编写一个识别手写数字的电脑程序,那么本章将会更短!但一路上,我们将开发许多关于神经网络的关键思想,包括两种重要类型的人工神经元(感知器和S形神经元)和神经网络的标准学习算法,称为随机梯度下降。在整个过程中,我重点解释为什么事情按照他们的方式完成,并且建立你的神经网络直觉。这需要比如果我刚刚介绍发生的事情的基本机制更长的讨论,但它是值得的,以便您获得更深的理解。在收益中,到本章结束时,我们将有助于理解深度学习是什么,为什么它很重要。

用神经集认识手写数字相关推荐

  1. 学习笔记CB009:人工神经网络模型、手写数字识别、多层卷积网络、词向量、word2vec...

    人工神经网络,借鉴生物神经网络工作原理数学模型. 由n个输入特征得出与输入特征几乎相同的n个结果,训练隐藏层得到意想不到信息.信息检索领域,模型训练合理排序模型,输入特征,文档质量.文档点击历史.文档 ...

  2. Neural Networks and Deep Learning读书笔记--神经网络应用:手写数字识别

    神经网络应用于MNIST数据手写数字识别 加载MNIST数据,用下面所描述的一小段辅助程序mnist_loader.py来完成.用于存储MNIST数据的数据结构在文档字符串中进行了描述-它是简单的内容 ...

  3. python手写汉字识别_用python实现手写数字识别

    前言 在之前的学习中,已经对神经网络的算法具体进行了学习和了解.现在,我们可以用python通过两种方法来实现手写数字的识别.这两种方法分别是多元逻辑回归和神经网络方法. 用多元逻辑回归手写数字识别 ...

  4. 机器学习:手写数字识别(Hand-written digits recognition)小项目

    该项目的所有代码在我的github上,欢迎有兴趣的同学与我探讨研究~ 地址:Machine-Learning/machine-learning-ex3/ 1. Introduction 手写数字识别( ...

  5. Python,OpenCV使用KNN来构建手写数字及字母识别OCR

    Python,OpenCV使用KNN来构建手写数字及字母识别OCR 1. 原理 1.1 手写数字识别 1.2 字母识别 2. 源码 2.1 手写数字OCR 2.2 字母OCR 参考 这篇博客将介绍如何 ...

  6. 深度学习--TensorFlow(项目)Keras手写数字识别

    目录 效果展示 基础理论 1.softmax激活函数 2.神经网络 3.隐藏层及神经元最佳数量 一.数据准备 1.载入数据集 2.数据处理 2-1.归一化 2-2.独热编码 二.神经网络拟合 1.搭建 ...

  7. 基于PyTorch框架的多层全连接神经网络实现MNIST手写数字分类

    多层全连接神经网络实现MNIST手写数字分类 1 简单的三层全连接神经网络 2 添加激活函数 3 添加批标准化 4 训练网络 5 结论 参考资料 先用PyTorch实现最简单的三层全连接神经网络,然后 ...

  8. 实验四 手写数字识别的神经网络算法设计与实现

    实验四 手写数字识别的神经网络算法设计与实现 一.实验目的 通过学习BP神经网络技术,对手写数字进行识别,基于结构的识别法及模板匹配法来提高识别率. 二.实验器材 PC机 matlab软件 三.实验内 ...

  9. 模式识别 实验四 手写数字识别的神经网络算法设计与实现

    实验四 手写数字识别的神经网络算法设计与实现 一.实验目的 通过学习BP神经网络技术,对手写数字进行识别,基于结构的识别法及模板匹配法来提高识别率. 二.实验器材 PC机 matlab软件 三.实验内 ...

最新文章

  1. 005 Android之数据存储
  2. python3 中print 显示不全问题
  3. 成为Java流专家–第2部分:中级操作
  4. mfc从文件中读取数据_Python 中的 bytes、str 以及 unicode 区别
  5. AnalogClock和DigitalClock时间和日期控件
  6. 【BZOJ5457】城市(线段树合并)
  7. 计算机维护费可以跨年吗,航天信息服务费可以跨年抵扣吗
  8. java挑战题_Java试题,你敢来挑战吗?
  9. python爬虫之urllib
  10. 等级保护三级安全建设
  11. matlab 快速傅里叶反变换函数(ifft)编写
  12. android开发 多语言和国际化(转)
  13. jquery漏洞修复方案
  14. storm throw 口袋妖怪_pokemon go游戏术语都有哪些 口袋妖怪go玩法术语攻略
  15. 灵感 | 设计平平无奇?试试这种方法!
  16. 华为路由器AR6300 取消密码重置提醒和密码长期有效
  17. 离线安装ceph集群(ceph-13.2.10)
  18. MFC 类层次结构图
  19. SQL必知必会第4版读书笔记
  20. 各电脑恢复出厂设置总结

热门文章

  1. linux vi 强制退出_linux的编辑大法
  2. center6linux ip设置,centos6固定ip地址
  3. 家用电器用户行为分析与事件识别_用户行为分析埋点实时数仓实践
  4. 36岁自学python_Python语言基础
  5. 对python的认识800字_我对python里True和False的理解
  6. jemter接口并发数怎么算_JMeter学习使用(1) - 接口GET请求并发测试
  7. iangularjs 模板_在AngularJS中使用内联模板
  8. 那些年,一起学的Java 7-3
  9. 安装asp.net mvc4后mvc3项目编译报错
  10. 位置相关属性offset(),position(),scrollTop()等