干货 | 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激活函数

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

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

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

相关文章
|
5天前
|
人工智能 JSON API
阿里云文档智能 & RAG解决方案:提升AI大模型业务理解与应用
阿里云推出的文档智能 & RAG解决方案,旨在通过先进的文档解析技术和检索增强生成(RAG)方法,显著提升人工智能大模型在业务场景中的应用效果。该方案通过文档智能(Document Mind)技术将非结构化文档内容转换为结构化数据,提取文档的层级树、样式和版面信息,并输出为Markdown和Json格式,为RAG提供语义分块策略。这一过程不仅解决了文档内容解析错误和切块丢失语义信息的问题,还优化了输出LLM友好的Markdown信息。方案的优势在于其多格式支持能力,能够处理包括Office文档、PDF、Html、图片在内的主流文件类型,返回文档的样式、版面信息和层级树结构。
35 2
|
6天前
|
人工智能 搜索推荐 安全
AI技术在医疗领域的应用与挑战
【10月更文挑战第27天】 本文探讨了人工智能(AI)在医疗领域的应用,包括疾病诊断、药物研发和患者管理等方面。同时,也分析了AI在医疗领域面临的挑战,如数据隐私、伦理问题和技术局限性等。通过对这些方面的深入分析,我们可以更好地理解AI在医疗领域的潜力和发展方向。
104 59
|
1天前
|
存储 XML 人工智能
深度解读AI在数字档案馆中的创新应用:高效识别与智能档案管理
基于OCR技术的纸质档案电子化方案,通过先进的AI能力平台,实现手写、打印、复古文档等多格式高效识别与智能归档。该方案大幅提升了档案管理效率,确保数据安全与隐私,为档案馆提供全面、智能化的电子化管理解决方案。
65 48
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
当前AI大模型在软件开发中的创新应用与挑战
【10月更文挑战第31天】2024年,AI大模型在软件开发领域的应用取得了显著进展,从自动化代码生成、智能代码审查到智能化测试,极大地提升了开发效率和代码质量。然而,技术挑战、伦理与安全问题以及模型可解释性仍是亟待解决的关键问题。开发者需不断学习和适应,以充分利用AI的优势。
|
1天前
|
人工智能 安全 测试技术
探索AI在软件开发中的应用:提升开发效率与质量
【10月更文挑战第31天】在快速发展的科技时代,人工智能(AI)已成为软件开发领域的重要组成部分。本文探讨了AI在代码生成、缺陷预测、自动化测试、性能优化和CI/CD中的应用,以及这些应用如何提升开发效率和产品质量。同时,文章也讨论了数据隐私、模型可解释性和技术更新等挑战。
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
思通数科AI平台在尽职调查中的技术解析与应用
思通数科AI多模态能力平台结合OCR、NLP和深度学习技术,为IPO尽职调查、融资等重要交易环节提供智能化解决方案。平台自动识别、提取并分类海量文档,实现高效数据核验与合规性检查,显著提升审查速度和精准度,同时保障敏感信息管理和数据安全。
37 11
|
5天前
|
人工智能 运维 NoSQL
云栖大会|多模+一体化,构建更高效的AI应用
在2024年云栖大会「NoSQL数据库」专场,多位知名企业和阿里云瑶池数据库团队的技术专家,共同分享了阿里云Lindorm、Tair、MongoDB和MyBase的最新进展与实践。Tair推出Serverless KV服务,解决性能瓶颈和运维难题;Lindorm助力AI和具身智能时代的多模数据处理;MongoDB云原生化提升开发效率;MyBase One打破云边界,提供云边端一体化服务。这些技术进展和最佳实践,展示了阿里云在NoSQL数据库领域的创新能力和广泛应用前景。
|
3天前
|
机器学习/深度学习 人工智能 算法
AI技术在医疗健康领域的应用与挑战####
本文旨在探讨人工智能(AI)技术在医疗健康领域的创新应用及其面临的主要挑战。通过深入分析AI如何助力疾病诊断、治疗方案优化、患者管理及药物研发,本文揭示了AI技术在提升医疗服务质量、效率和可及性方面的巨大潜力。同时,文章也指出了数据隐私、伦理道德、技术局限性等关键问题,并提出了相应的解决策略和未来发展方向。本文为医疗从业者、研究者及政策制定者提供了对AI医疗技术的全面理解,促进了跨学科合作与创新。 ####
|
1天前
|
机器学习/深度学习 人工智能 搜索推荐
探索AI在医疗诊断中的革命性应用
【10月更文挑战第29天】 随着人工智能技术的飞速发展,其在医疗领域的应用已成为推动现代医疗服务创新的重要力量。本文旨在探讨AI技术如何在医疗诊断中发挥其独特优势,通过分析AI在影像诊断、疾病预测和个性化治疗计划制定等方面的应用案例,揭示AI技术如何提高诊断的准确性和效率,以及面临的挑战和未来发展趋势。
17 1
|
2天前
|
机器学习/深度学习 人工智能 算法
探索人工智能在图像处理中的应用
【10月更文挑战第32天】本文将深入探讨人工智能(AI)如何在图像处理领域大放异彩,从基础的图像识别到复杂的场景解析,AI技术正逐步改变我们对视觉信息的理解和应用。文章将通过具体案例,揭示AI如何优化图像质量、实现风格迁移和进行内容识别,进而讨论这些技术背后的挑战与未来发展方向。