TensorFlow2 Python深度学习 - 循环神经网络(RNN)- 简介

锋哥原创的TensorFlow2 Python深度学习视频教程:

https://www.bilibili.com/video/BV1X5xVz6E4w/

课程介绍

本课程主要讲解基于TensorFlow2的Python深度学习知识,包括深度学习概述,TensorFlow2框架入门知识,以及卷积神经网络(CNN),循环神经网络(RNN),生成对抗网络(GAN),模型保存与加载等。

TensorFlow2 Python深度学习 - 循环神经网络(RNN)- 简介

TensorFlow 2 是一个开源的深度学习框架,支持多种神经网络模型,包括 循环神经网络(RNN)。RNN 是一种用于处理序列数据的神经网络,它能够处理时序信息或序列数据的依赖关系,广泛应用于自然语言处理、时间序列预测、语音识别等领域。

1. RNN 的基本概念

RNN(Recurrent Neural Network)是一种具有循环结构的神经网络,它在处理每个输入时,不仅考虑当前的输入,还会考虑之前的计算结果。具体来说,RNN 会保持一个隐藏状态(hidden state),该状态包含了之前所有时刻的输入信息。

工作原理:
  • 输入数据(例如,文本序列)被逐步传递给网络。
  • 在每个时间步,网络会处理当前的输入并结合上一个时间步的隐藏状态来计算新的隐藏状态。
  • 最终的隐藏状态可以用于预测或分类任务。
公式:

2,通俗易懂理解循环神经网络(RNN)

🧠 用一个生活比喻来理解RNN

想象你在看电影时理解剧情的过程:

  • 传统神经网络:像只看电影的一帧画面,不知道前后剧情

  • 循环神经网络:像正常人看电影,能记住前面发生了什么,理解当前画面在整体剧情中的位置

📚 什么是RNN?简单说就是"有记忆的神经网络"

基本概念:

  • 普通神经网络:每次分析都是"从零开始",没有记忆

  • RNN:会"记住"之前看到的内容,用来帮助理解现在的内容

就像:

  • 读句子时,你理解每个词的意思都依赖于前面的词

  • "我今天吃了苹果" vs "我买了苹果手机"

  • 同样的"苹果",意思完全不同,需要前面的语境来理解

🔄 RNN如何工作?"时间旅行"的神经网络

核心机制:

复制代码
输入 → [当前分析 + 之前记忆] → 输出 + 新记忆

具体过程:

  1. 收到新的输入(比如一个新词)

  2. 结合"刚才的记忆"来理解这个输入

  3. 产生输出(比如理解这个词的意思)

  4. 更新记忆,为下一个输入做准备

举个读句子的例子:

复制代码
句子:"我爱" + "吃" + "苹果"

第一步:看到"我爱"

  • 记忆:空

  • 输出:这是一个关于喜好的句子

  • 新记忆:主题是"喜欢某物"

第二步:看到"吃"

  • 记忆:主题是"喜欢某物"

  • 输出:喜欢与吃相关的东西

  • 新记忆:喜欢+吃 → 可能是食物

第三步:看到"苹果"

  • 记忆:喜欢吃的食物

  • 输出:喜欢吃的苹果(水果)

  • 新记忆:完整的句子意思

🏗️ RNN的三种主要类型

  1. 基础RNN - 短期记忆型
  • 像金鱼,只能记住最近的一点信息

  • 简单但容易"忘记"太早的事情

  1. LSTM - 长期记忆高手 🎯
  • 像聪明的人,能选择性记住重要信息

  • 有三个"门"来控制记忆:

    • 输入门:决定什么新信息要记住

    • 忘记门:决定什么旧信息要忘记

    • 输出门:决定输出什么信息

  1. GRU - 简化版LSTM
  • 像LSTM的弟弟,简单但有效

  • 只有两个门,计算更快

🌟 RNN的实际应用场景

📝 文本相关:

  • 机器翻译:理解整个句子再翻译

  • 聊天机器人:记住对话历史

  • 文章生成:写小说时保持情节连贯

🎵 音频处理:

  • 语音识别:根据前后语音判断当前词

  • 音乐生成:创作连贯的旋律

⏰ 时间序列:

  • 股票预测:基于历史价格预测未来

  • 天气预报:基于过去天气预测未来

🆚 RNN vs 传统神经网络

传统神经网络 RNN
每次输入独立处理 考虑输入之间的关联
像看单张照片 像看连续视频
适合图片分类 适合语言、时间序列

💡 举个更生活的例子:聊天对话

你问AI:"今天天气怎么样?明天呢?"

普通神经网络回答:

  • "今天天气怎么样?" → "今天晴天"

  • "明天呢?" → "我不知道你在问什么"

RNN回答:

  • "今天天气怎么样?" → "今天晴天"

  • "明天呢?" → "明天也是晴天" (记得你在问天气)

⚠️ RNN的局限性

主要问题:记忆有限

  • 就像人记不住太长的故事细节

  • 处理很长序列时,会"忘记"开头的内容

解决方案:

  • LSTM/GRU:改善长序列记忆

  • 注意力机制:让模型能"回头看"重要部分

🎯 总结

RNN = 神经网络 + 记忆功能

  • 核心价值:能处理有顺序、有关联的数据

  • 关键思想:当前理解依赖于历史信息

  • 适用场景:任何需要"上下文"的任务

就像人类理解语言需要上下文一样,RNN让AI也能具备这种"联系前后文"的能力! 🚀

相关推荐
大飞记Python3 小时前
Chromedriver放项目里就行!Selenium 3 和 4 指定路径方法对比 + 兼容写法
开发语言·python
小薛引路3 小时前
office便捷办公06:根据相似度去掉excel中的重复行
windows·python·excel
盼小辉丶3 小时前
TensorFlow深度学习实战——节点分类
深度学习·分类·tensorflow·图神经网络
Hs_QY_FX3 小时前
Python 分类模型评估:从理论到实战(以信用卡欺诈检测为例)
人工智能·python·机器学习·数据挖掘·多分类评估
Gitpchy3 小时前
Day 18 推断聚类后簇的类型
python·机器学习·聚类
Aspect of twilight3 小时前
3D Gaussian Splatting论文简要解读与可视化复现(基于gsplat)
人工智能·深度学习·gsplat
查士丁尼·绵3 小时前
笔试-基站维护
python
deephub3 小时前
REFRAG技术详解:如何通过压缩让RAG处理速度提升30倍
人工智能·python·大语言模型·rag
唐叔在学习4 小时前
venv - Python最佳的轻量化环境隔离方式
后端·python