Bir araştırmacının makine öğrenmesi öğrenme macerası

1. Bölüm: Üç kağıt yapmayı nasıl öğrendim?

Tam zamanında yazılan geç kalmış bir aydınlanma hikayesiyle karşınızdayım. İçimdeki “hadi gelin köyümüze geri dönelim” isteğinin durdurulamaz yükselişinden dolayı kıpır kıpırım.

Doktoranın üçüncü dönemine başlayacağım zamanlar. Yeni bir şeyler öğrenmenin aşkıyla yanıp tutuşuyorum. Okuldaki bütün dersleri inceliyorum. Önceki dönem almış olduğum işlemsel zeka dersinden kalmışım ama ne yazar? Hoca bilim kurgu dediği anda oltaya takılmıştım zaten. Benim için yeni olan kavramlar öğrenmişim; sürü zekası, akıllı sistemler, zeki sistemler, veri madenciliği derken halihazırda aşırı çalışan hayal gücüm iyice coşmuş, bu konuda bir şeyler öğrenmem şart olmuştu.

Dersleri incelerken makine öğrenmesi ve veri madenciliği derslerini gözüme kestirmiştim. Ezgi de (Kendisi ofis arkadaşım olur.) gaza gelmiş beraber alacağız dersleri. Bende bir heyecan bir heyecan, dersler bir an önce başlasın istiyorum. Anlatılmaz bir bilgiye açlık, merak, sabırsızlık derken dönem başladı. E şimdi bunlar Bilgisayar Mühendisliği’nde verilen dersler, kodlama bilmek şart. Lisans döneminde programlama derslerinde zorlanma ve kalmamı meşrulaştırmak için söylemiş bulunduğum “Aman, yazılım işini yazılımcılara bırakmak lazım.” (Bkz. Cahil lisans öğrencisi) ifadesinin acısını çoktan yüksek lisans tezimi yazarken yaşamışım. Derdimi anlatacak kadar Python’ı el yordamıyla öğrenmişim ama o kadar var sadece. Hoca “Bu derste şu dili kullanacağız.” gibi bir şey diyecek ve o dil de Python olmayacak diye soğuk terler döküyorum. Ezgi “Uydum senin aklına! ” dercesine kötü kötü bakıyor çünkü onda derdini anlatacak kadar da kodlama yok.

Bilmiyorum ki her dil her algoritmaya uygun değil, o kadar cahilim.
Cahil olma demiyorum, hobi olarak yine cahil ol…

Hoca tabii ki öyle bir şey demedi ama ödevler verdi. İlk ödevle beraber kodlama becerilerimi -kendime göre- oldukça ilerlettim. İkinci ödevin algoritması ilkine göre daha kolaydı, o ödevde döktürdüm. Sonra geldik üçüncü ödeve: işbirlikçi filtreleme (collaborative filtering) kodlanacak, Netflix datasına uygulanacak. Bir ay da süremiz var, teslimi geciktirdiğimiz her gün için 10 puan ardında gözü yaşlı bizleri bırakıp gidecek.

Bahsi geçen datanın boyutu 1 milyona 1 milyon. Bizim bütün test datası için öneri yapma ihtimalimiz -çok- düşük ama azimliyiz. Gözlerde ekrandan yansıyan ışık pırıl pırıl. Ezgi ile karşılıklı “Aslansın, kaplansın! Lay lay lay laaay!” tezahüratlaşıyoruz.

İlk denemeler hüsranla sonuçlandı; bellek şişti, bilgisayar kitlendi. Sonraki denemelerde biraz daha ilerleme kaydettik ama cık, daha bütün kullanıcılar için korelasyon hesaplanamıyor. Yıldık mı? Hayır, bıraktık bilgisayarları çalışsın. Bir hafta çalıştı o bilgisayarlar. Sonra ne mi oldu?

Sonra elektrikler gitti!

Soldaki biz, sağdaki Tedaş.

Yaklaşan teslim tarihinin bize verdiği yetkiye dayanarak üç kağıda başvurduk. Yapılacak hesaplama sayısını düşürmek için ne kurnazlıklar yaptık. (2. Bölüm’de temel bilginin neden önemli olacağını burası üzerinden göreceğiz.) Şahsen üç farklı kurnazlık denedim ama gerçekten işe yarayıp yaramadıkları hakkında henüz çalışamadım.

Dikkat: Tercihen makine öğrenmesi bilen, en azından ikinci dil gibi kodlama yapabilen ve akademik makalede yer almak isteyen arkadaşlar arıyoruz!
Üç kağıt yapmayı kod yazarken öğrendim.

Teslim tarihi yaklaştıkça bizim göz altı morluklarımız iyice koyulaştı, gözümüzün feri iyice söndü. Açıkçası o kısımları çok net hatırlamıyorum ama bir ara bilgisayarla konuştuğuma eminim. Netice:

Olduğu kadar olmadığı keder

Dedik ve derse gittik. Ezgi ve ben zannediyoruz ki biz hariç herkes teslim etmiştir. Ve fakat, o iş öyle değilmiş. Sınıfa bir girdik, cümbüş yeri gibi. Herkes bitmeyen işlem sürelerinden yakınıyor, 1 hafta ile birincilik bizde gururluyuz (!). Bütün sınıf ağlıyoruz hoca bir hafta daha süre versin diye. Ek süre alamadık belki ama teslim anlaşmasında iyileşmeler oldu. Geciken gün başına 10 değil 5 puan gidecek.


Hiçbir şey üzerinde neredeyse yerimden hiç kalkmadan bu kadar uzun süre çalışmamıştım. Besin ihtiyacımızın çoğunu kahveden temin ederek son bir haftayı tek bir gün gibi geçirdik. Datanın hepsi için sonuç üretemedik ama bir şeyler bulduk, ödevleri yolladık.

Ödevlerden kaçar puan aldık bilmiyorum ama dersleri başarıyla tamamladık. Hem de ufkumuz genişledi, zihnimiz açıldı, yeni tilkiler doğdu. İçinde acaba, ya…, hımm geçen cümlelerimizin sayısı arttı. Zoraki araladığımız bu yeni kapının önünde heyecanla bekliyoruz. Öğrendiklerimizi önce daha iyi kullanmayı öğrenmemiz gerektiğinden biraz da tedirginiz. “Acaba boyumuzdan büyük işe mi kalkışıyoruz?” diye şüpheleniyoruz.

Bir sonraki dönemin başlamasıyla bu soruları daha sonra cevaplanmak üzere bir kenara koyduk.

Yeterlilik mi?

xLemmylsGox: http://imgur.com/gallery/4WuzF

O dönem bitti, bir sonraki bitti. Emin adımlarla üstüme yürüyen yeterlilik sınavından gözüne ışık tutulmuş tavşana dönmüştüm. Haliyle bu noktaya gelmiş olmamı sağlayan bütün geçmiş tercihlerimi sorgularken Gizem “Yapay Öğrenmenin Matematiksel Temelleri diye bir ders olacakmış Matematik Köyü’nde.” dedi. Ben cümlenin ortasında Google’a yazmaya başlamıştım bile. Tünelin sonundaki ışık oldu benim için.

Başvuru formunu doldurduğum gibi Ezgi’yi aradım, dedim böyle böyle. Hop! İkinci başvuru formu da doldurulmuş ve gönderilmişti.

Üç kafadar heyecanlıyız, Gizem’in kabul mektubu çoktan gelmiş. Bizim gözler e-posta kutusunda, telefon her bildirim verdiğinde bir heyecan fırtınası yaşıyoruz. Benim yeterlilik sınavım yaklaşmaya devam ediyor bir yandan. Kabul mektubu gelmedikçe gözlerim doluyor, alt dudakta hafif bir titreme izliyor onu.

Yar bana bir cevap!

Sonra beklenen cevap geldi: “Yedektesiniz”. Hayaller ufak bir deprem atlattı ama ayakta kaldılar. Bir takım yazışmaların ardından yetkili ablamız yeterince bunalmış olacak ki “Asildesiniz, kaydınızı yapabilirsiniz.”. Bizde bir bayram havası, herkes şen. Planlar yapıldı: Ben yeterlilikten çıkar çıkmaz İzmir’e uçuyoruz. Ekip arkadaşlarım veriyor gazı veriyor gazı: “Hadi daha İzmire gideceğiz!”

Yeterlilik geldi, bir şekilde geçti, sonra ben de yeterliliği geçtim derken uçağa bindik. Uçağa bindik ama bahtsızlık paratoneri gibi olduğumdan o kadar da kolay binemedik aslında. Gizem kendini kurtarmıştı fakat Ezgi o kadar şanslı değildi.

2. Bölüm:
İstanbul’dan Şirince’ye gitmek ne kadar zor olabilir ki?