2
yorum

6 Nisan 2017 Perşembe

Yapay Zeka ve Yapay Öğrenme - I

Günlük hayatımızın her köşesinde artık bir uygulamasını bulduğumuz 'yapay zeka', bilim kurgu kitap ve filmlerinden fırlamışçasına son zamanlarda epey sesini duyurmaya başladı. Konunun ismi gereği epey iddialı olduğu kesin; fakat bahsedilenler ve elimizdeki teknoloji ne ölçüde 'zeki' bilgisayarlar iddiasını karşılıyor? Konuyu robotlar ve zeki bilgisayarlar düzleminden biraz daha pratik ve günümüz problemlerine getirilen yeni yaklaşımlar perspektifinden incelemek çok daha sağlıklı olacak. Kendim de fizik tarafında son dönemlerde uygulamalarıyla ilgilenmeye başladığım bu konu birçok alanda çığır açma eşiğinde (örnekler için tıklayınız). Yakın zamanda yayınlanmaya başlayan ve sinir-bilim konusunda güncel tartışmalara yer veren 'Nöroblog Podcast' sesli yayınının geçen haftaki bölümünde, programın yapımcıları Onur Arpat ve Taner Yılmaz ile bu konuyu tartıştık.


Yayını yukarıdaki arayüz (Soundcloud) üzerinden (şu bağlantıdan) ya da iTunes'dan abone olarak dinleyebilirsiniz. 

Programın temeli benim de kitaplarını ilgiyle okuduğum (biri Pulitzer ödüllü: 'Tüm Hastalıkların Şahı-Kanserin Biyografisi'), kendisi aynı zamanda kanser uzmanı bir doktor olan Siddhartha Mukherjee'nin New Yorker'ın 3 Nisan tarihli sayısında yayınlanan yazısı: AI vs MD: 'Yapay zeka tıp doktoruna karşı'. Programda, makalede dile getirilen konuları detaylıca tartışmaya çalıştık; klasik 'kural tabanlı sistemler'den günümüz öğrenen sistemlerine ve bunların başardıkları ve eksikliklerine işaret ettik; aynı zamanda bu sistemlerin bir takım rutin işleri yapmak konusunda biz insanların yerini alıp alamayacaklarına dair 'spekülasyon' seviyesinde olsa da birkaç şey söylemeye çalıştık.

Bu konu artık gündemin büyük bir kısmını oluşturuyor. Her geçen gün insanı en zorlu oyunlarda yenen yapay zeka sistemlerinden, sürücüsüz arabalara, Elon Musk ve diğer Silikon Vadisi tayfasının beyin-bilgisayar arayüzü üzerine 'vizyoner' girişimlerinden ses ve görsel tanımada insanları çoktan geride bırakmış sistemlere kadar birçok ilginç ve belki de haklı  olarak 'kaygılandıran' gelişmelere tanık oluyoruz. İnsanı tanımlayan ve birçoklarına göre diğer tüm canlılardan ayıran 'bilinç' ve 'zeka' özelliklerinin artık yavaş yavaş bilgisayarlar için kullanılmaya başlaması bu tartışmaları alevlendiren şeyler. Bu gibi tartışmaları sağlıklı bir şekilde yapmak, konuyu abartılardan ve 'naif iyimserlik'ten uzak bir düzlemde, yanlış anlaşılmalara neden olmayacak bir şekilde yapmak için her yönden inceleyip, açık bir şekilde ele almak büyük önem taşıyor.

Sesli yayında konuştuklarımız üzerine birkaç ekleme yapıp, podcast ortamında yalnızca konuşarak ifade edemediğimiz kavramları biraz daha detaylı bir şekilde ele almak amacım. İki bölüm olacak bu yazının ilk kısmında ele alacağım konu, şu anda elimizdeki yapay öğrenme yöntemlerinin ne olduğu ve ne olmadığı.

Yapay öğrenme (İng: machine learning) 'yapay zeka' olarak bilgisayar bilimleri-matematik-istatistiğin kesiştiği alanda kullanılan yöntemlerin bir kısmını ifade ediyor. Bu alanda temelde üç farklı yöntem var:
  • Güdümlü öğrenme (supervised learning): Elinizde bir probleme dair verileriniz var ve bu verilerin her biri etiketlenmiş. Örneğin kanser hücrelerini tanıyabilen, öğrenebilen bir sistem oluşturmak istiyorsunuz. Bu sisteme öncelikle kanser hücresi olduğu ya da olmadığı bilinen örnekleri gösterip sistemi eğitiyorsunuz. Sistem bu örnekler ve örneklerin etiketleri ('sınıfları') üzerinden istatistiksel çıkarımlarda ve genellemelerde bulunup öğreniyor. Artık sisteme etiketlenmemiş, örneğin kanserli olup olmadığı bilinmeyen bir doku örneği verdiğinizde sistem size bu dokunun kanserli olup olmadığını (belirli bir olasılık dahilinde) çıktı olarak veriyor. Günümüzdeki yapay öğrenme yöntemlerinin büyük bir çoğunluğu (Google'ın metin çevirme sisteminden, Facebook'un yüz tanıma sistemine, Whatsapp'ın yazdıklarınızı tanımlama sisteminden sürücüsüz arabalara kadar) bu yöntemle çalışıyor. 
  • Güdümsüz öğrenme (unsupervised learning): Elinizde yine verileriniz var fakat bu verilerin etiketleri yok. Yine aynı örnek üzerinden ilerleyelim; kanserli doku hücreleri görüntüleriniz var fakat bunlardan hangisinin kanserli hücre barındırdığını bilmiyorsunuz. Bir model kurup, görüntüler üzerinde bir takım özellikler belirleyerek (örneğin hücrelerin yarıçapı, renk yoğunlukları vb.) bu özellikler üzerinden verinizin birbirinden ayrılabilir belirgin kümeler oluşturup oluşturmadığına bakıyorsunuz. Oluşan kümeleri de sonrasında inceleyerek hangi durumlara karşılık geldiğine bakıp eline geçecek yeni bir veriyi bu kümelerden hangisine düşeceğine bakarak karar veriyorsunuz. Hatta daha da ileri giderek, sınıflandırma için herhangi bir özellik tanımlamadan sistemin bu örnekleri birbirinden ayıran özellikleri kendisinin bulmasını sağlıyorsunuz. Eldeki verileri tek tek etiketlemenin kolay olmadığı durumlar için kullanılan bu yöntem kendi içinde birçok teknik zorluklar barındırıyor ve bu nedenle güdümlü öğrenme gibi 'popüler' değil, fakat geleceğin en etkili öğrenme biçimlerinden biri olacağı düşünülüyor.
Solda güdümlü öğrenme (supervised learning) yönteminde çarpı ve yuvarlak ile etiketlenmiş örnek veriler üzerinden öğrenme gösterilirken, sağda aynı veriler etiketlenmeden güdümsüz öğrenme (unsupervised learning) ile elde edilen farklı gruplar gösterilmiş (Kaynak: Andrew Ng. Coursera Machine Learning dersi materyalleri)
  • Ödüllendirme ile öğrenme (reinforcement learning): İnsanın öğrenmesine en yakın yöntem olan bu yöntemde elinizde eğitmek istediğiniz belirli bir amaca sahip bir sistem var. Örneğin satranç ya da Go gibi bir oyunda karşıdaki kişiyi yenmeye çalışan ya da  bir atari oyununda en yüksek skoru almaya çalışan bir sistem. Bu sistem belirli hareketleri yaparak ilerliyor: satranç ya da Go'da yaptığı hamleler, atari oyununda ise sağ-sol-ileri-geri gibi hareketler. Sistemin şu anki durumu üzerinden yapacağı hamlelere karşılık olarak amaca yaklaşma ihtimali yüksek olanlar için sistemi ödüllendirip bu tip hareketleri teşvik edip, aksi durumda olanları yani kaybetmeye doğru götürme ihtimali yüksek olan hamleleri baskılayıp cezalandırıyorsunuz. Böyle böyle binlerce kez deneme-yanılma yapan sistem sonunda hedefe doğru hızla koşan etkili bir sistem haline geliyor. Aşağıda AlphaGo projesi ile dünya Go şampiyonlarını deviren Google'ın Deepmind şirketinin geliştirdiği, atari oyunlarını birkaç yüz deneme sonunda öğrenen sistemleri görebilirsiniz.


Google Deep Mind'ın geliştirdiği öğrenen sistem yukarıda atari oynuyor. İlk 100 oyun sonunda epey başarısız görünen sistem birkaaç yüz oyun sonunda kısa yollar bulup adeta uzmanlaşıyor. (Kaynak: Google Deepmind)

Bu üç yöntemden şu anda 'yapay zeka'ya doğru giden yolun 'güdümsüz öğrenme' ve 'ödüllendime ile öğrenme' olduğu düşünülüyor. Fakat günümüzde en çok revaçtaki yöntem ise güdümlü öğrenme; bunun iki sebebi var:
  • Birincisi ilgili-ilgisiz herkesin 'büyük veri' diye bahsettiği konu. Artık elimizdeki tüm araçlarla sürekli veri topluyoruz. Girdiğiniz bir internet sitesinde tıkladığınız bağlantılardan, kameranız açıksa gözünüzün hareketlerine; okulda, metroda, her yerde dijital kameralarla, üzerimizdeki cep telefonları ile sürekli güncellenen konum bilgilerimizden, yürüyüş hızımıza, hangi uygulamayı ne kadar kullandığımıza türlü türlü gerekli-gereksiz tüm verileri alıp bunları kaydedip saklayabiliyoruz. Çünkü artık bunu kolaylıkla ve ucuz bir şekilde yapabiliyoruz (yapabiliyor olmamız 'yapmamız' gerekliliğini doğuruyor mu? İşte bu tartışılır!). Evimizde ufacık bir alet üzerine yerleştirilen mikroçip saniyede milyonlarca veri alma kapasitesine sahip. Üstelik bunları saklayacağı hafızalar da hızla büyüyüp ucuzlaşıyor; bu veriyi bir yerden başka bir yere aktarırken artık geniş bant internet bağlantısı sayesinde hiçbir zorluk da yaşamıyoruz.
  • İkincisi bu veriyi işleme gücümüzdeki muazzam artış. Bilgisayar işlemcilerinin performanslarındaki üssel artış (ve aynı zamanda ucuzlama), birden fazla işlemi 'paralel' bir şekilde yapabilme imkanı, tipik bilgisayarların merkezi işlemci birimlerinden (CPU-Central Processing Unit) farklı olarak ilk başta oyun ve grafik amaçlı geliştirilmiş 'grafik işlemci birimleri' (GPU-Graphical Processing Unit), hatta son zamanlarda sırf yapay öğrenme uygulamaları için Google tarafından geliştirilen özelleştirilmiş işlemciler (TPU-Tensor Processing Units) bu konuda bir devrim yaratmış durumda. Öğrenilmesi gereken milyonlarca parametre barındıran yapay öğrenme uygulamalarında milyonlarca örneği ele alıp birkaç saat/gün mertebesinde sonuç üretebilen sistemler var artık elimizde. Yakın geçmişe kadar bunun hayali bile kurulamıyordu. Donanım tarafındaki bu gelişmenin yanında, yazılım tarafında da yapay öğrenme ve istatistiksel örüntü tanıma konusunda geliştirilen programları ve bunların 'açık kaynak kodlu' olarak sunulup birçok kişi tarafından özenle geliştiriliyor olması tüm bu gelişmelere büyük bir ivme kazandırdı.

Bu gelişmeler sayesinde beş yıl öncesine kadar bir kediyi, köpekten ayırmakta zorlanan sistemler şu anda kedinizin hangi açıdan çekilmiş olursa olsun bir fotoğrafından hangi tür olduğunu söyleyebiliyor. Aynı şey tıp görüntülemelerinde kanser öncesi oluşumları erkenden tanımlayabilen sistemler için de geçerli. Örnekler birçok alan için çoğaltılabilir.

Peki bu ilerlemelere ve tüm bu çığır açan uygulamalara bakarak her şeyin kusursuz olduğunu iddia edebilir miyiz? Maalesef hayır; çünkü:
  • Şu anda kullanılan yöntemler büyük ölçüde 'veriye aç' yöntemler. Etkili sonuçlar elde edebilmeniz için sistemi kurarken çok fazla veriye ihtiyacınız var, ki sonunda size etkili örüntüler oluşturup yeni bir durumlar için daha iyi 'genellemeler' yapabilsin. Birçok alanda bu ölçekte veri bulmak çoğu zaman zor ya da tıp gibi alanlarda bu veriye erişmek 'gizlilik' sebebiyle mümkün değil. Bunu aşmak için birçok çözümler uygulanıyor (Amazon'un 'Mechanical Turk' servisi ya da daha 'pratik' doktora öğrencilerini verileri etiketlemek için kullanmak gibi) fakat bu çözümler sistemlerin veriye açlığını gidermeye yetecek gibi durmuyor. Tıpkı insan gibi birkaç örnek üzerinden etkili bir şekilde öğrenen sistemlere ihtiyaç var ve bu konuda çalışmalar bu işin geleceği olarak görülüyor (bknz: one-shot learning).
  • Kullanılan yöntemler her ne kadar bilgisayar gibi tamamen 'mantık' üzerine kurulu bir sistem üzerinde gerçekleniyor olsa da bu sistemlerin programlanmasından, sistemi eğitmek için sağlanan verilerin seçimine kadar onlarca faktör kaçınılmaz bir şekilde 'yanlılık' (bias) oluşturuyor. Örneğin bankalar kredi verecekleri müşterileri artık bu yöntemlerle belirliyorlar. Algoritmalar kredi başvurusunda bulunan kişinin sosyo-ekonomik bir takım bilgilerini değerlendirip bir sonuç çıkarıyor ve şu kişiye şu kadar riskle kredi verilebilir diyor. Fakat bu sistemi eğitirken kullanılan veri içinde tüm sosyal grupların eşit bir şekilde temsil edilip edilmemesi, çıkacak sonucu doğrudan etkileyebilme gücüne sahip. Bir sonraki yazıda da göreceğimiz gibi bu sistemler çoğu zaman geriye dönük sorgulanamadığı yani bu kararı neden verdiğinin cevabını bize vermediği için bu yanlılıkları fark etmek çok çok güç. Bu özellikle toplumsal-sosyal konularda büyük tehlikeler barındırıyor. Bu konular 'teknoloji çılgınlığı' ve fütürizm modunda ilerleyen tartışmalara henüz yansımasa da günlük hayatta bizi çoktan etkilemeye başladı bile. (Konuyla ilgili şu etileyici kitabı tavsiye ederim: Weapons of Math Destruction: How Big Data Increases Inequality and Threatens Democracy)
  • Her ne kadar tüm sorunlarımıza çare olacak gibi pazarlansa da bu yöntemler şu anda kabaca tahmin etme, sınıflandırma gibi 'alt-seviye' işler yapıyor; 'karar alma', 'muhakeme etme', 'karşılaştırma' gibi daha üst-seviye işler yapabilmeleri için mevcut yöntemlerin üzerine tamamen farklı bir perspektif gerektiği vurgulanıyor. Şu anki baş döndürücü gelişim hızına bakarak bunun için yakın gelecek için umutluyuz, fakat bahsi geçen problemlerin epey çetin problemler olduğunu göz önünden çıkarmamak gerek!
Bir sonraki yazıda sesli yayında da bahsettiğimiz 'Yapay Sinir Ağları' konusunu biraz daha detaylı ve bir örnekle açıklamayı planlıyorum.

Kaynaklar:

2
yorum

2 Nisan 2017 Pazar

Mart ayının kitapları

Kitap severler için bir tür sosyal medya ve kitap veritabanı olan Goodreads sayfasında kendi kendime bir 'meydan okuma' ile bu yıl 50 kitap okuyacağım sözünü verdim. İlk çeyrek itibariyle hedefimi tutturmuş olmanın verdiği güzel hislerle Mart ayında okuduklarımı buradan da kısaca paylaşmak istedim.



The Master Algorithm (Yazar: Pedro Domingos - Penguin Press) Yapay öğrenme ve yapay zeka çalışmaları hakkında yazılmış en kapsamlı popüler bilim kitaplarından biri The Master Algorithm. Yazarı konuyla akademik olarak uğraşan ve önde gelen araştırmacılardan biri. Kitapta farklı farklı yapay öğrenme yöntemlerini detaylıca ele alarak yazarın kendi iddia ettiği 'genel öğrenici' bir algoritma olan Master Algoritma'ya doğru giden yol anlatıyor. Henüz elimizde böyle bir genel öğrenici bir sistem olmasa da yapay öğrenme problemlerine farklı açılardan yaklaşan 'düşünce okullarının' karşılaştırmalı olarak bir arada sunumu ortaya etkileyici bir kitap çıkarmış. Konuya her ne kadar 'popüler' açıdan yaklaşıyor olsa da içeriğini sindirmenin kolay olduğunu iddia edemem; birçok algoritmanın anlatımını defalarca okumam gerekti. Kitabın sonundaki her bölümle ilgili kapsamlı referanslar ve kaynakça uzun zaman boyunca elimin altında bir başvuru kaynağı olarak kalacak. Kitap ayrıca çok yakın bir zamanda Türkçe'ye de çevrildi (Paloma Yay.).

Yürümenin Felsefesi (Yazar: Frederic Gros - Kolektif Kitap) Yürümenin Felsefesi Kolektif Kitap'ın yayın çizgisine tam yakışır, bir taraftan gerçek hayatla içli dışlı ama olayın düşünsel ve felsefi tarafından ödün vermeyen, çevirisi ile her zamanki gibi göz dolduran, tasarımı ile elinizde tuttuğunuzda dahi mutluluk hissi veren bir kitap; yürümenin felsefesine dair bir şaheser! Kendisi de bir felsefeci olan yazar Frédéric Gros, yürüme gibi günlük hayatın en temel ve kitapta da bahsettiği üzere 'tekdüze' davranışı üzerine sayfalarca fikirler, tarihsel kişilikler, bağlantılar ve renkli anekdotlar sunuyor. Tarihteki ünlü yürüyüşçülerden Nietzsche, Rousseau, Thoreau ve Emerson'ın yürümeye karşı yaklaşımlarını bizzat deneyimleri ve bunların üretme süreçlerine etkileri üzerinden etkili bir şekilde el alıyor. Doğada uzun soluluklu yürüyüşlerden, 'kafayı dağıtmak' için çıkılan yürüşlere, şehirde elleri cebinde sokaklarda başıboş dolaşmak olarak tarif edilebilecek 'fleaneur'lükten, Paris parklarında birbirine kur yapmak için eskiden çıkılan gezintilere türlü türlü açıdan bakan kısa denemeler yer alıyor kitapta. Yürümeye dair günlük hayat özelinde yada kültür tarihi bağlamında ne varsa her birini ince ince işlemiş yazar. Yürümeye övgülerle ve birbirinden güzel benzetmeler ve açıklamalarla bunca alışık olduğumuz bir hareketi yeniden önümüze koyan bu kitap, 'yerinde duramayanlar' için kesinlikle bir başucu kitabı.

Kör Baykuş (Yazar: Sadık Hidayet - Yapı Kredi Yay.) Kitap uzun zamandır okuduğum en kasvetli ve hayatı olumsuzlayan kitaptı herhalde. Klasik İran edebiyatının ustalarından gösterilen Sadık Hidayet'in en bilinen eseri Kör Baykuş. Sartre, Camus ve Sartre'da göremeyeceğiniz bir 'bunaltı' ve varoluşçu esintiler her satırında fazlasıyla hissediliyor. Yazarın hayatını göz önünüze aldığınızda böylesi bir eseri ortaya koymasının geri planını biraz daha iyi anlaşılıyor gibi geliyor. Bir dönemler 'pençesine'düştüğüm bu tarz kitapları okuduğum dönemleri hatırlatması anlamında ancak sevebildiğim bir okuma oldu, daha fazlası değil...
Benim Periyodik Tablom (Yazar: Oliver Sacks - Yapı Kredi Yay.) Kişiliği etkileyen uç psikolojik sorunlar üzerine hayatını vakfetmiş ve tüm bunları birbirinden güzel anlatılar şeklinde ömrü boyunca yayınlamış en sevdiğim yazarlardan biridir Oliver Sacks. Ele aldığı konuları çoğu zaman ağzım açık okur, dünya üzerinden insan deneyiminin sonsuz çeşitlilikte olduğunu düşünür dururum. Oliver Sacks'ın bu yazar kimliğinin yanında aynı zamanda karakterini en çok belirleyen yönlerinden biri de doğa bilimleri, özellikle kimya sevgisidir. Çocukluğundan itibaren kimya ve özellikle elementlerle kurduğu bağını, yine Yapı Kredi'den yayınlanmış 'Tungsten Dayı' eserinde ele almış, bitmez bilmez merakını bir eğrelti otu meraklısı amatör grubuyla Meksika'da çıktığı keşif gezisinin notlarını Oaxaca Günlüğü kitabında paylaşmıştı. Geçen yıl kanserden yitirdiğimiz bu müthiş insanın ölümünden önce kaleme aldığı son üç yazısını içeriyor 'Benim Periyodik Tablom'. Her biri birbirinden değerli, hayata, insanlara, bilime bir veda yazısı niteliğinde üç yazı. Oliver Sacks'ın okurlarına bıraktığı son hazine.

Prizma ve Sarkaç (Yazar: Peter P. Crease - Boğaziçi Üniversitesi Yayınları): Bilimde 'güzel' kavramını soyut ve teorik olanda değil de, elle tutulur ve deneysel olanda arayan sıradışı bir kitap Prizma ve Sarkaç. Bilim tarihinde, özellikle fizik alanında öne çıkan deneyleri içindeki karakterleri ile birlikte tarihsel olarak ele alan kitapta ayrıca ara bölümlerde çeşitli konularda bilim felsefesi tartışmalarına da kısa makaleler şeklinde yer verilmiş. Kitapta yer alan deneylerin her biri 'güzel' kavramı üzerinden değerlendirilip 'bir deneyi güzel yapan şey nedir?' sorusunun cevabı aranıyor. Kitaptan esinlenerek geçtiğimiz günlerde şu yazıyı da yazmıştım, ilginizi çekebilir: Bilimde 'güzellik' üzerine: Sarkaç ve Bilardo Topları
Something Incredibly Wonderful Happens: Frank Oppenheimer and his Astonishing Exploratorium (Yazar: K.C. Cole - Unv. Chicago Press) Bilimin topluma ulaştırılması konusunda günümüzde önemli bir rol oynayan 'bilim müzesi' konseptini ilk olarak hayata geçirenlerden biri, aynı zamanda Manhattan Atom Bombası projesinde ünlü kardeşi Robert Oppenheimer ile birlikte yer almış Frank Oppenheimer'ın detaylı bir portresi bu kitap. Kitabın ilk bölümünde Frank Oppenheimer'ın atom bombası ve fizikle ilişkisi detaylı olarak ele alınırken, ikinci bölümden itibaren San Francisco'da günümüzde dahi bilim müzeleri konusunda en önde yer alan ve devasa bir etkiye sahip Exploratarium'un kurulma aşamasından etkili bir müze haline gelişinin öyküsü yer alıyor. Yol boyunca Frank'ın bilime, bilmeye ve özellikle öğrenmeye dair tamamen kurcalama ve keşfetme üzerinden yaklaşımı birçok anekdotla anlatılıyor. Kitabın yazarı Frank'ın yanında uzun yıllar boyunca yer almış, Exploratarium projesinin de içerisinde bulunmuş bir kişi ve aktardıkları doğrudan birinci ağızdan. Kitap, bilimin etkili bir şekilde aktarılması ve çocuklardan yetişkinlere kadar günümüzde herkesin çoktan yitirdiği 'merak etme yeteneğini' tekrar kazandırılması anlamında birbirinden etkili yollar sunuyor.
3
yorum

23 Mart 2017 Perşembe

Matematiğin Nobeli Abel Ödülü 'dalgacıklar'a verildi!

Matematik bilimsel uğraşılar arasında en mütavazi olanlarından bana kalırsa. Diğer alanlarda türlü türlü ödüller, bunların başında Nobel Ödülü geliyor, verilmeden haftalar öncesinde tahminler, iddialar, tartışmalar; sonrasında ise daha hararetli tartışmalar, çoğu zaman hayal kırıklıkları ve bir süre boyunca yüzlerini ezberleyeceğimiz ödül sahipleri olur hep... Bilimin ve bilim insanlarının tanıtılması ve gündemde olması açısından bu belki iyi bir şey ama gel görün ki matematikçilerin ödüllerinde bu tip tantanalara rastlamak ne mümkün! Örneğin dün 21 Mart'ta verilen ve 'Matematiğin Nobel'i olarak anılan Abel Ödülü'ne dair bilim medyası dışında hemen hemen hiç haber görmedim. Bu durumun Alfred Nobel'in matematikçilerle 'özel' problemleri nedeniyle, matematikçilerin kendilerini dışlanmış hissetmeleriyle de hiç alakası olmadığını düşünüyorum! Üstelik 'dalgacık dönüşümü' (İng: wavelet transform) konusundaki katkıları nedeniyle Fransa'da École Normale Supérieure üyesi matematikçi Yves Mayer'e verilen ödül, modern günlük hayatımızın her köşesinde bir katkısı olan bu kavramı ön plana çıkarmak için en iyi fırsatı oluşturuyor!

Yves Mayer'i keşfinde rol oynadığı 'dalgacıklar' ile resmeden hoş bir görsel (Telif Hakkı: Olena Shmahalo/Quanta Magazine)

Etrafımızı sarmış dijital araçların her biri şu anda dış dünyadaki 'analog' bilgiyi (sinyali), yani zaman içinde sürekli, bölümlenmemiş bilgiyi 0'lar ve 1'lerle kodluyor (dijital sinyal). Örneğin telefonunuzda ses kaydettiğinizde, bir fotoğraf çekip kaydettiğinizde arka tarafta olan şey bu. Bununla birlikte iki problem karşımıza çıkıyor; bu bilgiyi bilgisayarımızın hafızasında nasıl saklayacağımız ve bu bilgiden tekrar aynı sinyali (hapörlenizdeki ses, ekrandaki görüntü) nasıl üretebileceğiz? Buna güzel bir örnek dinlediğiniz bir konserdeki şarkıyı (anolog sinyal) bir kağıt üzerindeki notalar (dijital sinyal) şeklinde ifade edebiliriz. Saatlerce süren bir konseri  birkaç sayfa içine sığdırabiliriz. Aynı şekilde başka bir müzisyen de bu notalara bakarak müziği tekrar oluşturabilir. Bilimde bu problemlerin çözümüne kafa yoran 'sinyal işleme' adında devasa bir alan var. Dijital dünyada veri analizinin artık bir nevi dili olan bu alanın en temel kavramları da elinizdeki sinyali dönüştürüp daha farklı bir şekilde ifade etmeye yarayan 'dönüşümler'.

Bu dönüşümlerin en ünlüleri belki de Fourier dönüşümleri. Elinizde herhangi bir forma sahip herhangi bir sinyali, Fourier fonksiyonları diye bildiğimiz trigonometrik sinüs ve cosinüs fonksiyonlarının toplamı şeklinde yazabiliyoruz. Trigonometrik fonksiyonlar belirli bir zaman aralığında kendini tekrar eden, periyodik fonksiyonlar. Bir sinyali bu fonksiyonlar cinsinden yazdığımızda o sinyalin içerisinde kendini tekrar eden parçaları çekip çıkarmış oluyoruz aslında; böylece bu parçaların hangilerin domine olduğunu anlayabiliyoruz. Bahsi geçen fonksiyonların sinyale katkılarını belirten katsayıları bir kenara yazıp, sonrasında bu sinyali (büyük bir doğrulukla) tekrar oluşturabiliyoruz. Aynı zamanda bütün bir sinyali tutmaktansa sadece bu katsayıları tutmak çok daha pratik oluyor.

Fourier analizini aşağıdaki animasyon çok güzel anlatıyor. Elimizde $f$ fonksiyonu olsun ve bunun içerisindeki periyodik komponentleri bulmaya çalışıyor olalım. Fourier analizi uyguladığımızda bize bize bu sinyali oluşturmak için gerekli sinus/cosinus fonksiyonlarının hangi frekansta ve ne kadar 'kuvvette' olmaları gerektiğini söylüyor. Animasyonun sonunda gösterilen $\hat{f}$ grafiği sinyalin dönüştürülmüş halini gösteriyor.

Kaynak: Wikipedia

Fourier analizi her sinyal için işe yarıyor derken birkaç noktayı göz ardı ettik; öncelikle bu analiz sinyalinizin istatistiksel olarak çok da değişmediği varsayımına dayanır; yani sinyalinizde ani sıçramalar, inişler ve çıkışlar birer problem oluşturur. Belki müzik için bu bir problem değil ama örneğin bir deprem sinyali için bu başlı başına sorun oluşturur çünkü bu durumlarda çoğu zaman ani ve şiddetli bir değişim söz konusudur. İki boyutlu bir sinyalde örneğin bir resimde (her x ve y koordinatı için bir renk değeri gibi düşünebilirsiniz) kendini tekrar eden ve yumuşak geçişlerin olduğu gökyüzü veya deniz manzaralarının yanında keskin köşelere sahip birçok yapı da bulunur. İşte bu noktalarda Fourier analizi çok da etkili çözümler ortaya koyamıyor.

Buna alternatif olarak geliştirilen yöntem ise 'dalgacık dönüşümü' yani 'wavelet transform'. Bu yaklaşım Fourier fonksiyonlarındaki gibi tamamen periyodik fonksiyonlar yerine belirli bir bölgede 'lokalize' olmuş fonksiyonları temel alıyor. Bu sayede yukarıda bahsettiğim 'keskin değişim' problemlerine etkili bir çözüm getirilmiş oluyor. Sinyalleri parçalara ayırmak için kullanılan fonksiyonlar tam bir dalga değil de 'dalga parçaları' olarak görülmelerinden ötürü 'dalgacık' (wavelet) olarak adlandırılmışlar. Dalgacık fonksiyonları tıpkı Fourier fonksiyonları gibi tüm sinyalleri ifade etmek için kullanılabiliyorlar ve bu fonksiyonlarla bir dönüşüm yapılıp hangi dalgacıkların sinyal içinde domine olduğu anllaşıldığında sinyali bu bilgilerden kolay bir şekilde tekrar oluşturmak mümkün. Bu yöntem sayesinde örneğin görüntü gibi sinyalleri çok daha etkili bir şekilde dönüştürüp, sıkıştırmak, depolamak ve tekrar oluşturmak mümkün oldu.


Görselin en üstündeki orijinal sinyalin solda Fourier dönüşümü ile, sağda ise dalgacık dönüşümü ile oluşturulması karşılaştırıldığında dalgacık dönüşümünü ani değişimi en altta çok daha iyi oluşturabildiği görülüyor. Aralardaki fonksiyonlar ise en alttaki sinyali oluşturmak için üst üste toplanan fonksiyonları gösteriyor.


1980'lerde Fransız bir mühendis Jean Morlet'nin ortaya attığı bu fonksiyonları geliştirip bütünsel bir çerçeveye sokan Yves Meyer'e 2017 Abel Ödülü işte bu dalgacık teorisine yaptığı önemli katkılardan ötürü verildi.

CERN'de geçirdiğim zamanda tezimde son iki ayım doğrudan bu konularla uğraşarak geçtiği için konuya ayrı bir hassasiyetim olduğunu belirtmeliyim. Neredeyse iki aydır bir sinyalin içerisinde periyodik komponentleri (chameleon parçacığı sinyalini) çıkarmak üzerine çalışıyorum. Fakat sadece bu neden 'sinyal işleme' olarak bilinen bu devasa alandaki bu tip gelişmeleri öne çıkartmak için yeterli sebep olmamalı elbette. Çünkü telefondan, bilgisayara, kameradan müzik çalara artık elimizin altındaki her şey bu insanların çabaları ve bu teorilerin sonuçları sayesinde tıkır tıkır çalışıyorlar. Günümüzde 'verili' olarak kabul ettiğimiz bu gelişmelerin altında çok ciddi matematiksel temeller olduğunu çoğu zaman aklımıza bile getirmiyoruz. Bu tip ödüller bunu öne çıkarıp hatırlatmak için varlar aslında. Her ne kadar matematikçiler 'düşük profilli' takılmaya çalışsalar da bu katkıların farkında olup gün yüzüne çıkarmanın görevimiz olduğunu düşünüyorum!
  • Konuyla ilgili Abel Prize sayfasının ulaşılabilir bir dille hazırladığı dokumanlar için tıklayınız.
0
yorum

21 Mart 2017 Salı

Doğayı (Bilgisayarla) Modellemek Üzerine

Fizikle ilk tanışmam, zamanında mühendislik okurken yakın bir arkadaşımın bir vesileyle 'Schrodinger'in Kedisinin Peşinde' adında bir kitabı elime tutuşturmasıyla başlamıştı. Kuantum fiziği üzerine yazılmış hala en iyi popüler kitaplardan biri olan bu kitapta ilk defa 'modern fizik' konseptleri ile karşılaşmış; çift yarık deneyinde elektronların tıpkı ışık gibi davrandığını, belirsizlik ilkesinin doğanın en temelinde yatan prensiplerden biri olduğunu öğrendiğimde ufkum açılmıştı. Bir taraftan da günlük hayatta deneyimlediğim 'gerçeklik'ten oldukça uzak görünen fakat doğanın dili olduğu iddiasıyla 'fizik' olarak nitelendirilen bu alan gittikçe daha da ilgimi çekmeye başlamıştı. Sonrasında derinlere daldıkça karşılaştığım onlarca 'garipliklerle' aslında 'gerçekliğe' dair ne kadar az şey bildiğimi düşünüp, aklımdaki soruları cevaplamak adına yola çıktım. Hedefim oldukça iddialıydı: 'Gerçeklik' perdesini aralayıp onu saf bir şekilde görüp, anlayabilmek... Ne kadar naif olduğumu yıllar sonra ancak anladım.

Derin felsefi analizler yapmak niyetim yok aslında; lafı dolandırmadan sonuca gelirsem; aslında fizik uğraşı ile en baştaki hedefim gereği 'gerçekliği' saf haliyle anlamanın mümkün olmadığını, buna ancak elimizdeki modeller vesilesiyle yakınsayabileceğimizin gittikçe farkına varmaya başladım. Burada anahtar kelime 'model'; yani doğayı kavramak konusunda kullandığımız temel araçlar. Fizikte temel olarak yaaptığımız karşımızdaki olabildiğine karmaşık fenomeni ilk başta tüm karmaşıklığından arındırarak 'oyuncak bir model' ile temsil edip, adım adım modelin karmaşıklık seviyesini arttırarak gözlemler ve deneylerle kontrol edip, alınan geri besleme ile 'işe yarayan' - gözlemleri en iyi açıklayan mümkünse en basit açıklamayı ortaya çıkarmak. Örneğin lise fiziğinde sabah akşam uğraştığımız 'sürtünmesi ihmal edilmiş' sistemler ya da nokta parçacık olarak düşündüğümüz kütleler bu tarz modellerden; belirli ölçeğe kadar elinizdeki fenomenleri açıklıyabiliyorlar. Örneğin gezegenleri boyutsuz nokta parçacık olarak düşündüğünüzde 'gel-git' kuvvetlerini açıklayamıyorsunuz fakat Güneş Sistemi'ndeki yörüngeleri belirli bir hassasiyete kadar hesaplarken zaten buna ihtiyaç duymuyorsunuz. Fakat bunların her birini kattığınız takdirde elinizdeki hesaplama gücü ile altından kalkamayacağınız bir karmaşa ile karşılaşıyorsunuz; bu da 'işe yaramayan' bir şey. Ünlü bir laf vardır: 'Tüm modeller yanlıştır, bazıları işe yarar.' Buradaki 'yanlış' olma hali, iddialı bir şekilde 'gerçekliği' tam anlamıyla ifade ediyor olmasına istinaden.

Fizikte modelleri analitik olarak, genelde diferansiyel denklemlerle kurup çözümlerini arayabilirsiniz, ki yüzlerce yıllık birikim bu konuda müthiş ilerlemeler sağlamımıza yaradı. Fakat bu haliyle bile çok temel denklemlere sahip, karmaşıklık olarak oldukça 'basit' modellerin ötesine geçmek çok zor çünkü modelimizin içine ele aldığımız sistemin komponentlerinin etkileşimleri girdiğinde işler çoğu zaman çığırından çıkabiliyor, sonucun 'kaos'a çıkması işten bile değil. Aynı zamanda bir sistemin davranışını analitik olarak incelemeden önce bir kestirim yapabilmemizi sağlayacak bir yöntem olsaydı da denklemlerle boğuşmaya başlamadan önce probleme dair 'sezgisel' bir fikrimiz olsaydı diyor insan. İşte bu noktada bilgisayarlar devreye giriyor.

Elimizde sistemin işleyişine dair temel kuralları birkaç satır kodla bilgisayara verip, saniyede milyarlarca işlem yapabilen bu olağanüstü makinaların ortaya çıkaracağı sonuçlara artık kolayca erişebiliyoruz. 'Kullanıcı-dostu' programlama dillerinin gittikçe geliştiği, bilgisayarların hesap yapma gücünün astronomik seviyelere çıktığı şu dönemde bunu en temel uygulamalarda kullanmamak bile ayıp! Tabii bu durumun eğitim gibi hala 19. yy pratiklerini takip eden bir alanda kolay yankı bulacağını düşünmek ayrı bir naiflik olurdu, fakat son zamanlarda dönüşüm hızıyla paralel bilim eğitiminde bir çok 'çatlak ses' bu duruma işaret etmeye başladığı söylenebilir.

Feynman'ın ölümünden sonra odasındaki karatahtada karalanmış olarak bulunan şu ünlü sözü vardır hani: 'Yaratamadığım şeyi anlayamam' (İngilizcesi: 'What I can not create, I do not understand.'); bunu benzer şekilde son zamanlarda kendimde gözlediğim 'kodlayamadığım şeyi yeteri kadar anlamadığım' gerçeği bu konuya dikkat çekme isteği uyandırdırdı. Son zamanlarda gözüme çarpan birkaç ders ve kitaba işaret etmek niyetim.

Feynman'ın ölümünden önce çalıştığı karatahtasından geriye kalanlar. Sol üst köşede: 'What I cannot create, I do not understand' (Kaynak: Caltech Archives)

'Nature of Code' şu ana kadar enerjisi bakımından kimseyle karşılaştıramayacağım 'Daniel Shifman' adlı bir akademisyen/programcının geliştirdiği, 'ulaşılabilir' bir arayüz üzerinden doğadan esinlenilmiş problemleri modellemek üzerine harika bir kitap. JavaScript temelli p5.js adlı bir platform üzerinde geliştirdiği programlarla birkaç satırda 'rastgele yürüyüş' simulasyonlarından, fraktal yapı modelleri, kuşlar ve balıkların 'kümelenme' davranışlarına kadar birbirinden ilginç problemleri ele alıyor [Örnekler için şu sayfada 'Simulate' başlığı altındakilere bakmanızı öneririm: https://p5js.org/examples/ ]. p5.js aslında görsel tasarımcıları ve sanatçıları programlama ile tanıştırmak için oluşturulmuş, grafik arayüze çok kolay ulaşılmasını sağlayan bir çok fonksiyon barındıran bir proje; tipik c++, Python gibi dillerdeki karmaşıklıktan uzak, ekranda objelerin oynadığı, dinamik simulasyonar için birebir. Shiffman aynı zamanda kitaptaki konuların büyük bir çoğunluğunu işlediği bir de online ders veriyor: Nature of Code - Kadenze. Ayrıca Youtube Coding Train kanalında her hafta p5.js ile ilgili bir problemi ele aldığı harika bir video yayınlıyor.

p5.js ile yapılmış bir 'düşen parçacıklar' simulasyonu (detaylar ve kod için tıklayınız)

Yine bunun paralelinde, bu sefer biyoloji üzerinden modellemeye yaklaşan iki harika kitap var. İlki 'Nature in Code' adında. Biyolojideki en temel birimler olan genlerden yola çıkıp, çok basit modellerle çoğalma, mutasyon, rekabet ve en nihayetinde 'doğal seçilim' mekanizmalarını yine JavaScript ile modelleyen başka güzel bir kitap. Kitabın online ders platformu edX'de aktif bir de dersi var [Nature in Code: Biology in Javascript], adım adım sıfırdan programlamanın temelleriyle birlikte konuyu işliyor. Özellikle kodların herbirini basit bir text editörü ile yazıp gidip bir internet tarayıcısında çalıştırması çok hoşuma gitti. Özellikle programlamaya yeni başlayacak bir kişi için bundan daha 'basit' bir başlangıç olamaz herhalde...

Son olarak yine biyoloji temelli bir 'modellemeye giriş' kitabından bahsedeceğim. Fakat öncesinde aynı kişinin [Philip Nelson]'ın modellemenin altındaki programlama becerileri üzerine yazdığı genel bir kitap var, onunla başlayalım: "A Student’s Guide to Python for Physical Modeling". Yaklaşık 150 sayfalık kitapta adım adım temel Python kullanımı ve özellikle modellemede kullanılan yönleri öz bir şekilde anlatılıyor, üzerine uygulama bile yapıyor. Asıl bahsedeceğim kitabı ise 'Physical Models of Biological Systems'. Biyolojik sistemleri ele alan bu şahane kitap pedagojik yaklaşımı, konuyu anlatış tarzı, adım adım her noktayı açık bir şekilde gösteriyor oluşu ile karşılaştığım en iyi ders kitaplarından biri sanırım. Temel konular biyoloji ile ilişkili olsa da modellemenin altında yatan olasılık, istatistik ve hesaplama gibi birçok temel konuda oldukça aydınlatıcı bölümlere sahip. Kitabın hedef kitlesi temel fizik ve matematik derslerini vermiş meraklı 2.-3. bilim öğrencileri.

Geçmiş senelerde lisans sonunda yazdığım 'Yeni Mezundan Fizik Lisans Tavsiyeleri' yazı dizisinde her yıl özellikle vurgulamaya çalışmıştım programlama ve bilgisayarla hesaplama yapma becerisinin bir fizikçi (ve genel olarak bilim insanı) adayı için ne kadar önemli olduğunu. Bu konuda becerilerinizi tipik yazılımcı gözüyle yaklaşık sabah akşam (bana kalırsa) hiç de ilginç olmayan 'programlama' problemleri yerine doğadan esinlenilmiş 'gerçek' problemler üzerine kafa yorarak çok daha etkili bir şekilde geliştirebilirsiniz. Bunlar için öğrenilen dil ilk etapta çok da önemli değil aslında, Python, JavaScript yada başka biri; önemli olan altta yatan kavramları ve yöntemleri özümseyip, bir fiziksel problemi modelleme becerisi kazanabilmek. Bunun sonrasında bilgisayarın sağladığı olanaklar ve hayal gücünüzle yapabilecekleriniz tek kelimeyle 'sınırsız'!

NOT: Modellemeye girişten bahsettim ama bu konuda hızlı başlayıp aynı hızla devam etmek için temel programlama becerileri konusunda şu iki siteyi tavsiye edebilirim. Hackerank ve Hackerearth. Bu siteler 'hacking skills' diyebileceğimiz, programlama konusunda yeterli ve etkili bir seviyeye hızlı bir şekilde gelmeniz için epey yardımcı olacaktır. Bu sitelerde ilk başta giriş 'tutorial'ları ile egzersizlerle başlayıp, düzenli olarak problem çözüp ardından periyodik olarak açılan yarışmalara katılıp kodlama becerilerinizi ilerletebilirsiniz. Bu siteler platformdan bağımsız bir şekilde birçok dilde destek veriyorlar. 
0
yorum

15 Mart 2017 Çarşamba

Kompleks Sistemler ve Doğada Etkileşimler

Doğada gözlediğimiz değişimlerin altındaki neden-sonuç ilişkilerini kestirmek ya da ortaya çıkarmak hiç de kolay bir iş değil. Birbiriyle etkileşen yüzlerce, binlerce üyeden oluşan bu sistemler dışarıdan bakıldığında sanki uzun zamandır, şu anda olduğu gibi, aldatıcı bir 'düzen' ve 'uyum' içerisinde yaşayıp gidiyormuş izlenimi verir. Bize yüzlerce yıldır akıyormuş gibi görünen dereler, her baharda yeşillenen ağaçlar, etrafı saran börtü böcek sanki çok uzun zamandır değişmeden süre geliyormuş gibi görünür. Değişimler çoğu zaman bizim gözlem ölçeğimizde olmadığı ve bu değişimin altındaki mekanizmaların bizim için 'kapalı kutu' olması sebebiyle biz ancak sonuçlarıyla yüzleşiriz.  Geçmişte dinamik sistemler ve ekoloji üzerine bir proje üzerinde çalışırken bu "denge" durumuna yapılan müdahalelerin sistemin doğasını bazen ne kadar dramatik ölçüde değiştirebildiklerine de şahit olmuştum. [Bahsi geçen projeye şu yazıda kısaca değinmiştim: John Nash’in Ardından Evrimsel Oyun Kuramı]

Geçenlerde karşılaştığım bir video bu konular üzerine tekrar düşünmemi sağladı. Amerika'da Yellowstone Doğa Parkı'na çok uzun süreden sonra tekrar salınan kurt popülasyonunun tüm ekosistemi nasıl dönüştürdüğünü, hatta sonunda bahsedildiği üzere canlı ekosistemin ötesinde nehirlerin dahi yapısının değişmesine nasıl yol açtığını anlatıyor.


Videoda bahsedilen tüm bu sonuçlar birbiriyle matematik olarak ifade etmemiz gerektiğinde non-linear - doğrusal olmayan etkileşimlerin birer yansımaları. Doğrusal olmayandan kastımız, sistemin bir üyesinin değişimi diğeri ile kurduğu etkileşime bağlı olması, matematiksel ifade ettiğimizde değişkenlerin çarpımlarını ve daha karmaşık fonksiyonlarını içermeleri. Bu tip doğrusal olmayan etkileşimleri ve bunların nitelik ve büyüklüklerini, etkileşen çok fazla üyeye sahip bir ortada açığa çıkarmak epey zor; bu tip sistemler 'kompleks sistemler' (complex systems) olarak adlandırılıyorlar. Bu sistemleri tek tek üyeler bazında incelemek çok güç olduğundan popülasyonlar ölçeğinde, hatta bazen o da mümkün olmadığında sadece yapısal olarak inceleyebiliyorsunuz. Yapısaldan kastım örneğin popülasyonun zamanla nasıl evrileceğini bilemiyor olsanız da dönüp dolaşıp bir yerde sabitlenip sabitlenmeyeceğini, dışarıdan bir etkiye maruz kaldığında ne kadar kırılgan olup olmadığına dair birçok şey söyleyebiliyorsunuz. Karmaşık sistemler çalışmalarında modelleme aşamasında kimi zaman diferansiyel denklemler, kimi zaman da tamamen olasılık temelli, ağ teorisi (network theory) yöntemleri kullanılıyor.


xkcd'de yayınlanan yukarıdaki karikatürde ilk karede "yirmi yıldır 'faz uzaylarını', 'doğrusal olmayan denklemleri' ve kaos teorisindeki 'garip çeker'leri çalıştığını son karede de fakat tüm bu diyagramlarda dinazorların kaçtıklarını göremediğini söylüyor. Karikatür Jurassic Park'ta dinazorların karşını 'kaos teorisi' ile modelleyebileceğini iddia eden Dr. Ian Malcolm'a atıfta bulunuyor. Üstteki video ile gösterilmek istenen şey de bu denklemlerdeki davranışı görmenin mümkün olduğu! (Kaynak: explainxkcd)

Bu tip problemler fizikte uğraştığımız 'basitleştirilmiş', 'doğrusal' problemlerden epey farklılar ve barındırdıkları karmaşıklık ve bundan doğan müthiş ilginç sonuçlar doğaya dair çok daha genel bir bakış açısı geliştirmek konusunda epey faydalı ve kafa açıcı oluyorlar. Hiç olmazsa, bir doğa yürüyüşünde şöyle durup etrafını izlediğinizde, etrafta onlarca türüyle ötüşen kuşları, toprağın üzerindeki karıncaları, ağaçların arkasında saklanan daha büyük canlıları ve bunların çevreleriyle etkileşimleri sonucunda oluşmuş olan 'dinamik dengeye' bir anlığına baktığınızı fark edip, karşınızdaki sistemin kapalı bir kutunun ötesinde her bir bireyin birbiriyle karmaşık etkileşimleri sonucunda ortaya çıkmış muazzam bir kompleks sistem olarak görmenizi sağlayacak olması bile başlı başına harika bir şey, değil mi?

Paylaş!

 

Copyright © 2010 Gök Günce | Blogger Templates by Splashy Templates | Free PSD Design by Amuki