周志华《机器学习》课后习题解答系列(六):Ch5.10 - 卷积神经网络实验

2023-10-30

本系列相关答案和源代码托管在我的Github上:PY131/Machine-Learning_ZhouZhihua.

卷积神经网络实验 - 手写字符识别

这里写图片描述

注:本题程实现基于python-theano(这里查看完整代码数据集)。

1. 基础知识回顾

1.1. 核心思想

卷积神经网络(Convolutional Neural Network, CNN)是“深度学习”的代表模型之一,是一种多隐层神经网络,正被广泛用于图像处理、语音识别等热点领域。

卷积神经网络的原理和特点,集中体现在以下三个核心思想当中:

  • 局部感受野(Local Receptive Fields)
  • 权值共享(weight sharing)
  • 时间或空间的亚采样

在整合了上述三大特点之后,卷积神经网络具备了很强的畸变容忍能力,能够从复杂的对象中隐式地进行特征提取与学习

1.2. 结构和功能

卷积神经网络同多层感知机(MLP)一样,通过设置多个隐层来实现对复杂模型的学习。如下图所示是一个手写字符识别的卷积神经网络结构示意图(书p114):

这里写图片描述

从图中可以看到卷积层(convolutional layer)和采样层(pooling layer)的复合,其功能简述如下:

  • 卷积层包含多个特征映射(feature map),它们采用相应的卷积滤波器从输入中提取特征;
  • 采样层基于局部相关性原理对卷积层进行亚采样,从而在保留有用信息的同时减少数据量;

通过多层复合,隐层最终输出目标维特征向量,通过连接层和输出层输出结果。

1.3. 参数技巧

神经网络的参数设计十分重要,关于CNN模型的一些参数的考虑(如隐层特征图数目和大小、滤波器大小等),可参考Convolutional Neural Networks (LeNet)文章最后Tips and Tricks的内容。

2. 手写字符识别实验

这里,我们采用python-theano深度学习库来实现基于MNIST数据的字符识别实验。关于theano的基础使用可参考:深度学习基础 - 基于Theano-MLP的字符识别实验(MNIST)或是Deep Learning Tutorials

2.1. 数据获取及预处理

这里我们采用经过规约的数据集mnist.pkl.gz,给出该数据集的部分信息如下:

  • 维度属性:数据集包含3个子数据集,对应train_
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

周志华《机器学习》课后习题解答系列(六):Ch5.10 - 卷积神经网络实验 的相关文章

随机推荐

  • [Pytorch系列-50]:卷积神经网络 - FineTuning的统一处理流程与软件架构 - Pytorch代码实现

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 121363706 目录 第1章 关于F
  • DCMM数据能力成熟度评估模型--学习笔记(1)

    DCMM数据能力成熟度评估模型 学习笔记 1 DCMM简介 结构组成和成熟度评估等级划分 1 1 DCMM简介 1 2 DCMM结构组成 1 3 DCMM关键过程域 1 3 1 数据战略 指导方针 1 3 2 数据治理 机制保障 1 3 3
  • MySQL学习笔记

    我们经常用到的简单MySQL语句 做一个总结 对于没有基础的同学也有帮助 对于有基础的同学可以参考作为借鉴 狂神说Java 1 连接数据库语句 mysql h 服务器主机地址 u 用户名 p 用户密码 注意 p后面不能加空格 否则会被当做密
  • Servlet学习(六):Response对象

    1 Response设置响应数据功能介绍 HTTP响应数据总共分为三部分内容 分别是响应行 响应头 响应体 对于这三部分内容的数据 respone对象都提供了哪些方法来进行设置 响应行 对于响应头 比较常用的就是设置响应状态码 void s
  • docker Error response from daemon 解决

    docker Error response from daemon pull access denied for xxx repository does not exist or may require docker login denie
  • Android Studio 导入Eclipse项目

    将Eclipse项目或者其他的Android项目导入Android 会因为项目结构不一样 或者下载的grandle版本不一致 经常会导致import project卡死 解决的简单办法 首先 打开Android studio 然后impor
  • Linux shell:判断变量是否包含某个字符串的几种方法

    方法一 利用grep查找 strA long string strB string result echo strA grep strB if result then echo 包含 else echo 不包含 fi 先打印长字符串 然后在
  • Vuejs Prop基本用法

    一 使用Prop传递数据 组件实例的作用域是孤立的 这意味着不能并且不应该在子组件的模板内直接引用父组件的数据 可以使用props把数据传给子组件 prop是父组件用来传递数据的一个自定义属性 子组件需要显示的地用props选项声明 pro
  • 异常:java.lang.ClassNotFoundException: org.springframework.web.servlet.Dispatcher

    首先声明一点 导致这个异常的情况有很多种可能 我只是说一下我遇到的异常解决办法 java lang ClassNotFoundException org springframework web servlet Dispatcher 可能原因
  • Wwise音频解决方案概述

    Wwise编辑器 音频设计师在Wwise编辑器 具体使用请参考 Wwise Help 中完成声音的集成和设置 并通过UE4和unity的Wwise插件 将制作好地资源导入到游戏编辑器中 Wwise编辑器是一款插件式架构的工具 其功能由众多插
  • 使用vue+百度接口实现关键词搜索

    html代码块 div 请输入关键词 div
  • Java11安装遇到C:\ProgramData\Oracle\Java\javapath\java.exe”

    1 官网下载java11 发现根本就找不到了 官网上放置的是最新的 之前版本我找不到 只有去别人那里拿 如果你刚好也想要 可以私聊我 我到时候发给你 2 下载完成直接下一步安装就OK了 但会发现只有jdk没有jre 其实根本没必要生成出jr
  • el-dialog实现可拖曳并且可点击底层页面

    el dialog实现可拖曳并且可操作底层页面 拖曳 1 新建文件 directives js import Vue from vue v dialogDrag 弹窗拖拽属性 Vue directive dialogDrag bind el
  • 【海思SS626

    目录 一 概述 二 安装交叉编译工具 2 1 安装 aarch64 mix410 linux tgz 2 2 安装 cc riscv32 cfg11 musl 20220523 elf tar gz 2 3 检查工具链版本 打印版本则表示安
  • Android 性能优化系列:启动优化进阶

    文章目录 启动速度优化的本质因素 CPU 层面进行速度优化 减少程序的指令数 降低时钟周期时间 降低每条指令的平均时间周期 缓存层面进行速度优化 缓存的读写速度 缓存的命中率 任务调度层面进行速度优化 通过实时进程和普通进程了解任务调度机制
  • 有了 screen 和 nohup 跑深度学习代码再也不用愁了

    在服务器上跑深度学习代码 xshell断开代码就挂掉了 如何能在服务器运行程序的时候 即使关闭终端也不会影响代码呢 screen 我用的是screen 推荐这个方法 我感觉比nohup好用一万倍 1 连接服务器 下图我连接了88 99 这个
  • java基础学习总结——面向对象1

    目录 一 面向过程的思想和面向对象的思想 二 简单理解面向对象 三 面向对象的设计思想 四 对象和类的概念 五 如何抽象出一个类 六 类 对象 之间的关系 七 Java与面向对象 八 为什么使用面向对象编程 一 面向过程的思想和面向对象的思
  • [C++]:for循环for(int num : nums)

    前言 时不可以苟遇 道不可以虚行 一 基于范围的for循环的基本语法 在c 11里 为for循环 添加一个container 它就会自动迭代 实现了对于vector型变量vec的内容打印 变量i遍历vector中的每一个元素 直到vecto
  • 解决RabbitMQ报错问题

    解决RabbitMQ报错问题 rabbitmq server service RabbitMQ broker Loaded loaded usr lib systemd system rabbitmq server service disa
  • 周志华《机器学习》课后习题解答系列(六):Ch5.10 - 卷积神经网络实验

    本系列相关答案和源代码托管在我的Github上 PY131 Machine Learning ZhouZhihua 卷积神经网络实验 手写字符识别 注 本题程实现基于python theano 这里查看完整代码和数据集 1 基础知识回顾 1