B2 · 第3集 · 5:46
用算法模拟进化
把进化比作在山坡上找最高点:简单问题好算,复杂问题很快就算不动,于是改用更像生物进化的办法。
来源:Nathan / skeptikon.fr · 许可:CC0 1.0
字幕
En x égal à- 3, on a en fait ce qui est appelé un minimum local.
当 x 等于 -3 时,实际上存在一个局部最小值。
Faire le forcing, c'est une façon de résoudre numériquement le problème avec
强制计算法是一种数值求解方法,
précision qui marche bien pour des expressions simples.
它精度高,适用于简单表达式。
Mais dans le cas d'expressions plus complexes, souvent rencontrées en recherche,
但在科研中常遇到的复杂表达式情况下,
on arrive très vite aux limites même des meilleurs ordinateurs de la planète.
即使动用全球最顶尖的计算机,也很快会达到极限。
Le forcing implique tout simplement trop de calculs.
因为强制计算涉及的运算量实在太大。
Dans l'univers des méthodes de résolution numérique,
在各类数值求解方法中,
l'enjeu c'est de trouver des méthodes qui s'éloignent le plus possible du forcing,
关键在于找到尽可能远离强制计算的方法,
sans pour autant s'arrêter au premier minimum local.
同时又不满足于停在第一个局部最小值处。
Aujourd'hui encore, c'est un important domaine de recherche dans les universités du
直到今天,这仍是全球各大学的重要研究领域。
monde entier. Ce que je vais vous présenter maintenant,
接下来我要向大家介绍的,
c'est la méthode la plus folle que j'ai croisée durant mes années de thèse.
是我博士期间所接触过的最奇妙的方法。
qui mimique rien de moins que les mécanismes de l'évolution pour arriver à ses fins.
它模仿的,正是进化机制本身。
L'évolution, en voilà un phénomène passionnant.
进化——多么令人着迷的现象啊!
Il concerne des choses qu'on appelle des êtres vivants.
它作用于我们称之为‘生命体’的事物。
Alors le vivant, en gros, est constitué d'organismes capables de faire des copies
广义而言,生命由能自我复制的生物体构成。
d'eux- mêmes. Ces copies sont imparfaites,
这些复制品并不完美,
et donc les individus présentent un certain nombre de différences les uns avec les
因此个体之间存在诸多差异。
autres. Au fil des générations, ces différences vont s'accumuler,
随着世代更替,这些差异不断累积,
peuvent devenir hyper importantes,
甚至可能变得极为显著,
et elles aboutissent à une grande diversité dans les formes que prend le vivant,
最终导致生命形态呈现高度多样性。
puisqu'on parle un peu du vivant.
既然提到了生命,我们就多说几句。
Quand un caractère rend l'individu moins apte à se reproduire,
当某种性状削弱了个体的繁殖能力时,
l'environnement, qui n'est pas très charitable, va
缺乏仁慈的环境就会,
éliminer la variation.
淘汰这种变异。
Ça, en résumé, c'est ce qu'on appelle la sélection naturelle.
这,简而言之,就是我们所说的自然选择。
Et selon les différents types de milieux, la forêt, la toundra,
而根据不同的环境类型——比如森林、苔原,
le sous- sol ou votre intestin,
地下土壤,甚至你的肠道,
ce sont différents caractères qui apporteront assez d'avantages pour être
不同性状会带来足够优势,从而被筛选出来。
sélectionnés. Et le truc, c'est que l'environnement est une chose changeante.
关键在于,环境本身是不断变化的。
Le climat, le relief, l'altitude.
气候、地形、海拔,
la présence de proies, de compétiteurs, de dangers ou de ressources,
猎物、竞争者、危险或资源的存在,
tout ça est très dynamique à l'échelle du temps géologique.
在地质时间尺度上,这一切都极具动态性。
Nous ne vivons plus dans le même monde qu'il y a vingt mille ans,
我们生活的世界,已不同于两万年前的世界,
quand une calotte polaire d'un kilomètre d'épaisseur descendait jusqu'au massif
当时一公里厚的冰盖一直延伸到中央高原,
central, de toute évidence.
这一点显而易见。
Ce qui permet aux organismes de ne pas tous crever dès que le temps change,
当环境变化时,生物体之所以不会全部死亡,
c'est leur diversité.
正是它们的多样性。
Et ce réservoir d'adaptation face aux incertitudes de l'environnement est alimenté
而这种应对环境不确定性的适应储备,
par des phénomènes qui modifient les génomes.
由改变基因组的现象所补充。
Ce sont les mutations.
这些现象就是突变。
Chaque individu, à chaque génération,
每个个体在每一代中,
porte dans toutes ses cellules des petits changements par rapport au code de ses
其所有细胞内都携带着相对于父母基因编码的微小变化。
parents. Si le changement touche une séquence absolument vitale,
如果变化影响了绝对关键的基因序列,
c'est dommage pour lui, il ne finira pas son développement.
那对他来说就很不幸——他将无法完成发育。
D'autres fois, il naîtra mais mal portant.
其他时候,他虽能出生,但体质虚弱。
Le plus souvent, il ne sera pas différent de ses sœurs, frères et cousins.
大多数情况下,他与兄弟姐妹、堂表亲并无差异。
Mais de façon exceptionnelle, sa différence pourra le rendre plus apte à,
但极少数情况下,他的这一差异可能使他更擅长——
au choix, grandir, survivre, séduire un
择其一:生长、存活、吸引配偶,
partenaire, engendrer des descendants ou les protéger.
繁育后代,或保护后代。
Ce qui fait l'affaire de ces mutations,
使这些突变得以成功的因素是,
car aura plus de chances de se propager au sein de la population.
该突变在种群中传播的可能性更大。
Vous imaginez bien que le monde réel est plus compliqué que ce que je viens de vous
您不难想象,现实世界比刚才我所讲的要复杂得多,
raconter, mais si vous avez compris ça,
但只要您理解了这一点,
vous disposez des concepts essentiels et vous devriez pouvoir suivre le reste de la
就已掌握了核心概念,
vidéo sans plus de difficulté qu'un félin moyen.
接下来观看视频的其余部分,对您而言将不会比一只普通猫咪更费力。
Vive les chiens.
万岁!狗狗们!
À bientôt Nathan.
下次见,内森!
D'ailleurs tu peux couper si tu veux le vive les chiens,
顺便说一句,如果您想剪掉‘万岁!狗狗们!’这句,完全可以,
je peux comprendre que tu sois extrêmement intolérant.
我能理解您对此极度难以忍受。
Repartons de l'expression dont le minimum global se trouvait en x égal zéro,
我们重新从这个表达式出发:它的全局最小值出现在x等于零处,
mais ça on va l'oublier et repartir de rien.
不过我们将忽略这一点,从头开始。
Je commence par choisir une douzaine de points au pif entre moins cinq et cinq,
我先随意在负五到正五之间选取约十二个点,
c'est l'étape d'initialisation.
这是初始化阶段。
Ces douze points représentent douze organismes qui vivent leur vie.
这十二个点代表十二个正在各自生活的生物体。
La seule caractéristique biologique de ces organismes, c'est leur valeur de x:
这些生物体唯一的生物学特征,就是它们的x值:
celui le plus à droite a la plus grande valeur de x,
最右边的那个x值最大,
celui tout à gauche la plus faible.
最左边的那个x值最小。
L'environnement dans lequel ces organismes vivent, comme le disait Thomas,
这些生物体所处的环境——正如托马斯所说——
il n'est pas très charitable.
并不怎么友善。
Il va éliminer sans pitié, disons, 25% des organismes à chaque cycle.
每一轮循环中,它都会毫不留情地淘汰约25%的生物体。
Pour déterminer lesquels, on va calculer notre expression pour chacun d'eux.
为确定淘汰哪些个体,我们将为每个生物体计算该表达式的值。
Plus le résultat est élevé, moins on dira que l'organisme est adapté à son
结果越高,说明该生物体
environnement.
对其环境的适应性越低。
Plus le résultat est faible, plus l'organisme sera considéré adapté.
结果越低,该生物体的适应性就越强。
Les trois points en rouge passent donc à la trappe.
因此,三个红色点被剔除。
Les organismes qui restent vont maintenant faire des bébés pour remplacer les trois
剩下的生物体现在开始繁殖,以替代那三个死亡的个体。
morts. Disons que deux de ces nouveau- nés seront le fruit d'une mutation aléatoire.
假设其中两个新生个体源于随机突变。
Ça veut juste dire que leur valeur de x est prise au hasard entre- 5 et 5.
这仅表示它们的x值在-5到5之间随机选取。
Le troisième nouveau- né, lui, sera similaire aux neuf survivants.
第三个新生个体则与九个幸存者相似。
Je vais le simuler simplement en faisant la moyenne des neuf survivants.
我将直接用这九个幸存者的平均值来模拟它。
Voilà. Un premier cycle est passé, passons au second.
好了,第一轮循环完成,进入第二轮。
L'environnement élimine à nouveau les trois organismes les moins adaptés.
环境再次淘汰掉适应度最低的三个生物体。
Souvent les mutants y passent car c'est le propre des mutations,
突变个体往往会被淘汰,因为突变本身的特点就是——
elles donnent généralement des individus mal adaptés.
它们通常产生适应性较差的个体。
Afin de remplacer les morts, deux nouveau nés sont obtenus par mutation à nouveau,
为填补空缺,又通过突变产生两个新生个体,
un autre est la moyenne des neuf survivants.
另一个则是九个幸存者的平均值。
Le second cycle est complet.
第二轮循环结束。
On a l'impression que ce petit jeu ne rime pas à grand- chose,
这个小游戏看似毫无意义,
mais si je presse sur l'accélérateur et multiplie les cycles,
但如果我按下加速键、增加循环次数,
regardez ce qui se passe.
请看会发生什么。
À l'exception des mutants, les organismes se ressemblent de plus en plus,
除突变体外,生物体彼此越来越相似,
c'est- à- dire que leur différence, la diversité de l'ensemble,
也就是说,整个群体的差异性,即多样性,
est en baisse.
正在下降。
Les organismes sont de mieux en mieux adaptés à leur environnement,
生物体对环境的适应性持续提升,
se concentrant autour de x égale zéro.
逐渐向x=0处聚集。
C'est lent et il faut 57 cycles avant d'obtenir une convergence satisfaisante.
这个过程很慢,需要57轮循环才能达到满意的收敛效果。
On peut recycler la même approche pour résoudre le problème de Caju,
我们可以沿用同样的方法来解决卡朱(Caju)提出的问题:
à savoir trouver un diamètre de boîte de conserve qui minimise la surface de métal
即,在体积保持不变的前提下,找出使罐头盒表面积最小的直径。
de la boîte lorsque le volume est maintenu constant.
——也就是罐头盒的金属表面积。
Une convergence satisfaisante autour de 5,
在5.9左右取得了令人满意的收敛效果,
9 est cette fois obtenue après seulement quatorze cycles.
这次仅经过14轮迭代就实现了。
Je ne sais pas pour vous, mais moi, la première fois qu'on m'a montré ce bazar,
我不知道你们是什么感觉,但对我来说,
j'en suis tombé de ma chaise.
第一次看到这个玩意儿时,我惊得从椅子上掉了下来。
Ce dont je viens de vous faire la démonstration est appelé un algorithme
我刚刚向你们演示的这种方法,叫做进化算法,
évolutionnaire, et je trouve ça dingue que ça marche si bien.
而它居然如此有效,真让我觉得不可思议。