遗传算法失真图像复原代码(万千网友人力搭建的遗传算法)(1)

GHS是第一生产力。

一张毫无规则的马赛克图片,在无数次的动态进化后会变成什么样?一位日本网友找到了答案——它可能是张色图。

今年年初,这位名叫群青ちきん的网友在自己设计的游戏网站上发布了这样一个页面,叫“让我们用遗传算法来算出色图”。他计划在网友的帮助下,引导马赛克图的变化走向,让它自觉生成一张色图。

而结果是,在一个月时间里,在遗传至第11225代马赛克、经历了126,000,625次选择后,实验获得了成功。

马赛克怎么知道什么更“色”?答案当然是来自玩家的选择。游戏的大致规则是:最开始先由系统提供随机生成的图片,玩家则需要在其中选出看起来更色的一张,再利用算法推演循环,直到它成长为一张真正意义上的色图为止。

只不过当玩家们兴致勃勃点开链接想要好好发挥一番时,或许会首先受到意料之外的纯正马赛克冲击。

遗传算法失真图像复原代码(万千网友人力搭建的遗传算法)(2)

一开始的马赛克图大概是这样的

“挑选出更色的一张图”的要求并没有想象中那么简单,实际上,每一位参与游戏的玩家都曾经感受到了左右为难。因为大部分时候,玩家要面对的两张图在肉眼上几乎分不出区别,哪一张更色一些,只能凭借直觉来判断。

而对于在更早期接触这个游戏的玩家来说,面对的挑战看起来更不人道。他们几乎要面对两张完完整整的马赛克来挑选出“更色”的一个,且看上去不管哪张图胜出都实在没什么依据可言。

遗传算法失真图像复原代码(万千网友人力搭建的遗传算法)(3)

请挑选出更性感的马赛克?

最开始,面对成千上万张形态各异的马赛克,作者自己也忍不住承认,对实验能否成功将信将疑。毕竟玩家要扮演的就像是一个无情的人工智能色图筛选器,在一时半会儿还看不见筛选成果,枯燥不说,满屏幕的马赛克也确实让人有些头昏眼花。

但事情很快就在第两千七百代马赛克中出现了转机。在经过玩家们四百多万次的热情点击之后,淡黄色开始逐渐往图片中部聚集,混乱的画面看起来有了些许规律,革命性的瞬间也终于发生——模糊的图片里利用浅粉色的圆形勾勒出了欧派的形状了,并在后续生成的图片里稳定出现了欧派。

遗传算法失真图像复原代码(万千网友人力搭建的遗传算法)(4)

第2740代

马赛克是怎么知道欧派属于色图要素并保留下来的?除了人类的热心帮助之外,欧派的成功归功于实验标题中的遗传算法。

高中生物里就曾经对生物的遗传规律做过解释:只有更适应大自然的生物才能存活下来,繁衍后代,遗传优良的性状,使得整个物种向上,完成适者生存。遗传算法就是利用这个原理筛选出欧派的,只不过筛选标准是“色不色”。

遗传算法的运算里,所有无序的马赛克图可以看成是一个种群,人类的标准就是种群适应度,在网页中玩家会获得两张随机生成但有细微差别的马赛克图,进行一对一的决斗,胜利者会与另一张胜利者“交配”,把优质性状(也就是色图元素)留下来,传给下一代。能够适应的马赛克图就能够存活下来,否则就会在激烈的竞争中因为没有满足人类的需求而默默消失。

遗传算法失真图像复原代码(万千网友人力搭建的遗传算法)(5)

但仅仅只是繁衍优质属性还不够,在程序中,下一代产生的马赛克图有1%的可能性产生随机变异,就如同生物的演化一样,变异是产生优良性状最好的来源,比如第一个在马赛克图片中心出现的浅黄色圆形,一定会在层层筛选中存活下来,成为演变中不可或缺的一笔。

所以每一代图片的产生,都来自于上一代父本和母本的胜利,也就是玩家至少两次点击。这张首次出现淡黄色元素的图像为2232代,而它的诞生,来自玩家们至少4,981,824次痛苦的选择。

遗传算法失真图像复原代码(万千网友人力搭建的遗传算法)(6)

第2232代

新的欧派出现了,但谁能证明它就属于色图元素呢?对于没有感情的马赛克来说,它的定义更像是:淡黄色圆形加上红色圆点。但总有人能够证明这种元素的存在,比如微博后台的审核人员,比如谷歌系统的智能AI。

最终,作者决定让系统和系统来一场博弈。他将自己网站的色图投放到了Google AdSense上,这是谷歌公司的一个广告计划,会在Youtube等大流量网页中置入广告,而一旦被系统识别为色图,停止了广告投放,实验就算成功。

本以为一切都会这样顺利进行下去,但当演变到三千多代时,制作者犯了一个致命的错误:他不小心把游戏进程回档了。那个历经上百万次点击才出现的欧派在图中消失,退化成了一张平平无奇的马赛克。

遗传算法失真图像复原代码(万千网友人力搭建的遗传算法)(7)

第3043代

但人类对欧派的痴迷是如此强烈,这次仅仅花掉了五百代的时间,就将欧派找了回来。

遗传算法失真图像复原代码(万千网友人力搭建的遗传算法)(8)

第3537代

在获得了欧派的加持之后,游戏进度突飞猛进,相对于什么都无法分辨的马赛克图,玩家们似乎终于获得了新的动力。在第3753代时,脸部和身躯就出现了轮廓

遗传算法失真图像复原代码(万千网友人力搭建的遗传算法)(9)

随后,五官也开始显现出来。

遗传算法失真图像复原代码(万千网友人力搭建的遗传算法)(10)

待到5521代时,一位昭和艳星正跃然马赛克上。她拥有着青色的卷发,性感的身躯,和看不清的大长腿。

遗传算法失真图像复原代码(万千网友人力搭建的遗传算法)(11)

鉴于马赛克这个时候已经化形了,我们不得不给它加上游研社祖传马赛克

当游戏进展到这里,所有人都以为成功的瞬间就要到来,但玩家们却突然为自己的个人喜好展开了新的斗争。原先的青色卷发很快就因为不顺应世代潮流被淘汰,取而代之的是新的棕色短发美人。

遗传算法失真图像复原代码(万千网友人力搭建的遗传算法)(12)

第6500代

但另一部分玩家觉得长发更好,美人便用1500代的时间留回了长发。她的脸部轮廓也逐渐变得清晰,腰线更细,叉着腰的左手曲线也更明显。

遗传算法失真图像复原代码(万千网友人力搭建的遗传算法)(13)

第8000代

当推进到9000代时,这位美少女变得更显得年轻,发色也从棕色变成了鲜艳的大红色,正侧着脸望向远方,人类也终于对她的发色了达成共识。

遗传算法失真图像复原代码(万千网友人力搭建的遗传算法)(14)

但还有一些让玩家们不满意的,比如少女左手该如何放置。在最开始的版本中,她的左手插在腰间,摆出了常见的Pose造型。但一部分玩家对这个动作并不买账,很快,少女的手臂被重新改造,成为了更为挑衅的形态。

遗传算法失真图像复原代码(万千网友人力搭建的遗传算法)(15)

第9500代

在经历了5000代的塑造和5000代的细节修正之后,2月8日,历史性的这一天终于来临了。根据作者在推特上的统计,有一半用户称自己看不到这条广告了。

遗传算法失真图像复原代码(万千网友人力搭建的遗传算法)(16)

谷歌的邮件也确认了这一事实。在第一万代马赛克图到来之前,这位大众情人历时三十天终于收到了“色情”的标签,完成了使命,进化成了人类标准中的“色图”。而人类,终究还是驯化了马赛克,在互联网上留下了一段新的传说。

遗传算法失真图像复原代码(万千网友人力搭建的遗传算法)(17)

称广告图片因为涉及“色情内容”而被下架

而Youtube上的相关内容也在更早前被下架。一位网友因为想要与朋友分享实验过程,在Youtube上更新了马赛克图的演变动态,并在2月6号收到了网站的警告,提前收获了实验的硕果。

遗传算法失真图像复原代码(万千网友人力搭建的遗传算法)(18)

截至实验结束,马赛克图经过了一万代的演变,最终达到了那条互联网上的及格线。在一张涵盖了全部演变过程的缩略图里,雪花在摸索中逐渐变得规律、成型、有序,逐渐适应玩家的选择,最终成为了“人类”,一如人类进化的过程。

遗传算法失真图像复原代码(万千网友人力搭建的遗传算法)(19)

实验已经结束了三个月,但作者并没有关闭实验页面,而是任其自由发展。彼时的红色长发少女,已经变成了粉色短发斜刘海女孩,甚至还改变了脸部朝向和面部表情,成为了新世代的宠儿。而后续而来的参与者,将会为这位少女寻找新的成长方向。

遗传算法失真图像复原代码(万千网友人力搭建的遗传算法)(20)

连作者也没想到实验能够如此顺利地展开,玩家们意外和谐地联合了起来,为了共同的目标,能够忍受千万张马赛克的折磨。在自述中,作者称自己发现了一条亘古不变的真理:为了性,人类永远可以团结在一起。

而这场关于人类团结的实验,其结果显然是空前成功的。这点也可以从侧面证明:我们本来准备了一个视频,让大家能更直观地见识到到这张马赛克图波澜壮阔的生命史——

但它已经通过不了机器审核了。

遗传算法失真图像复原代码(万千网友人力搭建的遗传算法)(21)

,