MAKİNE ÖĞRENMESİNDE DENETİMSİZ ÖĞRENME

Dünyada yapay zekâ çalışmalarında ChatGPT fırtınası devam ederken rakipler de bu konudaki ürünlerini kullanıcılara sunmaya başladılar. Geçenlerde Google arama motoru şirketi, daha önce üstünde çalıştıklarını söyledikleri Bard adlı ürünlerini kullanıma açtılar, ChatGPT gibi Bard da sorulara cevap vermeye başladı. Bard da altyapı olarak takviyeli makine öğrenmesi algoritmaları ile eğitilmiş Pathways adlı geniş dil modelini kullanıyor. Cümle biraz teknik oldu ama yapay zekâ, makine öğrenmesi gibi kavramlar teknoloji yoğun kavramlar, özellikle meraklanıp nasıl çalıştıklarına bakmaya kalktığınızda kaçınılmaz olarak teknolojinin derinliklerine dalmak zorunda kalıyorsunuz. Bard da ChatGPT gibi bir Python kütüphanesi olan Pytorch’u yoğun kullanıyor, bunun yanında Tensorflow da projede önemli yer tutuyor. Yapay zekâ alanında ortak ve değişmez noktanın Python olduğuna dikkatinizi bir kere da çekmek isterim.

Geçen sayıda makine öğrenmesinde ençok kullanılan yöntemlerden biri olan denetimli öğrenme üstüne bir yazı yazmıştık.[1]

Bu yazımızda ise yine en çok kullanılan makine öğrenmesi metodlarından biri olan denetimsiz öğrenme metodlarından bahsedeceğiz.

Denetimli öğrenme algoritmalarında eğitim aşamasında etiketli veri setlerini kullanılıyor, yani her veri kategorize edilip, gruplanıp sonuçları algoritmaya bildiriliyor. Denetimsiz öğrenme ise algoritmaların, herhangi bir kategorizasyon veya geri bildirim olmaksızın etiketlenmemiş veri setlerinden öğrendiği, veri setlerindeki kalıpları, yapıları veya ilişkileri keşfettiği bir öğrenme türüdür.

Denetimsiz öğrenme yaklaşımının kavramsal çalışmaları, yapay zekâ kavramlarının son on yıllarda daha çok anılmaya başlanmış olmasına rağmen 1950'lere ve 1960'lara kadar gidiyor. Bu çalışmalara birçok araştırmacı ve kuruluş katkı vermiş ve vermeye de devam ediyorlar. Denetimsiz öğrenme, etiketli verileri elde etmenin genellikle zor veya imkânsız olduğu anormallik tespiti, veri sıkıştırma ve kümeleme gibi görevler için özellikle önemlidir. Denetimsiz öğrenme, algoritmaların veri setlerinde ne arayacakları açıkça söylenmeden verilerdeki kalıpları ve ilişkileri öğrenmesine olanak tanıyan, makine öğreniminin önemli bir alt alanıdır.

Denetimsiz öğrenmedeki en son yaklaşımlardan bazıları, denetimsiz öğrenme için otomatik kodlayıcılar, üretken rakip ağlar (GAN'lar) ve varyasyonel otomatik kodlayıcılar olarak anılabilir. Bütün bu kavramlar ilgilenenler açısından üstünde tek tek durulması gereken önemli kavramlardır.

Denetimsiz öğrenme algoritmalarının kullandığı etiketlenmemiş veri setlerine örnek olarak "kedi", "köpek", "ağaç" vb. gibi herhangi bir açıklamayla etiketlenmemiş bir resim koleksiyonu örnek olarak verilebilir. Benzer şekilde, hangi tür müşteri tarafından hangi satın almaların yapıldığını gösteren herhangi bir etiket içermeyen bir müşteri satın alma geçmişleri veri seti de etiketlenmemiş verilere bir örnek olabilir.

Denetimsiz öğrenme algoritmaları kategorilerine göre şu şekilde ayrıştırılabilir:

1. Kümeleme: Kümeleme algoritmaları, benzer veri noktalarını benzerlik veya mesafe metriklerine göre gruplandırmak için kullanılır. Kümeleme algoritmalarına örnek olarak k-ortalamalar, hiyerarşik kümeleme ve DBSCAN verilebilir. Kümeleme algoritmaları, müşteri segmentasyonunda, görüntü segmentasyonunda ve anormallik tespitinde yaygın olarak kullanılmaktadır. Mesela en çok kullanılan görüntü tanıma paketi OpenCV, makina öğrenmesi algoritması olarak denetimsiz algoritmalardan olan k-ortalamalar algoritmasını kullanmaktadır. 

2. Boyut azaltma: Boyut azaltma algoritmaları, önemli bilgileri korurken bir veri kümesindeki değişkenlerin veya özelliklerin sayısını azaltmak için kullanılır. Boyut azaltma algoritmalarının örnekleri arasında Temel Bileşen Analizi (PCA), t-SNE ve Otomatik Kodlayıcılar yer alır. Bu algoritmalar görüntü işleme, metin madenciliği ve özellik çıkarma uygulamalarında kullanılır.

3. İlişkilendirme, birliktelik kuralı öğrenme: Bu tür algoritmalar, bir veri kümesindeki değişkenler arasındaki ilişkileri keşfetmek için kullanılır ve genellikle pazar sepeti analizi ve öneri sistemlerinde kullanılır. Birliktelik kuralı öğrenme algoritmalarının örnekleri arasında Apriori ve FP-büyüme algoritması yer alır. 

4. Üretken modeller: Üretken modeller algoritmaları, verilerin olasılık dağılımını öğrenmek için kullanılır ve veri oluşturma ve denetimsiz öğrenme için kullanılabilir. Üretken modellerin örnekleri arasında Gauss Karışım Modelleri (GMM'ler), Değişken Otomatik Kodlayıcılar (VAE'ler) ve Üretken Karşıt Ağlar (GAN'lar) bulunur. Üretken model algoritmaları genellikle veri artırma, görüntü oluşturma ve anormallik tespitinde kullanılmaktadır.

5. Anormallik tespiti: Anormallik tespit algoritmaları, bir veri setinde beklenen modellere uymayan aykırı değerleri veya anormallikleri belirlemek için kullanılır. Anormallik algılama algoritmalarına örnek olarak tek sınıflı SVM ve izolasyon ormanı algoritması verilebilir. Anormallik tespit algoritmaları ise dolandırıcılık algılama, izinsiz giriş algılama ve kestirimci bakımda kullanışlıdır. Yine OpenCV, SVM ve izolasyon ormanı algoritmalarını da görüntü tanıma için makina öğrenmesi algoritmaları olarak kullanmaktadır.   

Denetimsiz öğrenme algoritmaları, veri bilimi, makine öğrenimi, bilgisayar görüşü, doğal dil işleme ve daha birçok alanda yaygın olarak kullanılmaktadır. Denetimsiz öğrenme algoritmaları, veri kümesi etiketlenmemiş olduğunda veya etiketli verileri elde etmenin zor olduğu durumlarda özellikle yararlıdır. Ayrıca, verilerdeki görsel incelemeden anlaşılamayan gizli kalıpları veya yapıları ortaya çıkarabildikleri için keşifsel veri analizi için de yararlıdırlar.

Denetimsiz öğrenme algoritmaları, modelin performansını artırmak için denetimli öğrenme algoritmalarıyla da birleştirilebilir. Örneğin, bir boyut indirgeme algoritması tarafından öğrenilen özellikler, daha sonra birçok uygulamada daha iyi bir karar sınır verisi analizi ve örüntü tanımayı öğrenebilen denetimli bir öğrenme algoritmasına girdi olarak kullanılabilir.

Ülkemizde makine öğrenmesi algoritmalarının geliştirilip geliştirilmediğini bilemiyoruz, bu durumda makine öğrenmesi konusunda yapabileceğimiz en iyi çalışma, makine öğrenmesi algoritmalarını analiz edip anlamak ve yapılmak istenen uygulamaya en iyi hangi algoritmanın uyabileceğini tespit etmektir ki bu da önemli bir know-how olarak sayılabilir.