“Bilimin
temellerinden teknolojinin limitlerine,
bizzat insan durumunun
tanmına kadar bence
hesaplamanın kaderi geleceğimizin fikrini tanımlamaktır.”
Stephen Wolfram
TEDTalks
videolarından S.Wofram'ın “Her şey Teorisini Hesaplamak”
konuşmasından çok etkilendiğimi söylemeliyim. Oluşturduğu
programlarla aklınıza gelebilecek her şeyi hesaplamayı
amaçladığını, bunu da başardığını görebiliyoruz ve
sonunda şöyle bir farkındalıkla vurucu etkisini yapıyor. Doğada
görülen karmaşık sistemlerin oluşmasını bir kaç basit kural
sağlayabilir! Elimizle oluşturduğumuz basit bir kaç basit kuralın
farklı kombinasyonlarda bir araya gelmesiyle tahmin bile
edemeyeceğimiz kompleks oluşumlar meydana gelebilmektedir. Bu bilinçle
basit birkaç kuralın değişikliğiyle farklı evrenlerin keşfi
veya oluşumu ne kadar da mümkün :).
Hayatını bu
hesaplamalara adayan Wolfram, egosunu sahiplenecek kadar da zeki ve
aşmış biri kanımca. Mathematica adlı programı ilk önce sadece
kendi kullanması için oluşturmak istemiş. Kendi değerinin
farkındalığıyla insanın kendi için bir şeyler yapması ne
kadar da güzel... Bunu da şu örnekle açıklıyor Galileo nasıl
kendi icat ettiği mikroskobu kullandıysa ben de kendim kullanmak
istedim.
Wolfram'ın
anlattıklarından daha fazla bahsetmeyeceğim, çünkü şuan şu
satırları okuyan herkesin farklı bir dünyayı keşfetmenin
hazzının ne olduğunu görmek istedikleri takdirde bu videoyu
izleyeceklerine inanıyorum. Konuşmanın bana hissettirdiklerine ve
fark ettirdiklerine devam edecek olursak, basit algısının neye,
kime ve nereye göre değiştiğiyle alakalı ilginç duygular
denilebilir. Bakış açının objektifliğiyle ve çeşitliliğiyle
neler ortaya konulacağının en mükemmel sonuçlarından biriyle
karşı karşıya olmaktan duyduğum sevincin tarifi yok sanırım.
Geleceğe dair bir
fikir yürütme çabaları insanoğlunun doyumsuzluğuna bir çare
arayışı gibi geliyor bana. Geleceğimizi merak ediyoruz,
geleceğimizin nasıl geldiğini (oluştuğunu) merak ediyoruz. Sonrasında geçmişin ayak izlerini takip ederek geleceğimizi inşaa ediyoruz.
Yine Wolfram' ın
dediği gibi bilimin temellerinden ve teknoloninin limitlerinden
yararlanmak ben de direk “Biyoinformatik” algısını
oluşturuyor. Sonrasında da şu soru zinhimi kurcalamaya başlıyor.
Canlı, bir algoritma mıdır? Algoritma; çözümün adımlarla ifade
edilmesi ya da bir sorunun programlama aşamasında
adım adım soruna yönelik çözüm kodlarının yazılması diye de
tanımlanabilir. Bu durumda tüm Biyoinformatikçilerin canlının
oluşumunun bilinmezliğinin verdiği soruna çözüm bulma amaçlı
algoritma geliştiriyorlar. Geliştirirken teknolojinin limitlerini
kullanıyorlar ve Biyoloji bilimini esas alıyorlar.
"Think Bayes" adlı kitaptan devam ettiğimiz Bayes Teoremi için öncelikle kitaptaki şu örneği inceledik. B1 ve B2 kasemiz var. B1 kasesinde 30 vanilyalı, 10 çikolatalı kurabiye var, B2 kasesinde 20 vanilyalı, 20 çikolatalı kurabiye var. Bir tane kurabiye alacağız, bu kurabiyenin B1 kasesinden vanilyalı olma olasılığı nedir?
Vanilyalı:V, Çikolatalı:Ç ise;
P(B1/V) = P(B1) * P(V/B1) / P(V)
= (1/2 * 30/40) / (50/80)
= 3/5
Canlının
genlerinin kodları ve vanilyalı kurabiyeler bir yana dursun biz biraz bizi biz yapan
kişiliklerimizin ele verdiği şeyler üzerinde oluşturduğumuz
algoritamalar üzerinde duralım :). Bildiğiniz üzere yaz stajımız
başladığından beri ekibimizin her üyesi blog yazmakta. Her
birimizin yazım tarzı birbirinden oldukça farklı, hatta şöyle
de denilebilir yazstaji2014.blogspot.com.tr web adresinden
ulaşabileceğimiz blogumuzda her güne dair yapılanları iki kişi yorumlamakta ve aynı şeyleri yapmamıza rağmen anlatımın ne kadar
farklı olabildiğini görebilmekteyiz. Sizin de bildiğiniz gibi her
insanın sevdiği yazar bile değişiklik göstermekte. Biz de
ortaya bir istatistik koymak istedik. Hangi yaz stajyeri en çok
hangi kelimeleri kullanıyor, bu kelimelerin kullanım frekansı
nedir? Herkes için bu özellikler ortaya koyulduktan sonra ki
amacımız, isimsiz bir yazının kime ait olduğunu tespit edebilmek
olacaktır. Şöyle bir yol bile izlemeyi düşündüğümüzü
söyleyebilirim, onedio testleri gibi bir test oluşturup adını da
“GenKök'ün hangi yaz stajyerisiniz?” koymak istiyoruz. Sizin
için ne derece önemlinin yanında bizim için gayet keyifli bir
süreç olmakta.:)
Projeksiyonla
yansıtarak ortak yazdığımız kodlarla ortaya koymaya başladığımız
istatistikler de kendi adıma insanların çok az kullandığı
kelimeleri kullanmada patlama yaşatıyorum diyebilirim. Bu da benim kimliğim
oluyor ve böylelikle yazının bana ait olduğu ortaya
koyabiliyoruz. Eğer bir gün isimsiz bir e-mail alırsam bunun kime
olduğunu bu yöntemle tahmin edebileceğimi bilmenizi isterim! :)
Bayes teorimi gün geçtikçe beni kendisine daha bağlı hale
getiriyor, normları yıkıp geçmesiyle ortaya koyduğu her
parametrenin varlığını sonucundaa göstermesi nedeniyle beni
kendisine hayran bırakıyor. Artık tabuları yıkıyoruz ve
görüyoruz ki küçüklükten beri bizi inandırdıkları, bir
parayı havaya atıp tura gelme ihtimali ½ 'dir savı çürüyüp
gidiyor. Bayes teoremi bize bir kelimenin bir yazıda bulunma
istatistiğinin yanında yazının uzunluğuna bağlı olarak
kullanılma frekansına da bir değer vermesiyle diğer
istatistiklere göre daha gerçekçi sonuçlar ortaya koyuyor.
Problemimize geri dönecek olursak, bizim kurabiye probleminden daha farklı bir sorunumuz vardı. Kaselerimizdeki kurabiyelerimiz eşit değildi yani blog yazılarımızda her birimizin toplam kelime sayısı eşit değildi. Bunu normalize edecek bir formüle ihtiyacımız olduğundan dolayı kitabı okumaya devam ettik. Tabi ki kitapta aradığımızın cevabını da bulduk.
Örnek verecek olursak;
Bi: 30 A:6, Bu:20 A:4
Bi: Bihter' in Blogundaki Kelime Sayısı,
A: Ahmet kelimesi,
Bu: Burak' ın Blogundaki Kelime Sayısı
P(Bi/A) = (P(Bi)* P(A/Bi)) / P(Bi) * p(A/Bi) + p(Bu) * p(A/Bu)
= ( 1/2 * 6/30) / (1/2 * 6/30 + 1/2 * 4/20)
= 1/2
P(Bu/A) = (P(Bu)* P(A/Bu)) / P(Bi) * p(A/Bi) + p(Bu) * p(A/Bu)
= ( 1/2 * 4/20) / (1/2 * 6/30 + 1/2 * 4/20)
= 1/2
1/2 + 1/2 = 1 --> Bu formül ile her birimizin blog yazılarında ki kelimelerin farklı sayıda olmasına rağmen tüm olasılıkların toplamının "1'e" eşit olmasını sağladık. Yani blog yazılarındaki toplam kelime sayısı farklı olsa da doğru sonucu ulaşmış oluyoruz, bize geri kalan Python'da bunun algoritmasını oluşturmak. Bayes bir harika!
"Ipython" kullanarak yazdığımız kodlarımızı "Team Viewer" programını kullanarak bilgisayarlarımızı birbirine bağlayarak kod yazmaya devam ettik. Müdahale etmek isteyen kendi bilgisayarında yazmaya başlayınca birbirine bağlı tüm bilgisayarlarda da değişim gerçekleşiyor. GenKök ekibi gezmeyi ve gezdiği her yerde çalışmayı çok iyi bildiğinden dolayı, bilgisayarlarımıza Team viewer'ı yükledikten sonra Starbucks'ın yolunu tuttuk, sanki o geniş masayı bizim için koymuşlar. Bir arabaya 7 kişi sığıp her yere eğlenerek gitmek nasıl huzurlu nasıl güzel anlatamam :) Sonrasında Ahmet Raşit Hocamız'da bize katıldı, yanımızda değildi ama yine Team viewer ile kodlarımızda düzeltmeler yaparken hem anlattı hem değiştirdi. Oldukça keyifli olduğunu söyleyebilirim. Biz böylelikle sabahlara kadar çalışmaya devam ediyoruz.
Ipython'da 3 blog yazarının 3'er blog yazısını alıp bu bloglardaki ortak kelime frekanslarını çıkartıp bir de karşılaştırmak amaçlı test yazısı ekleyip o yazının kime ait olduğunun olasılığını hesapladık. İlk önce deneme amaçlı kendi yazımın diğer üç yazımla benzerliğinin ortaya konulması amacıyla test ettik. Ve eklenen 4. test yazısı %40 olasılıkla bana benzediği, yaklaşık %30'ar benzeliklerle de diğer iki blog yazarına benzediğini ortaya koyduk. Bu da demek oluyor ki gerçekten de her birimizin kendine has bir tarzı var. Bir yazı kimliği var. Bir çok güzel sonuç daha koyduk ve bunları yaparken sonuç bulduğumuzdaki heyecanımız, ellerimizle "çak" dediğimiz bir sürü an yaşandı. Paylaşımlarla büyüttüğümüz algoritmalarımızla biz çokça mutluyuz. Bu ekip bir harika!
Hani hep derdimya yolda kalın diye, ben yolda kaldıkça yeni yeni fırsatlar çıkmaya başladı. Fırsatları iyi değerlendirdiğimiz günlerde görüşmek dileğiyle...
Not: Dikkat et sözlerin seni ele veriyor, benden söylemesi :)
Bihter
Hiç yorum yok:
Yorum Gönder