首先给出一个代码地址:

https://gitee.com/devilmaycry812839668/CartPole-PolicyNetwork

强化学习中的策略网络算法。《TensorFlow实战》一书中强化学习部分的策略网络算法,仿真环境为gym的CartPole,本项目是对原书代码进行了部分重构,并加入了些中文注释,同时给出了30次试验的运行结果。

=======================================

可以看到,上面的代码是比较简单的Reinforce算法,其中策略函数使用浅层的三层神经网络(全连接),激活函数使用Relu,进行了30次试验,每次试验进行了10000 个episodes的训练,但是神奇的发现这30次试验中居然第5次试验,第21次试验出现了严重的梯度衰退的想象。

给出梯度衰退时部分训练结果:

Average reward for episode 1375 : 200.000000.
Average reward for episode 1400 : 200.000000.
Average reward for episode 1425 : 200.000000.
Average reward for episode 1450 : 200.000000.
Average reward for episode 1475 : 200.000000.
Average reward for episode 1500 : 200.000000.
Average reward for episode 1525 : 200.000000.
Average reward for episode 1550 : 192.480000.
Average reward for episode 1575 : 140.440000.
Average reward for episode 1600 : 104.240000.
Average reward for episode 1625 : 20.080000.
Average reward for episode 1650 : 12.560000.
Average reward for episode 1675 : 10.720000.
Average reward for episode 1700 : 11.080000.
Average reward for episode 1725 : 12.000000.
Average reward for episode 1750 : 10.560000.
Average reward for episode 1775 : 11.040000.
Average reward for episode 1800 : 10.360000.
Average reward for episode 1825 : 10.080000.
Average reward for episode 1850 : 10.640000.
Average reward for episode 1875 : 10.360000.
Average reward for episode 1900 : 10.360000.
Average reward for episode 1925 : 10.480000.
Average reward for episode 1950 : 10.360000.
Average reward for episode 1975 : 9.680000.
Average reward for episode 2000 : 10.000000.
Average reward for episode 2025 : 10.720000.
Average reward for episode 2050 : 10.000000.
Average reward for episode 2075 : 10.000000.
Average reward for episode 2100 : 10.520000.
Average reward for episode 2125 : 10.640000.
Average reward for episode 2150 : 9.760000.
Average reward for episode 2175 : 11.040000.

可以看到在第5次和第21次试验中当训练到一定episodes后训练结果下降到极坏的水平(远低于随机策略的结果,随机策略结果应该在26左右),因此我们可以发现这时的训练已经发生了梯度衰退问题,degenerate问题。以前一直以为衰退问题只会出现在深层网络中,没有想到在浅层网络中也发现了衰退现象。

查阅相关论文《Skip connections eliminate signulairites》 发现浅层网络也是会出现衰退现象的,解答了自己的疑问,原来浅层神经网络也是可能会出现衰退问题的。

基于浅层神经网络(全连接网络)的强化学习算法(Reinforce) 在训练过程中出现梯度衰退(degenerate)的现象的更多相关文章

  1. Andrew Ng - 深度学习工程师 - Part 1. 神经网络和深度学习(Week 3. 浅层神经网络)

     =================第3周 浅层神经网络=============== ===3..1  神经网络概览=== ===3.2  神经网络表示=== ===3.3  计算神经网络的输出== ...

  2. 吴恩达《深度学习》-第一门课 (Neural Networks and Deep Learning)-第三周:浅层神经网络(Shallow neural networks) -课程笔记

    第三周:浅层神经网络(Shallow neural networks) 3.1 神经网络概述(Neural Network Overview) 使用符号$ ^{[

  3. deeplearning.ai 神经网络和深度学习 week3 浅层神经网络 听课笔记

    1. 第i层网络 Z[i] = W[i]A[i-1] + B[i],A[i] = f[i](Z[i]). 其中, W[i]形状是n[i]*n[i-1],n[i]是第i层神经元的数量: A[i-1]是第 ...

  4. 基于MNIST数据集使用TensorFlow训练一个没有隐含层的浅层神经网络

    基础 在参考①中我们详细介绍了没有隐含层的神经网络结构,该神经网络只有输入层和输出层,并且输入层和输出层是通过全连接方式进行连接的.具体结构如下: 我们用此网络结构基于MNIST数据集(参考②)进行训 ...

  5. deeplearning.ai 神经网络和深度学习 week3 浅层神经网络

    1. 第i层网络 Z[i] = W[i]A[i-1] + B[i],A[i] = f[i](Z[i]). 其中, W[i]形状是n[i]*n[i-1],n[i]是第i层神经元的数量: A[i-1]是第 ...

  6. 伯克利、OpenAI等提出基于模型的元策略优化强化学习

    基于模型的强化学习方法数据效率高,前景可观.本文提出了一种基于模型的元策略强化学习方法,实践证明,该方法比以前基于模型的方法更能够应对模型缺陷,还能取得与无模型方法相近的性能. 引言 强化学习领域近期 ...

  7. tensorFlow(四)浅层神经网络

    tensorFlow见基础 实验 MNIST数据集介绍 MNIST是一个手写阿拉伯数字的数据集. 其中包含有60000个已经标注了的训练集,还有10000个用于测试的测试集. 本次实验的任务就是通过手 ...

  8. Tensorflow MNIST浅层神经网络的解释和答复

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/51416540 看到之前的一篇博文:深入 ...

  9. 一文读懂 深度强化学习算法 A3C (Actor-Critic Algorithm)

    一文读懂 深度强化学习算法 A3C (Actor-Critic Algorithm) 2017-12-25  16:29:19   对于 A3C 算法感觉自己总是一知半解,现将其梳理一下,记录在此,也 ...

  10. 从有约束条件下的凸优化角度思考神经网络训练过程中的L2正则化

    从有约束条件下的凸优化角度思考神经网络训练过程中的L2正则化 神经网络在训练过程中,为应对过拟合问题,可以采用正则化方法(regularization),一种常用的正则化方法是L2正则化. 神经网络中 ...

随机推荐

  1. mysql中常用的三种插入数据的语句

    mysql中常用的三种插入数据的语句: insert into表示插入数据,数据库会检查主键(PrimaryKey),如果出现重复会报错: replace into表示插入替换数据,需求表中有Prim ...

  2. window.onload()函数和jQuery中的document.ready()有什么区别?

    a.执行时间:window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行.$(document).ready()是DOM结构绘制      完毕后就执行,不必等到加载完毕.$(doc ...

  3. JVM垃圾回收器(详解)

    引言 垃圾回收(GC,Garbage Collection) 在笔者上一篇文章中(JVM内存模型),介绍了JVM内存模型以及JVM运行时的数据区,堆是JVM内存区域里面最大的一块区域,用于存放实例数据 ...

  4. Jenkins构建项目遇到的问题总结

    4.2.1  在Windows下,Jenkins运行python项目 https://www.jianshu.com/p/f6edbaaa8a0d 4.2.2  配置不同类型的项目的操作步骤 http ...

  5. python安装pywifi

    1.Windows安装: 在Dos窗口中输入以下命令: pip install pywifi 如果找不到pip命令,那么需要将Python安装文件夹下Scripts文件夹的绝对路径加入环境变量中. 2 ...

  6. Win11在VMWare中无tpm条件下安装

    Win11在VMWare中无tpm条件下安装 在条件不满足提示的窗口下. 按shift+F10打开cmd, 输入regedit打开注册表, 按如下路径新建三个值后即可 [HKEY_LOCAL_MACH ...

  7. shell 根据 指定列 进行 去除 重复行

    根据指定列进行去除重复行 这里的重复是指如果两行的某一列数据相同,则认为是重复数据. 例如:第1行与第2行数据,其中的第2列(以- 作为分隔符)明显是重复的. 100069 - ARM Compile ...

  8. nginx 如何利用gzip压缩配置来优化网站访问速度

    前言: 最近公司设计的网站前端是基于nuxt架构的,部署到nginx上后,首页的访问以及二级页面的访问极慢,f12观察后发现主要是一些js页面加载极慢拉低了网站的访问速度,于是便想到利用nginx里的 ...

  9. 【Ubuntu 1】ubuntu的软件包及便携系列 记录

    目录 命令行补充[备注记录] 不想每次---- source /devel/setup.bash sudo chomd 777 /dev/ttyUSB* 安装区 --- 强推!Synergy Chro ...

  10. 【资料分享】全志科技T507-H工业核心板规格书

    1 核心板简介 创龙科技SOM-TLT507是一款基于全志科技T507-H处理器设计的4核ARM Cortex-A53全国产工业核心板,主频高达1.416GHz.核心板CPU.ROM.RAM.电源.晶 ...