Bu matrisleri, integralleri gerçek hayatta nerde kullanacağız ki..
Sayısalcı bir öğrenci olmakla beraber lise son sınıfta türev, integral gibi konuları sevememiştim. Ta ki o zamanlar yedek subay olarak okulumuzda öğretmenlik yapan Suat Bey (kulakları çınlasın) dersimize gelene kadar.
Suat öğretmenin güzel anlatımıyla başta karışık gelen bu konuları rahatlıkla öğrenmiştim. Dahası bilhassa şekillerinden korktuğum için ısınamadığım, asla öğrenemeyeceğim sandığım geometriyi de kurcalamış, korktuğum kadar sıkıntılı bir ders olmadığını, bilakis ucundan tutunca çorap söküğü gibi gerisinin geldiğini farketmiştim. Önceden korktuğum ve almaktan çekindiğim analitik geometri dersini de gözüme kestirip bir dönem daha okula devam etmiştim. Bizim zamanımızda kredili sistem vardı, beğenmeyenler olabilir ama ben o sistemi sevmiştim.
Sonra ne olduysa üniversitede oldu.. Bu blogda üniversitede yaşadığım hayal kırıklıklarımla ilgili bol bol yazı var zaten, bir tane daha ekleyelim.
Karadeniz Teknik Üniversitesi’nde aldığım matematik derslerinden malesef bir şey anlamadım. Lisede herşey belirli idi, limitin, integralin bir sınırı vardı. İşin içinde rakamlar vardı. Üniversitedeki matematik dersinde ise Türk Dili ve Edebiyatı’ndan daha çok harf kullanılıyordu. Malesef beynim bu akademik matematiği anlamamıştı..
Öğrenciyken gördüğümüz onca formülün, matrisin, türevin, integralin nerde nasıl kullanılması gerektiği, bu formüllerin nerden geldiği, nasıl bir çalışmanın ürünü olduğu malesef umurumuzda olmuyor. Dersi geçelim yeter diyorsunuz. Tabi kendi adıma konuşuyorum. Sonra profesyonel meslek hayatınızda bunlar bir gün zınk! diye karşınıza çıkınca afallıyorsunuz.
Mesela çalıştığım şirkette 2006’da AKORD isimli kısaca “akıllı ölçme ve değerlendirme sistemi” diyebileceğimiz bir projede aynen böyle oldu. Öğrencileri “şu kadar doğru yaptı, şu kadar yanlış yaptı, şu kadar neti var” gibi klasik bir ölçme sistemiyle değil, daha da ilginci “doğru yaptıkları” üzerinden değil, “yanlış yaptıkları veya yapamadıkları” üzerinden değerlendiren bir sistemdi bu. Sorular klasik test olmakla beraber her soru iç içe dallanmış konu ağaçlarına bağlıydı. Bir soru konunun tamamını kapsarken bir soru konunun ufak bir dalını kapsayabiliyordu. Dolayısı ile soruların ağırlıkları çok farklıydı.
Bütün bu değerlendirmelerin sonucu olarak sınıfı asgari üç kısma ayırıp şunlar bütün konuya hakim, şunlar bazı konuları bilememekle beraber çoğuna hakim, şunlar ise şu şu şu konuları kesinlikle anlamamış deyip öğrencileri kümeliyorduk. Böylece dersler tekrar edileceği zaman yani etüd yapılacağı zaman kime ne anlatılacağı ortaya çıkıyordu. Her öğrenciye verdiğimiz karnelerde de eksik olduğu, tekrar bakması gereken sorular tek tek yazıyordu.
Peki bu sistemi nerden bulduk da programladık.. Yanlış hatırlamıyorsam 2 sayfalık çince akademik bir metindi bu. Fakat patronum okuduğunda metnin aslında ingilizce olduğunu farkettim. Patronum metnin ne demek istediğini, bu işlemlerin nasıl yapılacağını bana anlayabileceğim dilde anlatınca meseleyi çözmek kolaylaştı. Fakat iş bitmedi.
Bu projede profesyonel hayatımda ilk kez matrislerle karşılaşmıştım. Matrislerle çalışabilmek için önce asgari seviyede matris işlemleri yapabilecek bir kütüphane geliştirip Matlab’la karşılaştırdım. Öyle ya, doğru yaptığımı zannedip herşeyi kocaman bir yanlışlık haline getirmek en başta atılacak küçük bir yanlış adıma bakardı. Akord’un tamamen matematiksel işlemlerle uğraştığım ilk bir kaç ayı programcılık deneyimlerim arasında müstakil bir yer teşkil eder. Normalde hep son kullanıcının görebileceği işler yapmaya alışık olarak hesap kitap işleri ile ilgilenmek keyifliydi. Muhatabınız sadece işlemlerdi.
Akord’da matris işlemlerinden başka kümeleme yani “clustering” denen işlemler de yapmıştık. Test sonuçlarına göre öğrencileri gruplayabilmek için. Şimdi detayını çok hatırlamıyorum ama öğrencilerin rastgele birinden başlayıp iterasyonlar yapıp ona en yakın olanları tespit etmeye, sonunda belirli bir seviyeye göre gruplamaya çalışıyorduk. Asgari şartları sağlayana kadar bu işlemi devam ediyor, komple yanlış yola girmişsek vazgeçip başka bir rastgele öğrenciyle aynı adımları tekrar gidiyorduk.
Şüpheli bir durum olursa diye bütün adımların logunu tutuyor, işi doğru mu yaptık, eğri mi yaptık kontrol etmek için Matlab’da çalışacak şekilde çıktılar hazırlıyorduk.
Eğlenceli bir projeydi. O kadar titiz çalıştık ki, çalıştığı 6-7 sene boyunca çekirdek koda hiç müdehale edilmedi.
Daha sonra matematik yine karşıma çıktı. Eğitim robotu projemizin yazılım kısımlarında çokca matematik işlemi gerektiren hususlar vardı. Fakat bu sefer başarılı olacak kadar işi ilerletemedim. Kısaca değinmek gerekirse kamera üzerinden gelen görüntüleri işleyip yüz tanıma, nesne tanıma, yol belirleme gibi işlemler yapmak istiyorduk. Hazır kütüphaneleri kullanarak yüz algılamayı sağladıysak da konuya hakim değildik. Öyle iOS uygulamaları var ki kamerada yüzün gözün nerde olduğunu anlayıp anında 3d efekt yapabiliyor. Biz bunun daha ilk basamağında bile bocalamıştık.
Bu tecrübe bana yine o lisans yıllarımdan kalan matematik eksikliğimi hatırlatmıştı. Genele vurmakla hata ediyorum belki ama etrafımda matematik uzmanı olduğunu gördüğüm pek çok meslektaşım yok malesef. Belki gizli dehalar vardır, bilemiyorum. Hasılı, matematik temelimizin memleket olarak, bilhassa programcılar camiasında zayıf olduğunu düşünüyorum. Bunu ölçüp biçip söylemedim tabi.. Kanaatimi dile getiriyorum.
Ölçüp biçmek demişken bu yazıda asıl değinmek istediğim kısma doğru ilerleyelim :))
5 yıl önce başladığım yüksek lisansımın inşallah son iki dersini aldığım bu dönemde vaktiyle akıl edip lisansda almadığım İstatistik Veri Analizi ve Karar Alma dersinde ömrümde ilk kez matematiği bisiklet sürmek gibi rahat kullanan bir hocayla tanıştım. Gerçi matematikle daha çok ilgilenseydim bu tanışma daha evvel de olabilirdi.
Düne kadar istatistiği biriktirdiğimiz verileri görüp, ne yapmışız ne etmişiz diye gözden geçirmek olarak sanıyordum. İyi kötü bir ortalama alınca bu iş bitiyordu. Aylık şu kadar harcamışım.. Ortalama şu kadar harcıyorum gibi.. Daha bunun gibi ne kadar at gözlüğüm vardır Allah bilir.. Büyükler “bilgiyi” anlatırken güzel bir misal vermişler: Bildiğimiz şeyler bir dairenin çevresidir, bilmediklerimiz ise dairenin içidir demişlerdir. Bilgimiz ne kadar artarsa, yani çember, daire ne kadar büyürse içerisi ondan kat kat fazla büyür. Bildiklerimiz arttıkça bilmediklerimizin daha çok olduğunu anlarız..
Bu istatistik dersine devam ederken evvela elimizdeki verilerin özetine istatistik diyemeyeceğimizi öğrendim. İstatistik elimizdeki sınırlı verilerden asıl ölçmek istediğimiz büyük veriyi “tahmin etme” çalışmasıymış!! Küçük bir parantez. Hadi bu genel kaideyi ben bilmiyorum. Peki ya milyar dolarlık Facebook mühendisleri nasıl bilmez? Dersi pür dikkat dinlesem de o sıralar aklımı çok kurcalayan Kitapi’nin Facebook’taki paylaşımlarına dair bir notification gelince mobilden Facebook’a girmiştim. Karşıma çıkan ilk sayfa “İstatistikler” başlığını taşıyordu. İçindeyse kim ne kadar görmüş, ne kadar beğenmiş, ne kadar tıklamış bu bilgi vardı. Dolayısı ile bu sadece özet veriden ibaret bir bilgiydi. İstatistik değildi. Facebook mühendislerinin bile cühela kalabildiğinin verdiği sahte huzurla parantezi burda kapatabiliriz.
Hocamız derslere devam ettikçe standart sapma’dan, çan eğrisinden öteye gitmeyen bu garip programcı neler gördü neler.. Varyanslar, kovaryanslar, normal dağılımlar, regülasyonlar.. Hepsini ilk kez duyduğum için kelimelerin kökenine kadar ne olduklarını soruyordum. Hocamız da maşallah hiç tökezlemeden anlatıyordu. Bir defa bile tökezlese, “ya bize o lazım değil, sen şu formülü kullan hesapla işte” dese diğer ders hocama yaptığım gibi bunu da Twitter’in en derin çukurlarına gömerdim. Diğer hoca gerçekten hak ediyor çünkü. Ben böyle ufo gören masum köylü gibi sorular sordukça eminim sınıfımdaki 89-99 alan diğer arkadaşlar oflayıp pufluyorlardır ama yapacak bir şey yok. Madem o kadar iyi biliyorlardı, bu dersi almasaydılar değil mi 🙂
Çok dağınık bir yazı oldu, derleyip toparlayalım..
Şuna inanıyorum; yazının girişinde bahsettiğim Suat öğretmen gibi, hemen yukarıda bahsettiğim İstatistik hocam gibi “konusunda uzman, anlatma yeteneği yüksek” eğitmenler arttıkça lisansda bütün mühendislerin matematik seviyesi yükselir. Matematiğe ekmek su gibi ihtiyacımız olduğu bilgisi de ayrıca aşılanmalı gençlere.. Böylece o gençlerden bilhassa programcı olmak isteyenler sadece klasik masaüstü/web yazılımları değil, Instagram için fotoğraf filtresi, Facebook için yüz tanıma, tanıyabileceğin kişilere karar verme, araçlar için (şeritten çıktın, hız levhasını görmedin, ilerde tümsek var gibi uyarılar yapabilecek) yardımcı asistan yazılımlar, elin kolun konumunu algılayıp klavye-fare kullanmadan kumanda edilebilecek uygulamalar yazabilirler. Bunları hep tüketiyoruz. Bunları üreten olmak için matematik şart!
Bunları anlatabilmek için de Türkçe şart! O da ayrı bir yazıda belki..