Onderzoekers aan de UCLA (universiteit van California) ontwierpen een apparaat dat kleding en handgeschreven cijfers kan herkennen met de snelheid van het licht. Veel sneller dan een computer, of hersenen, en zonder verbruik van energie.
Het bestaat uit flinterdunne laagjes die elk het binnenkomend licht verspreiden in verschillende, nauwkeurig berekende richtingen. Nadat het licht elk van de laagjes doorlopen heeft, in een zorgvuldig uitgedachte dans van lenzen en spiegels, komt het op een bepaalde plaats weer naar buiten. Het is die plaats die “vertelt” wat het apparaat gezien heeft. Als het apparaat bijvoorbeeld ontworpen werd om handgeschreven cijfers te herkennen, dan kan het licht op 10 verschillende plaatsen naar buiten komen. Eén plaats per cijfer.
Dit herkennen van handgeschreven cijfers is moeilijker dan het voor ons lijkt. Iedereen schrijft immers op een iets andere manier, en het is niet eenvoudig om van duizenden verschillende afbeeldingen toch te kunnen zeggen dat ze hetzelfde cijfer voorstellen, ook als je die afbeeldingen nog nooit eerder gezien hebt.
Het is pas gedurende de laatste jaren dat computersoftware een vergelijkbare prestatie kan neerzetten als mensen. De vooruitgang in dit domein van de wetenschap is te danken aan een techniek die “deep learning” heet. Deep learning is een manier van informatieverwerking die gebruik maakt van verschillende lagen van neurale netwerken. Neurale netwerken zijn geïnspireerd op onze hersenen. Onze hersenen bestaan uit netwerken van neuronen die signalen doorgeven, en neurale netwerken ook. Alleen zijn de neuronen in neurale netwerken geen neuronen van vlees en bloed, maar zijn ze gesimuleerd. Zoals de personages in computerspelletjes zich min of meer kunnen gedragen als mensen (als je niet te kritisch bent over wat het betekent om zich “te gedragen als mensen”), zo kunnen gesimuleerde neuronen zich gedragen als echte neuronen. Ze kunnen signalen ontvangen en signalen doorgeven, en ze kunnen leren.
Bij deep learning zijn er verschillende lagen van zulke neurale netwerken, en elke laag brengt het systeem een beetje dichter bij “de oplossing”. In een systeem dat handgeschreven cijfers herkent, bijvoorbeeld via een foto, kan het zijn dat de eerste laag niet veel meer is dan neuronen die elk een pixel representeren. Dat betekent dat elk neuron signaleert wat er in een bepaalde pixel gebeurt. De neuronen in de laatste laag daarentegen, representeren de oplossing. Een neuron zal bijvoorbeeld een signaal geven wanneer het handgeschreven cijfer “1” is. Een ander wanneer het “2” is, enzovoort.
Ons visueel systeem werkt ruwweg op een gelijkaardige manier. De eerste laag is ons netvlies, waar neuronen signaleren op welke plaatsen het licht en op welke plaatsen het donker is. En ergens in onze hersenen zijn er neuronen die signaleren wanneer we een “1” of een “2” zien. Daartussen liggen vele lagen neuronen die “iets ertussen” representeren. Bijvoorbeeld het rechtopstaande lijntje van de “1”. We weten niet precies wat alle lagen van neuronen in onze hersenen doen, en ook bij deep learning zijn er zoveel (gesimuleerde) neuronen dat we moeilijk intuïtief kunnen begrijpen wat elk van die neuronen nu precies doet. Maar in een goed getraind netwerk helpt elke laag de volgende laag om een beetje dichter bij “de oplossing” te komen.
De training gebeurt door signalen die leiden tot een goed antwoord te versterken, en signalen die leiden tot een slecht antwoord te verzwakken, en dit voor elke poging tot herkenning, desnoods tienduizenden keren. In onze hersenen gebeurt dit doorlopend; de verbindingen tussen onze neuronen passen zich continu aan aan een steeds veranderende omgeving. Bij een neuraal netwerk kan men besluiten om er mee te stoppen, en de verbindingen tussen de neuronen te laten voor wat ze zijn.
Het apparaat op de afbeelding is zoals een neuraal netwerk, maar fysiek, en bevroren in de tijd. De precieze architectuur van het apparaat is ontworpen met behulp van deep learning; gesimuleerde “neuronen”, die signalen doorgeven in een gesimuleerd neuraal netwerk en zo leren om handgeschreven cijfers te herkennnen. Van zodra het gesimuleerde netwerk op punt staat, wordt het uitgeprint, met een 3D-printer, en krijg je een aantal dunne laagjes, in dit geval met een oppervlakte van 8 cm². In tegenstelling tot een computer, of ons brein, produceren de laagjes geen elektriciteit. Het signaal dat ze doorgeven, is geen elektrische impuls, maar licht. Wij kunnen zien doordat ons netvlies het licht uit onze omgeving opvangt en omzet in een elektrisch signaal. Ook bij objectherkenning door computers wordt licht, afkomstig van het te herkennen object, omgezet in een elektrisch signaal. Hier niet; hier wordt het licht zelf gebruikt als signaal.
Het licht wordt soms teruggekaatst, en soms doorgegeven, in verschillende richtingen. Op die manier reist het licht van “neuron” tot “neuron”, tot het uiteindelijk op de juiste plaats weer naar buiten komt, namelijk de plaats die aangeeft of het geziene cijfer een “1” is, of een “2”, of een ander cijfer. Elke laag bestaat uit tienduizenden van zulke “neuronen” die zich in essentie gedragen als lenzen en spiegels.
De ontwerpers hebben verschillende van deze constructies gemaakt; één om cijfers te herkennen, en één die afbeeldingen van kleding kan herkennen. De uiteindelijke bedoeling is om dit soort van constructies te incorporeren in systemen die gebruik maken van objectherkenning, zoals zelfrijdende auto’s, of medische apparatuur die grote hoeveelheden menselijke cellen kan screenen voor ziektes.
Lin, X. Et al. (2018). All-optical machine learning using diffractive deep neural networks. Science, 361, eaat8084 DOI: 10.1126/science.aat8084