19 November 2019

ObsIdentify (NIA) (3) Who is afraid of red, yellow and blue? De Vlinder Turing test voor mens en AI

In mijn vorige blog liet ik zien dat de achtergrond een onverwacht grote invloed heeft op het resultaat dat het OsIdentify (NIA) (O) programma geeft. De Atalanta die ik daarvoor gebruikte was een foto van een kleurentekening uit een vlindergids. Niks mis mee zou je zeggen. Zo leren mensen vlinders herkennen. Maar toen ik een echte foto gebruikte voor dezelfde experimenten waren de resultaten totaal anders. 

Als uitgangsfoto deze Kleine Vos met een wit gemaakte achtergrond. O determineert deze met 100% zekerheid. Dat is goed.

Foto Kleine Vos met witte achtergrond. 1280x960 pixels
gebaseerd op wikipedia

 

De kunstmatig witte achtergrond is dus totaal geen probleem. Zelfs teksten in de achtergrond en door de vlinder heen en ander geklieder maken O niets uit:

Computer says: Kleine Vos 100% !
Computer says: Kleine Vos 100% !
update: met nog meer takjes maakt niet uit!

 

Hoe kan dat? Ook egaal gekleurde achtergronden brengen O niet aan het twijfelen. Zelfs zeer felle onnatuurlijke kleuren brengen O niet van stuk. Waarom niet? Ik denk dat dit komt omdat O met echte foto's van echte vlinders is getraind. Niet met plaatjes uit een vlindergids. Wij mensen vinden dat geen groot verschil. Sterker nog: het valt ons niet eens op. Ik kreeg geen protesten dat ik een plaatje uit een vlindergids gebruikte. Maar voor O was dit wel een punt. Dit lijkt mij op zich een belangrijke constatering. Daar kom ik op terug.
Ten tweede: bij een echte foto is O 100% zeker van zijn zaak en daardoor laat hij zich niet in de war brengen door wat gerommel in de achtergrond.

Atalanta  (vlindergids) O: 61,3%
750 x 556 (zie vorig blog)
Ik denk dat die lage zekerheid 61,3% van de Atalanta met witte achtergrond uit de vlindergids niet zo maar een onschuldig voorbeeld is. Het zou wel eens kunnen verklaren waarom O gevoelig is voor achtergronden.
Ik stel me dat zo voor: stel dat wij in het donker op een afstand een persoon zien, dan kunnen we ons makkelijk vergissen wie het is. Zelfs als het een bekende is. Misschien denken we: ik kan zijn/haar gezicht niet goed zien, maar waarschijnlijk is het Jan, want die loopt meestal in een rode jas. Dus: irrelevante gegevens gaan de doorslag geven.

Who is afraid of red, yellow and blue?

Om deze hypothese te testen heb ik de echte foto van de Kleine vos van hierboven met een factor 6,4 verkleind tot 200x147. Dan zie je de eerste aanwijzingen dat sommige kleuren van de achtergrond een negatieve invloed gaan hebben. Ga je nog verder verkleinen, met 8,5x tot 150x110 dan wordt O nog onzekerder:

 [150x110] Kleine vos 100%
   Kleine vos 100%
   Kleine vos 99,9%
    Kleine vos 99,8%
   Kleine vos 70,9%
   Kleine vos 66,5%

Het effect van de achtergrond is overduidelijk. Afhankelijk van de kleur zakt de zekerheid. Bij groen zelfs tot 66,5%! Waarom? Waarom is het effect van kleuren zo verschillend? What's wrong with red, yellow and blue? NB: al deze achtergrondkleuren hebben geen enkel effect wanneer ze worden toegepast op groot formaat 1280x960 pixels. Hoe dan ook, O maakt er géén andere soort van. 
Echter, ga je het O nog moeilijker maken door ook nog onscherpte toe te voegen, dan wordt het een andere soort:


 klein+onscherp:
 Kleine vos 32,9% 
 [150x110]
 +groen:
 Oostelijke vos 74,2%
 [150x110]
 +rotzooi:
 Oostelijke vos 98,9%
 [150x110]

Door een combinatie van klein formaat 150x110 en onscherpte daalt de zekerheid van Kleine vos naar 32,9%. Voeg je daar nog een groene achtergrond aan toe, dan ziet O plotseling een Oostelijke vos. Dat is een evolutionair verwante soort die in Nederland zeldzaam is maar algemeen is in Rusland. Het drietal Kleine vos, Grote vos, Oostelijke vos is voor een leek moeilijk te onderscheiden (uitleg). Voeg je nog wat rotzooi in de groene achtergrond toe, dan loopt de zekerheid op tot de foute soort Oostelijke vos 98,9%. Deze voorbeelden tonen overtuigend aan dat de achtergrond een foute soort op kan leveren wanneer O om te beginnen al onzeker is (gemaakt). O is terecht onzeker want de foto is behoorlijk onscherp en ook nog eens klein. Onder deze omstandigheden komt het achtergrond effect tevoorschijn. Wij zouden ook enigszins onzeker zijn, maar zouden ons oordeel toch nooit door de achtergrond laten bepalen? Dat is het verschil tussen mens en machine.

Neveneffect van grote onzekerheid


Onzekere voorspellingen bij Kleine vos 32,9%
Aziatisch lieveheersbeestje (25.7%)


Het neveneffect van grote onzekerheid is dat er onzinnige alternatieven opduiken: Bastaardkikker, Kleine watersalamander.  Dat valt buiten de categorie vlinders, zelfs buiten de categorie insecten. 
Ga je nog een stapje verder met onscherpte dan komt O met Aziatisch lieveheersbeestje (25.7%).


Lezersvraag: hoever zou een machine moeten gaan om te kunnen zeggen dat die weet wat een vlinder is? Mijn voorstel: (1) blijf binnen de categorie vlinders als je het niet zeker weet. Het liefst binnen de familie of genus. Voor ons is het evident dat bovenstaande afbeelding geen lieveheersbeestje is. De gids Dagvlinders van Europa van Tristan Lafranchis is gebaseerd op sleutelkenmerken en daalt af via families, onderfamilies, geslacht tot de soort. Of die methode voor een computer geschikt is weet ik niet. Het proberen waard? (2) achtergrond mag geen invloed hebben op het resultaat. (3) het algoritme moet een vlinder uit alle richtingen herkennen. Hij moet dus 'weten' dat het een 3D object is, dat een vlinder zijn vleugels schuin kan houden, dat een vlinder heel of half in beeld is, met de kop beneden of boven, dat hij ver weg is, etc. (4) het algoritme moet zowel een goede tekening als een foto van een vlinder kunnen herkennen. (5) toekomstmuziek: in een video een vliegende vlinder herkennen als vlinder. Niet de soort, want dat kan bijna niemand. Maar wel: vlinder, hommel, wesp, vlieg, mus. En misschien ook nog dit: als het de soort niet kan identificeren, dan zou de indeling in genus of familie wel aardig zijn.

Lezersvraag: Weten mensen eigenlijk wel wat een vlinder is of leggen we de lat bij mensen minder hoog dan bij machines? Geen enkele Nederlander heeft de soortenkennis van ObsIdentify! Als je bedenkt dat ObsIdentify niet alleen vlinders herkent, maar ook andere insecten, vogels, etc. (14.000 soorten) dan zijn er niet veel mensen die dat evenaren. De vogelspotter Arjan Dwarshuis haalde binnen 1 jaar 6.833 vogelsoorten (wereldrecord). 

Het zou interessant zijn om een Turing test of een competitie te organiseren van mens en ObsIdentify. Dat geeft een objectieve vergelijking van de prestaties van mens en machine! Categorie (I) Algemeen: alle soorten dieren en planten; categorie (II): alle Nederlandse/Europese insecten; categorie (III): alle Nederlandse/Europese/Wereld vogels. Wie meldt zich?


Met dank aan Bert Morrien voor de lezersvraag.


Alle ObsIdentify blogs

  1. 30 September 2019 Test van ObsIdentify algoritme voor automatische identificatie van dieren en planten deel 1
  2. 21 Oktober 2019 ObsIdentify software gekraakt! Vlinders identificeren zonder te weten wat een vlinder is... deel 2
  3. 19 November 2019 ObsIdentify (3) Who is afraid of red, yellow and blue? De Vlinder Turing test voor mens en AI deel 3
  4.  4 December 2019 ObsIdentify herkent Kuifeend, Kikker, Kiekendief en vele andere soorten in plaatjes van 1 pixel deel 4
  5. 23 december 2019 Hoe zeker is 100%? Soorten met 100% zekerheid herkennen in random pixels. deel 5
  6.  4 Feb 2020 Hacken voor dummies en gevorderden. Beeldherkenningssoftware ObsIdentify is makkelijk te misleiden. deel 6.
  7. 18 maart 2020 ObsIdentify geeft ALTIJD foute antwoorden buiten zijn eigen domein. Ook met hoge zekerheden. deel 7 
  8. Voor alle volgende blogs over ObsIdentify klik op label ObsIdentify.

21 October 2019

ObsIdentify (NIA) software gekraakt! Vlinders identificeren zonder te weten wat een vlinder is...

In een vorig blog heb ik met ObsIdentify (NIA) software (hierna met O aangeduid) in waarneming.nl wat verkennende experimenten uitgevoerd. O is een ideale, geduldige en onvermoeibare proefpersoon. Maar, hoe goed is het programma in het herkennen van soorten? Is het bestand tegen onscherpte, kleurafwijkingen, manipulatie? 

Hoe meer de afbeelding afweek van de natuur, hoe onzekerder O werd. Steeds bleef O binnen de soortgrenzen (Atalanta in dit geval) wanneer je de vlinder zelf modificeerde.
Nu heb ik een reeks experimenten gedaan waarbij O een verkeerde soort voorspelde op basis van zeer subtiele maar totaal irrelevante manipulaties in de achtergrond van de vlinder. Ik noem dat een hack. Dit alles binnen het kader van de ethische hacker want mijn bedoeling is meer inzicht en misschien zelfs het programma verbeteren.

Voor de volgende tests heb ik een Atalanta uit de Elseviers vlindergids genomen [1]. Een geïdealiseerde vlinder met alle karakteristieke kenmerken van zijn soort tegen een schone, witte achtergrond. Alles begon met deze afbeelding:


Atalanta  (Elseviers vlindergids, 1971) O: 61,3%
750 x 556 pixels

O herkent deze Atalanta met 61,3% zekerheid. De lage zekerheid komt waarschijnlijk door subtiele kleurafwijkingen. Bijvoorbeeld: het wit op de vleugel is niet wit genoeg. Maar deze afbeelding is wel een goed uitgangspunt om uit te proberen hoe je de zekerheid omhoog kunt krijgen. Bij de eerste test had ik het percentage in de afbeelding gezet en ter controle testte ik de vlinder nog een keer:


Atalanta met zekerheid 73,4%

 

Tot mijn verbazing steeg het zekerheidspercentage van 61,3% naar 73,4%! Dat kan toch niet waar zijn! Aan de vlinder zelf was niets gewijzigd. Is O echt zo onbetrouwbaar? Is dit een reproduceerbaar effect of een toevallige variatie?

Atalanta met zekerheid 95,2%

 

Als je het getal er 4x in zet (zie afbeelding) dan stijgt de zekerheid tot 95,2% ! Een gigantisch effect! Wat is hier aan de hand? Totaal irrelevante informatie verhoogt de zekerheid. O moet die getallen aanzien voor kleine vlekjes. Dus ik begon met zwarte, rode en gele stippen te experimenteren. En steeds was er merkbaar effect op het zekerheidspercentage. Hier met twee gele cirkels in de achtergrond:

Atalanta 60,5% (2 gele stippen size: 30)

Toen ik de 2 gele stippen stapsgewijs groter maakte van 30 naar 35 pixels, zag O plotseling een Kleine vos met een zekerheid 52,4%! Zie hieronder:

Kleine Vos 52,4% (2 gele stippen size: 35)

Ten overvloede: zo ziet een Kleine vos er uit:

Kleine vos (ObsIdentify: 100.0% zeker) ©wikipedia

Het omslagpunt ligt exact bij de overgang van 34 naar 35 pixels. Dus O gaat van een Atalanta naar een Kleine Vos door 1 pixel verschil! Een verschil dat met het blote oog niet te zien is. En bovendien pixels die zich buiten de vlinder zelf bevinden. Dat O gevoelig is voor zeer subtiele verschillen is prima, maar stippen in de achtergrond van de vlinder kan niet de bedoeling zijn. Maak je nog grotere zwarte stippen dan weet O voor 88% zeker dat een Atalanta een Kleine vos is! [2]. En voor de duidelijkheid: O weet met 100% zekerheid hoe een Kleine Vos er uitziet. 

Dit was wel het allerlaatste wat ik verwacht had. Als er ergens het onderscheid tussen vlinder en achtergrond duidelijk is, dan is het wel in deze afbeeldingen. Dit zou nooit mogen gebeuren. Wat zegt dit over de werking van de software? Hoe kan O überhaupt vlinders op naam brengen als hij dit soort bizarre fouten maakt? En tòch kan hij/zij het.



Computer says: Kleine Vos 99,6% [ 10 Nov 2019 ]
Fout! het is nog steeds een Atalanta!

Ik heb nog andere manieren ontdekt om O op een dwaalspoor te brengen. Het is me gelukt om de zekerheid voor Kleine vos op te voeren tot 99,6% met louter toevoegingen in de achtergrond! (zie afbeelding). Geen mens twijfelt er aan dat dit nog steeds een Atalanta is. Computer says: Kleine Vos 99,6%.



Conclusie

Als je weet hoe je software subtiel moet manipuleren om een fout antwoord te genereren, noem ik dat een hack. Je hebt een zwakke plek in de software gevonden. Dat simpele stippen in de achtergrond voldoende zijn om de ene soort in de andere soort te transformeren, betekent dat de software geen flauw idee heeft wat het verschil is tussen vlinder en de achtergrond. Met andere woorden: hij weet domweg niet wat een vlinder is! Dat is best verbazingwekkend als je bedenkt dat een achtergrond van een vlinder altijd verschillend is. Een indicatie dat O moeite heeft met een verwarrende achtergrond is de vaak herhaalde aanbeveling: "Probeer de foto bij te snijden."
Ik heb nog vele andere aanvallen uitgevoerd, en er zijn nog vele andere denkbaar. In dit blog heb ik me beperkt tot de meest spectaculaire die ik tot nu toe gevonden heb. Ondanks dit alles werkt O in de dagelijkse praktijk prima. Maar: O is een black box: je stopt er foto's in, en er komen namen uit, maar wat er precies in het hoofd van O omgaat is voor ons een groot mysterie.

Een recente publicatie in Nature [3] constateert dat zelfs de beste machine learning AI programma's gevoelig zijn voor hacks en dat het zeer moeilijk is om AI programma's te beveiligen tegen iedere denkbare aanval. Nu ligt niemand –behalve misschien sommige biologen– wakker van het feit dat software een vlinder fout identificeert. Maar als de onderliggende software ook gebruikt wordt in beveiliging van smartphones met gezichts- iris-, stem- of vingerafdrukherkenning, of de toegang tot je bankrekening, dan is dit zeer verontrustend nieuws. Denk ook aan de recent door de politie ingevoerde automatische herkenning van bellende automobilisten. Of denk aan autopilot software in Tesla's die alle mogelijke objecten zoals tegenliggers, fietsers, voetgangers, overstekende wilde zwijnen razend snel met 100% zekerheid moet kunnen herkennen om botsingen te voorkomen. Letterlijk dodelijk zijn de aanvalsdrones die zelf het slachtoffer uitzoeken op basis van gezichtsherkenning. Als je op de hoogte bent van de zwakheden van 'intelligente software', dan zet ik mijn leven niet op het spel.


Update 10 Nov 2019: Atalanta toegevoegd: 99,6%


Postscript

27 Okt 2019
 
Het blijkt dat de auteur van ObsIdentify Laurens Hogeweg is. Volgens zijn Linkedin profiel is hij Senior Software Engineer at Naturalis Biodiversity Center, en is hij tevens verbonden aan de Radboud Universiteit Nijmegen. Recentelijk heeft hij gepubliceerd over ObsIdentify: Machine Learning Model for Identifying Dutch/Belgian Biodiversity (20 Aug 2019)


Noten

  1. In die gids staan samengestelde vlinders: de bovenkant van de vleugels links en de onderkant rechts. Om de vlinder compleet te maken heb ik de rechtervleugel vervangen door een gespiegelde kopie van de linkervleugel.
  2. Deze bug kan te maken hebben met de beginsituatie van minder dan 100% zekerheid (60%). Maak je het wit in de vleugels witter, dan is O veel zekerder en maakt het de fout niet meer. Maar in de natuur zijn de omstandigheden ook nooit ideaal! Lichtval is steeds anders.
  3. Douglas Heaven (2019) Why deep-learning AIs are so easy to fool, Nature, 9 Oct 2019 (gratis toegang)

Alle ObsIdentify blogs

  1. 30 Sep 2019 Test van ObsIdentify algoritme voor automatische identificatie van dieren en planten. deel 1.
  2. 21 Okt 2019 ObsIdentify software gekraakt! Vlinders identificeren zonder te weten wat een vlinder is.... deel 2
  3. 19 Nov 2019: ObsIdentify (3) Who is afraid of red, yellow and blue? De Vlinder Turing test voor mens en AI doe ik o.a. het voorstel voor een Turing test tussen mens en ObsIdentify: wie kan het snelst 1000 soorten correct identificeren aan de hand van foto's? deel 3
  4. 04 Dec 2019 : ObsIdentify (4). ObsIdentify herkent Kuifeend, Kikker, Kiekendief en vele andere soorten in plaatjes van 1 pixel. deel 4
  5. 23 Dec 2019: ObsIdentify (5) Hoe zeker is 100%? Soorten met 100% zekerheid herkennen in random pixels. deel 5
  6. 04 Feb 2020 : Hacken voor dummies en gevorderden. Beeldherkenningssoftware ObsIdentify is makkelijk te misleiden (deel 6)
  7. 18 Mar 2020: ObsIdentify geeft ALTIJD foute antwoorden buiten zijn eigen domein. Ook met hoge zekerheden deel 7
  8. 30 Mei 2020: Obsidentify voorspelt Wespendief, Buizerd en Ruigpootbuizerd op basis van foto's van dezelfde vogel. deel 8
  9. 26 Jun 2020: Toch nog een wespendief! deel 9
  10. 22 Jul 2020: Tesla beeldherkenning en ObsIdentify beeldherkenning: steeds beter, maar maken nog steeds klassieke fouten deel 10
  11. 11 Jan 2021: ObsIdentify herkent Cetti's zanger op tegenlicht foto met 99% zekerheid deel 11
  12. 4 Mar 2021 : Perfecte camouflage citroenvlinder misleidt ObsIdentify software. deel 12.
  13. 25 mei 2021: Onwaarschijnlijk goede prestaties van ObsIdentify met blauwborst en ree. deel 13.
  14. 21 juni 2021: ObsIdentify en het mysterie van de Gouden Loopkever. Het Randblindheid effect bewezen. deel 14.
  15. Voor alle volgende blogs over ObsIdentify klik op label ObsIdentify.  

 

08 October 2019

The Resurrection of Darwin's Pangenesis theory?

©http://darwin-online.org.uk
Is Darwin's long forgotten and discredited theory of Pangenesis resurrected from the dead? A publication in Nature Reviews Molecular Cell Biology [1] suggests his theory is at least partly true and was the inspiration for a number of scientists after Darwin.

What is Pangenesis? Darwin published his Pangenesis theory in volume 2 of The Variation of Animals and Plants under Domestication (1868). According to the authors the Pangenesis theory proposed a mechanism for the flow of hereditary information between cells and between generations.
Strinkingly, this definition merges two completely different phenomena in one concept: cell-to-cell communication and the transmission of genetic information from parent to child. Next, the authors claim that "emerging evidence of cell-to-cell communication urges the reconsideration of this 150-year-old theory."

More precisely, the Pangenesis theory says (according to the authors) that in addition to cell division as a means of transferring information, every cell emits numerous gemmules. They travel through the body and unite with other somatic cells and germ cells. So, it appears that both parts of the theory cannot be separated. It is a complex theory. Darwin knew this.

Additionally, and importantly, gemmules can be modified by the environment. If those modified gemmules end up in germ cells, and are transmitted to the next generation, it is called 'Lamarckian inheritance'. The consensus in the biological community is that Lamarckian inheritance is not possible and should be rejected.

What is the new evidence according to the authors? They point to extracellular vesicles such as exosomes [2] which transport information in the form of RNA and proteins between cells, including germ cells. In particular small RNAs have been found in sperm. They are the carriers of acquired phenotypes such as diet-induced metabolic disorders and mental stress phenotypes. This is an extra-chromosomal type of inheritance. There is no integration in DNA. The authors propose that also circulating cell-free DNA and mobile RNAs could be viewed as instances of Darwin's pangenes. If these factors are indeed inherited, they seem to me a form of transient inheritance.

The transmission of exosomes is not the same as Transgenerational epigenetic inheritance because transgenerational epigenetic inheritance is the transmission of epigenetic markers of DNA or histones. Those markers are inherited together with chromosomal DNA and follow therefore a Mendelian pattern.
However, the authors also include epigenetic inheritance as evidence for Darwin's Pangenesis theory. This is confusing because these markers are not transmitted in exosomes. Exosomes carry small pieces of RNA and proteins and not whole genomes with epigenetic markings attached. Epigenetic markers cannot be transmitted as free floating individual molecules. They could not be viewed as modern incarnations of Darwin's gemmules. And gemmules are at the heart of Pangenesis. Therefore, I do not consider epigenetic markers an evidence in favour of Darwin's Pangenesis. In a more general sense, epigenetic markers could be  evidence for the rather vague idea of inheritance of acquired characteristics. But one should be careful to distinguish those different meanings.

I think it is a little far-fetched to interpret Darwin's gemmules in cellular or molecular terms as the authors do [5]. Darwin did sometimes use the word 'cells', but he certainly could not think in molecular terms. Furthermore, in my view his Pangenesis theory tries to unite too many different phenomena in one theory: ordinary heredity, the inheritance of acquired characteristics, recessiveness, causes of variation, and more.
I think it is confusing that the authors of the Nature article lump together chromosomal inheritance -which equals the complete genome of an organism- with modifications of that DNA, or a few small RNA molecules. The difference in the amount of information can easily be a million fold. Human sex cells contain three billion DNA base pairs. That is huge compared with what could be present for example in exosomes. Furthermore, chromosomal DNA is necessary to create a new organism (plant, animal) and inherited epigenetic modifications are mostly facultative additions.
The well-known role of histone methylation in animal development [3] has nothing to do with inherited epigenetic modifications, since those tissue-specific embellishments are necessarily newly created in the embryo. One cannot inherit tissue-specific instructions through one sperm and egg cell.
The authors downplay the fundamental difference of Darwin's theory of heredity with the current theory. Heredity means for Darwin the aggregation of the gemmules produced by all somatic cells. For Darwin gemmules are not an addition to the main mechanism, they are the main mechanism of heredity. We now know that this is completely wrong [4]. Furthermore, I think the authors do not present an overwhelming amount of new evidence to justify the resurrection of Darwin's Pangenesis theory.

Having said all that, I still think that the chapter about Pangenesis in The Variation of Animals and Plants under Domestication deserves a fresh study. It should be interesting to investigate how Darwin thought about the material basis of heredity without knowledge of Mendelian inheritance, chromosomes and DNA. I think it is interesting despite the fact that Darwin had a profound Lamarckian view of heredity. Darwin collected an enormous amount of data and his theory of Pangenesis was designed to explain them all. And as usual he discussed objections to his theory. I expect that reading Darwin will learn us a lot about his struggle with those objections, and how he tried to create a synthesis of the knowledge of his time, just as he did with his theory of evolution. Undeniably, it is one and the same person who created the theory of evolution and the Pangenesis theory.



Notes

  1. Yongsheng Liu, Qi Chen (2018) 150 years of Darwin’s theory of intercellular flow of hereditary information, Nature Reviews Molecular Cell Biology volume 19, pages 749–750 2018.
  2. Do not confuse 'exosomes' with 'exomes' because 'exome' refers to the part of the genome that codes for proteins in contrast to 'introns' which are eliminated from a gene before being translated in to a protein.
  3. Ashwini Jambhekar, Abhinav Dhall, Yang Shi (2019) Roles and regulation of histone methylation in animal development, Nature Reviews Molecular Cell Biology volume 20, pages 625–641 (2019)
  4. One of the main problems with gemmules (pangenes) as the mechanism of heredity is: if gemmules are continuously produced by all body cells and spread through the body, what mechanism guarantees that exactly the right amount and types of the gemmules, not too many, not too few of the same kind are collected in the germ cells (egg, sperm)? Imagine many copies of 20.000 free floating genes through the whole body! Total chaos! We now know that the function of chromosomes and cell division is to ensure that the daughter cells get the right amount of genes. I do not know whether Darwin was aware of that problem. [ 9 Oct 2019 ]
  5. Darwin knows about cells: "Virchow, the great supporter of the cellular theory" but the theory was not well established at the time. [ 9 Oct 2019 ]

Further Reading