Implementacija znanstvenih radova i DeepMind neuralni stog


#1

Evo još jedan super zanimljiv članak koji spaja programiranje i znanstvene teme na koji sam nabasao. Prvo objašnjava temu neuralnog stoga koji je korišten u Googleovom DeepMind projektu koji je prvi put uspio pobijediti ljudskog majstora u Gou.

Članak zatim objašnjava kako algoritam u osnovi radi intuitivnom implementacijom u Pythonu.

Ne samo to, nego autor i na meta-razini objašnjava kako inače čita znanstvene radove i pokušava ih razumijeti tako pojednostavljenim implementacijama. Čak doslovce pokazuje kako vizualizira razne formule i prebacuje ih u kod. Mislim da su ovako neki materijali jako korisni u didaktične svrhe.


#2

Nakon uvoda u deep learning metode u prethodnom postu, dosta dobra nova biblioteka za primjenu strojnog učenja (i šireg skupa numeričke obrade podataka) je Googleov novi open source projekt TensorFlow. Napisan je u C+±u, ali ima sučelje za Python (a vjerojatno će uskoro doći i za druge jezike) i omogućava zadavanje operacija na toku podataka (engl. data flow). Prvotno su ga koristili za neuralne mreže u Google Brain timu, ali primjenjiv je i za druge tipove operacija.

Samo izvođenje je ili na CPU-u ili na GPU-u, što može biti jako korisno sad kad su VM-ovi s moćnim GPU-ovima dostupni u cloudu (npr. na Amazonu).

Izgleda kao nešto s čime bi se bilo jako fora poigrati, pogotovo sad kad AI postaje sve primjenjeniji u stvarnom svijetu. Ima li netko već iskustva s TensorFlowom ili sličnim tehnologijama?


#3

Novo sučelje više razine za TensorFlow u Pythonu – tflearn. Klasifikacija u doslovno 8 linija koda:

tflearn.init_graph(num_cores=8, gpu_memory_fraction=0.5)

net = tflearn.input_data(shape=[None, 784])
net = tflearn.fully_connected(net, 64)
net = tflearn.dropout(net, 0.5)
net = tflearn.fully_connected(net, 10, activation='softmax')
net = tflearn.regression(net, optimizer='adam', loss='categorical_crossentropy')

model = tflearn.DNN(net)
model.fit(X, Y)

Puno je jednostavnih primjera dostupno i u dokumentaciji projekta.

Dobro, nije ni scikit-learn puno kompliciraniji, ali s tflearnom su vam pod prstima bijesni algoritmi neuronskih mreža koji prže grafičke kartice :rocket:


#4

Još jedan zanimljiv članak o AlphaGo-u i o tome što to znači za daljnji razvoj AI-ja. Prikazuju uspjeh AlphaGo-a ne zato što je pobjedio u Go-u kao igri s puno više mogućih poteza ili 10 godina prerano u odnosu na predviđanja razvoja AI tehnologije, nego zbog načina evaluacije poteza.

Dok su u povijesni Deep Blue koji je pobijedio prvaka Kasparova ugradili puno ekspertnih znanja o šahu (od tipa lovac vrijedi 3 puta više od pijuna do puno suptilnijih pravila) za pretraživanje prostora mogućih poteza, AlphaGo je imao usađena jedino osnovna pravila igre Go-a. Koliko sam shvatio, način na koji AlphaGo određuje vrijednost nekih položaja na ploči je da igra sam protiv sebe za sve moguće kombinacije poteza kako bi odabrao najbolji. Ovo je jedan način za opisivanje ljudske intuicije u stilu “ovaj položaj na ploči se čini dosta dobar” kojeg eksplicitnim pravilima nisu uspjeli

Članak ulazi i u par drugih zanimljivih primjera oponašanja ljudske intuicije u AI-ju i koliko bi ovo moglo imati potencijala u budućnosti. Jedan primjer je strojno primjenjivanje umjetičnih stilova na fotografije – prve dvije fotke ulaz AI-ju, zadnja je automatski generirana:


Brzinski odabir
#5

Online igraonica s neuronskim mrežama. Možete odabrati klasifikacijski problem, postaviti veličinu neuronske mreže (broj slojeva i čvorova) i odvrtiti treniranje kao animaciju gdje su prikazani izlazi svakog čvora. Prilično lud alat za lakše intuitivno razumijevanje metode!

Kod u TypeScriptu je na Gici ako nekoga zanima kako je ova aplikacija napravljena.


#6

Evo deep learning i za generiranje jazz glazbe… deepjaz.


#7

Evo još jedna online platforma na kojoj se može izvoditi TensorFlow algoritme koristeći GPU za brže izvođenje.


#8

TensorFlow za prepoznavanje tablica na autima.

Dostupan je članak koji opisuje metodu i kod u Pythonu na Gici. Korišteni paketi:

  • TensorFlow
  • OpenCV
  • NumPy

#9

Inače, TensorFlow vam pomaže i pri intervjuima za posao. Kupiš TPU, importaš TF i gotovo. Kome više treba nešto drugo!


#10

Još jedna primjena teoretskih koncepata – ovaj put za preporuke. Agnes Johannsdottir u sklopu Cambridgeove programerske akademije pokazuju korak po korak kako implementirati preporuke npr. filmova u Pythonu objašnjavajući svaku formulu konkretnim naredbama.


#11

O’Reilly je izbacio kratak “hello, world” članak o TensorFlowu. Objašnjavaju osnovne razloge zbog kojih je biblioteka zanimljiva, koji se ukratko svode na:

  • obuhvaća mnogo popularnih metoda strojnog učenja, ne samo duboko učenje (engl. deep learning)
  • lako dostupne metode linearne algebre
  • uključene baterije što se tiče log sustava i posluživanja na webu
  • drugačiji model izvođenja od postojećih biblioteka poput scikit-learna

Nakon toga daju primjer definicije “toka podataka” za algoritam opadajućeg gradijenta.


#12

Poslušao sam zanimljivu epizodu Changeloga o TensorFlowu s gostom koji radi na projektu u Googleu. Dosta dobra epizoda, isplati ju se poslušati ako vas zanima TF, a imate sat vremena slobodno dok perete suđe / kuhate ručak :slight_smile:.

Ukratko, pričaju o tome kako su TF odlučili open sourceati cijeli, a ne samo kao white paper (za razliku od recimo MapReducea ili BigTablea) kako bi baš njihov proizvod, a ne sličan, a opet malo različit projekt neke druge firme postao standard (npr. Hadoop, HDFS). Također, vrlo zanimljiva stvar je da kako puno ljudi nema dovoljno velike data setove za deep learning, Google preko svog Machine Learning Clouda nudi pristup svojim jako moćnim modelima (npr. za image recognition) treniranim na petabajtima podataka — i to direktno iz TF-a.


#13

Vezano za ovu temu istraživanja strojnog učenja, objavljen je novi web-bazirani istraživačko-edukativni časopis Distill. Zanimljiv je jer se svaki rad piše u zasebnom GitHub repozitoriju, a sve recenzije odvijaju preko GitHub issuea. Časopis će poticati interaktivne vizualizacije moguće na webu (Mike Bostock, tvorac D3-a je član upravnog odbora). Možete vidjeti primjer u ovom radu o analizi ljudskog rukopisa. Evo kako umjetna inteligencija misli da bi trebalo dovršiti moj mišopis:

Misija im je jednostavno objašnjavanje strojnog učenja:

Distill is dedicated to clear explanations of machine learning

Projekt je podržan od organizacija poput Google Researcha, YC Researcha, OpenAI-ja i iza projekta je nekoliko vrlo cool ljudi, tako da bi mogao zaživjeti kao nova platforma za objavu rezultata istraživanja koji se odmiče od trenutnog stanja dugotrajne pripreme PDF dokumenata koji na kraju završe iza nekog paywalla.