AKF

Makine Öğrenmesi İçin Matematik Öğrenmek

Geçen gün, sektörden bir tanıdığımla görüştüm. Bana çevrimiçi bir platformdan almayı düşündüğü “Makine Öğrenmesi ve Yapay Zeka” eğitimi ile ilgili danışmak istemiş…

Bunu duyunca şaşırdım. Çünkü kendisi, kırklı yaşlarının başında, iktisat mezunu, orta kademe bir yönetici.

İnsan hayatında kariyer değişikliği yapmanın önemini biliyor ve destekliyorum. Ancak, “Makine Öğrenmesi kodu yazmak için matematik öğreneceğini” bunun için “Bir kaç yılını yakabileceğini” söylemesi beni oldukça endişelendirdi.

Aslında buna pek de şaşmamak gerek. Çünkü, Makine Öğrenmesi ve Yapay Zeka konusu tüm dünyada adeta bir histeri haline geldi.

Yıllardır, birbirinden önemli birçok araştırma kuruluşu geleceği şekillendirecek en önemli teknolojilerin bu ikisi olduğunun altını çiziyor.

Mesela daha geçen yıl Gartner, gelişmekte olan teknolojiler için her yıl yayınladığı hype eğrisinde, 29 yeni teknolojiyi listeledi.

Çok taraflı ve abartılmış bulduğum bu listenin yarısından fazlası veri bilimi, makine öğrenmesi (Machine Learning) ve yapay zeka (AI) ile ilgiliydi ve adı geçen teknolojilerin, 5 ila 10 yıl içinde toplumu etkileyecek kadar gerçek hayatta var olacakları vurgulanıyordu.

Böyle yapay zekalı, öğrenebilen makinalı yazılar ve basın bültenleri köpürtülüp köpürtülüp topluma zerk edildikçe, bilen bilmeyen kitap yazmaya koyuldu, podcastler yayınladı.

Her taşın altından bir fikir sahibi (!), bir futürist çıktı ve çevrim içi eğitim platformları “10 modülde Makine Öğrenimi” öğretebileceğini vaat etmeye başladı vs.

Bunun iki sonucu oldu:

  1. Zaten çok parası olan bazı sermaye sahiplerinin gelecekte de çok zengin kalabilmesi için, insanlığı uzaya taşıyacağına, oramıza buramıza takılan çiplerle Mars’ta koloni kurabileceğine inandırdı.
  2. Arkadaşım gibi insanların, geleceği yakalayabilmek, geri kalmamak adına kariyerlerini terk edip, sanki yaz kokteyli hazırlamayı öğreneceklermiş gibi bir edayla, makine öğrenmesi kodu yazmak için(?) “Gerekli Matematiği” öğrenmeye kalkmasına neden oldu.

Az önce de belirttiğim gibi, kariyer değişikliği yapmanın insan hayatında ilerlemek ve kendini gerçekleştirebilmek için ne kadar önemli ve gerekli olduğunu biliyorum. Ancak bunu yaparken kendimizin ve birikimlerimizin farkında olmak hayati önem taşıyor bana kalırsa.

Makine Öğrenimi gibi disiplinler arası bir alanı anlamaya çalışırken ana soru, gerekli matematik miktarı ve bu teknikleri anlamak için gerekli olan matematik düzeyidir. Ve gereken matematik, aşağıdaki tablodaki gibidir.

Size makina öğrenmesini öğretebileceğini vaat eden kurslardan şunu da duymuş olmanız muhtemeldir: “Makine Öğrenimi yapmaya başlamak için çok fazla Matematik’e ihtiyacınız yoktur. Teknik ve algoritmada ustalaştıkça hareket halindeyken matematik öğrenebilirsiniz”

Bu yanıltıcıdır. Eğer, matematiğe karşı özel bir yeteneğiniz ya da eğitiminiz yoksa, ihtiyaç duyulan matematiği öğrenemezsiniz! Bu nettir. Sadece boş bir hayal uğruna kariyerinizi zedelemiş ve “birkaç yılınızı yakmış” olursunuz.

Makine Öğrenmesi

Makine öğrenmesi, atlı arabaların yerine motorlu araçların icadı gibi devrim niteliğinde bir teknolojidir. Ve geleceği şekillendireceği doğrudur.

Ancak söylemek istediğim, kastedilen geleceğin sandığımız kadar yakın olmadığı ve şu anda Makine Öğrenmesinin arkasındaki teknolojiye büyük ölçüde erişilemeyeceği.

Bugün makine öğrenimi, Hype Döngüsünün tepesinde oturuyor. Bu şekilde şişirilmiş diğer teknolojilerde de olduğu gibi ( 3D Printing’i hatırlıyor musunuz?) o da toplum tarafından beklentilerle karşılaştırılacak ve kullanılabilir bir ürün haline getirilmek üzere Hype eğrisinin “Hayal Kırıklığı Çukuruna” düşecek.

Çünkü, bu teknoloji ile ilgili olarak çalışan iki grup var. Birinci gruptakiler gerçekten bu işe odaklanmış oldukça az sayıdaki parlak mühendisler, diğerleri dedikodu yapanlar.

Mühendisler’in sağda solda konuşacak vakti genelde olmaz. Ancak dedikoducular, hayal güçlerinin gidebildiği kadar ileri gidebiliriler. Böylece gerçek dışı öyküler ve dinamik bir hayranlık ortaya çıkar.

Dedikoduların birçoğu, makine öğrenimini toplumlar ve işletmeler için olmazsa olmaz, ivedilikle sahip olunmazsa büyük kayıplara yol açacak bir teknoloji olarak konumlar. Ancak genellikle atlanan şey, makine öğrenmesinin bir amaç için kullanılması gerektiğidir.

İş Dünyasının Makine Öğrenmesini sırf moda olduğu için satın alması yanlıştır. Bunun yerine, verilerin potansiyelini elde etmek için makine öğrenimi kullanmayı düşünmeli ve herhangi bir Makine Öğrenmesi stratejisini sahip oldukları verilerinin değeri ışığında düşünmelidirler.

Verilerin Değeri

The Economist,  Şubat ayında, verilerin petrol ya da güneş ışığı gibi toplanıp, rafine edilmesi gerektiğini ve elde edilenin ancak belirli bir yüzdesinin kullanılması gerektiğini yazdı.

Makine öğrenmesi modelleri yalnızca verilen verilere dayanarak öğeleri tahmin edebilir. Bir şirket uzun zamandır veri topluyor olabilir. Ancak veri setleri, makine öğrenmesi açısından kullanılabilir değilse Makine Öğrenmesi ürünlerini kullanamaz.

Burada sözünü ettiğim herhangi bir veri değil elbette. Elde edilen verilerin, seçilen Makine Öğrenmesi modelinin amacı ile eşleştirilmesi gerekir. Bu da planlama ve tasarım gerektirir.

Bir depolama şirketi, kullanıcıları ve kullanıcılarının davranışları hakkında her türlü veriye sahip olabilir. Kullanıcılarının göz renginden, kullanıcılarının depolama tesislerine ne sıklıkla girip çıktıklarına kadar her şeyi bilebilir. Ancak bu bilgiler bir makine öğrenimi ürünü oluşturmak için nasıl kullanabilir?

Bu durumda şunu söylemek yerinde olacaktır:

Makine öğrenmesi kullanacak bir işletmenin, veri toplamayı da içeren bir sistem tasarımı yapması ve verilerin makine öğrenmesi analizi için birikmesini beklemesi gerekmektedir.

Herkes Makine Öğrenmesi Uygulaması Yazamaz ama Veri Bilimi Öğrenebilir

Makine öğrenmesi kodu yazmaya çalışmak, sıradışı mühendisler ve matematikçiler için bile yeni, bilinmezliklerle dolu ve oldukça karmaşıktır. Bu konuda binlerce saat harcamış bir çok mühendis için bile anlaşılmaz olabilir.

Dolayısıyla kişilerin bunu yapmaya çalışmak yerine veri bilimine yönelmesi, gelecekte makine öğrenmesi teknolojisinin kullanımı için çok daha verimli olacaktır.

Bu anlamda, makine öğrenmesi için matematik öğrenmeye çalışmak, ya da uygulama yazmaya çalışmak yerine bir programlama dilini öğrenmek, çok daha kıymetlidir.

Programlama dilleri sanıldığı kadar zor değildir. Bu anlamda size oldukça kolay olduğunu düşündüğüm Python dilini şiddetle öneriyorum.

Ayrıca, yaptığınız işleri otomatize etmek ve gerektiğinde yazılımcılar ile aynı dili konuşabilmek, ne iş yaparsanız yapın çok işinize yarar.

Ancak altını çizmek istediğim bir konu var. Bir kurs alıp, bir programlama dili öğrenerek yazılım geliştirme becerilerinizi çok ileri taşımanız mümkün değildir.

Yazılım geliştirme, ancak uygulama alanı bulduğunda anlamlı sonuçlar üretir.

Yani Pi sayısının 65 basamaklı halini bulan program yazmak, veya başarısız bir Makine Öğrenmesi uygulaması yazmak için binlerce saat harcamak sizi motive etmeyecektir.

Sizi motive edecek olan, “gerçek hayatta uygulanabilir” olmakla ortaya çıkar. Veri bilimi bu anlamda çok önemlidir.

Örneğin, perakende ürünler satan bir mağazanın muhasebe bölümünde çalıştığınızı düşünelim. Eğer fark yaratmak istiyorsanız, yaptığınız işlemi yazılım araçları ve veri bilimi kullanarak nasıl iyileştirebileceğinizi düşünmelisiniz.

Bunun için, diyelim ki o zamana kadar manuel olarak sisteme işlediğiniz faturaları, artık fotoğraflarını çekip, bir kaç yazılım kullanarak sistemlerinize dahil etmeyi başardınız.

Verileri doğru şekilde sisteme yüklediğinizi doğrularsanız, yaptığınız şeyin adı en basit haliyle veri bilimidir. Bunu Github gibi bir ortamdan paylaşabilirsiniz.

Bu sayede hem başka insanlar da sizin tecrübenizden istifade ederler, hem başka  insanlarla tanışırsınız, hem de CV’nizi güçlendirmiş olursunuz. Kimbilir belki bir sonraki milyon dolarlık Start up’un ateşini yakmış olursunuz.

Şunu belirtmek isterim, Makine Öğrenmesi için uygulama yazmayı öğrenmeye çalışmayın derken, bu teknolojiden uzak durun da demek istemiyorum. Yukarıda da açıklamaya çalıştığım gibi, atabileceğiniz başka adımlar var.

Kimse size, çalıştığınız şirketin son onbeş yıllık muhasebe verilerini teslim edip, bunları analiz etmenizi, pattern bulmanızı, büyük veri kullanmanızı vs. istemeyecektir. Ama siz, Phyton gibi bir programlama dili öğrenip, bunu geliştirmeye devam ettikçe daha verimli sonuçlar elde edebilirsiniz.

Son olarak şunu unutmayın, şu anda dünya üzerinde 10-15 milyar linux ile çalışan cihaz var. Bunun ilk adımı 1992 senesinde bir öğrencinin, bir mail grubuna yazdığı şu satırlarla atıldı:

“Hobi olarak küçük birşeyler yazıyorum, GNU gibi büyük birşey değil “

Not:O zamanlar GNU, 3 kişinin olduğu bir projeydi.