本实验系列文章目录如下,相关代码(python)托管在我的Github - SIGNS experiment,欢迎访问;

  • 1.任务描述
  • 2.MLP
  • 3.Momentum
  • 4.Batch-Norm
  • 5.Dropout
  • 6.迁移学习
  • 7.CNN

数字手势识别实验:2.MLP


基础回顾 - MLP

MLP(Multi-layer Perceptron,多层感知机)是建立在全连接基础上的多层前向神经网络。形如下图:

在隐含层数目较大时,MLP常被称作深层神经网络(DNN)。本实验拟基于Tensorflow框架实现MLP。

实验模型设计

要设计MLP模型,必须明确输入输出数据维度。根据MLP的全连接特点,由图片数据可以计算出输入维度n_x=64×64×3=12288(64×64像素大小,RGB三通道),输出维度n_y=6(即0,1,2,3,4,5)。可将问题看作是一个多分类问题。设计出MLP的初始化结构如下图示:

这里的隐含层采用ReLU激活函数,输出层采用Softmax,隐层规模与参数维度已在图中注明,可以直接基于Tensorflow写出基本的MLP实现代码(代码参考:mlp_1.py),这里的实现过程关键点有:

  • 根据tensorflow建模流程,先构建computation graph,再基于session运行。
  • 参数初始化时采用Xavier initialization,注意参数维度的设置;
  • cost计算采用cross_entropy函数;
  • 优化过程采用gradient descent,目标即为最小化cost
  • 采用mini-batch策略提高训练效率;

训练与验证

加载数据,对模型进行训练与验证,得出代价曲线变化图:

最终的误差结果为:

Train Accuracy: 1.0
Test Accuracy: 0.891667

其中一部分测试集手势图像的预测结果显示如下图示:

小结

这里的优化方法采用的是最简单的梯度下降法(GradientDescentOptimizer()),结合所学知识,可在接下来的实验中尝试采用提高训练效率的方法(trick),如采用Momentum、Batch-Norm等。

结果显示训练集已经完全拟合(Train Accuracy=1.0),同时考虑到这里只有约1k的训练样本,故需担心是否过拟合。测试集精度(Test Accuracy=0.891667)较训练集还有较大差距,同时考虑到测试集和训练集样本图像均是采用同样的方式获取的手势图像,故而不考虑dis-match问题,所以接下来应考虑如何提高模型的泛化能力(降低variance),如采用Dropout策略。

下面的实验中,我们将依次学习使用Momentum、Batch-Norm、Dropout等深度学习中常见的tricks。

下一篇:数字手势识别实验:3.Momentum(动量法优化)

【深度学习基础】数字手势识别实验:2.MLP相关推荐

  1. 【深度学习基础】数字手势识别实验:1.任务描述

    本实验系列文章目录如下,相关代码(python)托管在我的Github - SIGNS experiment,欢迎访问: 1.任务描述 2.MLP 3.Momentum 4.Batch-Norm 5. ...

  2. 人工智能 - paddlepaddle飞桨 - 深度学习基础教程 - 个性化推荐

    人工智能 - paddlepaddle飞桨 - 深度学习基础教程 - 个性化推荐 本教程源代码目录在book/recommender_system,初次使用请您参考Book文档使用说明. 说明: 硬件 ...

  3. 基于人脸的常见表情识别(1)——深度学习基础知识

    基于人脸的常见表情识别(1)--深度学习基础知识 神经网络 1. 感知机 2. 多层感知机与反向传播 卷积神经网络 1. 全连接神经网络的2大缺陷 2. 卷积神经网络的崛起 卷积神经网络的基本网络层 ...

  4. 第三章_深度学习基础

    文章目录 第三章 深度学习基础 3.1 基本概念 3.1.1 神经网络组成? 3.1.2神经网络有哪些常用模型结构? 3.1.3如何选择深度学习开发平台? 3.1.4为什么使用深层表示? 3.1.5为 ...

  5. 五万字总结,深度学习基础。

    文章目录 1 基本概念 1.1 神经网络组成? 1.2 神经网络有哪些常用模型结构? 1.3 如何选择深度学习开发平台? 1.4 为什么深层神经网络难以训练? 1.5 深度学习和机器学习的异同? 2 ...

  6. 第3章(3.11~3.16节)模型细节/Kaggle实战【深度学习基础】--动手学深度学习【Tensorflow2.0版本】

    项目地址:https://github.com/TrickyGo/Dive-into-DL-TensorFlow2.0 UC 伯克利李沐的<动手学深度学习>开源书一经推出便广受好评.很多开 ...

  7. 《机器学习系列教程》第三章 深度学习基础

    @[第三章 深度学习基础] 第三章 深度学习基础 3.1 基本概念 3.1.1 神经网络组成? 为了描述神经网络,我们先从最简单的神经网络说起. 感知机 简单的感知机如下图所示: [外链图片转存失败( ...

  8. 深度学习基础之卷积神经网络

    摘要 受Hubel和Wiesel对猫视觉皮层电生理研究启发,有人提出卷积神经网络(CNN),Yann Lecun 最早将CNN用于手写数字识别并一直保持了其在该问题的霸主地位.近年来卷积神经网络在多个 ...

  9. 深度学习基础(基本概念、优化算法、初始化、正则化等)

    2020-04-25 16:29:09 引言 深度学习目前已成为发展最快.最令人兴奋的机器学习领域之一,许多卓有建树的论文已经发表,而且已有很多高质量的开源深度学习框架可供使用.然而,论文通常非常简明 ...

最新文章

  1. 影像组学视频学习笔记(21)-影像组学常用软件推荐、Li‘s have a solution and plan.
  2. AQS源码阅读笔记(一)
  3. JS中ptototype和__proto__的关系
  4. object detection之Win10配置
  5. [Angualr 2] Using FormBuilder
  6. java二分法查找_java 中二分法查找的应用实例
  7. 自由软件基金会官宣Zoë Kooyman担任新执行董事
  8. SAP Basis常用事务代码
  9. flutter 路由
  10. 网络配置_Linux CentOS怎么配置网络
  11. 查看自己电脑连接过的WiFi密码
  12. 年薪50W+的Python程序员如何写代码
  13. 阿里云轻量应用服务器Ubuntu20.04上手体验与基本配置(图形界面,ssh,代理等)
  14. js 数组操作的push pop shift unshift 等方法
  15. 数字赋能 共创未来憨猴科技“共域时代”年度大会成功举办
  16. git拉取远程分支到本地(本地不存在的分支)
  17. 不懂技术,如何轻松制作微信H5页面?
  18. 文科男生适合学计算机吗,大学文科有哪些专业(文科男生十大专业好)
  19. mac 可以连上网,但是自带浏览器和谷歌浏览器打不开网页
  20. python+pyqt5

热门文章

  1. 关于U盘中病毒将文件改为系统文件属性并隐藏文件夹的解决方法
  2. 基于PHP的学生食堂管理系统
  3. 基于java婚纱影楼服务管理计算机毕业设计源码+系统+lw文档+部署
  4. 【翻页电子书制作软件】名编辑电子杂志大师教程 | 添加flash动画
  5. java情人节_程序员也是有情怀的!情人节看程序员如何告白
  6. SqlSession 同步为注册,因为同步未激活
  7. Cisco ASA5520 配置说明
  8. AdminEAP框架-基于AdminLTE的权限管理
  9. java队列长度_Java实现固定长度队列
  10. Unity游戏开发 怪物巡逻AI