jax可微分编程的笔记(8)

jax可微分编程的笔记(8)

第八章 循环神经网络

神经网络是可微分编程中最为重要的模型构造形式,也是当代
深度学习的基本组成部分,深度学习中的“深度”一词,便是对
神经网络的层数的形容。

8.1 神经网络的生物学基础

通过层层近似,从复杂的生物学模型中抽象出一系列较为简化
的数学结构。简单了解计算神经科学后,让我们对数学意义上
的“神经网络”,有了更加丰富的物理直觉。

8.1.1 神经元的电化学性质

神经网络的基本组成单元称为神经元(neuron),又称为神经细胞。
它是一个来自于生物学的术语。神经元可以被视作一个“装有带
电液体的漏水的袋子”。

在可微分编程的语境之下,对膜电位和细胞溶质输运过程的讨论
之所以显得重要,是因为相连接的神经元为我们提供了一个绝好的
物理图像,使得数学意义下“神经网络”较为抽象的训练过程,开始
变得更加真实而具体可感。

各种门控离子通道的存在,使得不同的神经元之间的相互“交流”
成为了可能。

8.1.2 神经元输出过程的建模

由于不同种类的膜蛋白具有不同的动力学性质,我们需要对它们
分别进行建模。膜电位与时间的非线性关系,用非线性函数来描述。
在深度学习中,这样的非线性函数称为激活函数。激活函数的选取
方式极为多样。例如,当我们需要对函数的输出范围进行限制(比如
某一事件发生的概率只能在范围[0,1]包含于R之内)则可以选取
sigmoid函数。常用的sigmoid函数有逻辑斯蒂函数和双曲正切函数。
delta(x)=1/(1+exp(-x))    tanh(x)=(exp(x)-exp(-x))/(exp(x)+exp(-x))

为了解决sigmoid函数带来的梯度消失的问题,ReLU函数(rectified linear unit
修正线性单元)成为最受欢迎的激活函数之一。
ReLU(x)=max(x,0)
ReLU函数在原点处并不连续,为此可以使用softplus函数作为对ReLU函数的近似。
softplus(x)=ln(1+exp(x)) 对于多分类问题,我们还可以采用softmax等激活函数。

8.1.3 神经元构成网络的建模

根据推导,得到公式 tr dv(t)/dt =-v(t)+f(Wu(t))
这个公式是对神经网络讨论的起点,其中的函数f对应着单个神经元的激活函数。
在平衡状态下,表达式v=f(Wu)刻画了一层前馈神经网络中所蕴含的数据结构。
例如4.2.4节中表达式h(x;0)=softmax(wx+b)就相当于给出了神经网络的
一个全连接层。同一层神经元间存在通过突触的相互连接,这样的网络结构被
称为循环神经网络。


8.2 循环神经网络

对于音乐,股票,文字等存在顺序的样本输入,独立同分布假设一般将不再成立。
此时我们期待循环神经网络,表现出色。

8.2.1 简单循环神经网络

设计循环神经网络的要点,在于为单向传播的网络引入反馈的结构。
从递推关系导出微分方程的过程利用了将离散变量连续化的思想。
同样,依照第7章关于动量法的讨论,在时间尺度上离散化,可以把
8.24的微分方程,相当自然地推导得到8.27的递推关系,在这样的
视角下,循环神经网络的训练过程,不过是对生物学意义上神经网络
系统的一次物理模拟,令其“学习”到最优的参数.

8.2.2 循环神经网络的梯度回传

在自然语言处理的语境中,我们通常会选取交叉熵作为词向量之间的
损失函数,并选择softmax作为输出函数G中的激活函数。

对于存在上界Mc<1的情形,梯度在实际传递的过程中容易出现梯度消失
的现象,从而给计算效率带来相当的损失。为了缓解由梯度消失带来的
计算资源的浪费,人们通常会对时间步进行截断。

当序列|Cn|的上确界Mc>=1时,尽管在实践中时间步永远为有限值,但不
稳定的级数,暗示着类似于蝴蝶效应,梯度爆炸等一系列病态数值现象存在。

梯度裁剪的本质,是在梯度矢量的范数过大时动态地调整学习率的大小。
尽管它实际上并未完全解决梯度爆炸的问题,但至少为该问题提供了一个
快速的修复方式。

简单循环神经网络在时间尺度上的收敛性,取决于隐藏层节点间权重矩阵
M的最大本征值λmax;而一般循环神经网络中隐藏层参数的梯度,其理论上界
的存在性,则取决于序列{|Cn|}{n=1,T}的上确界Mc。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/712494.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智能驾驶规划控制理论学习02-基于搜索的路径规划方法

目录 一、路径搜索问题 二、图论基础 三、图搜索方法 1、广度优先搜索&#xff08;BFS&#xff09; bfs与dfs的区别 bfs的搜索过程 bfs的算法实现 2、迪杰斯特拉算法&#xff08;Dijkstra&#xff09; 核心思想 优先级队列 Dijkstra搜索过程 Dijkstra优缺点…

【.NET Core】深入理解IO - FileSteam流

【.NET Core】深入理解IO - FileSteam流 文章目录 【.NET Core】深入理解IO - FileSteam流一、IO流概述二、文件流FileStream2.1 FileStream概述2.2 FileStream检测流位置更改2.3 FileStream构造函数2.4 FileStream常用属性2.5 FileStream.Read方法2.6 FileStream.Write方法2.7…

插混、油混、增程式、轻混、强混,啥区别

这里写自定义目录标题 随着我国新能源汽车的大力推进&#xff0c;电车可以说是世界未来的主流&#xff0c;只不过现在是处在一个过渡时代 这是个好时代&#xff0c;因为我们见证并体验着历史过渡的细节 这是个不好的时代&#xff0c;因为我们可能只是未来新新人类的试验品 帮他…

MyBatis 学习(三)之 MyBatis 全局配置文件

目录 1 MyBatis 全局配置文件 2 properties 元素 3 setting 设置 4 typeAlianses 别名处理器 5 typeHandler 类型处理器 6 objectFacotry 对象工厂&#xff08;了解&#xff09; 7 plugins 插件&#xff08;了解&#xff09; 8 environments 运行环境 9 databaseIdPro…

今日arXiv最热大模型论文:点击即可播放!港中文发布大模型写歌神器!

一首歌&#xff0c;包含作词作曲两个部分。擅长作词or作曲就已经很牛了。比如方文山是周杰伦的御用作词人&#xff0c;而周杰伦写过很多耳熟能详的曲子。而兼具作词作曲才华的全能创作人却是难得一见。 最近港中文发布了一款歌曲创作大模型SongComposer&#xff0c;作词作曲都…

自测-1 打印沙漏

文章预览&#xff1a; 题目算法代码 题目 算法 以前做过这个&#xff0c;那次是c语言写的&#xff0c;一点一点处理一层一层完成&#xff0c;这次我换了一种语言用了另一种思想使用递归去写&#xff0c;还是我们要先求出应该有多少层这个很容易&#xff0c;中间输出部分我们算…

常见查找算法Java实现

顺序&#xff08;线性&#xff09;查找二分查找/折半查找插值查找斐波那契查找 线性查找 判断数列是否包含要求&#xff0c;如果找到了&#xff0c;就提示找到了&#xff0c;并给出下标值 // 线性查找 public static ArrayList<Integer> seqSearch(int[] arr, int value…

解决 npm install 报错的问题

在使用 npm 安装依赖包时&#xff0c;有时候会遇到各种报错问题&#xff0c;以下是一些常见的报错及解决方法&#xff1a; 1. ENOENT: no such file or directory 如果出现类似 ENOENT: no such file or directory 的报错&#xff0c;可能是因为某些文件或目录缺失或路径错误…

动态规划课堂3-----简单多状态问题(买卖股票最佳时机)

目录 引入&#xff1a; 例题1&#xff1a;按摩师&#xff08;打家劫舍I&#xff09; 例题2&#xff1a;打家劫舍II 例题3&#xff1a;删除并获得点数 例题4&#xff1a;粉刷房子 例题5&#xff1a;买卖股票的最佳时机含冷冻 结语&#xff1a; 引入&#xff1a; 相信看到…

深度学习 精选笔记(8)梯度消失和梯度爆炸

学习参考&#xff1a; 动手学深度学习2.0Deep-Learning-with-TensorFlow-bookpytorchlightning ①如有冒犯、请联系侵删。 ②已写完的笔记文章会不定时一直修订修改(删、改、增)&#xff0c;以达到集多方教程的精华于一文的目的。 ③非常推荐上面&#xff08;学习参考&#x…

带你快速初步了解Python列表

1.列表 列表主要是用来存储多个数据&#xff0c;是有序的集合 2.创建列表 """ 语法&#xff1a;变量名 [数据1,数据2,数据3......] 注意&#xff1a;列表中的数据类型可以是各种不同的数据类型 """ 创建空列表 list1 [] print(list1) …

Gitlab: 私有化部署

目录 1. 说明 2. 资源要求 3. 安装 4. 配置实践 4.1 服务器 4.2 人员与项目 4.2 部署准备 4.2.1 访问变量及用户账号设置 4.2.2 Runner设置 4.2.3 要点 5. 应用项目 CI/CD 6. 参考 1. 说明 gitlab是一个强大且免费的代码管理/部署工具&#xff0c;能统一集成代码仓…

AngularJS入门

1. AngularJS简介 AngularJS是一个JavaScript框架,用js编写的库 <script src="https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js"></script> <!-- 放在<body> 元素的底部。提高网页加载速度 -->1.1. AngularJS 扩展了 HTML …

Freesia项目目录结构

目录结构 前端目录&#xff1a; &#xff08;目录结构来自layui-vue-admin&#xff09; src文件下 api&#xff08;前端请求后端服务的路由&#xff09;assert&#xff08;一些内置或必要的资源文件&#xff09;layouts&#xff08;全局框架样式组件&#xff09;router&…

Unity(第十九部)射线

在Unity中&#xff0c;射线检测通常用于碰撞检测&#xff0c;比如&#xff1a;在游戏中&#xff0c;开枪射击时&#xff0c;需要判断击中的物体、子弹击中的位置&#xff1b;用鼠标来控制物体的移动&#xff1b;用鼠标拾取某个物体。 射线&#xff0c;顾名思义&#xff0c;在数…

【转载】深度学习笔记——详解损失函数

原文链接: https://blog.csdn.net/weixin_53765658/article/details/136360033 CSDN账号: Purepisces github账号: purepisces 希望大家可以Star Machine Learning Blog https://github.com/purepisces/Wenqing-Machine_Learning_Blog 损失函数 根据您使用的神经网络类型和数…

第四十七回 一丈青单捉王矮虎 宋公明二打祝家庄-强大而灵活的python装饰器

四面全是埋伏&#xff0c;宋江和众人一直绕圈跑不出去。正在慌乱之时&#xff0c;石秀及时赶到&#xff0c;教大家碰到白杨树就转弯走。走了一段时间&#xff0c;发现围的人越来越多&#xff0c;原来祝家庄以灯笼指挥号令。花荣一箭射下来红灯龙&#xff0c;伏兵自己就乱起来了…

Northwestern University-844计算机科学与技术/软件工程-复试注意事项【考研复习】

本文提到的西北大学是位于密歇根湖泊畔的西北大学。西北大学&#xff08;英语&#xff1a;Northwestern University&#xff0c;简称&#xff1a;NU&#xff09;是美国的一所著名私立研究型大学。它由九人于1851年创立&#xff0c;目标是建立一所为西北领地地区的人服务的大学。…

【力扣白嫖日记】550.游戏玩法分析IV

前言 练习sql语句&#xff0c;所有题目来自于力扣&#xff08;https://leetcode.cn/problemset/database/&#xff09;的免费数据库练习题。 今日题目&#xff1a; 550.游戏玩法分析IV 表&#xff1a;Activity 列名类型player_idintdevice_idintevent_datedategames_played…

从 iOS 设备恢复数据的 20 个iOS 数据恢复工具

作为 iPhone、iPad 或 iPod 用户&#xff0c;您可能普遍担心自己可能会丢失存储在珍贵 iOS 设备中的所有宝贵数据。数据丢失的原因多种多样&#xff0c;这里列出了一些常见原因&#xff1a; 1. iOS 软件更新 2. 恢复出厂设置 3. 越狱 4. 误操作删除数据 5. iOS 设备崩溃 …