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

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

时间:2022-11-19 06:44:05浏览次数:78  
标签:加权 修复 输出 代码 学习 用全 基础课 手写 收敛

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

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

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

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

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

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

目录

主问题:如何使训练收敛?

  • 如何找到未收敛的原因?
    答:通过打印(log)来调试,打印一些重要的值
  • 打印哪些值?
    答:前向传播的输入输出;
    后向传播的输入输出;
    更新后的权重矩阵。

任务:找到未收敛的原因并修复

  • 请通过打印的方法调试,找到异常的数据?
    答:使用Log.res模块的log和printForDebug函数来打印,找到了下面的异常数据:
    1.前向传播的输出中,隐藏层和输出层的输出向量的值都几乎为1。
    进一步发现:它们的加权和都比较大,其中隐藏层的加权和基本上都是50几,输出层的加权和基本上都是10几。
    2.后向传播的输出中,隐藏层和输出层的梯度都很小
  • 原因是什么?如何修复?

答: 对于第1个异常数据,原因是隐藏层的输入向量的个数(784)和输出层的输入向量的个数(30)都很多,导致加权和过大,从而导致sigmoid激活函数的返回接近1

对于第2个异常数据,原因是:sigmoid激活函数的返回接近1->激活函数的导数接近0->梯度很小

另外因为损失函数变化了,所以在后向传播中计算输出层的误差项时, \(\frac{

标签:加权,修复,输出,代码,学习,用全,基础课,手写,收敛
From: https://www.cnblogs.com/chaogex/p/16905389.html

相关文章

  • 数据结构实验之栈:行编辑器(手写模拟栈)
    数据结构实验之栈:行编辑器TimeLimit:1000MSMemorylimit:65536K题目描述 一个简单的行编辑程序的功能是:接受用户从终端输入的程序或数据,并存入用户的数据区。  由于......
  • 数据结构实验之栈二:一般算术表达式转换成后缀式(手写栈)
    数据结构实验之栈二:一般算术表达式转换成后缀式TimeLimit:1000MSMemorylimit:65536K题目描述对于一个基于二元运算符的算术表达式,转换为对应的后缀式,并输出之。输入输......
  • 详解主成分分析PCA与奇异值分解SVD-PCA对手写数据集的降维 & 用PCA做噪音过滤【菜菜的
    视频作者:[菜菜TsaiTsai]链接:[【技术干货】菜菜的机器学习sklearn【全85集】Python进阶_哔哩哔哩_bilibili]数据预处理章节一直用的这个数据集在本个案例中,由于PCA也有r......
  • 用300行代码手写1个Spring框架,麻雀虽小五脏俱全
    1自定义配置1.1配置application.properties文件为了解析方便,我们用application.properties来代替application.xml文件,具体配置内容如下:scanPackage=com.tom.demo1.2......
  • CNN实现手写数字识别
    手写数字识别一致是一个机器学习里面常见的案例,今天通过CNN来实现一个手写数字识别来介绍一个机器学习的流程。数据预处理fromkerasimportdatasets(x_train,y_train),(......
  • 教你手写webpack常用loader
    前言webpack作为目前主流的前端构建工具,我们几乎每天都需要与它打交道。个人认为一个好的开源产品壮大的原因应该包括核心开发者的稳定输出以及对应生态的繁荣。对于生态......
  • 实验3 手写字体识别【机器学习】
    推荐​​python实现手写数字识别(小白入门)​​原文​​MNISTHandwrittenDigitRecognitioninPyTorch​​​翻译用PyTorch实现MNIST手写数字识别(非常详细)mnist.gz/mnis......
  • 深度学习基础课:用全连接层识别手写数字(上)
    大家好~我开设了“深度学习基础班”的线上课程,带领同学从0开始学习全连接和卷积神经网络,进行数学推导,并且实现可以运行的Demo程序线上课程资料:本节课录像回放加QQ群,获得......
  • 手写堆
    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实例重新渲染。注意它仅仅影响实例本身以及插入插槽内容的子组件,而不是......