96SEO 2026-02-23 13:42 22
**方法**实验主要通过python中的pytorch与d2l环境进行利用了jupyter

notebook编写代码。
RNN、GRU、LSTM架构的实现基于d2l所提供的教程代码数据集的使用选择了d2l中的“time
machine”数据集。
对于基本架构我选择调整epoch次数、学习率、隐含层神经元数量来寻找更优的结果。
除了实现基本的循环神经网络架构外还学习了seq2seq并基于d2l教程复现了seq2seq从训练到推理的过程并尝试调整参数观察变化。
搭建RNN架构并调整参数以达到较好结果搭建GRU架构并调整参数以达到较好结果搭建LSTM架构并调整参数以达到较好结果实现seq2seq的训练与推理
对于RNN架构的实现我根据教材的指示使用了d2l中的“time
machine(时间机器)”数据。
此数据集是关于时间机器的一个短篇小说可以用于进行小批量训练。
而对于RNN的代码实现则是通过pytorch与d2l库实现的。
首先是利用d2l的数据加载模块提供批量数与步长加载出“time
machine”的数据。
得到数据后可以利用pytorch中的nn.RNN()来导入RNN神经层。
在导入神经层后构建一个RNNModel的类来继承nn.Module并设置一些训练时的规则与流程。
最后定义一个RNNModel对象并传入RNN神经层与数据利用d2l的训练函数进行训练。
由于代码较长故报告中不列出详细代码可见于对应的.ipynb文件。
下图为搭建RNN架构时的代码流程图。
初次训练使用的参数epochs次数为500次、学习率为1、隐含层数量256下面为训练得到的结果。
从上面的结果可以看出在epochs为500学习率为1时图像在接近300时收敛最后困惑度为1.3。
从结果的输出可以看出其语义基本是没有的但是可以看出输出的单词接近一半的单词是拥有正确拼写的。
这说明了训练是有一定的效果但是效果并不算太佳。
那么下面将进行超参数地调整以达到更好的效果。
以1.1.1中的训练参数作为基础参数即epochs次数为500次、学习率为1、隐含层数量256上下调整参数进行比较。
这里之所以选择epochs次数进行比较其原因在于epochs次数对模型结果的收敛和对困惑度的影响十分大。
一般来说次数越多那么梯度下降也越多训练结果也越饱满同样效果会越好同样也可能次数越多训练会过拟合。
而如果次数很小那么效果也可能会非常差因为训练并不足够。
下面选取250、750、1000次进行实验以进行验证比较。
详细代码可见附加的文件此处只展示结果
从结果中可以看出当epoch较小时对模型训练的结果影响是较为显著的会使得训练的效果较差但是当epoch到达一定数量时训练的结果基本维持在一定范围内影响将很小。
学习率对训练的结果是具有一定的影响的学习率过大会使得结果的困惑度随着次数的增加每次都很大的不同十分地混乱而使得永远得不到较好结果。
而如果学习率太低那么在同样的次数下其收敛的速度会更慢。
下面选取学习率0.01、0.1、10进行实验比较下面为运行结果。
详细代码可见附加的文件此处只展示结果
从结果中可以看出当学习率较小时模型的收敛速度会变慢而其预测的结果中重复出现***也说明结果是很差的而当学习率为0.1时虽然没有重复出现多个单词但是基本上单词的拼写全是错的。
当学习率很大时其困惑度也十分的大其出现毫无语义的重复单词。
最好的学习率是1在测试的中间而学习率小时会使得训练地学习收到阻碍而当学习率太大时会使得学习超过一定值而陷入一个无法寻找更优地循环中。
一般来说隐藏层神经元数量越多其拟合的效果会越好而越少那么其结果可能会很差。
因此隐藏层神经元数量是十分关键的那么选取隐藏层神经元数量为128、512、1024进行比较下面为运行结果。
详细代码可见附加的文件此处只展示结果
从结果中可以看出当神经元个数增加时其最终的困惑度会减小。
其收敛的曲线也会存在一定的变化会存在极速下降的部分。
而其预测的结果中神经元个数为512与1024的可以看出存在一定的语义且拼写也都正确。
之所以会这样我个人认为是神经元个数与拟合效果有关。
一般来说神经元个数越多其参数也越多对应的拟合效果一般也会越好。
基于上面的调参可以发现最好的一组是神经元个数为512与1024的组合其他的训练效果均差于基础参数。
machine(时间机器)”数据。
GRU相对于RNN增加了一些控制单元就好像电路那样限制了一些内容的输入同时保存了一些重要的内容。
架构实现的代码主要参考于d2l其代码基本与RNN的一致不同的是改变了神经层。
同样layer的调取也是通过pytorch的api也就是与RNN构建不同的是layer从nn.RNN()变为了nn.GRU()。
下面构建的流程图。
详细代码可见于.ipynb文件
初次训练使用的参数epochs次数为500次、学习率为1、隐含层数量256下面为训练得到的结果。
从上面的结果可以看出在epochs为500学习率为1时图像在接近250时收敛最后困惑度为1。
从结果的输出可以看出其拼写基本正确且已经拥有一定的语义。
这说明了训练是有一定的效果且与RNN相比其效果更好。
对于GRU超参数的调整基本与RNN的一致其参数选取理由一致下面为调参结果
可以看出其规律基本与RNN的一致但是其起点的效果就优于RNN。
从结果中可以看出其结果基本一致但是128与512的困惑度比其他两者低而128可能是因为欠拟合的原因而512则可能为过拟合。
machine(时间机器)”数据。
LSTM也称为长短期记忆网络它具有一定的记忆功能。
LSTM相对于GRU更加地复杂拥有更多的门控系统因此同样的参数数据下LSTM的训练时间可能长于GRU但是相应的训练效果可能会更好。
下面利用d2l的LSTM模块快速搭建LSTM架构。
详细代码可见于.ipynb文件
初次训练使用的参数epochs次数为500次、学习率为1、隐含层数量256下面为训练得到的结果。
从上面的结果可以看出在epochs为500学习率为1时图像在接近250时收敛最后困惑度为1。
从结果的输出可以看出其拼写基本正确且已经拥有一定的语义。
这说明了训练是有一定的效果且与RNN相比其效果更好与GRU相比效果基本一致。
对于LSTM超参数的调整基本与RNN的一致其参数选取理由一致下面为调参结果。
可以看出基本呈现递减的形式但是当为750时困惑度却较高预测结果也不是很好这可能与偶然性有关需要更多实验以证明。
可以看出训练效果随着学习率的增大而增大与GRU与RNN不同的是LSTM架构的学习率是学习率越大效果越好而其他两者则是介于一个范围内。
者可能与架构内部网络层有关。
从上面的调参实验中可以看到RNN明显是差于GRU与LSTM的。
GRU与LSTM拥有更好的收敛能力以及更好地效果且其预测的有效性也更好。
而GRU与LSTM的对比相对来说在以上实验中并不能明显看出可能在更复杂的数据集中才可以测试出两组的优缺点。
但是在调参实验中GRU与LSTM在学习率调节方面存在明显的不同在GRU中学习率最优的是为1时最差为10时而LSTM却是1与10同样的效果。
而这可能是由于两者的网络层存在差异所照成的。
序列到序列模型是一个基于编码器与解码器的模型可以用于解决输出序列与输入序列不一致的情况一般用于翻译。
对于序列到序列模型的构建训练我是通过d2l教程进行的在教程的代码中首先需要定义编码器与解码器用于处理输入与输出。
其次设置带有遮蔽功能的交叉熵函数用于损失函数并将其带入训练函数中。
最后进行训练然后定义BLEU评分函数用于预测时量化预测效果。
其代码搭建的流程如下图所示。
具体代码见于.ipynb文件
可知bleu越大越解决1那么其预测的效果越好可以看到前两者的值为1说明预测效果是很好的但是后面两个的值却越来越小而在查看正确翻译后发现输出的法语翻译效果是不佳的。
而仔细观察其原因可以发现后两者稍微比前两者的单词个数要多长度要长所以者可能是导致其效果不佳的原因这说明此seq2seq模型拥有一定的优化空间。
machine”数据集进行了训练在训练的过程中通过不断地调节epoch\学习率\神经元个数三个参数以获取较好的结果。
除了不同参数外的对比还进行了不同架构间的对比。
除了构建三个经典的循环神经网络模型外还学习了seq2seq这个含有编码器与解码器的模型并进行训练推理得到相应结果。
最后的结果发现epoch次数很小时会对实验的结果造成不利的影响但是当epoch达到一定的大小后此影响将逐渐减小甚至变得毫无影响。
而学习率对于RNN与GRU来讲其最佳值在1附近但是对于LSTM却发现学习率为10时LSTM照样可以拥有较好的结果但是其他两者学习率为10时效果却是最差的。
对于神经元个数对结果的影响从上面的实验内容可以看出其影响是最为显著的一般来说神经元个数越多其效果越好而这也可能是因为神经元越多拟合效果越佳的原因。
对于seq2seq的学习在最后的训练预测结果中可以发现模型对短句子的预测效果较好但是对于较长的句子的效果却是十分差的这也说明此模型具有一定的提升空间。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback