eta 深度学习 参数_深度学习中的参数梯度推导(一)
必备的数学知识
矩阵微分与求导
前言
深度学习向来被很多人认为是“黑盒”,因为似乎很多人都不清楚深度学习的运作方式,本系列《深度学习中的数学》的连载文章主要目的就是向大家揭开深度学习背后工作的机理。
在正式开始之前,我想说一些题外话。我们经常能听到关于神经网络不具备解释性的言论,而我个人对此的观点是神经网络是具有解释性的,只是很多人在用神经网络的时候,仅仅停留在调包的层面上,那又怎么可能知道神经网络是如何运作的呢?这个问题需要从参数的梯度来窥探究竟的,如果你能手撕一遍神经网络参数的梯度推导公式,再辅以深度学习计算框架,如tensorflow或pytorch的自动求导的验证,那么原本所谓的黑盒在那时候的你看来就是个彻底的白盒了。
本系列的内容编排大致如下:
一些重要的数学预备知识:矩阵微分的数学准备 + 矩阵微分的应用demo,分为上下两个部分
DNN的前向传播算法与反向梯度推导
CNN的前向传播算法与反向梯度推导
RNN的前向传播算法与反向梯度推导 + RNN会引起梯度消失的原因分析
LSTM前向传播算法与反向梯度推导 + LSTM能解决梯度消失的原因分析
借助tensorflow的自动求导工具,验证上述所有导数推导结论的正确性
注意:
本系列默认读者已具备梯度,导数,梯度下降等基础的数学概念
本系列默认读者已具备基本的线性代数知识
1.1
数学符号
1.2
矩阵导数的定义和布局
根据求导的自变量和因变量是标量,向量还是矩阵,我们有9种可能的矩阵求导定义,形式上如下所示:
-----------简单难度-----------
总结一点就是,求导结果与因变量同形,这就是所谓的分母布局
总结一点就是,求导结果与自变量同形,这就是所谓的分子布局
感觉出一些东西了吗,所谓矩阵求导,不过是逐元素进行标量层面的求导然后排列成向量/矩阵罢了。
--------------难度稍大一点----------
1.3
矩阵求导的优势
之所以要搞矩阵微分,当然不是吃饱了撑着,而是为了在分析大量的神经网络参数的时候不容易出错。
由此可见,对于第一个例子,或许我们通过定义法尚且能又快又准地写出求导结果,但对于第二例子,按照定义出发,从标量对标量求导的角度出发,计算出y后再对x求导就显得有点繁琐了,而且还容易出错。但如果从矩阵求导的角度入手,因为是在向量/矩阵的维度上看待求导操作,所以求导的结果可以很容易写成向量和矩阵的组合,这样又高效,形式又简洁。
1.4
矩阵微分与矩阵求导
上面这个式子左边看着挺恶心的,但右边的数学含义是非常明显的,就是两个矩阵对应元素相乘然后相加,跟向量的内积类似,这个叫矩阵的内积。
1.5
矩阵微分性质归纳
上篇小结
至此,我们已了解了为什么要学矩阵求导,以及各种常见情况下(向量对矩阵,矩阵对向量,以及矩阵对矩阵的导数没提)的导数定义。此外,我们学习到矩阵微分和矩阵导数的关系,以及一些常见的矩阵微分性质。在下篇中,我们将介绍矩阵导数中的链式法则以及专门针对标量对矩阵/向量求导的核心方法-迹技巧。最后,我们将用一个2层多分类的神经网络作为例子,演习一下如何用矩阵求导来得到神经网络中的参数的梯度。
深度学习
TO BE CONTINUED
数学
文章作者: 中国电信研究院 | 刘心唯
文章内容系作者个人观点,不代表融智未来公众号的观点或立场。
你们点点“分享”,给我充点儿电吧~
eta 深度学习 参数_深度学习中的参数梯度推导(一)相关推荐
- python hist 参数_关于python中plthist参数的使用详解
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- golang 函数传多个参数_关于Golang中方法参数的传递
结构体声明 为了说明函数以及方法调用的过程,这里先定义一个struct,在下面的描述中会使用到它. type Person struct { Name string Age uint16 } 普通函数 ...
- 深度学习深度前馈网络_深度学习前馈网络中的讲义第4部分
深度学习深度前馈网络 FAU深度学习讲义 (FAU Lecture Notes in Deep Learning) These are the lecture notes for FAU's YouT ...
- iou画 yolov3_专栏 | 【从零开始学习YOLOv3】4. YOLOv3中的参数进化
原标题:专栏 | [从零开始学习YOLOv3]4. YOLOv3中的参数进化 前言:YOLOv3代码中也提供了参数进化(搜索),可以为对应的数据集进化一套合适的超参数.本文建档分析一下有关这部分的操作 ...
- 正则表达式学习日记_《学习正则表达式》笔记_Mr_Ouyang
正则表达式学习日记_<学习正则表达式>笔记_Mr_Ouyang 所属分类: 正则表达式学习日记 书名: 学习正则表达式 作者: Michael Fitzgerald 译者 ...
- finereport报表设计中模板数据集的sql语句中if的用法_报表工具中动态参数的灵活运用...
报表开发过程中,有的时候我们会觉得普通参数很难满足一些业务需求,比如第二个数据集要引用第一个数据集的结果进行计算,动态控制 SQL 的过滤条件,动态列等,如果您遇到了这种情况,可以尝试使用动态参数即 ...
- 深度学习深度前馈网络_深度学习前馈网络中的讲义第1部分
深度学习深度前馈网络 FAU深度学习讲义 (FAU Lecture Notes in Deep Learning) These are the lecture notes for FAU's YouT ...
- 深度学习 图像分类_深度学习时代您应该阅读的10篇文章了解图像分类
深度学习 图像分类 前言 (Foreword) Computer vision is a subject to convert images and videos into machine-under ...
- 小样本点云深度学习库_小样本学习综述报告
文章内容整理:Enneng Yang, Xiaoqing Cao 本文仅作为学习交流使用,如有问题,请联系ennengyang@qq.com. 1.小样本问题的研究意义✚●○ 深度学习已经在各个领域取 ...
最新文章
- CYQ.Data 数据框架系列索引
- 【控制】《多智能体系统一致性协同演化控制理论与技术》纪良浩老师-第12章-离散时间多智能体系统牵制一致性
- C++一学就废?试试这个项目包
- vue 获取当前发布的版本_Vue 3.0重磅发布!
- eovs实训报告总结心得_实训总结与心得体会3篇_心得体会
- 恶意软件伪装“正规军”,撕开Booster Cleaner“画皮”下的真相
- 蚂蚁金服OceanBase性价比是传统数据库的十倍
- Ural_1003 Parity(并查集)
- session 跟 cookie 关系
- python_9(模块补充)
- [转]vb高效编程(优化)
- 【感悟】人生本如梦,学会看淡一切。
- VUE父组件与子组件的数据传递
- android camera拍照录像切换功能
- js的validate插件异步效验
- (转)16天记住英语7000个单词,300个句子
- Jenkins自动化构建vue项目然后发布到远程服务器
- 智慧农贸收银系统有什么功能
- Java Swing 经典小游戏《飞机大战》———— (一)获取素材,创建窗口,添加滚动背景,双缓冲
- 异常-异常场景的测试