遗传算法

  1. 复杂系统是如何进化出解决问题的策略的呢?昨天讲了“并行级差扫描”策略,今天讲讲“遗传算法”策略。

  2. 用大白话说,遗传算法就是:系统先随机探索,各种策略随机生成,然后打分,适应度高的高分。根据分数,选中高分的“优良”策略(其实一开始都不咋的),作为父代,繁衍下一代策略。

  3. 请注意,子代不是完全复制父代,会有稍微的随机变异。繁衍完毕后,下一代再根据适应度打分,选高分的作为新的父代,再繁衍,再稍微变异,如此循环。

  4. 这么经过N多代的自然选择,系统会进化出“智能”,甚至是人类不能理解的“智能”,比如Alphago Zero的围棋招数。

  5. 这就是“遗传算法”,你给它问题,它演化策略,从随机中寻找适应,最终进化出人类不能理解的策略。

  6. 你看,你训练机器,给它反馈,高分还是低分。比如机器人捡易拉罐,遇到易拉罐不捡是低分,捡了是高分。拐弯跑去别的没有易拉罐的方向,是低分。跑去有易拉罐的方向是高分。

  7. 只要反馈明确,它会渐渐演化出“智能”,比如放弃直接捡易拉罐,先把周围易拉罐集成一堆,这个“方法”会进化出来。因为从父代到子代,有随机的变异,只要有一次变异出这个“方法”,发现是高分,这“方法”就遗传下来了。

  8. 总结,这就是“遗传算法”,优秀的父代,变异的子代,再选取新的父代。如此循环。

你可能感兴趣的:(遗传算法)