AI学习笔记——循环神经网络(RNN)的基本概念

简介: 目前深度学习和神经网络算法最典型的有两个应用实例,一个是图像识别,一个是语音识别。上一篇文章讲到图形识别的卷积神经网络(CNN)就广泛应用在了图像别方面,而这篇文章就来讲另一个广泛应用于语音识别的算法循环神经网络(RNN)。

目前深度学习和神经网络算法最典型的有两个应用实例,一个是图像识别,一个是语音识别。上一篇文章讲到图形识别的卷积神经网络(CNN)就广泛应用在了图像别方面,而这篇文章就来讲另一个广泛应用于语音识别的算法循环神经网络(RNN)。

如果说CNN通过滤波器识别出图片中空间像素的关系,那么RNN就能够在时间序列的数据中找到规律,从而预测未来。所以RNN与CNN最大的不同就是, RNN的神经元输入的不仅是要有当前时间点的数据,还需要之前时间点的输出结果。因为当前的输出是跟之前(甚至是之后)的输出是相关的。

举一个简单的例子,给你一组数据【1,2,3,4,5,6】,让你将时间窗口向未来移动一步,你很容易就可以得到结果【2,3,4,5,6,7】。你给出答案7,是因为你发现了7跟6的关系,6跟5的关系,一次类推,RNN的基本原理是这样,就是发现时间序列上输入与输出之间的 关系。

1. RNN基本结构

跟普通神经网路的神经元一样,输入和输出之间是一个线性函数和一个非线性的激活函数如图

img_3239bceca13c5c4289893e0f485d9c96.png
image.png

只不过在神经元会将输出结果又返回给输入端,如果将这个过程在时间的维度上展开就是这个样子的

img_39ed54c42e24875a5a827297c9477a66.png
image.png

当然一层也可以拥有多个神经元

img_8bb63cd4f0b9b6d5f797b4554fd4f1e7.png
image.png

2.RNN的应用实例

RNN并不是每个神经元都要有输入跟输出,输入跟输出可以是多对多(输入输出一一对应)多对一一对多多对多(输入和输出并非一一对应的)

举一个多对多,输入输出一一对应的例子。比如给一段话" Tom is very happy to play with Bill" ,让你判断这句话中每一个单词是否是人名。那输出就应该是[1, 0, 0, 0, 0, 1],"1"代表是人名,"0"代表不是人名。这就是典型的多对多一一对应的例子

img_c1ae96585630f83319dc08e727d3a8f3.png
image.png

当然也有多对一的例子,比如,输入是一段话的影评,然后输出是一个评分的数字。

img_062a7b2c5d912aaf745a23a4bcf339e0.png
image.png

一对多的例子也有很多,比如给一个开头的基调让机器谱曲。

img_e480bf2158213e5649d0a4ddada6060f.png
image.png

最后是多对多,但并非一一对应的RNN。这种情况典型应用就是翻译,因为每种语言的词汇都不是一一对应的。

img_6354af0688ca2ba63ee61e4044ffb171.png
image.png

RNN的基本概念就是这么简单,之后的文章会继续深入介绍一下RNN的具体模型以及在文字处理方面的应用。

本文和之前的文章中用到了twitter上TessFerrandez在吴恩达深度学习课程的笔记,在此对TessFerrandez的精美笔记表示感谢。

————
相关文章
AI学习笔记——神经网络和深度学习
AI学习笔记——卷积神经网络1(CNN)
————
文章首发steemit.com 为了方便墙内阅读,搬运至此,欢迎留言或者访问我的Steemit主页

目录
相关文章
|
12天前
|
人工智能 测试技术 API
AI计算机视觉笔记二十 九:yolov10竹签模型,自动数竹签
本文介绍了如何在AutoDL平台上搭建YOLOv10环境并进行竹签检测与计数。首先从官网下载YOLOv10源码并创建虚拟环境,安装依赖库。接着通过官方模型测试环境是否正常工作。然后下载自定义数据集并配置`mycoco128.yaml`文件,使用`yolo detect train`命令或Python代码进行训练。最后,通过命令行或API调用测试训练结果,并展示竹签计数功能。如需转载,请注明原文出处。
|
12天前
|
JSON 人工智能 数据格式
AI计算机视觉笔记二十六:YOLOV8自训练关键点检测
本文档详细记录了使用YOLOv8训练关键点检测模型的过程。首先通过清华源安装YOLOv8,并验证安装。接着通过示例权重文件与测试图片`bus.jpg`演示预测流程。为准备训练数据,文档介绍了如何使用`labelme`标注工具进行关键点标注,并提供了一个Python脚本`labelme2yolo.py`将标注结果从JSON格式转换为YOLO所需的TXT格式。随后,通过Jupyter Notebook可视化标注结果确保准确性。最后,文档展示了如何组织数据集目录结构,并提供了训练与测试代码示例,包括配置文件`smoke.yaml`及训练脚本`train.py`,帮助读者完成自定义模型的训练与评估。
|
8天前
|
机器学习/深度学习
小土堆-pytorch-神经网络-损失函数与反向传播_笔记
在使用损失函数时,关键在于匹配输入和输出形状。例如,在L1Loss中,输入形状中的N代表批量大小。以下是具体示例:对于相同形状的输入和目标张量,L1Loss默认计算差值并求平均;此外,均方误差(MSE)也是常用损失函数。实战中,损失函数用于计算模型输出与真实标签间的差距,并通过反向传播更新模型参数。
|
8天前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI的奥秘:深度学习与神经网络
【9月更文挑战第11天】本文将深入探讨人工智能的核心领域——深度学习,以及其背后的神经网络技术。我们将从基础理论出发,逐步深入到实践应用,揭示这一领域的神秘面纱。无论你是AI领域的初学者,还是有一定基础的开发者,都能在这篇文章中获得新的启示和理解。让我们一起踏上这场探索之旅,揭开AI的神秘面纱,体验深度学习的魅力。
|
9天前
|
机器学习/深度学习 人工智能 TensorFlow
深入骨髓的解析:Python中神经网络如何学会‘思考’,解锁AI新纪元
【9月更文挑战第11天】随着科技的发展,人工智能(AI)成为推动社会进步的关键力量,而神经网络作为AI的核心,正以其强大的学习和模式识别能力开启AI新纪元。本文将探讨Python中神经网络的工作原理,并通过示例代码展示其“思考”过程。神经网络模仿生物神经系统,通过加权连接传递信息并优化输出。Python凭借其丰富的科学计算库如TensorFlow和PyTorch,成为神经网络研究的首选语言。
12 1
|
12天前
|
机器学习/深度学习 人工智能 PyTorch
AI计算机视觉笔记三十二:LPRNet车牌识别
LPRNet是一种基于Pytorch的高性能、轻量级车牌识别框架,适用于中国及其他国家的车牌识别。该网络无需对字符进行预分割,采用端到端的轻量化设计,结合了squeezenet和inception的思想。其创新点在于去除了RNN,仅使用CNN与CTC Loss,并通过特定的卷积模块提取上下文信息。环境配置包括使用CPU开发板和Autodl训练环境。训练和测试过程需搭建虚拟环境并安装相关依赖,执行训练和测试脚本时可能遇到若干错误,需相应调整代码以确保正确运行。使用官方模型可获得较高的识别准确率,自行训练时建议增加训练轮数以提升效果。
|
12天前
|
人工智能 开发工具 计算机视觉
AI计算机视觉笔记三十:yolov8_obb旋转框训练
本文介绍了如何使用AUTODL环境搭建YOLOv8-obb的训练流程。首先创建虚拟环境并激活,然后通过指定清华源安装ultralytics库。接着下载YOLOv8源码,并使用指定命令开始训练,过程中可能会下载yolov8n.pt文件。训练完成后,可使用相应命令进行预测测试。
|
12天前
|
人工智能 PyTorch 算法框架/工具
AI计算机视觉笔记二十二:基于 LeNet5 的手写数字识别及训练
本文介绍了使用PyTorch复现LeNet5模型并检测手写数字的过程。通过搭建PyTorch环境、安装相关库和下载MNIST数据集,实现了模型训练与测试。训练过程涉及创建虚拟环境、安装PyTorch及依赖库、准备数据集,并编写训练代码。最终模型在测试集上的准确率达到0.986,满足预期要求。此项目为后续在RK3568平台上部署模型奠定了基础。
|
12天前
|
人工智能 并行计算 测试技术
AI计算机视觉笔记三十一:基于UNetMultiLane的多车道线等识别
该项目基于开源数据集 VIL100 实现了 UNetMultiLane,用于多车道线及车道线类型的识别。数据集中标注了六个车道的车道线及其类型。项目详细记录了从环境搭建到模型训练与测试的全过程,并提供了在 CPU 上进行训练和 ONNX 转换的代码示例。训练过程约需 4 小时完成 50 个 epoch。此外,还实现了视频检测功能,可在视频中实时识别车道线及其类型。
|
12天前
|
传感器 人工智能 算法
AI计算机视觉笔记二十七:YOLOV8实现目标追踪
本文介绍了使用YOLOv8实现人员检测与追踪的方法。通过为每个人员分配唯一ID,实现持续追踪,并可统计人数,适用于小区或办公楼出入管理。首先解释了目标检测与追踪的区别,接着详细描述了使用匈牙利算法和卡尔曼滤波实现目标关联的过程。文章提供了基于IOU实现追踪的具体步骤,包括环境搭建、模型加载及追踪逻辑实现。通过示例代码展示了如何使用YOLOv8进行实时视频处理,并实现人员追踪功能。测试结果显示,该方法在实际场景中具有较好的应用潜力。

热门文章

最新文章