干货 | Python人工智能在贪吃蛇游戏中的应用探索(上)(一)

简介: 干货 | Python人工智能在贪吃蛇游戏中的应用探索(上)

前言

一个月前,人工智能对我来说都是很陌生的,更不用说神经网络、强化学习、DQN等名词了。疫情期间,经过在家努力学习,我对这些概念越来越清晰了,也越来越喜欢上了它们。微信图片_20220423105924.gif

下面,我想写一些收获,希望能给同样想在这方面学习的小伙伴一点启发,也欢迎大家指教,一起进步哦。今天的内容主要有以下几方面:

  • 什么是神经网络
  • tensorflow的安装和开发环境的配置
  • 强化学习Q_Learning
  • 深度神经网络DQN
  • 利用DQN开发的贪吃蛇程序

后续我将分三篇来进行该主题的分享,让我们开始吧!

什么是神经网络

神经网络原本指的是生物神经网络,人工智能兴起后,产生了人工神经网络(artificial neural network,缩写ANN)。人的神经接受信息以后,通过轴突传至末梢,转化成一种人可接受的信息。

而ANN是指由大量的处理单元(神经元) 互相连接而形成的复杂网络结构,是对人脑组织结构和运行机制的某种抽象、简化和模拟,以数学模型模拟神经元活动,是基于模仿大脑神经网络结构和功能而建立的一种信息处理系统。

微信图片_20220423105927.png生物神经网络图

神经网络主要由:输入层、隐藏层、输出层构成。如图,最左边的一层称为输入层,位于这一层的神经元称为输入神经元。最右边的输出层包含了输出神经元。中间的层被称为隐藏层。隐藏层就是既不是输入也不是输出的层次,一个神经网络可以有一个或多个隐藏层。

微信图片_20220423105929.jpg神经网络构成

网络中的输入和输出层一般都被设计的很简单。网络输入层的每个神经元代表了一个特征,输出层个数代表了分类标签的个数。而隐藏层的设计比较复杂,隐藏层作用很大,就其本身而言,每一层都可以视为一个单独的机器学习算法。

每个隐藏层神经元/输出层神经元的值(激活值),都是由上一层神经元,经过加权求和与非线性变换而得到的。上游层的输出被用作输入,它的输出被传递到下一层,然后下一层使用该输出作为输入,依此类推。

此行为意味着,当堆叠各种层和创建深度神经网络时,系统会学习数据的中间表示,以帮助下游层更有效地完成其工作。现在,神经网络的研究人员已经开发了隐藏层的许多的最优设计规则,帮助我们决定如何权衡网络的隐藏层数和训练网络所需的时间。

总结:建立神经网络的方法:建立M个隐藏层,按顺序建立输入层跟隐藏层的联结,最后建立隐藏层跟输出层的联结。为每个隐藏层的每个节点选择激活函数。求解每个联结的权重和每个节点自带的bias值。

下面重点描述下神经网络中的概念。

结构:结构指定了网络中的变量和它们的拓扑关系。例如,神经网络中的变量可以是神经元连接的权重和神经元的激励值。激活函数(激励函数)与权重

权重:通俗来讲就是各个变量在计算中所占比重。举个简单的例子,大学的每一门科目都有相应的学分,这个学分意味着在加权时所占的比重,我们假设哲学占5学分,数学3学分,就有得到值A。在神经元中,这个值会被带入激活函数进一步处理。

此处还涉及到偏值b,其大概相当于一次函数的截距,我们通过b来适当控制值的范围。常见激活函数如下:

微信图片_20220423105932.png激活函数

损失函数:如下公式,此处为得到的输出值,则是期望值,当函数值趋于零,就得到了理想的输出值(不一定是最好的)。从数学的角度来讲,我们写出的损失函数,在输出值趋于期望时,函数值要尽可能快的趋于零,如果在绝对值外添加次方,即可达到这一效果。

根据损失函数的大小,我们以此来调整权重和偏值,寻找最优解。

学习规则:指定了网络中的权重如何随着时间推进而调整。一般情况下,学习规则依赖于神经元的激励值。它也可能依赖于监督者提供的目标值和当前权重的值。

相关文章
|
12月前
|
小程序 PHP 图形学
热门小游戏源码(Python+PHP)下载-微信小程序游戏源码Unity发实战指南​
本文详解如何结合Python、PHP与Unity开发并部署小游戏至微信小程序。涵盖技术选型、Pygame实战、PHP后端对接、Unity转换适配及性能优化,提供从原型到发布的完整指南,助力开发者快速上手并发布游戏。
|
存储 算法 区块链
从零实现Python扫雷游戏:完整开发指南与深度解析
扫雷作为Windows经典游戏,承载了许多人的童年回忆。本文将详细介绍如何使用Python和Tkinter库从零开始构建一个功能完整的扫雷游戏,涵盖游戏设计、算法实现和界面开发的全过程。
929 1
|
人工智能 搜索推荐 数据可视化
用 Python 制作简单小游戏教程:手把手教你开发猜数字游戏
本教程详细讲解了用Python实现经典猜数字游戏的完整流程,涵盖从基础规则到高级功能的全方位开发。内容包括游戏逻辑设计、输入验证与错误处理、猜测次数统计、难度选择、彩色输出等核心功能,并提供完整代码示例。同时,介绍了开发环境搭建及调试方法,帮助初学者快速上手。最后还提出了图形界面、网络对战、成就系统等扩展方向,鼓励读者自主创新,打造个性化游戏版本。适合Python入门者实践与进阶学习。
1582 1
|
存储 算法 数据可视化
用Python开发猜数字游戏:从零开始的手把手教程
猜数字游戏是编程入门经典项目,涵盖变量、循环、条件判断等核心概念。玩家通过输入猜测电脑生成的随机数,程序给出提示直至猜中。项目从基础实现到功能扩展,逐步提升难度,适合各阶段Python学习者。
1194 0
|
11月前
|
消息中间件 人工智能 安全
云原生进化论:加速构建 AI 应用
本文将和大家分享过去一年在支持企业构建 AI 应用过程的一些实践和思考。
2458 97
|
12月前
|
人工智能 安全 中间件
阿里云 AI 中间件重磅发布,打通 AI 应用落地“最后一公里”
9 月 26 日,2025 云栖大会 AI 中间件:AI 时代的中间件技术演进与创新实践论坛上,阿里云智能集团资深技术专家林清山发表主题演讲《未来已来:下一代 AI 中间件重磅发布,解锁 AI 应用架构新范式》,重磅发布阿里云 AI 中间件,提供面向分布式多 Agent 架构的基座,包括:AgentScope-Java(兼容 Spring AI Alibaba 生态),AI MQ(基于Apache RocketMQ 的 AI 能力升级),AI 网关 Higress,AI 注册与配置中心 Nacos,以及覆盖模型与算力的 AI 可观测体系。
1922 88
|
11月前
|
人工智能 运维 Kubernetes
Serverless 应用引擎 SAE:为传统应用托底,为 AI 创新加速
在容器技术持续演进与 AI 全面爆发的当下,企业既要稳健托管传统业务,又要高效落地 AI 创新,如何在复杂的基础设施与频繁的版本变化中保持敏捷、稳定与低成本,成了所有技术团队的共同挑战。阿里云 Serverless 应用引擎(SAE)正是为应对这一时代挑战而生的破局者,SAE 以“免运维、强稳定、极致降本”为核心,通过一站式的应用级托管能力,同时支撑传统应用与 AI 应用,让企业把更多精力投入到业务创新。
988 30
|
11月前
|
设计模式 人工智能 自然语言处理
3个月圈粉百万,这个AI应用在海外火了
不知道大家还记不记得,我之前推荐过一个叫 Agnes 的 AI 应用,也是当时在 WAIC 了解到的。
983 2

热门文章

最新文章

推荐镜像

更多