CAN UZUN

Bu metnin ilk paragrafını tüm metni bitirdikten sonra yeniden yazma kararı aldım. Öyle ki, bana doktora tezim boyunca içinde bulunduğum süreci net bir şekilde görebilme imkanı da tanıması bakımından bu metin benim için değerli bir hale geldi. Diğer yandan, mimar kimliğimin yanında yapay zeka ile ilgili de bir kimlik edinmeye başladığımı görebilmiş oldum. Belki yol gösterici olabilir ümidi ile sizinle doktora tezi sürecimdeki yapay zeka ile mimarlık arasında yaptığım çalışmanın gerçekleşebilmesini sağlayan serüveni paylaşacağım. Umarım keyifli bir okuma olabilir.

Yapay zeka ile karşılaşma sürecim internette, sosyal medyada karşılaşmam ya da sadece bu konu popüler olduğu için gerçekleşmiş bir karşılaşma değildi. Zaten dünyada çokça araştırılıyor olsa bile dört yıl öncesinde herkesin dilinde olan, popüler bir konu haline henüz gelmemişti. Şimdi dört sene öncesine doğru baktığımda yapay zekanın, oldukça doğrusal bir yol üzerinde gerçekleşen araştırmalar sonucunda ulaştığım bir alan olduğunu görebiliyorum. Bu araştırmaları başlatan ise 2015-2016 eğitim öğretim döneminde İTÜ’de aldığım doktora dersi “Theory and Methods of Shape Computation in Design” olmuştur. Dersin içeriğinde tartıştığımız konu, George Stiny’ nin 1970’ lerde James Gips ile açıkladıkları teori biçim gramerleriydi. Bu ders sürecinde biçim gramerlerinin teorik ve matematiksel işleyişini okuduğumuz makalelerle derinlemesine inceleme fırsatı buldum. Biçim gramerleri teorisinden çekip çıkardığım en önemli etkileşimlerden biri görme duyusu ile kurduğu bağ olmuştu. İşte yapay zekaya ulaşma sürecimde en önemli başlangıçlardan biri bu görme eylemini odağa almamla başladı. Araştırmalarım öncelikle biçim grameri ve biyolojik görme sistemleri üzerinden biçimlerin okunmasının formalizasyonu üzerine gelişmeye başladı. Bu konu hakkında, matematiksel önermelerimden çok emin olmayarak yaptığım ilk girişim ve ilk bildirimi 2017 yılı Mimarlıkta Sayısal Tasarım Sempozyumunda “Biçim Gramerlerinde Görsel Hesaplama Sürecinin Değerlendirilmesi” başlığı ile sunma şansını elde etmiştim (Uzun, 2017). Yaptığım okumalar geometri üzerine oldukça derin okumaları içermekteydi. Hedefimde geometrinin zihinde nasıl oluştuğu ve geometriyi nasıl gördüğümüzü anlama çalışması bulunmaktaydı. Bu hedef doğrultusunda Öklid’ in Elements (Simson, 1938), Hilbert’ in (1902) Foundations of Geometry, Alfred Tarski’nin de Introduction to Logic and to the Methodology of Deductive Sciences (Tarski & Tarski, 1994) kitaplarını altını çizerek okumaya başlamıştım. Her bir kitap kendi alanı içerisinde kendi dili ile konuşmaktaydı. Mimarlık dili dışında bir dil ile ilk yüzleşmem bu kitaplarla gerçekleşti. Ancak kitapları okuyabilmem ve anlayabilmem kitapların dilini de bilmem ile mümkündü. Bu nedenle okumalar oldukça yavaş ilerledi. Her bir cümledeki herhangi bir matematiksel sembolün de ne ifade ettiğini durup öğrenmem gereken bir sürece girmiştim. Ve belki de ne yaptığımı bilmeden, benimle belki de hiç ilgisi olmayacak bir konuya adımımı atmıştım. Yaklaşık bir sene boyunca bu kitapları anlama çabasıyla geçti. Bunun yanında kitaplardan anladıklarımla biçim gramerlerinde geometri kavramının da nasıl tanımlandığını algılamaya çalışıyordum. Bir diğer yandan görme duyusu ve geometrinin algılanabilmesi konuları kafamı kurcalıyordu. Nasıl oluyordu da bir geometriyi görüp, zihnimizde onun geometrik tanımı hakkında bir sonuca ulaşabiliyorduk. Aslında bunun açıklamasını biçim gramerleri bir şekilde yapmıştı. Benim hedefimse, çok da ne yaptığımı bilmeden, biçim gramerlerini bir adım daha öteye taşıyarak biyolojik görme ile biçimleri tanımlamanın mümkün olup olmadığını tartışmaya açmaktı. Bu konu ile ilgili ilk kırılma noktalarından birini yine 2017 yılında İstanbul’ da gerçekleşen CAADFutures konferansında yaşadım. Bu konferansta biçim gramerleri ile oldukça derinlemesine çalışan Iestyn Jowers ile tanışma fırsatı buldum. Konferansa geleceğini bildiğim için öncesinde Jowers’ ın çalışmaları ile ilgili bir çok okuma yapmıştım. Iestyn Jowers’ ın çalışmalarında biçim gramerlerini değerlendirirken kullandığı method makine görüsü idi. İşte makine görüsü ile ilk karşılaştığım çalışma Iestyn Jowers’ ın biçim gramerleri konusu ile yaptığı çalışmalardı. Aklımı kurcalayan biyolojik görme ve biçim gramerleri konusu tam bu noktada daha fazla netleşmeye başladı. Bakmam gereken alanın teorik geometridense yapay görü olması gerektiğini farkettim. Çünkü aslında kafamı kurcalayan biyolojik görmenin formelleştirilmesi süreci çoktan birileri tarafından farkedilmiş ve oldukça büyük bir çalışma alanına dönüşmüştü bile. Ve böylece çalışmalarımı yapay görü/ makine görüsüne doğru yönlendirmiştim.

Yapay görü çalışmalarını anlamaya çalışma sürecinde başvurmam gereken kaynağın opencv (open computer vision) olduğunu araştırmalarım sonucunda farkettim. Opencv açık kaynak kodlu bir görüntü işleme kütüphanesiydi. İlk denemelerim .jpeg görseller üzerindeki nesnelerin sınır çizgilerini anlayan küçük kod satırlarını pratik etmekle gerçekleşti. Bu arada Opencv ile birlikte ilk kez bir kodlama dilini kullanmaya başladım. Aslında ne Opencv ne de kodlama dili kavramlarının temel anlamlarını çok da bilmeden bir öğrenme sürecine giriştim. Biçimler geometriler hep aklımda olarak bunları kodlama dili ile bilgisayara nasıl tanıtabileceğimi anlamaya çalışıyordum. Yeni bir hedef edinmiştim. Bu hedef biçimler içindeki beliren (emergent) biçimlerin bilgisayar tarafından farkedilmesiydi. Bir çok deneme yaparken kullanmaya başladığım ancak tam olarak ne olduklarını bilmediğim python, pycharm, anaconda, spyder gibi bir çok kavramla uğraşmak durumunda kaldım. Python’ un bir kodlama dili, pycharm’ ın python dili ile bir program yazabileceğiniz bir IDE (integrated development environment / Tümleşik Geliştirme Ortamı), Anaconda’ nın bir pyhton dağıtımı yani python kütüphanelerini kullanabileceğimiz bir uygulama, spyder’ ın da pycharm gibi anaconda içinde kullanabileceğimiz bir IDE olduğunu farkları ile birlikte kavramam uzun bir süremi aldı. Demek istediğim şey kodlama işine bu kadar uzakta olduğumdu. Bu alanda bir doktora tezi çıkarıp çıkaramayacağımı ise bu alanı ne kadar anlayıp anlayamayacağım ile ilişkili olduğunu da farketmiştim. 

Yapay görme ve geometri üzerinden çalışmalarımı uygulamalar ile pratikte geliştirmeye çalışırken teorik ve tarihsel kısmına da bir o kadar ilgim artmaya başlamıştı. Ve bu noktada da bir kırılma noktasını gerçekleştiren Orit Halpern’ in (2015) Beautiful Data kitabı oldu. Bu kitap sibernetik çalışmaları tarihi ile mimarlık arasındaki entelektüel etkileşimleri net bir şekilde  ortaya koyan bir çalışmaydı. Ve bu kitapla birlikte sibernetik kavramının babası Norbert Wiener ile tanışmış oldum. Wiener’ in yazılışını uzun süre öğrenemediğimi de eklemeliyim. Önceleri Weiner olarak yazmaktaydım sonrasında doğru yazılışının Wiener olduğunu öğrendim. Tabi bu durum da ismi sunumlarımda kullanırken değişime uğratmıştı. Demek istediğim kişilerin isimlerinin yazılışı ve telafuzuna kadar öğrenmem gereken bir sürece girmiştim. Aslında sibernetik okumalarıyla birlikte artık bugünün yapay zeka kavramına oldukça yakınlaşmıştım. Bu kitapla uğraşırken bir diğer yandan da yapay görme ve geometri konusunda matematiğin rolünün özellikle lineer cebirin büyük olduğunu farkettim. İleride yapay zeka çalışmalarımda önemli bir yerde olacağından habersiz, lineer cebir konusunu öğrenmem gerektiğini düşünüyordum. Bunun nedeni ise bilgisayar ortamında kullandığımız tüm CAD yazılımalarının geometrileri, lineer cebir ile belirlenen uzayda temsil etmelerini öğrenmem olmuştu. Farklı boyutlardaki geometrilerin bilgisayarda temsil edilebilmesi lineer cebir ile mümkündü. Bu nedenle 2017 yazında MIT OpenCourse sisteminden Prof. Dr. Gilbert Strang’ ın Linear Algebra derslerini büyük bir keyif ve odak ile dinledim. Böylece nerede kullanacağımı çok da bilmeden lineer cebir ile ilgili en azında bir temel oluşturabilmiştim.

Bir yandan sibernetik, Norbert Wiener; diğer yandan lineer cebir, geometri ve görme meseleleri üzerinden araştırmalarımı geliştirdiğimde yapay görme meselesinin tartışıldığı en güncel yöntemin bugünün öğrenen algoritmaları ile gerçekleştiğini farketmiş oldum. Böylece yapay zeka alanına yapay zeka kavramını araştırmaya başlayarak girişmiş oldum. Ancak alan o kadar büyük bir alandı ve alan içinde yapılan çalışmaların dili o kadar yabancıydı ki yeni bir serüven daha şimdi başlıyordu. Hangi makaleye baksam, kiminle konuşsam bilmediğim bir dil ile iletişime geçiyorlardı. Bunların bir örneğini biçimleri yapay zeka algoritmaları ile okutma isteğimi açıkladığım İTÜ Bilgisayar Mühendisliği bölümü öğretim görevlisi ile gerçekleştirdiğim bir konuşmada yaşadım. 2018 senesinde lisans derslerinden olan python diline giriş dersini aldığım öğretim görevlisine çalışmamdan bahsetmek istedim. Kendisi bana çalışmamda hangi filtreyi kullanacağımı sordu ve gabor filtresinin belki uygun olabileceğini söyledi. Bense filtrenin ne demek olduğunu ya da gabor filtresini ne demek olduğunu bilmiyordum. Aslında gabor filtresini doğru düzgün nasıl okunup yazıldığını dahi anlayamadığım için Google’ da aratıp ne olduğunu bulmam bile bir süremi aldı. Gabor filtresi Denis Gabor tarafından isimlendirilmiş görsel işlemede kullanılan, görsel üzerinde belli bir doğrultuda sürekli tekrar eden içeriği bulduran bir filtredir. Tabii ki tanımı anlayabilmem yine uzun bir zaman aldı. Gabor filtresi kenar algılama (edge detection) problemlerinde kullanılan, algoritmaya gösterilen görsele bir çarpan olarak katılan bir fonksiyondur.  Böylece görseldeki piksel değerlerinin fonksiyon ile çarpımı sonucunda tekrar eden doğrusal içerikler bulunarak kenar tanımlama yapılabilmektedir. Gabor filtresi ile tanışmam makine öğrenmesi kavramı ile de karşılaşmama neden oldu. Bildiğimi düşündüğüm ancak tanımlarını yüzeysel olarak bildiğimi anladığım kavramların sayısı arttıkça artıyordu. Yapay zeka, makine öğrenmesi, derin öğrenme vb. Bu işin içinden makale okuyarak değil bu konu hakkında yazılmış iyi bir kitap okuyarak çıkabileceğimi anladım. Ancak bu kitap hangi kitaptır sorusunun yanıtını da kendim bulmalıydım. Aklımda bu soru internette kütüphanede araştırmalarım devam ederken, bir alışveriş merkezindeki kitapçıda denk geldiğim Pedro Domingos’ un (2015) kitabı “The Master Algorithm: How the Quest for the Ultimate Learning Machine Will Remake Our World” bu konuda kafamı oldukça netleştirebilmiş bir kitap oldu. İşte son kırılma noktasını bu kitapla yaşadım. Böylece yapay zeka alanının ne olduğunu içeriğinde neler bulunduğunu, nereden başlamam gerektiğini kavramaya başlıyordum.

Günün yapay zeka algoritmasının en iyi yaptığı şey görsel tanımaydı. Hedefim biçimleri tanımlamakla başlamıştı ancak bu başlık kullanılan yapay zeka algoritmaları için oldukça geniş bir başlıktı. Hangi biçim, nasıl biçim neden soruları oluşmaya başlayınca konumu biraz daha netleştirdiğimi sanarak kendi kendime, mimarın eskizleri üzerinden algoritmanın mimarla iletişime geçmesinin mümkün olup olamayacağını sordum. Ancak bu konunun da kendi içerisinde, daha sonradan ne olduğunu anlayacağım veri seti problemine sahip olduğunu kavramam neyse ki çok uzun sürmedi. Bu nedenle hedefimi mimari çizim (plan, kesit, görünüş, perspektif, vb.) tanıyan bir algoritma yapmak olarak güncelledim. Bu çalışma için bir neden belirlemeden bunu yapabilen bir algoritma eğitimi gerçekleştirmek istedim. Ve bu süreçte uygulamaya dair onlarca yeni kavramla tanışma fırsatı buldum. Bunlar; numpy, numpy array, matplotlib, pandas, scikitlearn, gradient descent, partial derivation,  loss value, cost value, convolution, filter, activation function, tensorflow, tensor, CNN, neural network, artificial neural network, RNN, RCNN, GAN ve daha saymakla bitiremeyeceğim mimarlık disiplini içinde duyma imkanının olmadığı yine bir yığın yeni kavram. Eğer bu alanla ilgili birileri bu metni okuyorsa ve bu alanda bir çalışma yapma amacı içindeyse, bu kavramların her birini anlamak gerekli olacaktır. Bir diğer yandan tüm kavramların ingilizce olması kavram karmaşasını yaratan bir dezavantajı da beraberinde getirmişti. Mesela loss value ve cost value’ nın meğer aynı şeyi ifade eden farklı kullanımların olduğunu da bir süre sonra farketmeye başladım. Avantajım ise yapay zeka algoritmalarının kullandığı kütüphanelerin (numpy, pandas, matplotlib, scikitlearn) içindeki fonksiyonların lineer cebir ile işlem yapmasıydı. Bu konu hakkında bir sene önce oldukça detaylı bir online ders almıştım. Ancak eksik olduğum konulardan en önemlisi kodlamaydı. Bu nedenle kodlama için de yine MIT’ nin online derslerinden Eric Grimson’ ın verdiği “Introduction to Computer Science and Programming Using Python” dersini takip ettim. Ancak benim için oldukça zor ilerleyen bir ders oldu. Konuyu anlayabilmem oldukça zordu. Bu nedenle takviye olarak Youtube üzerinden bir çok ek ders dinledim. Bu süreçte github ile tanıştım ve github’ ın bana yardımı oldukça büyüktü. Mimari çizim tanıma hedefimi gerçekleştirmek için yazdığım koddaki problemleri çözebilmek için stackoverflow ile tanıştım. Stackoverflow platformunda kodlama ile ilgili sorduğum soru bir sonra ki gün hiç tanımadığım bir yabancı tarafından yanıtlanıyordu. Yapay zeka alanının inanılmaz destekçisi olan büyük bir alan olduğunu anlamıştım.

Mimar kimliğimi neredeyse unutmaya başladığım bir dönem olduğunu söyleyebilirim. Büyük bir şevkle bu konuyu çözebileceğime güveniyordum. Ancak tamamını çözebilmemin henüz hala daha mümkün olmadığını da sonrasında anladım. O gün için mimari çizim tanıma hedefini gerçekleştirmek için sadece CNN (convolutional neural networks/ konvolüsyonel sinir ağları) kullanmıştım. Ancak CNN yapay zeka alanının çok küçük bir parçasıydı. Artık alan içinde yazılmış makaleleri parça parça da olsa anlayabiliyor ve kodlamayı henüz başaramasam da kod içindeki satırları okuyarak, hangi fonksiyonların hangi eylemleri gerçekleştiğini anlayabiliyordum. Bu durum da kendime bir özgüven getiriyordu. Mimari çizim tanıma hedefimin sonucunda 2019 yılında eCAADe konferansında sunabildiğim bildirim Architectural Drawing Recognition – A case study for training the learning algorithm with architectural plan and section drawing imagesolmuştu (Uzun & Çolakoğlu, 2019). 2017 senesinde doktora ilerleme raporu sunuşumda bu çalışmamı sunmuştum. Değerli hocalarımdan aldığım motivasyonla da bu konuya daha fazla eğilme kararı aldım.

Yapay zeka alanının tarihçesi, matematiği, kodlama dili konularında kendimi geliştirmek istiyordum. Uygulamaları  için bir çok makale okuyor ve github üzerinden bir çok kod denemesi yapıyor bir diğer yandan python pratikleri ile kendimi kodlama diline alıştırmaya çalışıyordum. Yapay zeka tarihçesi ile ilgili de kitaplara yönelmiştim. Tüm bu süreç beni öncesinde ait olmadığım alanın içine doğru çekmeye başladı. İTÜ’de bilgisayar mühendisi arkadaşlar edinmeye ve okul dışında da bu konu ile ilgili kişilerle tanışmaya, yapay zeka alanındaki etkinliklere ulaşmaya başladım. Diğer yandan mimari çizim tanıma algoritmasının başarılı olması beni heyecanlandırmış ve TÜBİTAK BİGG 1512 bireysel genç girişim projesine başvurarak yaklaşık 4 aylık yoğun bir çalışma ile TÜBİTAK’ tan bu konu hakkında 2018 yılı sonunda 150.000 tl’ lik hibeyi almayı başarmış ve bir ekip bile kurmuştum. Ancak bu hibeyi kabul etmemek durumunda kaldım. (Hibeyi kabul etmeme konusu daha farklı bir alanda ele alınabilir ama bu metinde bu kadar bahsedeceğim.) Hibeyi kabul etmemiş olsam da TÜBİTAK tarafında kabul edilip hibenin çıkmış olması beni de oldukça heyecanlandırmıştı. Sadece kendi kendime değil hem ekip arkadaşlarımla hem de bir çok büyük firma ile mimari çizim tanıma projemi konuşabilme fırsatı bulmuştum.

Tezimse, yaptığım yeni çalışmalarla yeni bir yöne doğru gidiyordu. 2018 yılında Karaköy’de bir bilgisayar mühendisi arkadaşla oturup konuşurken projemden bahsettim, hendisi de GAN (generative adverserial networks/ üretken çekişmeli ağlar) algoritmalarının oldukça yeni ve önemli bir alan olduğunu ve bana yarayabileceğini söylemişti. Algoritmayı araştırdığımda benzerlerinin olmasına rağmen GAN algoritmasının henüz 2014 yılında Ian Goodfellow tarafından önerildiğini ve görsel üretiminde oldukça verimli bir algoritma olduğunu farkettim. Daha GAN algoritması önerisi dördüncü yılını doldurmamışken bu algoritma ile denk gelmem yeni bir heyecana neden oldu. Benim deneyimim CNN algoritmaları üzerineydi biraz tedirgin bir şekilde GAN algoritmalarına bakmaya başladığımda ana sütrüktürünün CNN algoritması ile benzer şekillendiğini farketmem, tabii ki çalışma prensibi bakımında büyük temel farkları bulunmakta, çalışmalarımı hızlandırdı ve hedefim mimari çizim tanımadan mimari çizim üretimine evrildi. GAN ağlarını kullanarak otonom mimari plan üretim çalışmalarım 2018’ in başlarında başladı. Böylece tezim otonom mimari plan şeması üretimi üzerine bir çalışma olarak sonlandı. GAN ile ilgili yaptığımız çalışmanın bir sonucu İTÜ A|Z dergisinde “GAN as a generative architectural plan layout tool: A case study for training DCGAN with Palladian Plans, and evaluation of DCGAN outputs” başlığı ile yayınlandı (Uzun ve diğ., 2020). Şu anda mimarlık ve yapay zeka etkileşiminin tarihçesi üzerine derinlemesine bir metin çalışması sürecindeyim. Mimarlık alanında yapay zeka ile ilişkilenecek bir çok potansiyel araştırma konusu hala daha zihnimde bir sırada beklemekte.

Tüm bu doktora çalışma serüvenimde daha bahsedemediğim bir çok aktör bir çok yapay zeka etkinliği, tanıştığım bir çok bilgisayar mühendisi, yaptığım bir çok araştırma, sunum, edindiğim güzel arkadaşlıklar bulunmaktadır. Dahası mimar olarak yeni bir kimliğe daha sahip olmanın eşiğinde hissediyorum. Yeni bir kimliğe sahibim diyebilmek için çalışmalarımı çok daha fazla ilerletmem gerektiğinin bilinci ile bunu söylüyorum.

KAYNAKLAR

Domingos, P. (2015). The master algorithm: How the quest for the ultimate learning machine will remake our world. Basic Books.

Halpern, O. (2015). Beautiful data: A history of vision and reason since 1945. Duke University Press.

Hilbert, D. (1902). The foundations of geometry. Open court publishing Company.

Simson, R. (Ed.). (1838). The elements of Euclid. Desilver, Thomas.

Tarski, A., & Tarski, J. (1994). Introduction to Logic and to the Methodology of the Deductive Sciences (No. 24). Oxford University Press on Demand.

Uzun, C. (2017). Biçim Gramerlerinde Görsel Hesaplama Sürecinin Değerlendirilmesi. MSTAS 2017, 105.

Uzun., C., & Colakoglu., M., B.,(2019). Architectural Drawing Recognition-A case study for training the learning algorithm with architectural plan and section drawing images.

Uzun, C., Çolakoğlı, M. B., & İnceoğlu, A. (2020). GAN as a generative architectural plan layout tool: A case study for training DCGAN with Palladian Plans, and evaluation of DCGAN outputs. AZ Itu Journal of the Faculty of Architecture

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s