cs231n 课程作业 Assignment 3

本文总结了cs231n课程的第三次作业,重点讨论RNN和LSTM在图像描述生成(Image Caption)中的应用。作业涉及RNN/LSTM的前向和反向传播实现,词嵌入,以及在训练和预测阶段的不同策略,如Teacher Forcing和Scheduled Sampling。此外,还探讨了LSTM的公式和反向传播,并介绍使用CNN的图像梯度和生成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作业总结

终于来到了最后一次作业,这次主要是讲 RNN 或 LSTM 这个时序模型,感觉如果公式已经熟悉了的话(没有的话多看几遍,也可以参考我上篇博文的公式总结,囧),作业应该比上次的简单。代码量也少一些。在写代码之前要下载一些必要的模型文件,数据集等,可能比上两次麻烦点,具体看 Assignment #3 的说明就好了。

我的作业代码见:cs231n/assignment3.

Image Caption

这次的作业内容是从 Image Caption 这个问题入手,即给定一张图片,生成对图片的文字描述。下图就是 Google NIC 模型的示意图,流程已经很清晰了。大概的做法是这样的,用一个预训练的 CNN 把图片提取特征,然后那这个特征初始化 RNN(LSTM) 的 hidden state,用 RNN(LSTM) 生成一句话。这里的 CNN 主要就是一个 encoder,负责把图片压缩成一个语义向量,而 RNN(LSTM) 则是一个 decoder,也是一个语言模型(language model),负责从这个语义向量解码出自然语言。

这里写图片描述

这门课的作者 Karpathy 在这个课题上曾做了很多工作,可以参考项目主页 Deep Visual-Semantic Alignments for Generating Image Descriptions

RNN

前面 RNN_Captioning.ipynb 主要是完成 RNN & LSTM 以及 word embedding 的 forward 和 backward 操作,见 cs231n/rnn_layers.py 文件。

这里再贴一下 RNN 的示意图:

RNN 的 step_forward 公式很简单,

ht=tanh(Wxxt+Whht1+b)
反向传播的公式也很好推导,注意 tanh(x) 的导数是 (1tanh2(x)) ,剩下的和前面的作业差别不大。

RNN 的 forward 是要用 for 循环按照序列时序展开的,每个时刻 t 接收对应的输入 xt ,和上时刻隐层的激活值(hidden state) ht1 ,得到此时刻的 hidden state 值

关于CS231n课程作业Assignment3的相关资料或解决方案,虽然直接提供完整的解答不符合教育原则,可以给出一些资源和指导方向来帮助理解和完成该次作业。 对于CS231n这门专注于深度学习视觉识别任务的课程而言,其第三次作业通常涉及更深入的主题,比如卷积神经网络的设计与实现。为了辅助理解这些概念并顺利完成作业,可以从以下几个方面寻找支持材料: ### 官方文档和支持论坛 官方GitHub仓库提供了详细的说明文件以及starter code,这些都是非常宝贵的参考资料[^1]。学生应该仔细阅读README.md中的每一个细节,并积极参与讨论区交流遇到的问题。 ### 社区贡献者笔记和个人博客文章 互联网上有许多曾经修读过此课的学生分享了自己的经验总结和技术心得。通过搜索引擎查询关键词“CS231n Assignment 3”,能够找到不少个人撰写的解析帖子或是Jupyter Notebook形式的具体案例分析。这类外部链接往往包含了作者自己思考过程中的见解,有助于拓宽思路。 ### 开源项目实例 除了理论性的讲解之外,在实践中探索也是非常重要的环节之一。利用像PyTorch、TensorFlow这样的框架搭建模型时,参考其他开发者公开发布的相似课题下的开源工程项目不失为一种有效的方法。例如,在Kaggle平台上就有很多基于图像分类的数据集竞赛作品可供借鉴。 ```python import torch from torchvision import models, transforms model = models.resnet18(pretrained=True) ``` 上述代码片段展示了如何加载预训练好的ResNet-18模型用于迁移学习场景下快速构建基础架构;而针对特定数据集调整超参数优化性能则是后续需要重点考虑的内容。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值