循环神经网络学习笔记 | 解锁LLM

📚 学习笔记 | 深入理解循环神经网络(RNN)与词嵌入层

🎉 最近在深度学习领域深入学习了循环神经网络(RNN)和词嵌入层,感觉收获满满!今天就来和大家分享一下我的学习心得,希望能对同样对NLP感兴趣的小伙伴有所帮助~✨

📖 自然语言处理(NLP)基础

首先,我们来聊聊自然语言处理(NLP)。NLP主要研究的是通过计算机算法来理解自然语言,比如汉语、英语等。不同于结构化数据或图像数据,自然语言的数据难以直接数值化。而词嵌入层就是解决这个问题的关键一步!

🌈 词嵌入层(Word Embedding)

词嵌入层的作用是将文本转换为向量,这样就可以在神经网络中进行计算了。在PyTorch中,我们可以使用nn.Embedding来轻松实现这一步。具体步骤如下:

  1. 分词与构建词表
    • 首先,对文本进行分词,构建词与索引的映射关系,即词表。
    • 比如,文本“北京冬奥的进度条已经过半,不少外国运动员在完成自己的比赛后踏上归途。”分词后,我们得到了一系列的词。
  2. 构建词嵌入矩阵
    • 使用nn.Embedding(num_embeddings, embedding_dim)构建词嵌入矩阵。
    • 其中,num_embeddings是词的总数,embedding_dim是每个词向量的维度。
  3. 将词转换为词向量
    • 通过词索引,在词嵌入矩阵中找到对应的词向量。

🔍 示例代码

import torch  
import torch.nn as nn  
import jieba  
  
# 文本数据  
text = '北京冬奥的进度条已经过半,不少外国运动员在完成自己的比赛后踏上归途。'  
# 文本分词  
words = jieba.lcut(text)  
unique_words = list(set(words))  
  
# 构建词嵌入层  
embed = nn.Embedding(num_embeddings=len(unique_words), embedding_dim=4)  
  
# 词语的词向量表示  
for i, word in enumerate(unique_words):  
    word_vec = embed(torch.tensor(i))  
    print(f"{word}\t{word_vec}")

🧠 循环神经网络(RNN)

处理序列数据,比如文本时,循环神经网络(RNN)是一个非常强大的工具。RNN的核心在于它能够“记住”之前的信息,并利用这些信息来影响后续的输出。

📊 RNN的工作原理

  • 在每个时间步,RNN接收当前的输入和上一个时间步的隐藏状态,计算并输出当前时间步的隐藏状态和预测结果。
  • 内部计算包括输入数据的权重、偏置,以及隐藏状态的权重和偏置,最后通过激活函数(如tanh)得到输出。

💻 PyTorch中的RNN

在PyTorch中,我们可以使用torch.nn.RNN来构建RNN模型。主要参数包括输入数据的维度、隐藏层的维数、以及隐藏层的层数。

💡 示例代码片段

RNN = torch.nn.RNN(input_size, hidden_size, num_layers)  
output, hn = RNN(x, h0)
  • x 是输入的词嵌入序列,形状为 [seq_len, batch, input_size]
  • h0 是初始的隐藏状态,形状为 [num_layers, batch, hidden_size]
  • output 是RNN的输出结果,形状与x类似。
  • hn 是最后一个时间步的隐藏状态。

🌟 总结

通过学习循环神经网络(RNN)和词嵌入层,我们可以更好地理解和处理自然语言数据。无论是在文本分类、情感分析还是文本生成等任务中,这些技术都有着广泛的应用前景。希望这篇笔记能对大家有所帮助,一起加油,向深度学习的更高峰迈进!🚀

#学习笔记 #深度学习 #NLP #词嵌入 #RNN

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大模型史老师

让我用AI改变自己,改变世界!

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

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

打赏作者

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

抵扣说明:

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

余额充值