Diep leren en diepe neurale netwerken. Diep leren voor geautomatiseerde tekstverwerking

Tegenwoordig is de telling een van de meest acceptabele manieren beschrijf de modellen die zijn gemaakt in het machine learning-systeem. Deze computationele plots zijn samengesteld uit hoekpunten, neuronen, verbonden door randen, synapsen, die de verbindingen tussen de hoekpunten beschrijven.

In tegenstelling tot een scalaire CPU of vector-GPU, is de IPU nieuw type Met processors die zijn ontworpen voor machine learning, kunnen dergelijke grafieken worden gemaakt. Een computer die is ontworpen om grafieken te beheren, is een ideale machine voor computationele grafiekmodellen die zijn gemaakt door middel van machine learning.

Een van de meest eenvoudige manierenbeschrijven hoe machine-intelligentie werkt, is het visualiseren. Het Graphcore-ontwikkelingsteam heeft een verzameling van dergelijke afbeeldingen gemaakt die op de IPU worden weergegeven. Het is gebaseerd op Poplar-software, die het werk visualiseert kunstmatige intelligentie\u200b Onderzoekers van dit bedrijf kwamen er ook achter waarom diepe netwerken zoveel geheugen nodig hebben en welke oplossingen beschikbaar zijn.

Poplar bevat een grafische compiler die vanaf de basis is opgebouwd om standaard machine learning-bewerkingen te vertalen naar sterk geoptimaliseerde IPU-applicatiecode. Hiermee kunt u deze grafieken op dezelfde manier verzamelen als POPNN's worden verzameld. De bibliotheek bevat een set verschillende soorten hoekpunten voor gegeneraliseerde primitieven.

Grafieken zijn het paradigma waarop alle software is gebaseerd. In Poplar kunt u met grafieken een berekeningsproces definiëren waarbij hoekpunten bewerkingen uitvoeren en randen de relatie daartussen beschrijven. Als u bijvoorbeeld twee getallen bij elkaar wilt optellen, kunt u een hoekpunt definiëren met twee ingangen (de getallen die u wilt toevoegen), een berekening (een functie om twee getallen toe te voegen) en een uitgang (resultaat).

Vertex-bewerkingen zijn meestal veel complexer dan het bovenstaande voorbeeld. Ze zijn vaak vastbesloten kleine programma'sgenaamd codelets (codenamen). Grafische abstractie is aantrekkelijk omdat het geen aannames doet over de structuur van de berekening en de berekening opsplitst in componenten die de IPU-processor kan gebruiken om te werken.

Poplar gebruikt deze eenvoudige abstractie om zeer grote grafieken te bouwen die als afbeeldingen worden weergegeven. Door het genereren van programmatische grafieken kunnen we het aanpassen aan de specifieke berekeningen die nodig zijn om het meeste te leveren effectief gebruik IPU-bronnen.

De compiler vertaalt standaard operatiesgebruikt in machine learning-systemen in sterk geoptimaliseerde IPU-applicatiecode. De grafiekcompiler maakt een tussenafbeelding van de computergrafiek, die wordt ingezet op een of meer IPU-apparaten. De compiler kan deze computergrafiek weergeven, dus een toepassing die is geschreven op het niveau van de neurale netwerkstructuur, geeft een afbeelding weer van de computergrafiek die op de IPU wordt uitgevoerd.


Grafiek volle cirkel AlexNet leert in voorwaartse en achterwaartse richting

De grafische compiler van Poplar veranderde de AlexNet-beschrijving in een computergrafiek met 18,7 miljoen hoekpunten en 115,8 miljoen randen. Duidelijk zichtbare clustering is het resultaat van sterke communicatie tussen processen in elke laag van het netwerk, met gemakkelijkere communicatie tussen niveaus.

Een ander voorbeeld is een eenvoudig, volledig verbonden netwerk dat is getraind op MNIST - eenvoudige set gegevens voor computervisie, een soort 'Hallo wereld' in machine learning. Eenvoudig netwerk voor het verkennen van deze dataset helpt u de grafieken te begrijpen die Poplar-applicaties beheren. Door grafiekbibliotheken te integreren met frameworks zoals TensorFlow, introduceert het bedrijf een van de eenvoudige manieren voor het gebruik van IPU in machine learning-toepassingen.

Nadat de grafiek is gebouwd met behulp van de compiler, moet deze worden uitgevoerd. Dit is mogelijk met behulp van de Graph Engine. Aan het voorbeeld van ResNet-50 wordt zijn werk gedemonstreerd.


ResNet-50 grafiek

Met de ResNet-50-architectuur kunt u diepe netwerken creëren op basis van herhalende secties. De processor hoeft deze partities maar één keer te definiëren en opnieuw aan te roepen. Een cluster op conv4-niveau wordt bijvoorbeeld zes keer uitgevoerd, maar wordt slechts één keer in de grafiek uitgezet. De afbeelding toont ook de verscheidenheid aan vormen van convolutionele lagen, aangezien elk van hen een grafiek heeft die is gebouwd volgens de natuurlijke vorm van berekening.

De engine maakt en beheert de uitvoering van een machine learning-model met behulp van een door de compiler gegenereerde grafiek. Eenmaal geïmplementeerd, bewaakt en reageert de Graph Engine op IPU's of apparaten die door applicaties worden gebruikt.

De ResNet-50-afbeelding toont het hele model. Op dit niveau is het moeilijk om verbindingen tussen individuele hoekpunten te onderscheiden, dus het is de moeite waard om naar de vergrote afbeeldingen te kijken. Hieronder staan \u200b\u200benkele voorbeelden van secties binnen neurale netwerklagen.

Waarom hebben diepe netwerken zoveel geheugen nodig?

Grote hoeveelheden geheugen zijn een van de meest voorkomende grote problemen diepe neurale netwerken. Onderzoekers proberen beperkt te bestrijden doorvoer DRAM-apparaten die moeten worden gebruikt moderne systemen om een \u200b\u200benorme hoeveelheid gewichten en activeringen op te slaan in een diep neuraal netwerk.

De architecturen zijn ontworpen met behulp van processorchips die zijn ontworpen om DRAM sequentieel te verwerken en te optimaliseren voor geheugen met hoge dichtheid. De interface tussen deze twee apparaten is een bottleneck die bandbreedtebeperkingen introduceert en aanzienlijke stroomoverhead toevoegt.

Hoewel we nog geen volledig begrip hebben van het menselijk brein en hoe het werkt, wordt algemeen aangenomen dat er geen grote, aparte geheugenopslag is. Aangenomen wordt dat de functie langdurig is en kortetermijngeheugen in het menselijk brein is ingebouwd in de structuur van neuronen + synapsen. Zelfs eenvoudige organismen zoals wormen mee neurale structuur de hersenen, die uit iets meer dan 300 neuronen bestaan, zijn tot op zekere hoogte een functie van het geheugen.

Geheugen opbouwen in conventionele processors Is een manier om het knelpunt van het geheugen te omzeilen door een enorme bandbreedte vrij te maken met veel minder stroomverbruik. Geheugen op een chip is echter een duur onderdeel dat niet is ontworpen voor de echt grote hoeveelheden geheugen die zijn aangesloten op de CPU's en GPU's die momenteel worden gebruikt om diepe neurale netwerken voor te bereiden en in te zetten.

Het is dus nuttig om te kijken hoe geheugen tegenwoordig wordt gebruikt in CPU's en GPU-aangedreven deep learning-systemen, en stel jezelf de vraag: waarom hebben ze zulke grote geheugenopslagapparaten nodig als het menselijk brein prima werkt zonder hen?

Neurale netwerken hebben geheugen nodig om invoergegevens, gewichten en activeringsfuncties op te slaan terwijl de invoer zich door het netwerk verspreidt. Tijdens de training moet inputactivering worden gehandhaafd totdat deze kan worden gebruikt om outputgradiëntfouten te berekenen.

Een ResNet met 50 lagen heeft bijvoorbeeld ongeveer 26 miljoen gewichten en berekent 16 miljoen stroomafwaartse activeringen. Als u een 32-bits drijvende-kommagetal gebruikt om elk gewicht op te slaan en te activeren, heeft dit ongeveer 168 MB ruimte nodig. Door een lagere precisie te gebruiken om deze gewichten en activeringen op te slaan, kunnen we deze opslagbehoefte halveren of zelfs verviervoudigen.

Serieus probleem met geheugen komt voort uit het feit dat GPU's vertrouwen op gegevens die worden weergegeven als dichte vectoren. Daarom kunnen ze single command stream (SIMD) gebruiken om hoge dichtheid berekeningen. De centrale verwerkingseenheid gebruikt vergelijkbare vectorblokken voor computergebruik met hoge prestaties.

GPU's hebben een synapsbreedte van 1024 bits, dus ze gebruiken 32-bits drijvende-kommagegevens, dus splitsen ze deze vaak op in mini-batches van 32 samples parallel om 1024-bits gegevensvectoren te maken. Deze benadering van het organiseren van vectorparallellisme verhoogt het aantal activeringen met 32 \u200b\u200bkeer en de behoefte aan lokale opslag met een capaciteit van meer dan 2 GB.

GPU's en andere machines die zijn ontworpen voor matrixalgebra zijn ook onderhevig aan geheugenbelasting door gewichten of neurale netwerkactiveringen. GPU's kunnen de kleine convoluties die in diepe neurale netwerken worden gebruikt, niet efficiënt uitvoeren. Daarom wordt een transformatie genaamd "omlaag" gebruikt om deze convoluties om te zetten in matrix-matrixvermenigvuldigingen (GEMM), waarmee grafische versnellers kan effectief omgaan.

Er is ook extra geheugen nodig om invoergegevens, tijdelijke waarden en programma-instructies op te slaan. Het geheugengebruik meten tijdens het trainen van ResNet-50 op hoge prestaties gPU onthulde dat het meer dan 7,5 GB lokale DRAM nodig heeft.

Iemand zou kunnen denken dat een lagere rekennauwkeurigheid de benodigde hoeveelheid geheugen kan verminderen, maar dit is niet het geval. Wanneer u gegevenswaarden overschakelt naar halve precisie voor gewichten en activeringen, vult u slechts de helft van de vectorbreedte van de SIMD, waarbij u de helft van de beschikbare rekenresources besteedt. Om dit te compenseren, moet u, wanneer u overschakelt van volledige precisie naar halve precisie op de GPU, de mini-batchgrootte verdubbelen om voldoende gegevensparallellisme te veroorzaken om alle beschikbare berekeningen te gebruiken. Dus de overgang naar meer lage nauwkeurigheid gewichten en activeringen op GPU vereisen nog steeds meer dan 7,5 GB dynamisch geheugen met gratis toegang.

Met zulke grote hoeveelheid van gegevens die moeten worden opgeslagen, is het simpelweg onmogelijk om dit allemaal in een GPU te passen. Op elke laag van het convolutionele neurale netwerk moet u de status van de externe DRAM opslaan, de volgende laag van het netwerk laden en vervolgens de gegevens in het systeem laden. Als resultaat, de toch al bandbreedte beperkte geheugen latentie-interface extern geheugen lijdt aan extra belasting constant opnieuw opstarten schalen, evenals activeringsfuncties opslaan en ophalen. Dit vertraagt \u200b\u200bde leercurve aanzienlijk en verhoogt het energieverbruik aanzienlijk.

Er zijn verschillende manieren om dit probleem op te lossen. Ten eerste kunnen bewerkingen zoals activeringsfuncties “in het veld” worden uitgevoerd, waardoor invoergegevens direct aan de uitgang kunnen worden overschreven. Zo kan het bestaande geheugen worden hergebruikt. Ten tweede, de mogelijkheid voor hergebruik geheugen kan worden verkregen door de gegevensafhankelijkheid tussen netwerkbewerkingen te analyseren en hetzelfde geheugen toe te wijzen aan bewerkingen die het momenteel niet gebruiken.

De tweede benadering is vooral effectief wanneer het volledige neurale netwerk tijdens het compileren kan worden geanalyseerd om een \u200b\u200bvast toegewezen geheugen te creëren, aangezien de overhead voor geheugenbeheer tot bijna nul wordt teruggebracht. Het bleek dat de combinatie van deze methoden het geheugengebruik van het neurale netwerk twee tot drie keer kan verminderen.
Een derde belangrijke benadering is onlangs ontdekt door het Baidu Deep Speech-team. Ze hebben gesolliciteerd verschillende methodes geheugenbesparing om een \u200b\u200b16x vermindering van het geheugengebruik te bereiken door activeringsfuncties, waardoor ze netwerken kunnen trainen met 100 lagen. Voorheen konden ze met dezelfde hoeveelheid geheugen netwerken met negen lagen trainen.

Het combineren van geheugen en verwerkingsbronnen in één apparaat heeft een aanzienlijk potentieel om de prestaties en efficiëntie van convolutionele neurale netwerken en andere vormen van machine learning te verbeteren. Er kan een afweging worden gemaakt tussen geheugen en computerbronnenom de mogelijkheden en prestaties van het systeem in evenwicht te brengen.

Neurale netwerken en kennismodellen in andere machine learning-methoden kunnen worden gezien als wiskundige grafieken. Deze grafieken bevatten grote hoeveelheid parallellisme. Een parallelle processor die is ontworpen om parallellisme in grafieken te benutten, is niet afhankelijk van mini-batches en kan de hoeveelheid benodigde lokale opslag aanzienlijk verminderen.

Moderne onderzoeksresultaten hebben aangetoond dat al deze methoden de prestaties van neurale netwerken aanzienlijk kunnen verbeteren. Moderne GPU's en CPU's hebben een zeer beperkt intern geheugen, slechts enkele megabytes in totaal. Nieuwe processorarchitecturen die speciaal zijn ontworpen voor machine learning, zorgen voor een balans tussen geheugen en on-chip computing en leveren aanzienlijke prestaties en efficiëntiewinst ten opzichte van de huidige centrale verwerkingseenheden en grafische versnellers.

- Het laboratorium is jong: tot nu toe zijn er maar vijf mensen in ons team, het werk is een onbewerkt veld, maar we nemen het serieus. De belangrijkste richting die we kozen, was de ontwikkeling en studie van dialoogsystemen - online consultants, assistenten die competent alle gebruikersvragen beantwoorden. Veel bedrijven hebben nog steeds dergelijke services, maar ze werken niet goed, geven constant fouten, of aan de andere kant van de monitor is er een levend persoon die niet 24/7 online kan zijn, en bovendien moet hij betalen. We willen een algoritme ontwikkelen waarmee we robots kunnen maken die in staat zijn tot volledige conversatie. Zo'n robot kan binnen enkele minuten een vliegticket voor je kopen of advies geven over een dringend probleem. Dit niveau van systemen bestaat nu niet.

Neurale netwerken en kunstmatige intelligentie

Het idee van neurale netwerken ontstond in het midden van de 20e eeuw in de Verenigde Staten met de komst van de eerste computers. Neurofysiologen die de theoretische aspecten van het werk van de hersenen hebben bestudeerd, geloofden dat de organisatie van computerwerk naar het beeld en de gelijkenis van werk menselijke brein zal het mogelijk maken om in de nabije toekomst de eerste kunstmatige intelligentie te creëren.

Het verschil tussen kunstmatige intelligentie en alle algoritmen van de vorige generatie is dat het getrainde neurale netwerk daar niet naar handelt gegeven pad, en zoekt onafhankelijk naar de meeste effectieve prestatie doelen. Het werk van een "neuron" op een enkele computer ziet er als volgt uit: voor training worden objecten die tot twee typen behoren - A en B - en met een bepaalde numerieke waarde aan de programma-invoer toegevoerd. Het programma begrijpt op basis van de gegevens in de trainingsset welke bereiken van deze waarde overeenkomen met objecten A en welke overeenkomen met B, en kan ze vervolgens onafhankelijk onderscheiden. IN echte taken het systeem moet onderscheid maken tussen vele typen, die elk op hun beurt tientallen eigenschappen kunnen hebben. Om ze op te lossen, meer complexe structuur uit lagen neuronen, serieus computer kracht en een groot aantal van trainingstests. De 21ste eeuw is het begin van een tijdperk waarin deze technologieën al kunnen worden gebruikt om alledaagse problemen op te lossen.

Mikhail Burtsev, hoofd van het laboratorium:

- Het concept van neurale netwerken is vrij eenvoudig: we geven de machine een grote hoeveelheid tekst en onthoudt hoe woorden met elkaar worden gecombineerd. Op basis van deze informatie kan het vergelijkbare teksten reproduceren - de machine hoeft hiervoor de regels van syntaxis, verbuiging en vervoeging niet te kennen. Er is al neurale netwerkendie, na geleerd te hebben van de werken van Poesjkin, in zijn stijl proberen te schrijven. Dit is een ander kenmerk van neurale netwerken: ze leren de "stijl" die ze krijgen om te leren. Als je Wikipedia als materiaal opgeeft, zal het programma bestrooid worden met termen en een overwegend journalistieke stijl gebruiken. Terwijl ons laboratorium werkt om te creëren vraag-antwoordsystemengebruiken we kant-en-klare dialogen om het netwerk te trainen. In een van de experimenten gebruikten we ondertitels uit films - ze gaven ons een hele saga over vampiers om ons netwerk te bestuderen. Na analyse van deze dataset kan het neurale netwerk het gesprek op dit moment goed ondersteunen.

Dialogen van laboratoriumpersoneel met een neuraal netwerk

Team: vandaag en morgen

Het laboratorium werkt samen met groot onderzoekscentra op basis van NRNU MEPhI en Kurchatov Institute. Buitenlandse experts op het gebied van machine learning en neuro-informatica, zoals Sergey Plis van The Mind Research Network, nemen ook deel aan haar activiteiten. Daarnaast worden er regelmatig evenementen georganiseerd om de activiteiten van het laboratorium populair te maken en jong talent te vinden. Het winnen van een hackathon of het succesvol afronden van een cursus geeft je een goede kans om het lab binnen te komen.

Valentin Malykh, laboratoriummedewerker:

- Mijn weg naar het laboratorium was erg moeilijk. Tot vier jaar geleden sprak ik nauwelijks over machine learning. Toen begon hij computerlinguïstiek, en het begon ... Ik veranderde verschillende keren van baan: ik probeerde mezelf in robotica, ik was bezig met ontwikkeling softwaregeassocieerd met computer visie, daar heb ik elkaar net ontmoet machine learning, en ik wilde serieus onderzoek doen.
Tijdens mijn hele werk ben ik erin geslaagd om naar verschillende hackathons te gaan die door het laboratorium werden georganiseerd - misschien wel het meest interessante dat me in die periode is overkomen. Toen kwam ik naar de jongens en zei dat ik voor ze wilde werken. Ze hebben me meegenomen.

DeepHack-filosofie

Hackathons hebben, ondanks hun naam, niets te maken met hacksoftware ( engels hack - hack). Dit is een teamprogrammeerwedstrijd waarin de deelnemers meerdere dagen en soms weken worstelen om de oplossing van één specifieke taak\u200b Het onderwerp van de hackathon wordt vooraf aangekondigd, meestal doen er enkele honderden mensen mee. Dergelijke evenementen worden niet alleen georganiseerd door instituten, maar ook grote bedrijvenop zoek naar getalenteerde professionals. Op basis van Phystech heeft het laboratorium van neurale netwerken en deep learning al twee hackathons georganiseerd - de deelnemers luisterden een week lang naar lezingen over vraag-antwoord- en dialoogsystemen en schreven code.

Vladislav Belyaev, laboratoriummedewerker:

- Dit jaar en vorig jaar hebben we hackathons voor machine learning georganiseerd. Er waren veel aanmeldingen, niet alleen uit Rusland en het GOS, maar ook uit Europa en de Verenigde Staten. Tijdens de hackathon gaven wetenschappers uit Oxford en Stanford, Google DeepMind en OpenAI lezingen, en russische collega's, natuurlijk. Nu we een cursus over neurale netwerken voorbereiden, zullen we alles van het allereerste begin tot het einde vertellen: van het biologische concept en basismodellen bij het programmeren tot de daadwerkelijke toepassing en specifieke implementatie.

Vrije tijd

Er zijn nog weinig medewerkers in het laboratorium, dus elk heeft een grote hoeveelheid werk van een andere aard: je moet algoritmen bestuderen, code schrijven, wetenschappelijke publicaties voorbereiden.

Mikhail Burtsev, hoofd van het laboratorium:

- Ik moet veel werken - het lijkt erop dat ik me niet meer herinner wat het is vrije tijd\u200b Geen grapje, er is praktisch geen tijd om uit te rusten: de afgelopen zes maanden konden we ooit naar het barbecuebedrijf. Hoewel werk in zekere zin rust kan zijn. Bij hackathons en seminars is er gelegenheid om in een minder formele setting met collega's te communiceren en nieuwe kennissen te maken. We hebben nog geen tijd gehad om de tradities van samen tijd doorbrengen na het werk te beginnen - we zijn te jong. In de zomer zijn we van plan om met het hele laboratorium de natuur in te trekken, een huisje te huren en twee weken lang samen de moeilijkste en interessantste taken op te lossen - we organiseren onze eigen mini-hackathon. Laten we eens kijken hoe effectief deze aanpak kan zijn. Misschien wordt dit onze eerste soort traditie.

Werkgelegenheid

Het laboratorium gaat uitbreiden en is al op zoek naar nieuwe medewerkers. De gemakkelijkste manier om aan een baan te komen, is door een stage van twee maanden te voltooien, waarvoor je wordt geselecteerd na een sollicitatiegesprek. Een noodzakelijke voorwaarde Interviewen maakt deel uit van de doelstellingen van de cursus Deep Learning. Tijdens de stage is er de mogelijkheid om deel te nemen aan de uitvoering van betaalde maatwerkprojecten. Financiering voor het laboratorium is nog niet vastgesteld, maar volgens laboratoriumpersoneel zal dit probleem in de nabije toekomst worden opgelost. "Nu naar ons komen betekent de kans krijgen om een" grondlegger "van het laboratorium te worden in de meest veelbelovende richting informatie technologieën", Zegt Mikhail Burtsev.

Afbeeldingen en foto's werden geleverd door het MIPT Laboratory of Neural Networks and Deep Learning. Fotograaf: Evgeny Pelevin.

En gedeeltelijk is deze handleiding bedoeld voor iedereen die geïnteresseerd is in machine learning, maar niet weet waar hij moet beginnen. De inhoud van de artikelen is bedoeld voor een breed publiek en zal nogal oppervlakkig zijn. Maar kan het iemand iets schelen? Hoe meer mensen geïnteresseerd zijn in machine learning, hoe beter.

Objectherkenning door middel van deep learning

Je hebt deze beroemde xkcd-strip misschien eerder gezien. De grap is dat elk 3-jarig kind een foto van een vogel kan herkennen, maar om de computer het te laten doen, zijn de allerbeste computerwetenschappers meer dan 50 jaar nodig geweest. In de afgelopen jaren hebben we eindelijk een goede benadering van objectherkenning met diepe convolutionele neurale netwerken\u200b Dit klinkt als een stel verzonnen woorden uit een fantasieroman van William Gibson, maar het zal duidelijk worden wanneer we ze uit elkaar halen, dus laten we het doen - een programma schrijven dat vogels herkent!

Laten we eenvoudig beginnen

Voordat we leren hoe we afbeeldingen van vogels kunnen herkennen, moeten we leren hoe we iets veel eenvoudiger kunnen herkennen - het handgeschreven nummer "8".

Ik leerde over zakelijke trends op een grootschalige conferentie in Kiev. Het hele proces zit vol met zaterdaginzichten, omdat ze de nieuwe kennis en kennis hebben weggenomen, de reden voor een uur dirigeren. Op de conferentie zijn er 4 stromen aanvullende ideeën voor ondernemers, topmanagers, marketeers, sales, medewerkers en andere specials. Volodymyr Omelyan, een van de woordvoerders van het ministerie van Infrastructuur, heeft aangekondigd over de ontwikkeling van galusies, de vernieuwing van wegen en luchthavens.

Goedendag, beste collega's iOS-bijnamen, jullie hebben vast en zeker met het netwerk gewerkt en waren bezig geweest met het parseren van gegevens uit JSON. Voor dit proces zijn er een heleboel bibliotheken, allerlei tools die je kunt gebruiken. Sommige zijn complex en andere zijn eenvoudig. Ik heb het zelf al heel lang gedaan als ik JSON eerlijk met de hand ontleedde, en bij sommigen dit proces niet vertrouwde bibliotheken van derden en dit had zo zijn voordelen.

9 september 2014 tijdens de volgende presentatie, appel gepresenteerd eigen systeem mobiele betalingen - Apple Pay.

Met behulp van betaling apple-systemen Betalen iPhone-gebruikers 6 en iPhone 6+, evenals de eigenaren van de nieuwste apple-versies Horloge kan online winkelen, gebruiken bijkomende voordelen apple betalen voor mobiele applicaties en betaal met nFC-technologie (Near Field Communication). Gebruik om betalingen te autoriseren touch-technologie ID of Face ID.

Technologieën staan \u200b\u200bniet stil en ontwikkelingsprocessen bewegen mee. Als eerdere bedrijven aan het "Waterfall" -model werkten, probeert nu bijvoorbeeld iedereen "Scrum" te implementeren. Evolutie vindt ook plaats in de levering van diensten voor softwareontwikkeling. Vroeger bedrijven voorzag klanten van kwaliteitsontwikkeling binnen het budget en stopte daar, nu streven ze ernaar om te voorzien maximaal voordeel voor de klant en zijn bedrijf, met zijn expertise.

De afgelopen jaren zijn er zoveel goede lettertypen geweest, inclusief gratis, dat we besloten een vervolg op de onze te schrijven voor ontwerpers.

Elke ontwerper heeft een reeks favoriete lettertypen om mee te werken, waarmee hij gewend is en die de zijne weerspiegelen grafische stijl\u200b Ontwerpers zeggen " Goede lettertypen er is nooit teveel ”, maar nu kunnen we ons gerust een situatie voorstellen waarin deze set alleen uit gratis lettertypen bestaat.

Hoe vaak bevinden projectmanagers zich tussen keiharde plekken als ze een balans proberen te vinden tussen alle eisen en deadlines van de klant en de mentale gezondheid van het hele team? Met hoeveel nuances moet rekening worden gehouden zodat er aan beide kanten van de verantwoordelijkheid rust en orde is? Hoe begrijpt u dat u een goede manager bent of moet u dringend op alle fronten bijpraten? Hoe bepaal je in welke aspecten jij, als PM, achterloopt, en waar ben jij een goede kerel en een slimme meid? Dit is waar de volgende Code'n'Coffee-conferentie over ging.

Patroonherkenningstechnologie wordt steeds meer in ons dagelijks leven opgenomen. Bedrijven en instellingen gebruiken het om het meeste op te lossen verschillende takenvan beveiliging tot klanttevredenheidsonderzoek. Investeringen in producten op basis van - deze functie, beloven te groeien tot $ 39 miljard in 2021. Hier zijn slechts een paar voorbeelden van hoe patroonherkenning op verschillende gebieden wordt gebruikt.