Neurale netwerken. Waar gaat dit allemaal heen?

Het artikel bestaat uit twee delen:

  1. Een korte beschrijving van enkele netwerkarchitecturen voor objectdetectie in afbeeldingen en beeldsegmentatie met de voor mij meest begrijpelijke links naar bronnen. Ik probeerde video-uitleg te kiezen en bij voorkeur in het Russisch.
  2. Het tweede deel is een poging om de ontwikkelingsrichting van neurale netwerkarchitecturen te begrijpen. En technologieën die daarop zijn gebaseerd.

Neurale netwerken. Waar gaat dit allemaal heen?

Figuur 1 – Het begrijpen van neurale netwerkarchitecturen is niet eenvoudig

Het begon allemaal met het maken van twee demo-applicaties voor objectclassificatie en detectie op een Android-telefoon:

  • Back-end-demo, wanneer gegevens op de server worden verwerkt en naar de telefoon worden verzonden. Beeldclassificatie van drie soorten beren: bruin, zwart en teddy.
  • Front-end demowanneer de gegevens op de telefoon zelf worden verwerkt. Detectie van objecten (objectdetectie) van drie soorten: hazelnoten, vijgen en dadels.

Er is een verschil tussen de taken van beeldclassificatie, objectdetectie in een afbeelding en beeldsegmentatie. Daarom was er behoefte om uit te zoeken welke neurale netwerkarchitecturen objecten in afbeeldingen detecteren en welke kunnen segmenteren. Ik vond de volgende voorbeelden van architecturen met de voor mij meest begrijpelijke links naar bronnen:

  • Een reeks architecturen gebaseerd op R-CNN (Rregio's met Convolutie Neuraal Nnetwerkfuncties): R-CNN, Snelle R-CNN, Snellere R-CNN, Masker R-CNN. Om een ​​object in een afbeelding te detecteren, worden er selectiekaders toegewezen met behulp van het Region Proposal Network (RPN)-mechanisme. Aanvankelijk werd het langzamere Selective Search-mechanisme gebruikt in plaats van RPN. Vervolgens worden de geselecteerde beperkte regio's ter classificatie aan de invoer van een conventioneel neuraal netwerk toegevoerd. De R-CNN-architectuur heeft expliciete “for”-lussen over beperkte regio’s, met in totaal maximaal 2000 runs via het interne AlexNet-netwerk. Expliciete “for”-lussen vertragen de beeldverwerkingssnelheid. Het aantal expliciete lussen dat door het interne neurale netwerk loopt, neemt af met elke nieuwe versie van de architectuur, en er worden tientallen andere wijzigingen aangebracht om de snelheid te verhogen en de taak van objectdetectie te vervangen door objectsegmentatie in Mask R-CNN.
  • YOLO (You Olleen LOOK Once) is het eerste neurale netwerk dat objecten in realtime op mobiele apparaten herkent. Onderscheidend kenmerk: objecten in één run onderscheiden (slechts één keer kijken). Dat wil zeggen dat er in de YOLO-architectuur geen expliciete “for”-lussen zijn, en daarom werkt het netwerk snel. Bijvoorbeeld deze analogie: in NumPy zijn er bij het uitvoeren van bewerkingen met matrices ook geen expliciete "for" -lussen, die in NumPy via de programmeertaal C op lagere niveaus van de architectuur worden geïmplementeerd. YOLO gebruikt een raster van vooraf gedefinieerde vensters. Om te voorkomen dat hetzelfde object meerdere keren wordt gedefinieerd, wordt de vensteroverlapcoëfficiënt (IoU) gebruikt. Ikruispunt over Unie). Deze architectuur werkt over een breed bereik en heeft hoge robuustheid: Een model kan worden getraind op foto's, maar presteert nog steeds goed op handgetekende schilderijen.
  • SSD (Single Shete MultiBox Detector) – de meest succesvolle ‘hacks’ van de YOLO-architectuur worden gebruikt (bijvoorbeeld niet-maximale onderdrukking) en er worden nieuwe toegevoegd om het neurale netwerk sneller en nauwkeuriger te laten werken. Onderscheidend kenmerk: objecten in één keer onderscheiden met behulp van een bepaald raster van vensters (standaardvak) op de afbeeldingspiramide. De beeldpiramide wordt gecodeerd in convolutiestensoren door opeenvolgende convolutie- en pooling-operaties (met de max-pooling-operatie neemt de ruimtelijke dimensie af). Op deze manier worden zowel grote als kleine objecten in één netwerkrun bepaald.
  • Mobiele SSD (MobileNetV2+ SSD) is een combinatie van twee neurale netwerkarchitecturen. Eerste netwerk MobielNetV2 werkt snel en verhoogt de herkenningsnauwkeurigheid. MobileNetV2 wordt gebruikt in plaats van VGG-16, dat oorspronkelijk werd gebruikt origineel artikel. Het tweede SSD-netwerk bepaalt de locatie van objecten in het beeld.
  • SqueeNet – een heel klein maar nauwkeurig neuraal netwerk. Op zichzelf lost het het probleem van objectdetectie niet op. Het kan echter worden gebruikt in een combinatie van verschillende architecturen. En gebruikt in mobiele apparaten. Het onderscheidende kenmerk is dat de gegevens eerst worden gecomprimeerd in vier 1×1 convolutionele filters en vervolgens worden uitgebreid naar vier 1×1 en vier 3×3 convolutionele filters. Eén zo'n iteratie van datacompressie-uitbreiding wordt een "Fire Module" genoemd.
  • DiepLab (Semantische beeldsegmentatie met diepe convolutionele netten) – segmentatie van objecten in het beeld. Een onderscheidend kenmerk van de architectuur is de verwijde convolutie, waardoor de ruimtelijke resolutie behouden blijft. Dit wordt gevolgd door een nabewerkingsfase van de resultaten met behulp van een grafisch probabilistisch model (voorwaardelijk willekeurig veld), waarmee u kleine ruis in de segmentatie kunt verwijderen en de kwaliteit van het gesegmenteerde beeld kunt verbeteren. Achter de formidabele naam ‘grafisch probabilistisch model’ gaat een conventioneel Gaussiaans filter schuil, dat op vijf punten wordt benaderd.
  • Ik heb geprobeerd het apparaat te achterhalen VerfijnDet (Enkel schot Verfijnenment Neuraal netwerk voor object Detsectie), maar ik begreep er niet veel van.
  • Ik heb ook gekeken naar hoe de ‘aandachts’-technologie werkt: video1, video2, video3. Een onderscheidend kenmerk van de ‘aandachts’-architectuur is de automatische selectie van gebieden met verhoogde aandacht in het beeld (RoI, RREGIO 'S of Irente) met behulp van een neuraal netwerk genaamd Attention Unit. Gebieden met verhoogde aandacht lijken op selectiekaders, maar liggen in tegenstelling tot deze niet vast in het beeld en kunnen vage grenzen hebben. Vervolgens worden uit gebieden met verhoogde aandacht tekens (kenmerken) geïsoleerd, die worden ‘gevoed’ naar terugkerende neurale netwerken met architecturen LSDM, GRU of Vanille RNN. Terugkerende neurale netwerken kunnen de relatie tussen kenmerken in een reeks analyseren. Terugkerende neurale netwerken werden aanvankelijk gebruikt om tekst in andere talen te vertalen, en nu voor vertaling afbeeldingen naar tekst и tekst naar afbeelding.

Terwijl we deze architecturen verkennen Ik besefte dat ik niets begrijp. En het is niet zo dat mijn neurale netwerk problemen heeft met het aandachtsmechanisme. De creatie van al deze architecturen is als een soort enorme hackathon, waarbij auteurs strijden in hacks. Hack is een snelle oplossing voor een lastig softwareprobleem. Dat wil zeggen, er is geen zichtbaar en begrijpelijk logisch verband tussen al deze architecturen. Het enige dat hen verenigt is een reeks van de meest succesvolle hacks die ze van elkaar lenen, plus een gemeenschappelijke hack voor iedereen convolutie met gesloten lus (fout backpropagatie, backpropagatie). Nee systeemdenken! Het is niet duidelijk wat er moet veranderen en hoe de bestaande prestaties kunnen worden geoptimaliseerd.

Door het ontbreken van een logische samenhang tussen hacks zijn ze uiterst lastig te onthouden en in de praktijk toe te passen. Dit is gefragmenteerde kennis. In het beste geval worden een paar interessante en onverwachte momenten onthouden, maar het meeste van wat begrepen en onbegrijpelijk is, verdwijnt binnen een paar dagen uit het geheugen. Het zal goed zijn als je over een week tenminste de naam van de architectuur onthoudt. Maar er werden enkele uren en zelfs dagen aan werktijd besteed aan het lezen van artikelen en het bekijken van recensievideo’s!

Neurale netwerken. Waar gaat dit allemaal heen?

Figuur 2 - Dierentuin van neurale netwerken

Naar mijn persoonlijke mening doen de meeste auteurs van wetenschappelijke artikelen er alles aan om ervoor te zorgen dat zelfs deze gefragmenteerde kennis niet door de lezer wordt begrepen. Maar deelwoordzinnen in tienregelige zinnen met formules die “uit de lucht komen vallen” zijn een onderwerp voor een apart artikel (probleem publiceren of vergaan).

Om deze reden is het nodig om informatie te systematiseren met behulp van neurale netwerken en zo de kwaliteit van het begrip en het onthouden te vergroten. Daarom was het belangrijkste onderwerp van de analyse van individuele technologieën en architecturen van kunstmatige neurale netwerken de volgende taak: ontdek waar het allemaal naartoe gaat, en niet het apparaat van een specifiek neuraal netwerk afzonderlijk.

Waar gaat dit allemaal heen? Belangrijkste resultaten:

  • Aantal machine learning-startups in de afgelopen twee jaar daalde scherp. Mogelijke reden: “neurale netwerken zijn niet langer iets nieuws.”
  • Iedereen kan een werkend neuraal netwerk creëren om een ​​eenvoudig probleem op te lossen. Neem hiervoor een kant-en-klaar model uit de "modeldierentuin" en train de laatste laag van het neurale netwerk (overdracht leren) op kant-en-klare gegevens uit Google-dataset zoeken of van 25 duizend Kaggle-datasets gratis cloud Jupyter-notitieboekje.
  • Grote fabrikanten van neurale netwerken begonnen te creëren "model dierentuinen" (model dierentuin). Hiermee kunt u snel een commerciële toepassing maken: TF-hub voor TensorFlow, MM Detectie voor PyTorch, Detecteren voor Caffe2, chainer-modelzoo voor Chainer en anderen.
  • Neurale netwerken werken in real time (realtime) op mobiele apparaten. Van 10 tot 50 frames per seconde.
  • Het gebruik van neurale netwerken in telefoons (TF Lite), in browsers (TF.js) en in huishoudelijke artikelen (IoT, Internet of Tscharnieren). Vooral bij telefoons die op hardwareniveau al neurale netwerken ondersteunen (neurale versnellers).
  • “Elk apparaat, kledingstuk en misschien zelfs voedsel zal dat hebben IP-v6-adres en met elkaar communiceren" - Sebastiaan Thrun.
  • Het aantal publicaties over machine learning begint te groeien de wet van Moore overschrijden (een verdubbeling elke twee jaar) sinds 2015. Uiteraard hebben we neurale netwerken nodig voor het analyseren van artikelen.
  • De volgende technologieën winnen aan populariteit:
    • PyTorch – de populariteit groeit snel en lijkt TensorFlow in te halen.
    • Automatische selectie van hyperparameters AutoML – de populariteit groeit soepel.
    • Geleidelijke afname van de nauwkeurigheid en toename van de rekensnelheid: vage logica, algoritmen stimuleren, onnauwkeurige (bij benadering) berekeningen, kwantisering (wanneer de gewichten van het neurale netwerk worden omgezet in gehele getallen en gekwantiseerd), neurale versnellers.
    • Vertaling afbeeldingen naar tekst и tekst naar afbeelding.
    • schepping XNUMXD-objecten uit video, nu in realtime.
    • Het belangrijkste aan DL is dat er veel gegevens zijn, maar het verzamelen en labelen ervan is niet eenvoudig. Daarom ontwikkelt zich markup-automatisering (geautomatiseerde annotatie) voor neurale netwerken die gebruik maken van neurale netwerken.
  • Met neurale netwerken werd informatica opeens een begrip experimentele wetenschap en ontstond reproduceerbaarheidscrisis.
  • IT-geld en de populariteit van neurale netwerken ontstonden gelijktijdig toen computergebruik een marktwaarde werd. De economie verandert van een goud- en valuta-economie naar een goud-valuta-computers. Zie mijn artikel over econofysica en de reden voor het verschijnen van IT-geld.

Geleidelijk verschijnt er een nieuwe ML/DL-programmeermethodologie (Machine Learning & Deep Learning), dat is gebaseerd op het weergeven van het programma als een reeks getrainde neurale netwerkmodellen.

Neurale netwerken. Waar gaat dit allemaal heen?

Figuur 3 – ML/DL als nieuwe programmeermethodologie

Het is echter nooit verschenen "neurale netwerktheorie", waarbinnen je systematisch kunt denken en werken. Wat nu ‘theorie’ wordt genoemd, zijn eigenlijk experimentele, heuristische algoritmen.

Links naar mijn en andere bronnen:

Dank je wel!

Bron: www.habr.com

Voeg een reactie