Günümüzde ekonomi ve bilimin her alanı, on yıl öncesinde bile hayal edilemeyecek miktarda veriye erişebiliyor. Ayrıca, bulut hizmeti sağlayıcıları sayesinde bugün bol miktarda ve ucuz işlem kapasitesi mevcuttur.
Uluslararası araştırmacıların makine öğrenmesi konularına ilgi duyması ve bu nedenle giderek daha etkili tekniklerin geliştirilmesi ile birlikte ilerlemenin hız kazanması da önemli bir etkendir.
Buna ek olarak, mühendislik dünyası da bu ilerlemeye uyum sağlayıp bu tekniklerin çalıştırılabilmeleri adına çeşitli araçlar oluşturmuştur: Şöyle ki, makine öğrenmesi tekniklerini uygulayabileceğiniz arayüzler sayesinde alt detayları bilmeye gerek kalmadan bu teknikleri kullanabilme olanağına sahipsiniz.
Mesela Keras adındaki araç, bir derin öğrenme ağını sadece 15 satırlık bir kod ile eğitmenize olanak veriyor. Bu da yukarıda açıklanan mühendislik araçlarına mükemmel bir örnek olmasını sağlıyor. Aynı şekilde bulut sağlayıcıları, elinizdeki not defterini kullanarak hayal bile edilemeyecek büyüklükteki verileri işleyebilmeyi ve yapay zekâ modellerini hayata geçirebilmeyi olanaklı kılıyor. Hatta daha ileri gidip bir yapay zekâ girişimi bile kurabilirsiniz.
Bugün 5 yıl öncesinin koşullarına kıyasla bile korkunç hızda değişen pazar koşulları, makine öğrenmesi araçlarının kullanımının bu kadar kolay ve ucuza oluşturulabiliyor olması, şirketlerin rekabet için bu alana yatırım yapıyor olması, hayatta kalabilmek adına makine öğrenmesi araçlarını kullanmayı zorunlu kılıyor.
Peki makine öğrenmesi sistemleri inşa edebilmek için hangi kavramları bilmemiz gerektiğini inceleyelim.
Veri (Data)
Veri, aslında data, Latince datus kelimesinden türemiştir. Datus kelimesinin anlamı, gerçek, olmuş olan demektir. Makine öğrenmesi modelleri oluşturulduğunda, geçmişte olmuş olaylardan (data) tekrarlayan örüntüleri öğrenerek, gelecekte neler olabileceğinin tahmini yapılabilir.
Geleneksel program inşa etmek hayli emek isteyen yorucu bir süreçtir. Tüm parçalar birbirini tamamlayacak şekilde inşa edilmeli ve birbirleri ile uyumlu çalışmalıdır. Eğer bir ev inşa etmeye benzetirsek tüm parçalar birer birer tuğlalara benzerler ve birlikte bütün bir evi oluştururlar.
Konu makine öğrenmesine geldiğinde ise, durum biraz daha farklı. Bir makine öğrenmesi modeli bizim yazdığımız bir şey değildir, onun yerine verdiğimiz verileri gözlemleyerek ve işleyerek onlardan anlamlar çıkarır.
İyi bir analoji kurmak gerekirse;
Geleneksel programlamanın ev yapımına benzediği örneğini vermiştik. Makine öğrenmesini daha çok tarım yapmaya benzetebiliriz. Aslında bütün işi toprak yapar, çiftçi uygun ortamı hazırlar. Çiftçi toprağı sürer (bitkilerin yetişebilmesi için toprağı düzenler), toprağı gözetler, bitkileri yetiştirir. Aynı şekilde, veri bilimci makine öğrenmesi sayesinde, tüm işi veriye yaptırmaya çalışır. Çiftçiler ürün almak için tohumlar ile toprağı birleştirirken, veri bilimciler de makine öğrenmesi modelini büyütmek amacıyla veriler ile algoritmaları birleştirir.
Bu nedenle, eğer işin büyük kısmını veriler yapacaksa, bir modelin doğru tahminler yapması veya genel olarak onlardan etkili bir şekilde bilgi çıkarması için verilerin niteliğinin (ve niceliğinin) kesinlikle gerekli olduğunu anlamak önemsizdir.
Veri Toplama
Veri toplama önemli ve kritik bir konu, internette bu konunun nasıl gerçekleştirileceği ile ilgili teknik yönlendirmeler bulunabilir. Şimdilik konumuz olmadığı için bu yazıda değinmeyeceğim. İçerisinde ücretsiz veri toplama araçları bulunan Digital Methods web sayfasını ziyaret edebilirsiniz.
Elinin Altına Bak!
Gittikçe daha fazla şirket, aslında büyük bir hazinenin hemen yanı başlarında olduğunu yeni keşfediyor. Yıllarca biriken veriler, makinelerden gelen veriler, yazışma kayıtları, ödeme kayıtları, sensör verileri ve çok daha fazlası halihazırda kullanılmak için bekliyor. Muhtemelen içerilerinde muazzam bir değer saklıyorlar, veri tabanını bir açıp bakmaya ne dersiniz?
Sonuç olarak, eğer iş süreçleri ile ilgili çok fazla veriniz varsa, muhtemelen o veri altın değerindedir.
Veriye "Neden" Sorusunu Sormalıyız
Kritik düşüncenin temel taşlarından biri, beş neden tekniğidir. Yani bir olayın arkasındaki nedeni fark edebilmek, sonuca ulaşmak için hayati öneme sahiptir. Dolayısıyla bu kadar çok veri varken ve sonuçlar veriye bağlıyken veriye neden sorusunu doğru bir şekilde sorabilmeliyiz.
Bu nedenle, üzerinde herhangi bir eylem, görev veya dönüşüm gerçekleştirmeden önce verilerimizi iyice tanıyalım. Verileri tanımak, öğreneceğimiz, işleyeceğimiz, dönüştüreceğimiz, analiz edeceğimiz ve eğiteceğimiz verilerin kaynağı ve doğası hakkında bilmemiz gereken her şeyi sağlar.
Aslında yukarıda da belirttiğimiz gibi bir sonuca ulaşırken kritik düşünce çok önemli bir rol oynuyor. Fakat bu konuya, fizik, kimya, biyoloji dahil hiçbir alanda gereken önemi göstermiyoruz. Halbuki kritik düşünceye en çok ihtiyaç duyan alanlar bilim ve mühendislik alanlarıdır. Veri bilimi de tıpkı diğer bilimler gibi kritik düşünceye hayati derecede ihtiyaç duyuyor, belki bu konuda kendinizi geliştirmek, başarı şansınızı da artıracaktır.
Teknik Bilgi
Veri bilimi yapmak kolay değildir. Keras gibi size çok efor sarfetmeden veri bilimi yapmanızı ve muhteşem modeller oluşturmanızı sağlayan araçların altında yatan matematiği ve teorik bilgileri tam olarak anlamayı düşünüyorsanız, gerçekte bu tahmin ettiğinizden çok daha zor. Sizi üç ayda veri bilimci yapmayı vadeden eğitim programlarından şüphe etmeyi öğrenmelisiniz. Bu süre çok yanlış olduğu gibi, yıllardır bu konuları araştıran, makaleler okuyan, her gün yeni şeyler öğrenen kişilere saygısızlıktır. Fakat bu durum cesaretiniz kırılsın anlamına gelmiyor, bu yazı dizisi size yardım etmek için var.
Süreçler
Eğer aklınızdaki fikrin çözebileceği sorunlar hakkında yeterli bilgi birikimine sahip olduysanız, veri bilimi döngüsü genellikle verileri toplayarak, sorunu şekillendirerek ve makine öğrenimi modelleri geliştirerek yinelemeli bir şekilde çözüm denemelerinden oluşur.
Veri toplama, veri kaynaklarının bir araya getirilmesinden, bunların ön işleme tabi tutulması için veri hatlarının oluşturulmasından ve bunları analiz için saklayacak bir yere sahip olmaktan oluşur.
Veri Hazırlama, özellik mühendisliği (yani mevcut verilerin anlamlı bir şekilde birleştirilmesi), modellerin eğitimi ve performanslarının değerlendirilmesinden oluşur.
Keşifsel Veri Analizi, bir model geliştirme şeklinizi seçmenize yardımcı olabilecek önemli ilişkileri ve özellikleri yakalamak için verilerinizi keşfedip görselleştirdiğiniz aşamadır.
Modelleme, daha önce hiç görülmemiş verileri tahmin edebilecek bir makine öğrenimi (veya derin öğrenme) modelini eğitmek için verilerinizi kullandığınız aşamadır.
Model Değerlendirme, çözmek istediğiniz problemin gerçek hayat senaryosunda modelinizin performansının değerlendirilmesinden oluşur.
Model Dağıtımı, eğitilmiş modelinizi tüketicilerin kullanımına sunduğunuz aşamadır.
Dağıtımdan sonra modelinizin performansını izlemeniz gerekir ve gereksinimler değiştikçe modelin de güncellenmesi gerekebilir.
Veri bilimi bir kez baştan sona yürütülen ve bitirilen bir süreç değildir, sürekli adımlar arasında yineleme ve başa dönme gerekir.
Veri Bilimi Takımı
"Dağıtımdan sonra ve gereksinimler değiştikçe modelin güncellenmesi gerekebilir."
Kolayca tahmin edebileceğiniz gibi, büyük teknoloji şirketlerinin sağladığı web hizmetleri, herkesin temel sistemlerin entegrasyonu veya yönetimi konusunda endişelenmeden makine öğrenimi çözümleri geliştirmeye başlamasına izin verse bile, veri bilimi süreci başarısı için farklı figürler gerekir.
Bu figürlerin beceri ve bilgi açısından sınırları bulanıktır ve genel olarak ideal olan, her bireyin veri bilimi sürecinin farklı görevleri arasında çevik bir şekilde hareket edebilmesidir. Bir şirketin ihtiyaçlarının çoğu zaman başarılı olmak için birkaç kişinin koordineli çabası gerekir.
Bu yazı dizisinde, bu farklı alanlardaki bilgileri size sunuyor olacağız, fakat şunu unutmayın ki her alanda aynı anda uzman olamazsınız, önünde sonunda bir alan seçip o alanda ilerlemeniz gerekecektir. Bu alan veri görselleştirme, model mimarisi vs. alanlarından biri olabilir.
Artık makine öğrenimi projeleriniz için hangi teknik bilgiye ihtiyacınız olduğunu bildiğinize göre, hesaplama kaynakları açısından gereksinimlere bir göz atalım.
İşlem Gücü
Makine öğrenmesi ile denemeler yaparken çoğu zaman kendinizi yaparken bulduğunuz hesaplamalar, matrisler arasındaki çarpımlardır. Makine öğrenmesinin alt dalı olan derin öğrenme uygulamaları, özellikle yapay sinir ağları eğitilirken çok daha fazla işlem gücüne ihtiyaç duyar.
Geçtiğimiz yıllarda bu tür hesaplamalar doğrudan bilgisayarların CPU'su (işlemci) kullanılarak yapılıyordu ancak bunların en karmaşık ağları eğitmek için yetersiz olduğu ortaya çıktı.
Neyse ki, işi tam olarak matris hesaplamaları yapmak olan GPU'lar (grafik işlemci birimleri) bize yardımcı oluyorlar! Aslında oyun ve video dünyasında bu tür hesaplamalar, genel olarak video oyunlarının ve 3D grafiklerin perde arkasında her gün gerçekleşen şeylerdir.
Özellikle makine öğrenmesi hesaplamalarında GPU kullanımını gösteren temel faktör, kartın sahip olduğu video belleği miktarıdır (GigaBytes cinsinden ifade edilir).
Nasıl yani, veri bilimi ile uğraşmak için pahalı oyuncu bilgisayarları mı almalıyız?
Hayır, internet bağlantısı ve bulut sağlayıcıları sayesinde günümüzde fiziksel donanıma para yatırmak yerine Amazon ya da Google gibi firmaların hazırlayıp bakımını yaptığı makineleri kullanmak çok daha uygun hale geliyor.
Bulutlu Günler
MÖ 20.000'deki ilk çiftçilerden birini hayal edin. Tüm üretim sürecini tek başına yürütmeye alışkındır: Buğdayı eker, yetiştirir, alır ve küçük parçalara ayırır. Daha sonra bunu un, hazır hamurlar veya ilkel bir ekmek türü gibi çeşitli ürünler yaratmak için kullanır.
Ancak günümüzde bir birey ya da kuruluş daha önceki alt süreçlerden yalnızca biriyle ilgilenebilmekte ve o konuda ileri derecede uzmanlaşabilmektedir. Örneğin, ekmek üretiminde uzmanlaşmayı seçerek, birçok çeşit ekmeğin nasıl üretileceğini öğrenebilir, yenilerini arayabilir, lezzetini geliştirebilir ve tüm bu süreçleri optimize edebilir, üretime ilişkin özel ve uzmanlaşmış bir bilgi birikimi oluşturabilirler.
İnsan faaliyetlerinin giderek uzmanlaşması olan bu süreç, türümüzün teknik ilerlemesinin temelidir. Açıkça dış kaynak kullanımına dayanmaktadır! Ekmeğin üretiminden önceki tüm alt süreçler ortadan kalksaydı, fırıncının kapanması kaçınılmaz olurdu. Buğday nasıl yetiştirilir? Böceklerin onu mahvetmesi nasıl önlenir? Onu ezen ve un haline getiren preslerin parası nasıl ödenir, yönetilir ve bakımı nasıl yapılır? Hiçbirini bilemezdi.
Aynı şekilde, bugün şirketler, şirketin teknik bilgisi için gerekli olmayan tüm süreçleri mümkün olduğunca dış kaynaklardan temin ediyor, bunu yaparak herkes "en iyi yaptığı şeyi" yapabilir hale geliyor.
Aynı eğilim günümüzde yazılımın kullanımında da görülmektedir. Firmaların uygulamalarını barındıran fiziksel makinelerin yönetimi gibi endişelenmek istemedikleri veya dünyanın herhangi bir yerinden verilerine sahip olmak istedikleri alt sorunları çözmek için ağ üzerinden sağlanan hizmetleri kullanmak her zamankinden daha yaygın güvenli ve güvenilir.
Bu nedenle, getirdiği esneklik ve azaltılmış maliyetler sayesinde bulut bilişimin yazılım pazarının çok önemli bir parçası haline gelmesi şaşırtıcı değildir.
Bulut pazarının tekelleşmesine yönelik yarış, özellikle Amazon (AWS), Microsoft (Azure) ve Google (GCP) arasında kıyasıya bir rekabet içerisinde sürüyor.
Makine öğrenmesini nasıl kullanışlı hale getiririz?
Birkaç tıklamayla, şeffaf bir şekilde ve özellikle isteğe bağlı özelliklerle yönetilen, yüksek performanslı makinelerin dosyalarını dağıtabilirsiniz. Bu gerçek, tümü özel bir web arayüzü veya istemciden karmaşık yazılım ve çözümler geliştirmenin maliyetlerini ve karmaşıklığını büyük ölçüde azaltır. Ayrıca çözümleri hızlı, esnek bir şekilde ve günümüzün dağıtılmış sistemlerinin gerektirdiği büyük ölçekli bilgi işlemin klasik sorunları olmadan sunmanıza da olanak tanır. Yüzlerce kendi kendini yöneten ve ücreti ödenen makineyi çalıştırarak tek bir cihazdan milyonlara kadar ölçeklenebilmek, olağanüstü bir iş ve araştırma olanağı sağlar.
Son zamanlarda tüm büyük teknoloji şirketleri yapay zekâ ve makine öğrenimi sorunlarıyla ilgili hizmetler sağlamaya (ve yoğun yatırım yapmaya) başladı. Veri mühendisi veya veri bilimci gibi yeni ortaya çıkan (ve gerekli) kişiler, yapay zekâ ve makine öğrenimi çözümlerinin tüm geliştirme döngüsünü kapsayan uçtan uca platformlar aracılığıyla inanılmaz düzeyde üretkenlik ve iş elde edebiliyor. Bu platformlara bazı örnekler AWS Sagemaker veya Azure Machine Learning Studio'dur.
Basit bir şekilde denemeye başlamak için, paketleri yükleme veya belleği yönetme konusunda endişelenmenize gerek kalmadan makinelerinizde Jupyter Notebook'ları kullanmanıza olanak tanıyan ücretsiz bir Google aracı olan Google Colab gibi çözümler bile vardır. Ayrıca tamamen ücretsizdir!
Sonuç olarak
Günlük sorunlara yönelik makine öğrenimi çözümleri geliştirmek için üç unsurun (veri, teknik bilgi ve bilgi işlem gücü) ne kadar gerekli olduğunu gördük. Öğrenciyseniz veya meraklı bir kediyseniz, Google Colab ve sunduğu ücretsiz güç sayesinde kolay vakit geçireceksiniz. Makine öğrenmesini geniş ölçekte denemeye başlamayı düşünen bir şirketteki ekibin parçasıysanız, büyük teknoloji bulut satıcılarının sunduğu her zamankinden daha zengin ve daha iyi makine öğrenmesi hizmetlerini göz önünde bulundurun.
Bir sonraki yazıda kendimize şu soruyu soracağız: Makine Öğrenmesine gerçekten ihtiyacımız var mı?
Comentarios