$ cat yazilar/kara-kutuyu-modellemek.md
Kara Kutuyu Modellemek: Hayatın Karnaugh Haritası
Bir şeyi kendin inşa etmediysen içinin nasıl çalıştığına direkt hakim olamazsın.
Hayatta çok çok çok az şeyi kendin inşa ettin.
İnşa edeceğin şeyin de içinin çalışma şekline tamamen hakim olmayı beklememelisin, çünkü beklersen o şey hiç var olmaz bile. Çünkü geleceği gören, gaybı bilen, mutlak ilim ve kudret sahibi bir varlık değilsin. Şu anda beyninde olmayan bilgiler var, bu dışarıyla alakalı bilgiler, inşa edeceğin şeyin davranışı ile alakalı bilgiler, davranış gösterirken dışarıyla etkileşime girecek çünkü. Ayrıca inşa ettiğin şey dışarıyla hiç etkileşime geçmeyecek olsa bile gelecekte nasıl davranacağını bilemezsin, çünkü gelecekteki senin hoşuna neyin gideceğini bilemezsin... Bilginin yeri zihnin değil, o bilgi dışarıya ait bir bilgi. Dışarıya gitmeden o bilgiyi alamazsın. Çünkü dediğim gibi... Mutlak ilim ve kudret sahibi değilsin. Kısaca kısıtlı bilgin var, kısıtlı kudretin var.
Dış dünyada herhangi bi şeyi, konsepti, mekanizmayı anlamak isteriz. Matematikte bir konuyu anlamak isteriz. Arkadaşımızın duygularını ve ruh halini anlamak isteriz.
Bize hep derler "ezberlemeyin anlayın". Ne demek ki bu?
Şu demek:
Girdi sayısı N ise 2^N kadar çıktı kombinasyonu vardır.
Ezberlemek:
- "Şu girdiler girdiğinde şu çıktılar çıkar" şeklinde bir ezber yapmak. Tüm olası durumlardan bir kısmını öğrenmek. Ama sadece girdi ve çıktılara bakarak. Karmaşık durumlarda 1000+ girdi çıktı kombinasyonu olacağı için bu yöntem yetersiz kalır çünkü o kadar ezber gücümüz yok. Mutlak kudret ve ilim sahibi değiliz...
Anlamak:
- "Şu girdiler girdiğinde şu çıktılar çıkar" "Şu girdiler girince de şu çıktılar çıkıyormuş" "Acaba şu girdiler girse nasıl bi çıktı çıkar?" "Aaa şu girdiler arasında şöyle bi ilişki varmış, demek bu girdi A olunca şu girdi de hep B oluyomuş" "Meğer mekanizmanın içinde A ve B girdileri sonucu VE kapısı gibi etkiliyormuş" şeklinde sorgulamalar yaparak, keşif yoluyla, deneme yanılma yoluyla, farklı varyasyonlar deneme yoluyla, teori üretip test etme yoluyla iç mekanizmanın tersine mühendisliğini yapmak. Böylece 1000+ kombinasyonu ezberlemek yerine 10 farklı kalıbı ezberleyip, gelen kombinasyonlardan hangisinin hangi kalıba göre davrandığını bulabiliriz. Veya mekanizmanın nerdeyse tamamını keşfedip girdilere göre baştan simule edebiliriz. Bu raddeye geldiğimizde zaten 1000+ kombinasyonun tamamını doğru şekilde hesaplayabilir durumda oluruz, ve o kadar da ezber yapmadan hem de.
Hayatta her şeyi böyle yapıyoruz aslında!
Hiçbir şeyin iç mekanizmasını görerek anlamıyoruz. Girdilerini ve çıktılarını gözlemliyoruz, tecrübe ediyoruz. Örüntüler fark ediyoruz. Fark etmeden o şeyin iç mekanizması hakkında zihnimizde bir model (girdiler vererek çalıştırılabilir bir mekanizma) oluşturuyoruz (bkz. Zihinsel Model Nedir). Bir daha benzer bir şeyle karşılaştığımızda zihnimizdeki o modeli (eksik de olsa) çalıştırıp ona göre davranıyoruz, beklentimizin ne kadar dışında bir sonuç görürsek bizde o kadar etki bırakıyor, zihinsel modellerimizi o kadar güncellememize sebep oluyor (bkz. Şaşırma Miktarı Ve Hatırlama Oranı İlişkisi)
Bu arada yanlış anlamayın. Zihnimizdeki bu modeller teorik soyut bir şey olarak tanımlanmıyor. Matematik formülü yazıp onu uygulamıyoruz. Aksine başta dediğim gibi sınırlı sayıda kalıp/örüntü öğrenip yeni gelen girdileri bu kalıplarla eşleştiriyoruz. İnsan beyni "örüntü tanıma ve eşleştirme" ile çalışır zaten genel olarak (Ve bunu inanılmaz hızlı yapar).
Zihninizin teorik ve mantıksal çalışmadığını, örneklerle ve örüntü tanımayla çalıştığını gösteren bir örnek duymak ister misiniz? Bir elma gördüğünüzde onun elma olduğunu anlamak için ne yapıyorsunuz? Elma kelimesinin zihninizdeki karşılığı nedir? Bunları bi düşünün. Daha önce görmüş olduğunuz binlerce elmanın özelliklerini bir arada taşıyan belirsiz bir imge belki de. Bir kelime değil (dil öğrenirken bu hatayı yapıyoruz, apple = elma diyoruz. Halbuki apple = "daha önce filmlerde insanların kırmızı yuvarlak bi şeyi ağızlarına atarken söylediği kelime, şu çizgi filmde masada duran şey" gibi kodlamalıyız)
O yüzden size bir tavsiye: İnsanlara bir şey anlatırken önce örnek verin, sonra soyut tanımınızı yapın, sonra başka bir örnek verin. Doğrudan soyut tanımı söyleseniz bile karşınızdaki "Şunun gibi mi yani?" diyip bir örnekle anladığını teyit ettirecektir. Zihnimizde kelime grupları tutmayız çünkü bi şeyi anlarken. Hatıralar görüntüler ve tecrübeler birikimi bulanık bir imge, bu kalıba uyan birkaç örnek tutarız. Böyle kaydederiz soyut bilgileri de. "Şunun gibi bi şey" olarak...
Neyse Karnaugh Map'e gelelim:
| ABC | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| A = 0 | 0 | 1 | 1 | 0 |
| A = 1 | 0 | 1 | 1 | 1 |
Çıktı = C VEYA (A VE B)İçeride hangi mekanizma var, hâlâ bilmiyoruz. Ama girdilerle çıktılar arasındaki örüntüyü bulup davranışını modelleyebiliyoruz.
İşe koyulmak için de her zaman iç mekanizmayı tamamen çözmen gerekmiyor. Yeterince işe yarayan bir model çıkar, kullanmaya başla, yeni örneklerle karşılaştıkça düzelt.