Kedi mi Köpek mi? Makine Öğrenmesi / Derin Öğrenme ile Anlamak

Kedi mi Köpek mi? Makine Öğrenmesi / Derin Öğrenme ile Anlamak



Biz insanlar olarak deneyimlerimizden öğreniriz. Bebekliğimizden itibaren birşeyler dener ve sonrasında onları kullanırız. Ama nesneleri soyutlayabilmek için verilerden öğreniriz. Bazen de ailemizin, öğretmenlerimizin ya da kitapların yönlendirmeleriyle öğreniriz. Bir bilgisayar programı sadece yönlendirmelerle öğrenir. Ama derin ya da makine öğrenmesi temelli yapay zeka uygulamaları veriden öğrenir. Sadece ödül bazlı öğrenme (reinforcement learning) deneyimlerden öğrenme üzerine çalışır.

Derin Öğrenmenin (Deep Learning) temel olarak Makine Öğrenmesinin bir alt dalı olduğunu hepimiz biliyoruz. Öyleyse neden makine öğrenmesi ile derin öğrenmeyi karşılaştırma ihtiyacı duyduk. Belki önce bu konuda biraz konuşmak faydalı olacaktır. Makine öğrenmesinin bir dalı olmasına rağmen yaklaşım ve gereklilikler olarak daha farklılıklar içermektedir. En başta çok büyük miktarda etiketlenmiş veri üzerinden çalışması gerekmektedir ve gerçekten çok güçlü makinelere ihtiyaç duymaktadır. Hatta yapısal olarak CPU tabanlı makineler değil, GPU tabanlı makinelerde çalışması çok daha uygundur. Eğer şansınız varsa mutlaka GPU temelli bir bilgisyar kullanın. Birçok yaklaşım ve ihtiyaç farklılıkları olduğu için ikisini ayrı ayrı incelemek kesinlikle gereklidir.

Derin öğrenme, makine öğrenmesinin özel bir şeklidir. Bir makine öğrenme iş akışı, ilgili özellikler görüntülerden manuel olarak çıkarılarak başlar. Daha sonra özellikler, görüntüdeki nesneleri kategorize eden bir model oluşturmak için kullanılır. Derin bir öğrenme iş akışı ile ilgili özellikler otomatik olarak görüntülerden çıkarılır. Buna ek olarak, derin öğrenme "uçtan uca öğrenme" gerçekleştirir - bir ağa ham veri verilir ve sınıflandırma gibi bir görevi verilir ve bunun nasıl otomatik olarak yapılacağını öğrenir. Bir diğer önemli fark, derin öğrenme algoritmaları veri ile ölçeklenirken, sığ öğrenme yakınsaklık kazanmasıdır. Sığ öğrenme, daha fazla örnek eklediğinizde ve ağa eğitim verildiğinde belirli bir performans seviyesinde plato olan makine öğrenme yöntemlerini ifade eder. Gelin bunu bir örnek üzerinden inceleyelim.

machine-vs-deep-learning-1

Yukarıdaki resme baktığımız zaman buradaki iki hayvandan hangisinin bir kedi hangisinin bir köpek olduğunu anlamak için çok fazla uğraşmadığınıza eminim. Çünkü bizler insan olarak şimdiye kadar binlerce kedi ve köpek resmi gördük ve onların her türlü halini kedi ve köpek olarak etiketledik. Artık bir yargıda bulunmamıza gerek kalmadan beynimizdeki nöronlar bize kedi ya da köpek olarak bunları mikrosaniyeler içinde geri dönüyor. Ama bir bilgisayara bu ayrımı yaptırmak gerçekten çok zor(En azından yapay zekadan önce gerçekten zordu). Bu resmin hangi hayvana ait olduğunu anlamak için makine öğrenmesi kullanabilirdik. Bu noktada aşağıdaki resimde de görebileceğiniz gibi önce bir miktar resimle sistemi eğimtliydik. Mesela bu örnekte kediler, köpekler ve kuşlardan oluşan birkaç yüz tane etiketlenmiş hayvan resimleri ile eğitmiş olalım.

machine-vs-deep-learning-2

Şimdi yapmamız gereken hayvanların belirgin özelliklerini işaretlemek olacaktır. Kediyi kedi yapan, köpeği köpek yapan temel farkları çalışmamız ve sonrasında da belli bir sınıflandırma yönteminden geçirmemiz gerekiyor. Bu sınıflandırma güdümlü ya da güdümsüz olabilir. Verinizin veya probleminizin tipine göre bu yönteme siz karar vermelisiniz. Sonrasında sisteminizi eğitmeye başlıyorsunuz. Çok güzel.

Eğer sisteminizin düzgün bir şekilde eğitilip eğitilmediğini test etmek istiyorsanız elinizdeki verinin bir kısmını test verisi olarak ayırıp bu veriyi kullanarak yarattığınız sistemin ne kadar doğrulukla çalıştığını bulabilirsiniz. Eğer beklentilerinizi karşılayacak kadar doğru çıktılar üretebiliyorsanız sistem tamamdır. Eğer başarımını arttırmanız gerekiyorsa, sınıflandırmanızı, özelliklerinizi değiştirebilir ya da veri setinizi arttırmanın yolların?? arayabilirsiniz.

Artık sisteminiz hazırdır ve sisteme yeni bir resim gösterdiğinizde sistem eğitilmiş olduğundan milisaniyeler içinde size KEDİ ya da KÖPEK olduğunu söyleyecektir.

machine-vs-deep-learning-3

Makine öğrenmesinde eğitimi sağlayacak olan resimleri elde ediyoruz ve etiketliyoruz, sonrasında özellikleri belirliyoruz. Daha sonra bir makine öğrenmesi sınıflandırmasına karar veriyor ve uyguluyoruz. Sonra sistemin çıktısı olarak hangi nesne olduğunu sistemden alıyoruz.

machine-vs-deep-learning-4

Derin öğrenme yönteminde ise özellikleri belirlemeye ihtiyaç yoktur. Çok daha yüksek miktarda etiketlenmiş veri ile eğitildikten sonra sistem kendisi sınıflandırmayı yapacaktır. Çok sınırlı olan sınıflandırıcıları aracılığı ile (CNN, RNN ..) eğitimini tamamlayacak ve sonrasında bize araba, bisiklet ya da kamyon olduğunu söyleyecektir. Bu sistemler biraz daha kapalı kutu şeklindedir. Çoğu zaman sadece nöral network katmanlarının sayısını ve eğitim seti büyüklüğü dışında müdahale etme şansımız bile bulunmamaktadır. Resimleri nöron şebekesi aracılığla parçalara ayırır ve bunlardan karar vermeye çalışır.

machine-vs-deep-learning-5

Yukarıdaki tabloda makine öprenmesi ve derin öğrenme arasındaki ihtiyaçları ve farklılıkları belirtmeye çalıştık. Genel olarak özetleyecek olursak eğer çok fazla miktarda etiketlenmiş verimiz ve güçlü makinelerimiz varsa derin öğrenme kullanma şansımız vardır. Aksi takdirde makine öğrenmesi ile ilerlemek dışında pek şansımız olmayacaktır. Derin öğrenme ağlarının en önemli avantajı, verilerinizin boyutu arttıkça iyileşmeye devam etmeleridir.

Tabii ki makine öğrenmesi ya da derin öğrenme arasında iyidir ya da kötüdür diye bir ayrım yapacak değiliz. İkisinin de avantajlı olduğu yerler vardır. Önemli olan hangisini nerede kullanacağımıza karar vermektir.

Derin öğrenme son zamanlarda çok dikkat çekmeye başladı. Son yıllarda daha önce mümkün olmayan sonuçlar elde ediyor. Derin öğrenmede, sınıflandırma modeli doğrudan resimlerden, yazılardan veya sesten öğrenir. Derin öğrenme modelleri sayesinde yapay zeka sınıflandırmaları, çoğu zaman insan performansını aşmaya başlamıştır. Resimleri, konuşmaları insanlardan daha yüksek bir başarı ortalaması ile tesbit edebilmektedir. Bunun için derin öğrenme modelleri, birçok katmanı içeren sinir ağı mimarileri ve etiketli veri grubunu kullanarak eğitilir.

machine-vs-deep-learning-6

Makine Öğrenmesi ve Derin Öğrenme Arasında Nasıl Tercih Edeceğiz

Makine öğrenimi, uygulamanıza, işlediğiniz verinin boyutuna ve çözmek istediğiniz sorunun türüne bağlı olarak seçebileceğiniz çeşitli teknikler ve modeller sunar. Başarılı bir derin öğrenme uygulaması, verilerinizi hızla işlemek için modelin yanı sıra GPU'ları veya grafik işlemci birimlerini eğitmek için çok büyük miktarda veri (binlerce resim, yazı vs.) gerektirir.

Makine öğrenimi ve derin öğrenme arasında seçim yaparken, yüksek performanslı bir GPU'ya ve çok sayıda etiketli veriye sahip olup olmadığınızı düşünün. Bu şeylerden herhangi birine sahip değilseniz, derin öğrenme yerine makine öğrenimini kullanmak daha mantıklı olabilir. Derin öğrenme genellikle daha karmaşıktır, bu nedenle güvenilir sonuçlar elde etmek için en azından birkaç bin görüntü gerekir. Yüksek performanslı GPU'ya sahip olmak, modelin tüm bu görüntüleri analiz etmek için daha az zaman harcayacağı anlamına gelir.


  Sen Ne Düşünüyorsun ?