Monday, October 16, 2017

Otomatik Tercüme, Dizin-Dizin İlişkisini Öğrenmek (Machine Translation, Sequence to Sequence Learning)

Sunday, October 15, 2017

Video - Yapay Sinir Aglari (Neural Networks) - 1



Seslendirme bizden, orijinali surada.

YSA hakkinda makaleler.

Seslendirme, Dublaj Nasil Yapilir

Diyelim YouTube'dan bir video'ya Turkce seslendirme yapmak istiyoruz. Once video'yu indiririz, youtube-dl araci bu is kullanilabilir,

sudo pip install youtube-dl

youtube-dl [youtube video url adresi]

Video alindiktan sonra, mesela video-en.webm diye bir dosya olsun, video'yu baslatiriz, ayni anda Android cep telefonunda Voice Recorder aracini baslatiriz. Benim yaklasimim ana video'dan 5-10 saniye kadar izlemek, video dondurmak (pause), izledigim / duydugum konusmayi aklimda tercume edip aninda VR ile mikrofonda kaydetmek. Yani baska hicbir on hazirlik yapmadan direk  kaydi yapmak. Gayet basit. Tabii video / kayit donduruldugunda dusunmek icin bol vakit var, ve bu izle-tercume-kaydet islemini 5 dakikalik buyuk bloklara ayiriyorum, boylece aralarda mola vermek, hata ihtimalini azaltmak kolaylassin. VR ile kaydedilenler bir daha geri gidip duzeltilmiyor, o sebeple cok hatali bir kayit varsa sadece son 5 dakikalik blok tekrar kaydedilir, gerisi kaybedilmez.

Neyse, diyelim 15 dakikalik ana video'dan sonra 3 tane 5'er dakikalik tercume kayit edildi. VR kayitlari m4a formatinda dosyalar, bu dosyalari alip dizustune getiririz, v1.m4a, v2.m4a,.. olsun,

ffmpeg  -i v1.m4a  v1.mp3
ffmpeg  -i v2.m4a  v3.mp3
ffmpeg  -i v3.m4a  v4.mp3

diye mp3 formatina ceviririz. Bu dosyalari birlestirip tek bir dosya yaratalim,

cat v*.m4a > voice.mp3

Simdi nihai seslendirme icin video'nun ses kismini bizim kaydettigimiz mp3 yapalim,

ffmpeg -i video_en.webm -i voice.mp3  -map 0:v -map 1:a -c:v copy -c:a libvorbis -ac 2 -shortest video_tr.webm

Artik video_tr.webm icinde seslendirilmis video var.

Wednesday, September 27, 2017

Derin Öğrenme, YSA, Teori

Derin YSA (yapay sinir aglari) alaninda bazi gelismeler: Naftali Tishby adli enformasyon teorisi arastirmacisi derin aglarin niye bu kadar iyi isledigi hakkindaki bulgularini paylasiyor.


Tishby'ye gore DYSA'larin iyi islemesinin sebebi her katmanin bir sonraki katmana bilgi aktarirken bir sıkıştırma (compression) yapmaya mecbur kalmasi (cunku az sayida noron ile cok sayida veriyi temsil etmek zorunda) ve bunun bir ogrenme sureci ortaya cikartmasi. Ayrica ogrenmenin onemli bir parcasi unutmak :)

Tabii sıkıştırma = ogrenme gibi bir esitlik oldugu biliniyordu, 90'li yillarda (galiba M. Kearns adli arastirmaci) bu alanda bir tez yazmisti, fakat Tishby ogrenmeyi YSA baglaminda anlatiyor. Gerci cok katmanli YSA'larda eger girdiyi ve ciktiyi ayni hale getirirsek ilk katmanin kodlayici (encoder) son katmanin kodçözücü (decoder) haline geldigi de biliniyordu, ama Tishby enformasyon teorisi matematigini konuya uygulamis, ve unutma, katmanlarin genellestirmesi vs gibi yeni gozlemler yapmis. DYSA babalarindan Hinton bu yeni arastirma hakkinda bayagi mutlu olmus, diye duyduk.

Hinton derken, bu arastirmadan once Hinton sektorun "icinde oldugu durumdan" sikayetciydi, yapay ogrenmede sil bastan yapip yeni bir bakis acisi getirmeliyiz diyordu. Soyleme zamani ilginc, derin ogrenme uygulamalari patlama yapmis halde, TensorFlow, Torch gibi altyapilari kullanan onbinlerce gelistirici var artik, Google Cloud, Amazon AWS'de ucuz, neredeyse sinirsiz donanim kullanima hazir (DYSA fazla donanim ile daha iyi calisir). Zannediyorum ki Hinton'un bir sikayeti DYSA'lar hakkindaki teorik eksiklerdi - ve hakliydi, mekanizma isliyor, ama kimse neden isledigini bilmiyor. Gerci bu durum Newton'un Calculus'u kesfettigi zamandan farkli degil, Newton da Calculus'un niye isledigini tam olarak bilmiyordu, isin o kismi icin limitler teorisinin gelistirilmesi gerekti, birkac asir sonra, her neyse, Tishby'nin bulgulari iyi oldu.

Paralel baglamda, derin ogrenmenin diger babalarinan Yann LeCun ve YSA uzmani / psikolog Gary Marcus "YSA teknolojisi daha ileri yapay zeka icin yeterli mi?" hakkinda bir tartisma yapacaklar. Bu tartisma aslinda Hinton'un sikayeti uzerine basladi, Marcus "gordun mu benim dedigimi soyluyor", LeCun "oyle demiyor" vs derken "acik munazara yapalim"a dondu is, 5/10 tarihinde, herhalde YouTube'da cikar. Marcus yillardir YSA'larin YZ icin iyi bir secim olmadigini soyler, son zamanlardaki basarilar tabii onu defansif hale getirdi, fakat hala baska bir yaklasim gerekecek dusuncesini devam ettiriyor. Yeni yaklasimin ne oldugunu o da bilmiyor tabii ama su anda arastiriyor (diye duyuyoruz). 

Wednesday, September 20, 2017

Sürücüsüz Arabalar, Derin Öğrenme

Derin yapay sinir aglari her turlu fonksiyonu temsil edebilirse, ve araba kullanirken insanlarin karar mekanizmasi da boyle bir fonksiyonsa, bir DYSA bu hesap mekanizmasini ornek veriye bakarak bulamaz mi? Egitim verisi yol goruntusu, etiket pedal, direksiyon kontrolu olur, DYSA egitiriz, abrakadabra araba otomatik olarak kullanilmaya baslanir. Surada comma.ai diye bir sirketin kurucusu bu tur bir seyden bahsediyor, genc heyecanli bir arkadas ama buyuk bir ihtimalle yanlis yolda.

Suradaki makale de yanlisligin nerede oldugunu soyluyor. Goruntu ile direksiyon arasinda birebir iliski yok. Bunu tespit ettigimiz anda zaten DYSA'nin niye bu sekilde kullanilamayacagini anliyoruz. YSA fonksiyonlari yaklasik temsil eder demistik. Foksiyon nedir? Matematigin temeli sayi teorisi, sayi teorisinin temeli kume teorisi ise, fonksiyonlarin kumelere dayali tarifini hatirlamak iyi olur, fonksiyon kumeler arasinda coka-bir (many-to-one), ya da bire-bire (one-to-one) esleme yapan bir seydir. Fakat goruntu / direksiyon eslemesi bu tanima uymuyor. Diyelim bir yonu uc seritli olan yolda orta seritte gidiyorum, onumde bir araba var. Bu arabayi soldan gecebilirim, sagdan gecebilirim, yani ayni goruntu iki farkli direksiyon kontrolune eslesmis olur. Egitim verisinde bu tur durumlar muhakkak olacaktir ve DYSA buradan optimal bir sinir agi cikartamayabilir. Daha basit bir ornek, f(x,y)=x+y fonksiyonu, f(3,2)=5 olabilir, f(4,1)=5 olabilir (coka-bir) fakat f(4,1) bazen 5 bazen 15 olamaz. Fakat yine de yeterince veriyle pek cok sartta isleyen bir YSA egitebilirsiniz muhakkak, ama ortaya cikan surucusuz araba ne kadar optimal isler, her turlu ortamda ne kadar guvenilir olur?

Paylastigimiz makale farkli bir secenek veriyor. Yol goruntusunu (input image) kontrol mekanizmasi (driving control) ile degil, arabanin diger arabalara olan mesafesiyle (direct perception) ile esliyorlar. Bu veri farkli sekillerde gelmesi daha zor olan bir veri, birebir esleme olusturmak icin daha uygun. 

Mesafeler elde edildikten sonra isin araba kullanma kismi, gaz, direksiyon kontrolu daha kolay hale gelir, o kisim artik elle kodlanmis bazi kurallarla bile halledilebilir.