Androidler elektrikli koyun düşler mi?
Geçen hafta Googla’dan öğrendiğimize göre yanıt “evet”miş… Hem androidler sadece elektrikli koyunları değil, amiral-köpekleri, domuz-salyangozlarını, kuş-develeri ve balık-köpekleri de düşlerlermiş. “Bütün bunlar da ne?” diye çığlık atmadan önce, aşağıdaki resimleri incelemenizi tavsiye ederiz.
Evet, biz de sizin gibi bu resimlerden hiçbir şey anlamadık. Ancak Salvador Dali’nin elinden çıkmış olabilecek olan bu sürrealist hayvanlar (ya da yaratıklar) hangi sanatçının muhayyelesinden fırlamış olabilir? Hemen yanıt verelim, hiç kimsenin. Bunlar Google’ın resim arama motorunun tersten çalışacak şekilde programlanmasıyla elde edilen resimler sadece…
Açıklayalım: Google, image search yani resim arama amacıyla kullandığı bir sunucu bilgisayara sahip. Elbette ki bu tek bir bilgisayar değil. Ama şimdilik bunu önemsemeyelim. Bu sunucular üzerinde yapay sinir ağları (artificial neural networks) denen özel bir algoritma çalışıyor. Yapay Sinir Ağı (YSA) denilen yapıyı kısaca yapay bir beyin taklidi olarak anlatabiliriz. Peki, yapay sinir ağları nasıl çalışıyor?
Yapay Sinir Ağları
En başta, bir yapay sinir ağı programlanmıyor, eğitiliyor. Yani sinir ağına bir konuda milyonlarca resim gösteriyorsunuz ve bunun bir dambıl olduğunu söylüyorsunuz. Sonra sinir ağına bir fotoğraf gösterip bunun ne olduğunu soruyorsunuz. Sinir ağı, genellikle yanlış cevap veriyor. Yanıtı düzeltiyorsunuz. Böylece bu işlemi, sinir ağı bir dambılın ne olduğunu öğrenene kadar sürdürüyorsunuz. Sonunda bir an geliyor ve sinir ağı bir dambıl fotoğrafı gördüğünde bunu tanıyor ve “dambıl” olarak etiketliyor.
İşte Google’ın fotoğraf arama teknolojisinin ardında yatan teknoloji böyle bir şey. Sinir ağları konusunda biraz daha bilgi verelim. Her şeyden önce sinir ağları tıpkı beyindeki gibi nod adı verilen “yapay nöronlardan” oluşuyor. Elbette bu nöronların gerçek bir fiziksel varlığı yok. Bunlar bilgisayarda modellenmiş basit yapılar, basit programcıklar.
Bilgisayar bu nodlardan binlercesini katmanlar halinde oluşturuyor. Her bir katman bir süzgeç gibi çalışıyor. Herhangi bir nesneyi ya da hayvanı tanımlamak için yaklaşık 20-30 katman gerekiyor. Her katman bir sonraki katmanla “konuşarak” resimde ne gördüğünü “söylüyor.” Alt katmanlar çizgiler, kontürler, zıtlıklar gibi basit özellikleri algılarken, üst katmanlar daha “soyut” düşünüyor ve resimde gördükleri nesneyi tanımlamaya çalışıyor. Bu şekilde sonuncu katmana gelindiğinde görüntüdeki cisim de tanımlanmış oluyor.
Yukarıdaki resimde yapay sinir ağının ilk katmanının kendisine verilen fotoğraftaki “ne gördüğünü” görüyoruz. Bu bir alt katman olduğu için fotoğraftaki en temel şeylerden biri olan kontürlere “dikkat etmiş” sadece. Alt katmanlar basit unsurları “görürler” (kontürler, zıtlıklar vs.) ve ne gördüklerini daha üst katmanlara “söylerler.” Aşağıda bir sinir ağının nasıl bir şey olduğunu temsili olarak görüyorsunuz.
Aşağı yukarı insan beyninin de bu şekilde çalıştığı tahmin ediliyor. Ancak, tabi çok daha hatasız, hızlı ve üstün bir şekilde çalışıyor beynimiz.
Bilgisayarlar Düş Görebilir mi?
Google mühendisleri resim arama motorunu daha da geliştirmeye çalışırken onun genellikle nerelerde hata yaptığını, sonuçlara nasıl ulaştığını öğrenmek istediler. Bunun için yukarıda anlattığımız işlemi tersine çevirmeye karar verdiler.
Sordukları soru şuydu: “Bilgisayar kendisine girdi olarak verilen bir fotoğraftaki nesneleri etiketlemeye çalışacak şekilde eğittik. Peki, ya ona bir anahtar sözcük (etiket) verip bu sözcüğü anlatan bir resim çizmesini istersek ne olur? Yapay sinir ağını bunu yapacak şekilde programlayabilir miyiz?”
Yaptılar da… Sonuçlar şaşırtıcıydı. Google mühendisleri elde ettikleri bu tuhaf şekillere bilgisayarın “düşleri” ya da “inceptionalism” dediler. (Inception filmine atfen…)
Nasıl Oluyor?
Daha önce bahsettiğimiz sinir ağlarındaki katmanlar öyle bir şekilde programlandı ki bu katmana bir fotoğraf verildiğinde katman her neye “dikkat ettiyse” o şeyi daha da belirgin hale getirecek ve sonra yeniden işleyecek şekilde programlandı. Yani sinir ağı bir döngüye sokuluyordu: Gördüğünü sandığın şekli belirgin hale getir (altını çiz), yeni bir fotoğraf oluştur, sonra oluşturduğun bu fotoğrafa yeniden bak…
İşte sonuç… Bilgisayara basit bir bulutlu gökyüzü fotoğrafı veriliyor ve bilgisayar bulutta Salvador Dali’nin aklına gelebilecek türden şekiller görüyor ya da Google mühendislerinin deyimiyle, “düşlüyor.” (Resimleri büyüterek bakabilirsiniz.)
Çılgınca değil mi?
Aynen öyle…
Aşağıda bilgisayara daha başka nelerin verildiğini ve buna karşılık bilgisayarın neleri düşlediğini görebilirsiniz.
Hatta bilgisayarlar illa da bir fotoğrafla başlamak zorunda bile değil. Aşağıdaki görselde görüldüğü üzere, sinir ağları beyaz gürültüyü de işleyebiliyor.
Bilgisayar kendisine verilen anlamsız beyaz gürültünün içinde “muz” resimleri görmüş, ya da “düşlemiş.”
Kimi zaman program gülünç hatalar da yapmış. Sözün gelişi, bilgisayar kendisinden “dambıl” sözcüğünün resminin yapılması istendiğinde, her defasında dambıl’a bir de kol çizmiş. Ama bu da anlaşılmaz bir durum değil, çünkü sinir ağı dambıl kelimesini öğrenirken kendisine gösterilen resimlerin pek çoğunda mutlaka o dambıl ile çalışan bir insanın kol resmi de bulunmaktaydı. Dolayısıyla bilgisayar dambılların kolları olduğunu “düşünmüştü.”
Eh, o kadar hata kadı kızında da olur değil mi!
Google’ın yayınladığı Inceptions galerisini incelemenizi tavsiye ederiz.
Okuduğum en ilginç şeylerden biri. Ama bu saatte okumakla iyi mi ettim emin değilim. Rüyama girmese iyidir:)