浅学神经网络3

第三部分:

1、序列数据

序列数据是常见的数据类型,前后通常具有关联性

比如说:猴子喜欢吃苹果。其中猴子和苹果就是关联数据,出现了苹果,就能关联想到猴子。再比如说,一张乐谱,一般是由许多音符构成,但是人么所接受的是某一些音符的组合,并不是随意什么组合就能构成音乐,而这些音符的固定组合也是有关联性的。

2、语言模型

NLP当中常把文本看作离散时间序列。一段长度为T的文本词依次为w1 w2 w3...wt其中wt是时间步(Time Step)t的输出或标签,语言模型会计算序列的概率P。

比如说:

通过前后数据的关联,厨房和石油概率小于食油。

3、RNN循环神经网络

RNN是针对序列数据而生的神经网络结构,核心在于循环使用网络层参数,避免时间步增大而带来的参数激增,并引入隐藏状态(Hidden State)用于记录历史信息,有效的处理数据前后的关联性。 

相较于卷积神经网络,循环神经网络的计算中多了一项Ht-1,这一项的含义就是历史数据,激活函数采用了Tanh,将输出限定在(-1,1),防止数值呈指数型变化。

下面通过一个例子来了解RNN前向传播的过程:

 想要实现:输入“想”,根据时间步,输出“要”,然后依次输出

第一个时间步是想,当输入想时,并没有H0这个隐藏层,就输入0,然后输入要,还是使用上一个权重矩阵。

RNN特性:

1、循环神经网络的隐藏状态可以捕捉截至当前的时间步的序列的历史信息。

2、循环神经网络模型参数的数量不随时间步的增加而增长。

RNN的 通过时间反向传播(backpropagation through time):(比多层感知机更复杂一点)

上图中,用矩形框代表节点,就是具体的数据,用圆圈代表边,就是具体的操作。(这里有点难)打字讲不清楚,只能给大家看个公式,可以找个视频再学学。

循环神经网络的梯度随时间t呈指数变化,易引发梯度消失或梯度爆炸。

 

4、GRU门控循环单元

缓解RNN梯度消失到来的问题,引入门的概念,来控制信息流动,使模型更好的记住长远时期的信息,并且缓解梯度消失。

引入以下两个门:

重置门:哪些信息需要遗忘

更新门:哪些信息需要注意

 

所使用的激活函数为Sigmoid函数,值域为(0,1),0表示遗忘,1表示保留。

候选隐藏状态时用来辅助计算最终的隐藏状态,输入与上一时间步隐藏状态共同计算得到候选隐藏状态,通过重置门,对上一时间步隐藏状态进行选择性遗忘,对历史信息更好的选择

 

5、LSTM长短期记忆网络

引入三个门和记忆细胞,控制信息传递。

 

遗忘门:哪些信息需要遗忘

输入门:哪些信息需要流入当前记忆细胞

输出门:哪些记忆信息流入隐藏状态

记忆细胞:特殊的隐藏状态,记忆历史信息

 记忆细胞由候选记忆细胞及上一时间步记忆细胞组合的来

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在静态方法中使用JdbcTemplate需要注意以下几点: 1. 静态方法中无法直接使用Spring容器中的Bean,因为静态方法是类级别的,而Bean是实例级别的。因此需要手动获取JdbcTemplate实例,可以通过ApplicationContext获取JdbcTemplate实例,或者通过静态变量保存JdbcTemplate实例。 2. 在使用JdbcTemplate时,需要先创建一个JdbcTemplate实例,并设置据源。据源可以通过Spring容器注入,或者手动创建。在静态方法中,可以通过静态变量保存JdbcTemplate实例,避免重复创建。 3. 在使用JdbcTemplate操作据库时,需要注意线程安全问题。JdbcTemplate是线程安全的,但是需要保证JdbcTemplate实例的线程安全,即在多线程环境中需要保证同一JdbcTemplate实例不会被并发访问。 下面是一个示例代码: ``` public class JdbcUtils { private static JdbcTemplate jdbcTemplate; public static void setDataSource(DataSource dataSource) { jdbcTemplate = new JdbcTemplate(dataSource); } public static void executeSql(String sql) { jdbcTemplate.execute(sql); } } ``` 在上面的代码中,我们通过静态变量保存了JdbcTemplate实例,并提供了一个静态方法setDataSource用于设置据源。在使用JdbcTemplate时,我们可以直接调用静态方法executeSql执行SQL语句。需要注意的是,这里的executeSql方法是线程安全的,因为JdbcTemplate实例是共享的,并且JdbcTemplate本身是线程安全的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

carrymybaby

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值