近期迷上神经进化(Neuroevolution)这个方向,感觉是Deep Learning之后的一个非常不错的研究领域。

该领域的一个主导就是仿照人的遗传机制来进化网络參数与结构。注意,连网络结构都能够进化。就是不像是传统的神经网络,结构是预定义好的。

近期这个领域研究的比較多的是 弗罗里达大学的Stanley教授,基本的贡献有NEAT,HyperNEAT以及Novelty Search。有兴趣的能够去google之。

NEAT与HyperNEAT都是一种indirect coding算法,目的在更新神经网络的拓扑结构以及參数,而Novelty Search是指引NEAT与HyperNEAT怎样更新的一个算法。

当中NEAT,HyperNEAT与神经网络的关系是这种:

我们用于决策与分类的神经网络(ANN)的參数是被一个叫做Compositional Pattern Producing Networks(CPPN)的网络来决定。而CPPN的拓扑结构由NEAT与HyperNEAT算法进行进化。Novelty Search则指导NEAT与HyperNEAT算法的优化。

CPPN网络跟传统的神经网络差点儿相同。仅仅只是激活函数比較特别,更为丰富,并且网络结构没有层的概念,输入是坐标值x, y,详细能够參考2009年提出HyperNEAT的那篇文章第5页的figure 2.

以下是一个很easy的CPPN的demo,用Matlab写的

clear;clc
wid = 32;
hei = 32;
map = zeros(hei, wid);for h = 1 : heifor w = 1 : wid%map(h, w) = sin((h^2 + w^2)*pi/100) ;%+ exp(((h-hei/2)^2 + (w-wid/2)^2)/8000) + h + w;%map(h, w) = exp(((h-hei/2)^2 + (w-wid/2)^2)/8000);map(h, w) = sin((h^2 + w^2)*pi/100) + exp(((h-hei/2)^2 + (w-wid/2)^2)/800);end
endmap = map - min(map(:));
map = 255 * map / max(map(:));
imshow(uint8(map))

能够从代码看出,输入是坐标值。而网络结构非常easy:就是一个高斯函数+正弦函数。最后形成的map图为

更为复杂的CPPN生成的图像能够參见  http://picbreeder.org/

转载于:https://www.cnblogs.com/gcczhongduan/p/5056658.html

神经进化学的简介和一个简单的CPPN(Compositional Pattern Producing Networks)DEMO相关推荐

  1. JBoss 系列九十六:JBoss MSC - 简介及一个简单演示样例

    什么是 JBoss MSC JBoss MSC 即 JBoss Modular Service Container,是第三代 JBoss 产品 JBoss 7和WildFfly的内核,JBoss MS ...

  2. 【Java】Jsoup爬虫,一个简单获取京东商品信息的小Demo

    简单记录 - Jsoup爬虫入门实战 数据问题?数据库获取,消息队列中获取中,都可以成为数据源,爬虫! 爬取数据:(获取请求返回的页面信息,筛选出我们想要的数据就可以了!) 我们经常需要分析HTML网 ...

  3. TBB简介和一个简单的示例

    TBB组成 TBB里的内容大致可以分为以下几类: 通用并行算法 这是TBB里最主要的一大部分,比如示例里的parallel_for就是这部分的一个算法 TBB提供了parallel_for,paral ...

  4. NLP的Flair简介:一个简单但功能强大的最先进的NLP库

    目录 什么是'Flair'图书馆? 什么赋予了边缘? 用于序列标记的上下文字符串嵌入简介

  5. 一个简单express+jade+mysql+bootstrap+nodejs的demo

    Nodejs迅速发展,目前最热的Nodejs构建框架非express莫属,在Github上有32k的star就可以证明.下面就以Nodejs为中心构建一个前后端都包含在内的简单demo吧. 不管开发什 ...

  6. 一个简单的WebService调用天气预报接口的demo

    很长一段时间没更新博客了,最近刚跳槽成功,工作也慢慢稳定下来了,后面也会陆陆续续更新. 现在的公司用到了WebService,以前没用过,所以学习一下记录下来. 什么是WebService? 首先附上 ...

  7. java继承类型转换_#java 一个简单的例子理解java继承、成员函数重写、类型转换...

    一个简单的例子理解java继承.成员函数重写.类型转换 1.继承简介 举一个简单的例子:笔分为很多种,比如毛笔.钢笔.圆珠笔等等,这些笔都有一些相同的属性比如长度.笔迹的粗细等等:但他们也有不同的特点 ...

  8. 做一个简单的打飞碟游戏

    简介 就是一个简单的打飞碟游戏..游戏难度会随着你获得的分数提升,胜利条件是获得1000分. 对象处理 就简单的一个飞碟预制就行了(十分简单,就一个圆柱体..完毕) 还有一个粒子系统用来模拟飞碟被击中 ...

  9. php实现购物车简单,一个简单的PHP购物车系统

    [实例简介] 一个简单的PHP购物车系统,有需要的可以下载 [实例截图] [核心代码] c7d0dfc3-832b-4919-b626-2efb4af2c50e ├── admin_fns.php ├ ...

最新文章

  1. 一个.java源文件中是否可以包括多个类
  2. 中职学校计算机教学中论文,中职学校计算机教学论文
  3. Premiere Pro CC2017教程(一)
  4. pricing data of Service order is copied from BP master data
  5. html调用deeplink,如何优雅地从浏览器打开本地应用deeplink
  6. Java动态代理深入解析
  7. C++继承同名静态成员处理
  8. 实时--1.1 日志数据分析
  9. 陈松松:知道这5个视频营销流量入口,你不缺流量
  10. Jquery调用Web Service
  11. Harmony OS — Switch开关状态
  12. 论文管理:zotero的安装和插件使用
  13. Vue中阿里图标的使用
  14. 工具类APP如何做ASO优化推广
  15. 数人云|听说大神都在用这25种软件部署工具,你用过几种?
  16. spring-cloud-starter-bus-kafka利用kafka消息总线实现动态刷新配置
  17. 遇到无法打出的字怎么办?
  18. windows10+ubuntu 16 04+双硬盘(SSD+HDD)分区(图文)
  19. 做人,该善良时就善良,该勇敢时就要有勇气去对应
  20. 标准引领市场:四方光电参编《便携式甲醛检测仪》团体标准

热门文章

  1. Forms Builder常用函数
  2. 微博关注者数量在计算中的作用
  3. Android音乐播放器高级开发
  4. Mr.J-- HTTP学习笔记(七)-- 缓存
  5. 【UVALive】3029 City Game(悬线法)
  6. bzoj1010[HNOI2008]玩具装箱toy 斜率优化dp
  7. CompletionService VS ExecutorService
  8. 【转】通过身边小事解释机器学习是什么?
  9. javascript 代码可读性
  10. Rop 文件上传解决思路