10 open source machine learning-værktøjer du bør kende

1. marts 2016 kl. 06:282
Der er rig mulighed for at komme i gang med machine learning ved hjælp af biblioteker til en bred vifte af programmeringssprog og anvendelsesområder.
Artiklen er ældre end 30 dage
Manglende links i teksten kan sandsynligvis findes i bunden af artiklen.

Machine learning, kunstig intelligens og neurale netværk er lige nu brandvarme plusord i it-branchen. Der skal helst machine learning i alt, hvis man ikke vil fremstå som gammeldags. Der er heldigvis mere kød på området end blot varm luft, og store datamængder og masser af regnekraft har gjort teknologien anvendelig i praksis.

Men hvor skal man starte, og hvilken teknologi skal man vælge?

En af grundene til, at det lige nu går stærkt på området, er, at værktøjerne er open source. Store teknologivirksomheder som Google og Microsoft har desuden frigivet store dele af deres værktøjskasser som open source.

Derfor findes der i dag et væld af værktøjer til machine learning. Version2 har i samarbejde med Datalogisk Institut ved Københavns Universitet udvalgt 10, som man bør kende til inden for den del af machine learning, der udvikler sig lige nu.

Caffe

Caffe er et framework til deep learning, der er udviklet af forskere fra UC Berkeley. Det er oprindeligt udviklet med fokus på computer vision til analyse af billeder eller genkendelse af håndskrift. Programmeringssprogene er fortrinsvis Python og C++.

Artiklen fortsætter efter annoncen

Caffe er blevet ekstra interessant, fordi Yahoo har frigivet CaffeOnSpark, som gør det muligt at bruge Caffe til big data-analyser på Spark og Hadoop.

CNTK

Computational Network Toolkit eller blot CNTK fra Microsoft eret framework, der understøtter en række forskellige typer maskinlæring især inden for neurale netværk. Microsoft udviklede oprindeligt CNTK til talegenkendelse. Det er således CNTK, der ligger til grund for talegenkendelsen i Skype og Cortana.

En af de styrker, Microsoft selv fremhæver, er muligheden for at skalere træning af neurale netværk ud over et stort antal grafikprocessorer.

Deeplearning4j

Mens mange machine learning-værktøjer har været baseret på C++ eller Python, så er Deeplearning4j baseret på programmering i Java og Scala. Det er desuden beregnet til big data-analyser med understøttelse af Hadoop og Spark.

Artiklen fortsætter efter annoncen

Fokus for projektet, som er skabt af BI-firmaet Skymind, er forretningsorienteret brug af neurale network til eksempelvis fraud detection og e-handel.

OpenNN

OpenNN er beregnet til at lave forecasts ved hjælp af neurale netværk. Det bygger på C++ og er udviklet af Artelnics, men frigivet som open source. Udviklerne advarer selv om, at det er beregnet til erfarne brugere, der kender deres C++.

Scikit-learn

Scikit-learn er endnu et Python-baseret framework. Scikit-learn fokuserer blandt andet på data-mining, men kan også anvendes til en række andre machine learning-områder.

Shark

Shark er udviklet på DIKU og er baseret på C++. Shark understøtter en række forskellige machine learning-teknikker og netop samlingen af flere typer biblioteker er Sharks styrke.

Tensorflow

Googles TensorFlow skiller sig ud fra flokken ved at være et værktøj til at opbygge neurale netværk, der fokuserer på den måde, data flyder gennem algoritmerne. Det betyder blandt andet, at det er forholdsvis let at knytte forskellige dele til forskellig hardware.

Theano

Theano var ét af første nyere værktøjer til machine learning, og det blev blandt andet udviklet til at gøre det let at skrive kode, der kunne distribuere et neuralt netværk ud over en klynge af processorer. Man arbejder mere abstrakt med selve algoritmerne, og kan derfor være godt, hvis man er mere til matematik end kode.

Torch

Torch er oprindeligt udviklet til forskning, men bruges også af eksempelvis Facebook, der har frigivet en række deep learning-biblioteker til Torch som open source. Torch understøtter blandt andet Nvidias CUDA, men man programmerer i Lua, som så oversættes til C.

Weka

Weka var et af de første værktøjer, der tog machine learning-teknikker og integrerede dem i et værktøj, der kunne bruges af folk, der var mere vant til dataanalyse end programmering. Det er især velegnet til typiske data mining-opgaver.

Har vi overset dit favoritværktøj? Er der nogle af dem på listen, der er lettere at komme i gang med end andre? Hvilke erfaringer har du med at bruge machine learning?

2 kommentarer.  Hop til debatten
Denne artikel er gratis...

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.

Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.

Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.

Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.

Debatten
Log ind eller opret en bruger for at deltage i debatten.
settingsDebatindstillinger
1
1. marts 2016 kl. 12:01

Man kan selvfølgelig diskutere, om UIMA hører under machine learning, men som Open Source og samtidig underliggende teknologi for IBM's Watson er den nok værd at kigge på:

https://uima.apache.org/index.html