# 【深度强化学习】神经网络、爬山法优化控制倒立摆问题实战（附源码）

## 用神经网络来参数化策略

delta = 0.01 # 爬山法中试探的步长
top_rewards = 0
top_paras = None
for _ in range(100): # 多次爬山，选取最好的结果
score = 0
paras = np.random.rand(5)  # 随机产生神经元的连接系数和阈值
most_rewards = rewards_by_paras(env, paras)
for i in range(200):
best_paras = paras
cur_rewards = most_rewards
rewards = rewards_by_paras(env, paras + [ delta, 0, 0, 0, 0 ])
if rewards > most_rewards:
most_rewards = rewards
best_paras = paras + [ delta, 0, 0, 0, 0 ]
rewards = rewards_by_paras(env, paras + [ -delta, 0, 0, 0, 0 ])
if rewards > most_rewards:
most_rewards = rewards
best_paras = paras + [ -delta, 0, 0, 0, 0 ]
rewards = rewards_by_paras(env, paras + [ 0, delta, 0, 0, 0 ])
if rewards > most_rewards:
most_rewards = rewards
best_paras = paras + [ 0, delta, 0, 0, 0 ]
rewards = rewards_by_paras(env, paras + [ 0, -delta, 0, 0, 0 ])
if rewards > most_rewards:
most_rewards = rewards
best_paras = paras + [ 0, -delta, 0, 0, 0 ]
rewards = rewards_by_paras(env, paras + [ 0, 0, delta, 0, 0 ])
if rewards > most_rewards:
most_rewards = rewards
best_paras = paras + [ 0, 0, delta, 0, 0 ]
rewards = rewards_by_paras(env, paras + [ 0, 0, -delta, 0, 0 ])
if rewards > most_rewards:
most_rewards = rewards
best_paras = paras + [ 0, 0, -delta, 0, 0 ]
rewards = rewards_by_paras(env, paras + [ 0, 0, 0, delta, 0 ])
if rewards > most_rewards:
most_rewards = rewards
best_paras = paras + [ 0, 0, 0, delta, 0 ]
rewards = rewards_by_paras(env, paras + [ 0, 0, 0, -delta, 0 ])
if rewards > most_rewards:
most_rewards = rewards
best_paras = paras + [ 0, 0, 0, -delta, 0 ]
rewards = rewards_by_paras(env, paras + [ 0, 0, 0, 0, delta ])
if rewards > most_rewards:
most_rewards = rewards
best_paras = paras + [ 0, 0, 0, 0, delta ]
rewards = rewards_by_paras(env, paras + [ 0, 0, 0, 0, -delta ])
if rewards > most_rewards:
most_rewards = rewards
best_paras = paras + [ 0, 0, 0, 0, -delta ]
if (cur_rewards == most_rewards) or (most_rewards >= 200): # 到了山顶，或者已经达到要求
break
else:
paras = best_paras
#print(most_rewards, paras)
if most_rewards > top_rewards:
top_rewards = most_rewards
top_paras = paras
print(top_rewards, top_paras)

|
10天前
|
Python
|
11天前
|

HTTP协议实战演练场：Python requests库助你成为网络数据抓取大师
【7月更文挑战第30天】在网络数据抓取中，Python的requests库凭借其简洁的API和强大功能脱颖而出。首先确保已通过pip install requests安装库。实战演练包括：发送GET请求获取数据（如requests.get(url)），处理JSON响应（利用.json()方法解析），添加请求头以绕过反爬虫机制（如设置User-Agent），以及发送POST请求提交数据。掌握这些技能的同时，务必遵守法律法规和网站政策。
31 6
|
9天前
|

【7月更文挑战第31天】在深度学习的海洋中，卷积神经网络（CNN）如同一艘强大的航船，承载着图像识别与处理的重要任务。本文将扬帆起航，深入探讨如何通过各种技术手段优化CNN的性能，从数据预处理到模型正则化，再到超参数调整，我们将一一解析这些策略如何提升CNN的效率和准确度。文章还将通过实际代码示例，展示如何在Keras框架中应用这些技术，确保理论与实践的结合，为读者提供一套完整的优化工具箱。
29 4
|
9天前
|

(十)Netty进阶篇：漫谈网络粘包、半包问题、解码器与长连接、心跳机制实战

15 2
|
10天前
|

【7月更文挑战第31天】在数字化转型的浪潮中，云计算已成为推动企业增长的核心动力。然而，随着数据和应用逐渐迁移到云端，网络安全问题也愈发严峻。本文将探讨云计算环境中的安全挑战，并提出相应的防御策略。通过分析云服务模型、安全威胁及信息安全技术的应用，结合代码示例，本文旨在为读者提供一套实用的云端安全防护方案。
25 1
|
7天前
|
SQL 安全 网络安全

【8月更文挑战第3天】在数字世界的无垠战场上，网络安全是守护数据边疆的盾牌，而信息安全则是斩断威胁的利剑。本文将深入探讨网络防御的核心要素，从网络安全漏洞的识别、利用到防范策略，再到加密技术的应用和安全意识的培养。我们将以代码示例为依托，揭示保护网络空间的实用技巧和策略，旨在为读者提供一套全面的网络安全解决方案。
11 0
|
9天前
|

【7月更文挑战第31天】在软件工程领域，自动化测试是确保产品质量和提升开发效率的关键工具。本文将深入探讨自动化测试的核心概念、优势以及面临的挑战，并通过一个具体的代码示例来展示如何在实际项目中实施自动化测试。我们将看到，通过采用恰当的策略和技术，自动化测试不仅能够提高测试覆盖率，还可以缩短反馈周期，从而加速迭代速度。 【7月更文挑战第31天】在数字世界的无垠战场上，网络安全和信息安全是守护数据宝藏的盾牌与剑。本文将深入探讨网络安全的脆弱点，揭示加密技术的奥秘，并唤醒每一位数字时代居民的安全意识。通过代码示例和案例分析，我们将一起穿梭在信息的海洋中，学习如何铸造坚不可摧的防御，以及如何运用高超
15 0
|
10天前
|

（八）Java网络编程之IO模型篇-内核Select、Poll、Epoll多路复用函数源码深度历险！
select/poll、epoll这些词汇相信诸位都不陌生，因为在Redis/Nginx/Netty等一些高性能技术栈的底层原理中，大家应该都见过它们的身影，接下来重点讲解这块内容。
24 0
|
2天前
|

【8月更文挑战第7天】在数字化时代，网络安全和信息安全已成为全球关注的焦点。本文将深入探讨网络安全漏洞、加密技术以及安全意识等关键领域，帮助读者更好地理解这些概念并采取有效措施保护自己的信息资产。我们还将分析一些实际案例，以展示如何在现实世界中应对各种网络威胁。
34 8
|
1天前
|
SQL 安全 网络安全

【8月更文挑战第9天】在数字时代的浪潮中，网络安全与信息安全成为了保护个人隐私和企业资产的核心防线。本文将探讨当前网络安全领域面临的挑战，包括安全漏洞的发现与利用、加密技术的应用与发展，以及提升社会整体的安全意识的必要性。通过分析这些要素如何相互影响，我们旨在为读者提供关于如何在日益复杂的网络环境中保持警惕和安全的实用信息。
10 5