‍‍

亲爱的朋友们,多多有一段时间没有更新啦,主要是我在学习transformers突然开始思考几个神经网络相关的基本问题(模型结构越写越复杂,调包效果越来越好,是否还记得为什么而出发呢?),读者朋友也可以看看是否可以自如回答:

  1. 什么是链式法则?

  2. 什么是Jacobin矩阵?

  3. Jacobin有什么用处?

  4. 梯度的定义是什么?

  5. 方向导数和梯度的关系是什么?

  6. 神经网络中张量反向传播有什么特点?

  7. 哪些特性保证了神经网络中高效的梯度计算?

我将我的总结神经网络中的数学基础写到了一起放到了github,做成了一个网站,当然网站中也会逐渐加入之前写的transformer推送内容

https://erenup.github.io/deeplearningbasics/

还会持续更新,欢迎大家star或者提交issue/request~谢谢。

本来想一篇推送更新完,但考虑到大家时间有限,没法一次看完,于是个人觉得把最常用的章节挑出来更新一下,本文公式较多,排版尽可能简单化啦。

完整内容请查阅网站~

1.







矩阵















乘以列向量

























可以看作函数将输入











经过















变换得到输出











,那么Jacobian矩阵



















































那么

由于





















if






else 0, 所以有















2.  























3.  






向量等于自身,求













因为












所以

所以















,将其放在链式法则中进行矩阵乘法时候不会改变其他矩阵。

4.









对向量




中每个元素进行变换, 求













由于















所以

所以













是一个diagonal matrix 且



























矩阵乘以一个diagonal矩阵也就是每个元素进行幅度变换,因此链式法则中的矩阵乘以
















相当于和










做elementwise 乘法。

5.




















,求

我们开始引入更复杂的情况,因为神经网络中往往包含多次链式法则的引用,这里我们假设已经知道















,直接求













假设神经网络的损失函数




是标量,我们想计算的是损失函数对参数















的梯度。我们可以想象神经网络这个函数输入是一个






形状的参数,输出是一个标量,结合上一章节Jacobian知识我们可以知道






























形状和




一样,所以在神经网络训练的时候可以将参数减轻去参数的梯度乘以学习率。

根据链式法则,我们需要求出






























。这个三维的张量不方便表示且十分复杂,因此我们先只看对











求导
































































所以只有










时候非零

所以

所以得到
























6.

7.

假设神经网络到达softmax之前的输出为

























,




为分类数量,那么







































































































































所以






























结语

本来对于矩阵求导还有些发怵的我,在熟练以上几个公式之后发现神经网络反向传播的求导也不是那么遥不可触。希望能对大家有帮助。

觉得不错帮点个赞、转发、在看吧。谢谢

往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑温州大学《机器学习课程》视频
本站qq群851320808,加入微信群请扫码:

【深度学习】神经网络中几个常用的求导公式相关推荐

  1. 计算机视觉 | 面试题:06、ReLU函数在0处不可导,为什么在深度学习网络中还这么常用?

    问题 ReLU函数在0处不可导,为什么在深度学习网络中还这么常用? 问题背景 这是在阿里的机器学习岗一面的时候问的一个问题,最开始的问题是"为什么机器学习中解决回归问题的时候一般使用平方损失 ...

  2. 深度学习入门笔记(三):求导和计算图

    欢迎关注WX公众号:[程序员管小亮] 专栏--深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献. 2)本文仅供学术交流,非商用.所以每一部分具 ...

  3. 矩阵计算 | 常用矩阵求导公式速查

    文章目录 参考资料 常用矩阵求导公式 参考资料 Matrix Calculu The Matrix Cookbook 常用矩阵求导公式 对于一个矩阵A,向量x\mathrm{x}x,有如下求导公式: ...

  4. 深度学习框架 TensorFlow:张量、自动求导机制、tf.keras模块(Model、layers、losses、optimizer、metrics)、多层感知机(即多层全连接神经网络 MLP)

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 安装 TensorFlow2.CUDA10.cuDNN7.6. ...

  5. [深度学习] 神经网络中的 batch 和 epoch

    参考文章为 神经网络中Batch和Epoch之间的区别是什么? Sample Sample是单个数据.即有意义的数据的最小单位. 训练数据集由许多Sample组成. batch batch是一个人为设 ...

  6. 深度学习——神经网络中的activation

    神经网络中有个词叫做 activation--激活函数 现假设一神经网络N,其中w为权值参数,x为输入,b为偏置.神经网络中上层的信号  wx+b 在作为下层的输入 之前,需要 使用 激活函数激活. ...

  7. 深度学习神经网络中的MASK机制

    简单来说就是得出A然后结合A与下一个特征得出B,结合A,B与下一个特征得出C,那么整个句子的内在关联就是Z=A+B+C

  8. 深度学习算法中卷积神经网络的应用

    下面一起来探讨一下关于深度学习算法中卷积神经网络的基本概念和应用: 1.卷积神经网络基本概念 卷积神经网络也是在传统人工神经网络的基础上发展起来的,它与 BP 神经网络有很大的相似之处,但也有很大的区 ...

  9. Dataset:数据集集合(综合性)——机器学习、深度学习算法中常用数据集大集合(建议收藏,持续更新)

    Dataset:数据集集合(综合性)--机器学习.深度学习算法中常用数据集大集合(建议收藏,持续更新) 目录 常规数据集 各大方向分类数据集汇总 具体数据集分类 相关文章 DL:关于深度学习常用数据集 ...

最新文章

  1. ppt拖动就复制_学会这3个PPT技巧和29个快捷键!让你的PPT脱颖而出,领导叫好
  2. 浅谈LTE技术及实际应用方案
  3. Java IO(File类)
  4. JAVA之旅(二十八)——File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤...
  5. IntelliJ IDEA安装AngularJS插件
  6. 贝叶斯概率推断:概率分布
  7. Java SSH框架学习
  8. Docker资源配置方法(Cgroup)
  9. 校园 计算机网络设置路由器,GSWiFi路由器校园网怎么设置
  10. 联系人管理系统 Python GUI版
  11. python背单词游戏,python背单词小程序
  12. android 调用系统文件管理器(打开手机自带的文件管理器)
  13. diy一个android手机版下载,Notch DIY
  14. Failed to introspect Class [com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration]
  15. 大数据学习路线图(知识体系整理)
  16. 说说org.json.JSONObject功能和源码(二)
  17. Homework 1: COVID-19 Cases Prediction (Regression)
  18. 懒人之家-QQ客服右侧
  19. JVM第四篇之益处、常用java工具
  20. 邮箱满了,但是Web邮箱又登陆不上怎么办?

热门文章

  1. LINUX查看进程开始时间、结束时间、运行时间
  2. Keil C 里面Lib库文件的生成与调用
  3. [导入]人的一生能有几天?
  4. 数据库菜鸟不可不看 简单SQL语句小结
  5. 渗透测试网络环境搭建
  6. 神经网络学习之----Hopfield神经网络(代码实现)
  7. Virtual DOM的简单实现
  8. Django-发送注册、忘记密码邮件验证-send_mail
  9. eclipse序列化生成serialVersionUID
  10. gradient 渐变