首页 > 其他分享 >深度学习基础课:用全连接层识别手写数字(上)

深度学习基础课:用全连接层识别手写数字(上)

时间:2022-11-15 05:33:06浏览次数:70  
标签:输出 数字 训练 如何 用全 基础课 手写 输入

大家好~我开设了“深度学习基础班”的线上课程,带领同学从0开始学习全连接和卷积神经网络,进行数学推导,并且实现可以运行的Demo程序

线上课程资料:
本节课录像回放

加QQ群,获得ppt等资料,与群主交流讨论:106047770

本系列文章为线上课程的复盘,每上完一节课就会同步发布对应的文章

本文为第五节课:“用全连接层识别手写数字(上)”的复盘文章

本课程系列文章可进入索引查看:
深度学习基础课系列文章索引

目录

为什么要学习本课

  • 如何用全连接层识别下面的手写数字?
    image

回顾相关课程内容

  • 第三节课:全连接层的前向和后向传播推导
    • 全连接层的网络结构是什么?
    • 如何实现前向传播?
    • 如何实现后向传播?
    • 如何实现训练?
    • 如何使用全连接层实现“判断性别Demo”?

主问题:输入是什么?

  • 输入层的输入数据是什么?
    答:手写数字图片的像素的亮度值
  • 如何处理输入数据?
    • 把整个手写数字图片作为输入数据会有什么问题?
      答:
      输出不确定;
      单个样本的像素太多,造成输入层神经元过多,训练不容易收敛;
      变化太多了(每个数字一变,整个样本就变了),训练不容易收敛;
    • 如何解决该问题?
      答:拆分成每个数字一张图片:
      image

主问题:输出是什么?

  • 需要的输出数据是什么?
    答:一个数字,范围为0-9
  • 如何设计输出层的输出数据?
    答:输出层输出10个数字,数字的范围为[0.0,1.0]
  • 如何确定输出的是哪个数字?
    答:最大的数字的序号,即为输出的数字

主问题:网络结构是什么?

  • 已知每个数字图片的像素数量为28*28=784,那么输入层节点数(神经元的个数)是多少?
    答:784
  • 输出层节点数是多少?
    答:10
  • 我们使用1层隐藏层
  • 隐藏层节点数是多少?
    答:下图为一些估计公式,我们使用第一个公式来估计,取30
    image

主问题:如何判断训练是否收敛?

  • 我们之前是如何判断的?
    答:判断loss是否接近0
  • 现在还行得通吗?
    • 损失函数需要改变吗?
      image
      答:需要
    • 如何改变?
      答:改变后的损失函数公式为: \( e=\frac{1}{n}\sum_{i=1}^n (\left\vert \overrightarrow{y_{真实}} - \overrightarrow{y_{输出}} \right\vert)^2 \)
  • 除了判断误差的方法,还有其它的方法来判断是否收敛吗?
    答:判断正确率

任务:实现训练

标签:输出,数字,训练,如何,用全,基础课,手写,输入
From: https://www.cnblogs.com/chaogex/p/16891163.html

相关文章

  • 手写堆
    voidheapup(){ inti=a[0]; while(i>1&&a[i]<a[i/2]){ swap(a[i],a[i/2]); i/=2; }}voidheapdown(){ inti=1,j; while(i*2<=a[0]){ if(i*2==a[0]||a[i*2]<......
  • 记录--手写$forceUpdate,vm.$destroy方法
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助vm.$forceUpdate(1)作用迫使Vue.js实例重新渲染。注意它仅仅影响实例本身以及插入插槽内容的子组件,而不是......
  • 手写弹出框代码详解
    1.代码<!DOCTYPEhtml><htmllang="zh-CN"><head><metahttp-equiv="content-Type"charset="UTF-8"><metahttp-equiv="x-ua-compatible"content="IE=edge"><......
  • 【Spring系列】- 手写模拟Spring框架
    简单模拟Spring......
  • 利用yolov4进行手写数字识别
    识别效果训练20000次图片标记参考​​https://github.com/theAIGuysCode/tensorflow-yolov4-tflite​​修改配置#!/usr/bin/envpython#coding=utf-8fromeasydictimpor......
  • caffe 进行手写数字训练
    案例数据准备下载链接:https://pan.baidu.com/s/10CmpZUdEVmma4A0mziu9dw提取码:dmjr复制这段内容后打开百度网盘手机App,操作更方便哦解压后放到data/mnist进入C:\Windows......
  • 自编码器_【手写数字】
    自编码器importtensorflowastffromtensorflow.keras.layersimportDensefromtensorflow.keras.modelsimportModelimportmatplotlib.pyplotaspltimportnumpyas......
  • 能不能手写Vue响应式?前端面试进阶
    Vue视图更新原理Vue的视图更新原理主要涉及的是响应式相关APIObject.defineProperty的使用,它的作用是为对象的某个属性对外提供get、set方法,从而实现外部对该属性的......
  • 手写一个JS函数,实现数组深度扁平化
    要求:把数组arr=[12,34,[122,324],[222,[333]];扁平化思路:创建一个新数组,循环原数组判断每一项是否是数组是的话先递归,在调用const或push方法,不是直接const或push。方法一......
  • 001[Js修炼]手写深拷贝
    /**//编写一个深度克隆函数,满足以下需求(此题考察面较广,注意细节)functiondeepClone(obj){}//deepClone函数测试效果constobjA={name:'jack',birthday:......