深度学习入门笔记系列 ( 七 ) ——循环神经网络(RNN)学习笔记

简介:

1.引言

在传统的神经网络模型中 ,是从输入层到隐含层再到输出层 ,层与层之间是全连接的 ,每层之间的节点是无连接的 。但是这种普通的神经网络对于很多问题却无能无力 。例如 ,你要预测句子的下一个单词是什么 ,一般需要用到前面的单词 ,因为一个句子中前后单词并不是独立的 。于是乎 ,我们就名正言顺的引出了这篇文章的 RNN 。

2.什么是RNN

RNN(Recurrent Neural Networks)翻译为循环神经网路 ,与传统神经网络模型对比 ,RNN 一个序列当前的输出与前面的输出也有关 。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中 。重点的讲就是 ,隐藏层之间的节点之间是有连接的 ,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出 。

5175c530541cdcc5cace9d8536e116df9221df12

例如上图 ,中间A表示隐含层 ,能够看出来从左到右的序列中 ,隐含层输入不仅包括输入层还有上一个序列的隐含层输出 。

3.RNN 能干些啥

理论上 ,RNN 能够对任何长度的序列数据进行处理 。但是在实践中 ,为了降低复杂性往往假设当前的状态只与前面的几个状态相关 ,下图便是一个典型的RNN :

02fbb0f9455af2d5ada73e328bbda86ae451ed5d

坦白讲 ,小詹对 RNN 只知道基础概念 ,用的很少很少 。因为个人感觉 RNN 更多的应用到 NLP 即自然语言处理中 ,如如词向量表达 、语句合法性检查 、词性标注 。与之相对的 ,在计算机视觉领域 ,可能 CNN 及其变种使用的更为频繁 ,但是 RNN 也并非无用武之地 。

RNN 可以应用的领域大致有 :

● 语言模型与文本生成(Language Modeling and Generating Text)
● 机器翻译(Machine Translation)
● 语音识别(Speech Recognition)
● 图像描述生成 (Generating Image Descriptions)

4.LSTM网络

和 CNN 一样 ,基础的 RNN 网络也存在很多改进和拓展 ,相信大家听到比较多的是 LSTM(Long Short Term Memory)。

9991de38daf60d193a70903cf241236b4dd29297

它与一般的 RNN 结构本质上并没有什么不同 ,只是使用了不同的函数去去计算隐藏层的状态 。在 LSTM 中 ,i 结构被称为 cells ,可以把 cells 看作是黑盒用以保存当前输入 xt 之前的保存的状态 ht−1 ,这些 cells 更加一定的条件决定哪些 cell 抑制哪些 cell 兴奋 。它们结合前面的状态 、当前的记忆与当前的输入 。已经证明 ,该网络结构在对长序列依赖问题中非常有效 。


原文发布时间为:2018-09-4

本文作者:小詹

本文来自云栖社区合作伙伴“小詹学Python”,了解相关信息可以关注“小詹学Python”。

相关文章
|
1天前
|
机器学习/深度学习 编解码 算法
深度学习之解构基础网络结构
本文和大家梳理分享一下大师们的探索成果,即经典的基础网络(backbone)以及关键思想,附带实现过程。5月更文挑战第6天
23 3
|
1天前
|
机器学习/深度学习 算法 TensorFlow
Python深度学习基于Tensorflow(6)神经网络基础
Python深度学习基于Tensorflow(6)神经网络基础
15 2
Python深度学习基于Tensorflow(6)神经网络基础
|
5天前
|
机器学习/深度学习 存储 算法
m基于Yolov2深度学习网络的螺丝检测系统matlab仿真,带GUI界面
MATLAB 2022a中展示了YOLOv2算法的螺丝检测仿真结果,该系统基于深度学习的YOLOv2网络,有效检测和定位图像中的螺丝。YOLOv2通过批标准化、高分辨率分类器等优化实现速度和精度提升。核心代码部分涉及设置训练和测试数据,调整图像大小,加载预训练模型,构建YOLOv2网络并进行训练,最终保存检测器模型。
22 3
|
7天前
|
机器学习/深度学习 算法 数据可视化
基于深度学习网络的鞋子种类识别matlab仿真
使用GoogLeNet深度学习模型在matlab2022a中进行鞋子种类识别,利用Inception模块捕捉多尺度特征,提升分类精度。程序加载预训练模型`gnet.mat`,计算验证集的准确性并随机显示32个样本的预测结果及置信度。
|
7天前
|
机器学习/深度学习 算法
基于深度学习网络的十二生肖图像分类matlab仿真
该内容是关于使用GoogLeNet算法进行十二生肖图像分类的总结。在MATLAB2022a环境下,GoogLeNet通过Inception模块学习高层语义特征,处理不同尺寸的输入。核心程序展示了验证集上部分图像的预测标签和置信度,以4x4网格显示16张图像,每张附带预测类别和概率。
|
7天前
|
运维 监控 安全
网络安全预习课程笔记(四到八节)
网络安全领域的岗位多样化,包括应急响应、代码审计、安全研究、工具编写、报告撰写、渗透测试和驻场服务等。其中,应急响应处理系统故障和安全事件,代码审计涉及源码漏洞查找,安全研究侧重漏洞挖掘,工具编写则要开发自动化工具,报告撰写需要良好的写作能力。渗透测试涵盖Web漏洞和内网渗透。岗位选择受公司、部门和领导的影响。此外,还可以参与CTF比赛或兼职安全事件挖掘。了解不同岗位职责和技能需求,如安全运维工程师需要熟悉Web安全技术、系统加固、安全产品和日志分析等。同时,渗透测试包括信息收集、威胁建模、漏洞分析、攻击实施和报告撰写等步骤。学习网络安全相关术语,如漏洞、木马、后门等,有助于深入理解和学习。
|
9天前
|
机器学习/深度学习 自然语言处理 搜索推荐
|
10天前
|
机器学习/深度学习 自动驾驶 安全
基于深度学习的图像识别技术在自动驾驶系统中的应用网络安全与信息安全:防御前线的关键技术与意识
【4月更文挑战第30天】随着人工智能技术的飞速发展,深度学习已成为推动多个技术领域革新的核心力量。特别是在图像识别领域,深度学习模型已展现出超越传统算法的性能。在自动驾驶系统中,准确的图像识别是确保行车安全和高效导航的基础。本文将探讨深度学习在自动驾驶中图像识别的应用,分析关键技术挑战,并提出未来的发展方向。
|
10天前
|
机器学习/深度学习 自然语言处理 语音技术
【Python 机器学习专栏】Python 深度学习入门:神经网络基础
【4月更文挑战第30天】本文介绍了Python在深度学习中应用于神经网络的基础知识,包括神经网络概念、基本结构、训练过程,以及Python中的深度学习库TensorFlow和PyTorch。通过示例展示了如何使用Python实现神经网络,并提及优化技巧如正则化和Dropout。最后,概述了神经网络在图像识别、语音识别和自然语言处理等领域的应用,并强调掌握这些知识对深度学习的重要性。随着技术进步,神经网络的应用将持续扩展,期待更多创新。
|
10天前
|
机器学习/深度学习 人工智能 自然语言处理
工智能基础:神经网络与深度学习
【4月更文挑战第30天】本文探讨了神经网络和深度学习在AI中的核心作用。深度学习,特别是CNN和RNN/LSTM,用于图像和序列数据处理。训练过程涉及前向传播、损失函数和反向传播。关键技术包括梯度下降、正则化和批量归一化。应用广泛,如图像识别、自然语言处理、推荐系统和游戏。随着技术发展,深度学习的应用将持续增长。