Home » Andet » Fokus: Maskinlæring
Fokus: Maskinlæring

Fokus: Maskinlæring

Share
Algebraiske våben

De, der har hang til lineær algebra, vil bemærke, at hvert nodes-lag kan være repræsenteret af noget, der ligner en matrix, mens outputtet af det forrige lag bliver repræsenteret af en vektor. Det gør, at disse sager er enkle at kode. Det er ikke helt som den lineære algebra, man lærer i gymnasiet, idet hver nodes output skal skaleres og normaliseres. De foretrukne fremgangsmåder kendes i matematiske kredse som ReLU-operatorer (Rectified Linear Unit), der har meget til fælles med den måde, en rigtig neuron fungerer på: Dens output er nul, medmindre der bliver overskredet en aktiveringstærskel. I så fald stiger den lineært.

Nu vi er i gang med at slynge om os med jargon, kan vi lige så godt nævne, at der eksisterer generalisationer af matricer, som bliver kaldt tensorer, og det er herfra, den populære Tensorflow-pakke har fået sit navn. En funktion, der transformerer vektordata kaldes konvolution, og den form for netværk, vi netop har begivet os igennem, er kendt som et konvolutionelt neuralt netværk.

MNIST-data har etiketter, og det er derfor nemt at afgøre den numeriske værdi af hvert billede. Derfor er det nemt at finde ud af, om vores netværk yder godt eller ej: Se blot på, hvor forskelligt outputlaget er i forhold til det mønster, der repræsenterer det inputtede tal. Det giver os en omkostningsfunktion, og ved at minimere denne funktion over alle vores træningsdata gør vi vores netværk så anvendeligt som muligt.

En algoritme til maskinlæring ville sikkert håne dig, fordi du ikke solgte dine bitcoins i december, men hvad ved den om det?

Desværre er det i reglen absurd vanskeligt at minimere denne funktion. Det hører til ret elementær udregning at finde lokale minima af funktioner af en eller to variabler (henholdsvis grafer og overflader). Men de mindste håndterlige talgenkendende neurale netværk har titusindvis af variabler (koefficienter og bias fra matricerne repræsenterer hvert lag), og derfor indebærer træning af netværket at finde et minimum af en overflade i titusindvis af dimensioner. Det er svært at finde ud af, hvordan den ser ud – for ikke at tale om at løse opgaven.

Se også:  Glem Wi-Fi, ny lysteknologi giver dig superhastighed på nettet

Heldigvis findes der numeriske gentagende teknikker, der kan gøre det effektivt (vi taler her specifikt om stokastiske gradient-fald). Hver gentagelse giver os hints om, hvordan det forrige lag skal justeres, så vi kan køre det gentagne gange tilbage gennem netværket (det kaldes back-propagation) og genteste med alle vores træningsdata. Værdien af vores omkostningsfunktion burde nu være mindre, men rejsen er endnu ikke slut – denne proces skal normalt gentages mange gange.

Dette beregningstunge krav holdt neurale netværket ude i mørket i mange år. I dag kan man foretage ciffer-genkendelse på en hjemmecomputer i løbet af et par timer (prøv Keras-eksemplet på LXFDVD), selvom det er afhængigt af nogle kringlede optimeringer (minibatching af træningsdata). Det var engang utænkeligt, og mange mente, at det aldrig ville blive muligt. Det er også gået op og ned for back-propagation (i øjeblikket går det op). Der herskede i nogen tid en vis bekymring, når det gik op for folk, at back-propagation, i hvert fald som vi har beskrevet det, ikke er mulig med egentlige hjerneneuroner. Men det betyder ikke, at den ikke kan være nyttig.

Store Datasæt

UK’s regering leverer masser af datasæt på https://data.gov.uk.

Nøglen til maskinlæring er masser af data. Det var tidligere en udfordring at få fat i Big Data og bearbejde dem, men nutidens hurtige forbindelser og enorme drev gør arbejdet meget nemmere. Bortset fra MNIST-databasen findes der andre nyttige datasæt, som man kan få gratis. Wikipedia-teksten på 14 GB udgør et fint korpus for projekter, der inddrager naturlig sproglæring. DBpedia-projektet går endnu videre og leverer et Java-drevet miljø til at uddrage mere struktureret information fra Wikipedia og beslægtede projekter.

De giver en forud-uddraget vidensbase, der består af 4,58 millioner ting, hvoraf de fleste bliver klassificeret ved hjælp af en omhyggeligt udformet og konsistent ontologi. Den gør det nemt at bearbejde forhold mellem ting eller at begrænse til en bestemt kategori, for eksempel folk, steder eller planter. IMDB omfatter en række datasæt (www.imdb.com/interfaces) til ikke-kommerciel brug, herunder en stor samling af filmstjerneportrætter.

Billeder af de mest populære 100.000, hentet fra både IMDB og Wikipedia, blev af et hold fra Zürichs universitet brugt til at oprette den største offentlige database over ansigter i verden. Den blev brugt til at træne forskernes DEX-system (Deep EXpectation), der estimerer alder og attraktion, og den blev et hit på internettet. Lær meget mere, og download disse data på https://data.vision.ee.ethz.ch/cvl/rrothe/imdb-wiki.

Bilen er den autonome stjerne

Avancerede ML-teknikker kræver i dag enorme mængder af beregninger under træningsfasen. Men så snart modellen er blevet trænet, er det langt mindre belastende at køre nye data igennem den. Hvis man for eksempel følger ML-buzzwords, kommer man hurtigt ind på emnet autonome køretøjer. Men det at køre bil indebærer at træffe beslutninger, der kan dreje sig om liv eller død, på et enkelt øjeblik. Der er ikke tid til at køre træningsfaser. Vi skal først investere tusinder af timer og indhente tusinder af terabytes træningssystemer i et kontrolleret miljø.

Modellerne er ikke blot hurtige, de er også porterbare. Man kan tage Googles Inception-billedklassificeringsmodel til TensorFlow eller Snips’ stemmegenkendelse (se http://bit.ly/snips-weather) og køre den på en Raspberry Pi, (måske i hjertet af en robot). Man kan endda køre simple træningseksempler på den, men det tager tid. At få Tensorflow porteret til Pi (2 og senere) var en fænomenal bedrift. Det bruger det muskuløse Bazel-byggesystem, og derfor skulle man først have det porteret.

Dernæst skulle eventuelle 64 bit-biblioteker strippes fra TensorFlow-koden, og diverse krav skulle være opfyldt. Selv på Pi 3 tager kompilering mange timer, men dette arbejde blev foretaget i 2016, før Pi 3 blev lanceret. Vi takker Sam Abrahams for hans tålmodighed. Medmindre du har specifikke krav, er der ingen grund til at gentage hans anstrengelser. Python TensorFlow-modulet er tilgængeligt via pip, og det er så nemt som ingenting at installere det.

TAGS
Maskinlæring
netværk
Open Source

DEL DENNE
Share


Mest populære
Populære
Nyeste
Tags

Find os på de sociale medier

Modtag dagligt IT-nyhedsbrev

Få gratis tech-nyheder i din mail-indbakke alle hverdage. Læs mere om IT-UPDATE her

Find os på FaceBook

AOD/AOD.dk

Brogårdsvej 22
DK-2820 Gentofte
Telefon: 33 91 28 33
redaktion@aod.dk

Audio Media A/S

CVR nr. 16315648,
Brogårdsvej 22
DK-2820 Gentofte
Telefon: 33 91 28 33
info@audio.dk
Annoncesalg:
Lars Bo Jensen: lbj@audio.dk Telefon: 40 80 44 53
Annoncer: Se medieinformation her


AOD/AOD.dk   © 2020
Privatlivspolitik og cookie information - Audio Media A/S