读十堂极简人工智能课笔记03_遗传算法与进化

1. 寻找正确答案

1.1. 卡尔·西姆斯

1.1.1. 计算机图形艺术家和研究者

1.1.2. 演示过数字进化之创造性和新颖性的先驱

1.1.3. 1994年

1.1.3.1. 创造一批能游泳、走路、跳跃,甚至互相竞争的虚拟动物震惊了整个科学界
1.1.3.2. 它们的人工大脑却是个极其复杂的网络,信息经由传感器的输入,经过大量的数学函数计算和操作,才能产生那些看起来很聪明的动作和表现

1.1.4. 这些动物并不是西姆斯直接编程产生的

1.1.4.1. 他并没有设计这些动物
1.1.4.2. 他并没有生成它们的身体,也没有创建它们的大脑
1.1.4.3. 西姆斯的虚拟动物是进化而来的

1.1.5. 如果一个控制系统某一天真的产生了“智能”行为,这个系统可能已经复杂混乱到我们无法理解的地步

1.2. 艺术家威廉·莱瑟姆和斯蒂芬·托德

1.2.1. “变异者”程序

1.2.2. 莱瑟姆和托德的艺术作品都是计算机里进化出来的

1.2.3. 就像给动物配种一样,选择他们认为优秀的作品来配种

1.2.4. 从一片随机混沌中慢慢地涌现出不可思议的样式、盘旋卷曲的形状和超凡脱俗的图案

1.3. 智力其实就是改进的能力

1.3.1. 我们在学习一样东西时会不断练习,直到掌握到一定程度才停下来

1.3.2. 只要有更强大、更便宜、更受欢迎、更高效的解决方案,我们就会想办法寻找它

2. 人工生命的进化

2.1. 西姆斯使用了一种遗传算法来推动虚拟动物的进化

2.2. 他的品控标准(或称“适应函数”)就是动物能够游、走或跳得多远(越远越好)

2.2.1. 乌龟状动物的身体可能只是五个简单的方块,但它的大脑如果打印出来,打印纸的长度延伸出去能覆盖会议大会堂的很大一部分

2.3. 进化计算的实践者创造出了一个虚拟世界,让计算机自己繁衍出越来越好的答案,直到找到最佳答案

2.3.1. 遗传算法就是这样一种方法

2.3.2. 它的工作机制是先创造出一批可能都没什么用的答案作为初始群体,按适应度(也就是把问题解决得多好)给这些答案排序,然后让最适应的答案产生后代

2.3.3. 只要让遗传算法运行足够多代,剩下的答案就已经进化成高度适应的群体,能很好地解决它们所面对的问题

3. 由自然界启迪的优化方法

3.1. 遗传算法及其近亲(进化策略和进化编程)可以追溯到计算机科学的最早期

3.1.1. 使用遗传算法让代码自己进化(也就是自动调试我们所写的代码),让计算机实现自我编程

3.1.2. 遗传算法等技术将使人工智能实现自我修改,直到它们变得比我们更聪明

3.2. 蚁群优化和人工免疫系统是在20世纪90年代才出现的

3.2.1. 蚁群优化方法能给配送人员找出最佳路线,就像蚂蚁能找到食物和巢穴之间的最短路径一样

3.2.2. 人工免疫系统模仿我们自己身体里的免疫系统,能检测到计算机病毒,甚至能控制机器人

3.3. 粒子群优化方法能让虚拟粒子像寻觅鲜花的蜜蜂一样四处飞舞,以发现最佳解决方案

3.4. 越来越多的自然过程可以启发优化方法

3.4.1. 中心引力优化、智能水滴算法和河流形成动力学等方法

3.4.2. 基于大型哺乳动物的行为习惯

3.4.2.1. 动物迁移优化

3.4.3. 基于昆虫,甚至植物和水果的习性

3.4.4. 基于鸟类和鱼类的各种算法

4. 基于搜索的算法

4.1. 人工智能和搜索一直是携手并进的

4.1.1. 基于搜索的算法是人工智能的一个独特分支

4.1.2. 搜索是计算机科学家喜欢玩的一种烧脑把戏

4.2. 大多数受自然界启发的优化算法都是平行搜索方法,从一群分散在解空间各处的初始答案开始,各自同时往周边地带探索,寻找最好的答案

4.2.1. 优化算法动辄要搜索数百维空间,而且答案的质量往往难以确定,或者会随时间改变,又或者可能会有多个好答案

4.2.2. 算法甚至可以搜索空间的维度本身,增加或删除参数

4.2.2.1. 如果在四十维空间(由四十个参数值定义)里找不到答案,那么也许能在五十维空间里找到

4.3. 搜索是最近大获成功的强化学习等技术的组成部分

4.3.1. 通过搜索获取解决方案是极其困难的任务

4.3.2. 在每个阶段,通常的结果都是计算机被卡住,找不到一个好答案

4.3.3. 搜索的空间太大,无法在合理的时间内搜索到答案

4.3.4. 空间太复杂,无法有效导航

4.3.5. 空间本身的性质太容易改变

4.3.6. 测试每个潜在答案是否能解决问题所需的时间,限制了系统可以考虑的答案的数量

4.3.7. 答案越复杂,测试它所需的时间也就越长

4.3.8. 计算力的提升永远是杯水车薪,而且这种情况可能还会持续几十年,甚至几百年

4.3.9. 计算能力也不能帮助我们理解如何找出正确答案

4.3.10. 搜索只能帮助计算机找到问题的答案

4.3.10.1. 它总是需要我们的帮助来发挥它应有的作用

4.4. 自然进化是如何在一个似乎永无止境的可能性空间中搜索,并找到活生生的答案的

5. 进化中的机器人

5.1. 机器人大脑的构件可能是模拟神经元、有限状态机、规则集合,或数学方程,搜索则是黏合剂,把这些构件以正确方式组合起来,并连接到传感器和效应器,从而让机器人能执行真正的任务

5.2. 达里奥·弗洛里亚诺

5.2.1. 他让模拟神经元配置自己进化,来为机器人自动制造大脑

5.2.2. 并不满足于让大脑进化,他还想知道这种大脑是如何运作的

5.2.3. 探索了许许多多种进化出来的机器人大脑

5.2.4. 建造了由有机生物体启发的机器人躯体

5.2.4.1. 一些会走路的机器人
5.2.4.2. 一些像跳蚤一样蹦蹦跳跳的机器人

5.2.5. 两家无人机公司——senseFly和Flyability

5.2.6. 数字世界的进化论有着一个美妙之处:人类设计师的角色可以被降低到最低限度

5.3. 霍德·利普森和乔丹·波拉克

5.3.1. 复制了卡尔·西姆斯的想法,在虚拟世界中进化出可以移动的奇特虚拟生物

5.3.2. 使用3D打印机,将虚拟变成现实

5.4. 虚拟世界和我们自己的世界之间的“现实差距”

5.4.1. 在虚拟世界中可能正常工作的大脑和身体,不知何故在混乱、不可预测的现实世界中总是没法正常运转

6. 自我设计的计算机

6.1. 阿德里安·汤普森

6.1.1. 在1996年

6.1.1.1. 将进化计算与一种名为现场可编程门阵列(FPGA)的特殊芯片联系起来
6.1.1.2. 这些芯片最初设计的应用,是计算机网络和电信骨干网等需要快速推出新电路的场景
6.1.1.3. 与其设计一套电路并在昂贵的芯片制造厂里生产出来,你不如随时向FPGA发送特定信号来重新配置这个电路,它的内部组件会如你所愿地连接在一起,并存放在一个永久的存储器中

6.1.2. 面对同一个问题时,进化电路所使用的硅片面积要比出自人类设计师之手的电路少得多

6.2. 让计算机大脑本身的电路进行进化

6.2.1. 在FPGA中演化和测试了许多代的真实电路后,进化计算找出了有效的电路

6.2.2. 创造了古怪得有时几乎无法解释的电路

6.2.3. 这些电路比预期的要小,而且它们使用电子元件的方式也很反常

6.2.4. 芯片上显然不属于电路的部分仍然会以某种方式影响输出,让输出更接近理想值

6.2.4.1. 进化利用了底层硅片的物理特性,这是人类设计师想都想不到的招数
6.2.4.2. 设计甚至利用了环境,因为稍微改变一下温度,芯片就不那么好用了

6.2.5. 把这个电路设计部署到另一个看起来一样的FPGA上面,它就不再灵光了

6.2.6. 在更大的温度范围和多个FPGA上尝试进化,就会得到更可靠的解决方案

6.3. 进化只会设计出必要的东西,一点也不浪费

6.4. 许多困扰人类直觉的问题,可以用计算机进化论找到崭新的解决方案

6.4.1. 朱利安·米勒(2019)

6.5. 让计算机来负责进化电路并不容易,但多年的进展已经催生了新的技术,即将改变我们创造人工智能的方式

6.5.1. 研究人员仍然在可进化的硬件领域继续开拓

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/684144.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Json-序列化字符串时间格式问题

序列化字符串时间格式问题 一、项目场景二、问题描述三、解决方案 一、项目场景 最近C#中需要将实体进行json序列化,使用了Newtonsoft.Json public static void TestJson(){DataTable dt new DataTable();dt.Columns.Add("Age", Type.GetType("Sys…

java8使用流

这种处理数据的方式很有用,因为你让Stream API管理如何处理数据。这样StreamAPI就可以在背后进行多种优化。此外,使用内部迭代的话,SteamAPI可以决定并行运行你的代码。这要是用外部迭代的话就办不到了,因为你只能用单一线程挨个迭…

VMwareWorkstation17.0虚拟机安装Windows2.03

VMwareWorkstation17.0虚拟机安装Windows2.03 第一篇 下载Windows2.03第二篇 配置Windows2.03虚拟机机器环境第三篇 启动Windows2.03系统 第一篇 下载Windows2.03 1.Windows2.0原版软盘下载地址是 暂不提供,后续更新 2.Windows2.03虚拟机镜像下载地址是 Windows2…

STM32物联网(ESP-01S模块及STM32和ESP-01S通信方式介绍)

文章目录 前言一、ESP-01S模块介绍二、STM32和ESP-01S通信方式介绍三、什么是AT指令四、创建基础工程总结 前言 本篇文章我们开始正式进入STM32物联网的专栏,在这个专栏中将会带大家学习使用STM32进行联网,联网模块的话主要就是使用到了ESP-01S WIFI模块…

『运维备忘录』之 Zip 命令详解

运维人员不仅要熟悉操作系统、服务器、网络等只是,甚至对于开发相关的也要有所了解。很多运维工作者可能一时半会记不住那么多命令、代码、方法、原理或者用法等等。这里我将结合自身工作,持续给大家更新运维工作所需要接触到的知识点,希望大…

WebStorm | 如何修改webstorm中新建html文件默认生成模板中title的初始值

在近期的JS的学习中&#xff0c;使用webstorm&#xff0c;总是要先新建一个html文件&#xff0c;然后再到里面书写<script>标签&#xff0c;真是麻烦&#xff0c;而且标题也是默认的title&#xff0c;想改成文件名还总是需要手动去改 经过小小的研究&#xff0c;找到了修…

单片机学习笔记---LCD1602

LCD1602介绍 LCD1602&#xff08;Liquid Crystal Display&#xff09;液晶显示屏是一种字符型液晶显示模块&#xff0c;可以显示ASCII码的标准字符和其它的一些内置特殊字符&#xff08;比如日文的片假名&#xff09;&#xff0c;还可以有8个自定义字符 显示容量&#xff1a;…

AlmaLinux更换鼠标样式为Windows样式

文章目录 前言先看看条件与依赖第一步&#xff1a;测试最终效果第二步&#xff1a;使用CursorXP修改鼠标样式CurosrXP安装CursorXP使用 第三步&#xff1a;Linux端环境搭建与命令执行UbuntuFedora其他系统均失败 第四步&#xff1a;应用主题 前言 只不过是突发奇想&#xff0c…

jacob使用教程---环境搭建及基本组成元素

参考资料: jacob的GitHub地址 jacob官网(个人感觉不重要) microsoft官方VBA文档(很重要,jacob所有的参数都来自于这里) jacob找COM组件 jacob环境配置教程 jacob将word转为各种格式 提取word中审阅内容 本人参考例子及相关资料 具有参考价值的博客 jacob操作e…

【Python】通过conda安装Python的IDE

背景 系统&#xff1a;win11 软件&#xff1a;anaconda Navigator 问题现象&#xff1a;①使用Navigator安装jupyter notebook以及Spyder IDE 一直转圈。②然后进入anaconda prompt执行conda install jupyter notebook一直卡在Solving environment/-\。 类似问题&#xff1a; …

计算机网络——12DNS

DNS DNS的必要性 IP地址标识主机、路由器但IP地址不好记忆&#xff0c;不便于人类用使用&#xff08;没有意义&#xff09;人类一般倾向于使用一些有意义的字符串来标识Internet上的设备存在着“字符串”——IP地址的转换的必要性人类用户提供要访问机器的“字符串”名称由DN…

FreeRTOS知识点

1>任务调度算法 1.抢占式调度&#xff1a;高优先级的任务优先执行&#xff0c;并且可以打断低优先级的任务执行。 在FreeRTOSConfig.h中开启configUSE_PREEMPTION宏&#xff0c;将宏设置为1&#xff0c;关闭&#xff08;将宏设置为0&#xff09; 2.时间片轮转&#xff1a…

【动态规划】【C++算法】1563 石子游戏 V

作者推荐 【数位dp】【动态规划】【状态压缩】【推荐】1012. 至少有 1 位重复的数字 本文涉及知识点 动态规划汇总 LeetCoce:1563 石子游戏 V 几块石子 排成一行 &#xff0c;每块石子都有一个关联值&#xff0c;关联值为整数&#xff0c;由数组 stoneValue 给出。 游戏中…

【JAVA-Day82】线程中断

线程中断 线程中断&#xff1a;探索 Java 中发送中断信号的方法 &#x1f6a8;&#x1f6d1;摘要 &#x1f4dd;引言 &#x1f680;正文 &#x1f4da;一、什么是线程中断 ❓二、线程什么情况下需要中断 ❓三、模拟线程中断 &#x1f6a8;四、线程中断的应用场景 &#x1f3de;…

SpringBoot3 + Vue3 由浅入深的交互 基础交互教学

说明&#xff1a;这篇文章是适用于已经学过SpringBoot3和Vue3理论知识&#xff0c;但不会具体如何实操的过程的朋友&#xff0c;那么我将手把手从教大家从后端与前端交互的过程教学。 目录 一、创建一个SpringBoot3项目的和Vue3项目并进行配置 1.1后端配置: 1.1.1applicatio…

解锁未来:探秘Zxing二维码技术的神奇世界

解锁未来&#xff1a;探秘Zxing二维码技术的神奇世界 1. 引言 在当今数字化和智能化的社会中&#xff0c;二维码技术已经成为人们生活中不可或缺的一部分。从商品购物、支付结算到健康码、门票核销&#xff0c;二维码无处不在&#xff0c;极大地方便了人们的生活和工作。而Zx…

每日五道java面试题之java基础篇(九)

目录&#xff1a; 第一题 你们项⽬如何排查JVM问题第二题 ⼀个对象从加载到JVM&#xff0c;再到被GC清除&#xff0c;都经历了什么过程&#xff1f;第三题 怎么确定⼀个对象到底是不是垃圾&#xff1f;第四题 JVM有哪些垃圾回收算法&#xff1f;第五题 什么是STW&#xff1f; 第…

MySQL 基础知识(六)之数据查询(二)

目录 6 数值型函数 7 字符串函数 8 流程控制函数 9 聚合函数 10 分组查询 (group by) 11 分组过滤 (having) 12 限定查询 (limit) 13 多表查询 13.1 连接条件关键词 (on、using) 13.2 连接算法 13.3 交叉连接 (cross join) 13.4 内连接 (inner join) 13.5 外连接 …

力扣hot3--并查集+哈希

第一想法是排个序然后遍历一遍&#xff0c;but时间复杂度就超啦 并查集居然与哈希结合了&#xff08;&#xff09; 已经好久没用过并查集了&#xff0c;&#xff0c;&#xff0c;我们用哈希表f_node中来记录原结点的父节点&#xff0c;其中key是原结点&#xff0c;value是父节点…

Cannot resolve symbol ‘@+id/modifyAvatar‘

问题 Cannot resolve symbol id/modifyAvatar详细问题 笔者进行Android开发&#xff0c;创建组件id&#xff0c;报红。 鼠标放置报红处&#xff0c;提示 Cannot resolve symbol id/modifyAvatar解决方案 顶部菜单栏 → \rightarrow →Build → \rightarrow →Rebuild proje…