Ohjelmointi

14 avoimen lähdekoodin työkalua hyödyntämään koneoppimista parhaalla mahdollisella tavalla

Roskapostisuodatus, kasvojentunnistus, suositusmoottorit - kun sinulla on suuri tietojoukko, johon haluat tehdä ennakoivan analyysin tai mallintunnistuksen, koneoppiminen on oikea tapa. Ilmaisten avoimen lähdekoodin ohjelmistojen lisääntyminen on helpottanut koneoppimisen toteuttamista sekä yksittäisillä koneilla että mittakaavassa ja suosituimmilla ohjelmointikielillä. Nämä avoimen lähdekoodin työkalut sisältävät kirjastot, kuten Python, R, C ++, Java, Scala, Clojure, JavaScript ja Go.

Apache Mahout

Apache Mahout tarjoaa tavan rakentaa ympäristöjä koneoppimissovellusten isännöimiseksi, jotka voidaan skaalata nopeasti ja tehokkaasti vastaamaan kysyntään. Mahout työskentelee pääasiassa toisen tunnetun Apache-projektin, Sparkin kanssa, ja se on alun perin suunniteltu työskentelemään Hadoopin kanssa hajautettujen sovellusten ajamiseksi, mutta sitä on laajennettu koskemaan muita hajautettuja takapäätä, kuten Flink ja H2O.

Mahout käyttää Scalassa verkkotunnuskohtaista kieltä. Versio 0.14 on merkittävä projektin sisäinen refaktori, jonka oletusarvo on Apache Spark 2.4.3.

Säveltää

Innovaatiolaboratorioiden Compose-osasto kohdistaa koneoppimismalleihin liittyvän yleisen ongelman: raakadatan merkitseminen, joka voi olla hidas ja tylsä ​​prosessi, mutta jota ilman koneoppimismalli ei voi tuottaa hyödyllisiä tuloksia. Luominen antaa sinun kirjoittaa Pythoniin joukon merkintötoimintoja tiedoillesi, joten merkinnät voidaan tehdä mahdollisimman ohjelmallisesti. Tietoihisi voidaan asettaa erilaisia ​​muunnoksia ja kynnysarvoja merkintöjen helpottamiseksi, kuten tietojen sijoittaminen laatikoihin erillisten arvojen tai kvantiilien perusteella.

Core ML -työkalut

Applen Core ML -kehyksen avulla voit integroida koneoppimismalleja sovelluksiin, mutta käyttää omaa erillistä oppimismallinsa muotoa. Hyvä uutinen on, että sinun ei tarvitse esikäsitellä malleja Core ML -muodossa käyttääksesi niitä. voit muuntaa melkein jokaisen yleisesti käytetyn koneoppimiskehyksen mallit Core ML: ksi Core ML Tools -sovelluksella.

Core ML Tools toimii Python-pakettina, joten se integroituu monien Python-koneoppimiskirjastojen ja -työkalujen kanssa. TensorFlow-, PyTorch-, Keras-, Caffe-, ONNX-, Scikit-learn-, LibSVM- ja XGBoost-mallit voidaan kaikki muuntaa. Neuroverkkomallit voidaan myös optimoida kooltaan käyttämällä harjoituksen jälkeistä kvantisointia (esim. Pieneen, vielä tarkkaan bittisyvyyteen).

Aivokuori

Cortex tarjoaa kätevän tavan palvella ennusteita koneoppimismalleista käyttämällä Python- ja TensorFlow-, PyTorch-, Scikit-learn- ja muita malleja. Suurin osa Cortex-paketeista koostuu vain muutamasta tiedostosta - ytimestäsi Python-logiikasta, cortex.yaml-tiedostosta, joka kuvaa mitä malleja on käytettävä ja minkä tyyppisiä laskentaresursseja jaetaan, ja vaatimuksista.txt-tiedostosta tarvittavien Python-vaatimusten asentamiseksi. Koko paketti otetaan käyttöön Docker-säilönä AWS: ään tai toiseen Docker-yhteensopivaan isäntäjärjestelmään. Laske resurssit jaetaan tavalla, joka toistaa Kubernetesissa samalle käytettävät määritelmät, ja voit käyttää GPU: ita tai Amazon Inferentia ASIC: itä palvelun nopeuttamiseksi.

Featuretools

Ominaisuuksien suunnittelu tai ominaisuuksien luominen edellyttää koneoppimismallin kouluttamiseen käytettyjen tietojen ottamista ja tyypillisesti käsin muunnetun ja yhdistetyn version tuottamista tiedoista, jotka ovat hyödyllisempiä mallin kouluttamiseksi. Featuretools antaa sinulle toiminnot tämän tekemiseen korkean tason Python-objektien avulla, jotka on rakennettu syntetisoimalla tietoja datakehyksissä, ja voi tehdä tämän yhdestä tai useammasta datakehyksestä puretulle tiedolle. Featuretools tarjoaa myös yleisiä primitiivejä synteesitoiminnoille (esim. time_since_previous, antaa aikaleimattujen tietojen välillä kuluneen ajan), joten sinun ei tarvitse rullata niitä itse.

GoLearn

GoLearn, Googlen Go-kielen koneoppimiskirjasto, luotiin kehittäjän Stephen Whitworthin mukaan yksinkertaisuuden ja mukautettavuuden kaksoistavoitteilla. Yksinkertaisuus on tietojen lataamisessa ja käsittelyssä kirjastossa, joka on kuvioitu SciPy: n ja R: n mukaan. Mukautettavuus on siinä, miten joitain tietorakenteita voidaan helposti laajentaa sovelluksessa. Whitworth on myös luonut Go-kääreen Vowpal Wabbit -kirjastolle, joka on yksi Shogun-työkalupakista löytyvistä kirjastoista.

Gradio

Yksi yleinen haaste koneoppimissovellusten rakentamisessa on vankan ja helposti räätälöidyn käyttöliittymän rakentaminen mallikoulutusta ja ennusteita palvelevia mekanismeja varten. Gradio tarjoaa työkaluja verkkopohjaisten käyttöliittymien luomiseen, joiden avulla voit olla vuorovaikutuksessa malliesi kanssa reaaliajassa. Useat mukana olleet esimerkkiprojektit, kuten sisääntuloliitännät Inception V3 -kuvaluokittajaan tai MNIST-käsinkirjoituksen tunnistusmalli, antavat sinulle käsityksen siitä, miten voit käyttää Gradiota omissa projekteissasi.

H2O

H2O, joka on nyt kolmannessa suuressa versiossaan, tarjoaa kokonaisen alustan muistikoneoppimiseen koulutuksesta ennusteiden tarjoamiseen. H2O: n algoritmit on suunnattu liiketoimintaprosesseihin - esimerkiksi petoksiin tai trendiennusteisiin - eikä esimerkiksi kuva-analyyseihin. H2O voi olla vuorovaikutuksessa itsenäisesti HDFS-myymälöiden kanssa, langan päällä, MapReducessa tai suoraan Amazon EC2 -esimerkissä.

Hadoop-mavenit voivat käyttää Javaa vuorovaikutuksessa H2O: n kanssa, mutta kehys tarjoaa myös sidonnat Pythonille, R: lle ja Scalalle, jolloin voit olla vuorovaikutuksessa kaikkien näillä alustoilla käytettävissä olevien kirjastojen kanssa. Voit myös palata REST-puheluihin keinona integroida H2O useimpiin putkiin.

Oryx

Cloudy Hadoop -jakelun luojien Oryx käyttää Apache Sparkia ja Apache Kafkaa koneoppimismallien suorittamiseen reaaliaikaisessa datassa. Oryx tarjoaa tavan rakentaa projekteja, jotka edellyttävät tällä hetkellä päätöksiä, kuten suositusmoottorit tai live-poikkeavuuksien havaitseminen, jotka saavat tietoa sekä uusista että aikaisemmista tiedoista. Versio 2.0 on melkein täydellinen projektin uudelleensuunnittelu, jonka komponentit on yhdistetty löyhästi lambda-arkkitehtuuriin. Uudet algoritmit ja uudet abstraktit kyseisille algoritmeille (esim. Hyperparametrien valintaa varten) voidaan lisätä milloin tahansa.

PyTorch-salama

Kun tehokas projekti tulee suosituksi, sitä täydentävät usein kolmannen osapuolen projektit, jotka helpottavat sen käyttöä. PyTorch Lightning tarjoaa organisaatiokääreen PyTorchille, jotta voit keskittyä tärkeään koodiin sen sijaan, että kirjoitat kattilalistan jokaiselle projektille.

Salamaprojektit käyttävät luokkapohjaista rakennetta, joten jokainen PyTorch-projektin yhteinen vaihe on koteloitu luokkamenetelmään. Koulutus- ja validointisilmukat ovat puoliautomaattisia, joten sinun on annettava vain logiikkasi jokaiselle vaiheelle. Harjoittelutulosten määrittäminen on myös helpompaa useilla grafiikkasuoritimilla tai erilaisilla laitteistoyhdistelmillä, koska sen tekemiseen liittyvät ohjeet ja objektiviitteet on keskitetty.

Scikit-oppia

Pythonista on tullut matematiikan, luonnontieteiden ja tilastojen ohjelmointikieli, koska se on helppo ottaa käyttöön ja lähes kaikkien sovellusten käytettävissä olevien kirjastojen laajuus. Scikit-learn hyödyntää tätä laajuutta rakentamalla useiden olemassa olevien Python-pakettien - NumPy, SciPy ja Matplotlib - päälle matemaattista ja luonnontieteellistä työtä varten. Tuloksena olevia kirjastoja voidaan käyttää interaktiivisiin "työpöytä" -sovelluksiin tai upottaa muihin ohjelmistoihin ja käyttää uudelleen. Sarja on saatavana BSD-lisenssillä, joten se on täysin avoin ja uudelleenkäytettävä.

Shogun

Shogun on yksi tämän kokoelman pisinikäisimmistä projekteista. Se luotiin vuonna 1999 ja kirjoitettiin C ++: lla, mutta sitä voidaan käyttää Java, Python, C #, Ruby, R, Lua, Octave ja Matlab kanssa. Uusin pääversio 6.0.0 lisää alkuperäisen tuen Microsoft Windowsille ja Scala-kielelle.

Vaikka suosittu ja laaja-alainen, Shogunilla on kilpailua. Toinen C ++ -pohjainen koneoppimiskirjasto, Mlpack, on ollut käytössä vasta vuodesta 2011, mutta se tunnustaa olevan nopeampi ja helpompi työskennellä (integraalisemman API-sarjan avulla) kuin kilpailevat kirjastot.

Spark MLlib

Apache Sparkin ja Apache Hadoopin, MLlibin koneoppimiskirjastossa on monia yleisiä algoritmeja ja hyödyllisiä tietotyyppejä, jotka on suunniteltu toimimaan nopeudella ja mittakaavassa. Vaikka Java on ensisijainen kieli MLlibissä työskentelyyn, Python-käyttäjät voivat yhdistää MLlibin NumPy-kirjastoon, Scalan käyttäjät voivat kirjoittaa koodia MLlibiä vastaan ​​ja R-käyttäjät voivat liittää Sparkiin versiosta 1.5 lähtien. MLlibin versio 3 keskittyy Sparkin DataFrame-sovellusliittymän käyttöön (toisin kuin vanhempi RDD-sovellusliittymä) ja tarjoaa monia uusia luokittelu- ja arviointitoimintoja.

Toinen projekti, MLbase, rakentuu MLlibin päälle, jotta tulosten saaminen on helpompaa. Koodin kirjoittamisen sijaan käyttäjät tekevät kyselyjä deklaratiivisella kielellä à la SQL.

Weka

Wekaota, jonka on perustanut Waikaton yliopiston koneoppimisryhmä, laskutetaan nimellä "koneoppiminen ilman ohjelmointia". Se on graafisen käyttöliittymän työpöytä, joka antaa tiedonhakijoille mahdollisuuden koota koneoppimisen putkilinjoja, kouluttaa malleja ja suorittaa ennusteita kirjoittamatta koodia. Weka toimii suoraan R: n, Apache Sparkin ja Pythonin kanssa, jälkimmäisen suoran kääreen tai yleisten numeeristen kirjastojen, kuten NumPy, Pandas, SciPy ja Scikit-learn, liitäntöjen kautta. Wekan suuri etu on, että se tarjoaa selattavat, ystävälliset käyttöliittymät jokaiselle työn osa-alueelle, mukaan lukien pakettien hallinta, esikäsittely, luokittelu ja visualisointi.