Derin Öğrenme Modellerinde Neden Grafik İşlemcilere (GPU) İhtiyaç Duyarız?

Makine öğrenmesi, kural bazlı (if else tabanlı) kod yazmaya gerek kalmadan, genellikle etiketlenmiş veri üzerinde, girdilerle çıktılar arasındaki ilişkiyi belli algoritmalar sayesinde kuran bir sistemdir.

Bir örnek vermemiz gerekirse, bir üniversite hocasının, öğrencilerinin dönem sonu notlarını harf notuna çevirmesini sağlayan bir excel hazırladığını düşünelim. Kural bazlı bir excel hazırlandığında, girilen dönem sonu notunun harf notuna çevrilebilmesi için ayrı ayrı birçok if else koşulundan geçmesi gerekir.

Problemi değiştirelim, elimizde öğrencilerin dönem sonu notlarının ve bu notlara karşılık gelen harf notlarının olduğunu varsayalım. Bu harf notlarını belirleyen, sınır notları nasıl elde edebiliriz? Hangi nottan daha yüksek olan notlar AA değerine karşılık gelir? Bu problemi çözmemizi makine öğrenmesi algoritmaları sağlıyor. Makine öğrenmesi modelleri girdiler (öğrencilerin dönem sonu notları) ve çıktılar (öğrencilerin harf notları) arasındaki ilişkiyi bulmaya çalışıyor.

Yukarıda bahsettiğimiz örnek gibi basit bir işlem için elbette ki makine öğrenmesi modeline ihtiyaç duymuyoruz ancak doğal dil işleme, görüntü işleme, reklam ve video önerme, churn analizi, kredi risk analizi gibi daha karmaşık işlemlerde makine öğrenmesine başvuruyoruz.

Bir sigorta şirketi için churn analizi yaptığımızı düşünelim. Elimizdeki veride modelimizde girdi olarak kullanabileceğimiz müşterinin yaşı, mesleği, geliri, eşinin yaşı, mesleği, geliri, çocuk sahibi olup olmadıkları, ev sahiplik durumları, yaşadıkları yerin konumu vs 50 farklı öznitelik olduğunu varsayalım ve yine bu müşterilerin churn olup olmadıklarını belirten, yani müşteri satın aldığı poliçesini süresi bittikten sonra yenilemiş mi yenilememiş mi, çıktı değeri olsun. Bu problemde makine öğrenmesi, elimizdeki 50 öznitelikle müşterinin  churn olup olmaması arasındaki bağlantıyı kuruyor, yani öğreniyor. Böylece sigorta şirketi,  poliçesi henüz daha bitmemiş müşterilerinin verilerini modele girdi olarak verdiğinde, önceki müşterilerinin verilerinden öğrenmiş olan model bir tahmin yapıyor ve şirkete müşterisini kaybetmeden müdahale imkanı sunuyor.

Makine öğrenmesinin önemini anlayan işletmeler daha doğru modeller elde edebilmek için her geçen gün müşterileriyle ilgili daha fazla veri topluyor, modeller karmaşıklaşmaya başlıyor ve bilgisayarların yapmaları gereken işlem sayısı çok fazla artıyor. E-ticaret, gsm operatörleri, bankalar gibi veri toplamanın kolay olduğu şirketlerde, müşterilerle ilgili 100-200 adet  öznitelik tutuluyor ve modeller geliştiriliyor.

Churn analizi için kaggle’a yüklenmiş veri setindeki öznitelikler

Bu zamana kadar bahsettiğimiz veriler, yapısal veri olarak adlandırılıyor, yani bu verileri bir excel tablosunda tutup, sayısal olarak ifade edebiliyoruz. Günümüzde daha popüler olan, otonom araçlar, sesli kişisel asistanlar, chat bot gibi ürünlerin geliştirilmesi için kullanılan; görüntü işleme, ses işleme, video işleme gibi teknolojilerinde ise başka sorunlarla karşılaşılıyor. Ses, görüntü, video gibi veriler daha önce bahsettiğimiz yapısal veriler gibi bir tabloda tutulamıyor ve ilkel makine öğrenmesi algoritmaları tarafından işlenemiyor.

Yapay sinir ağlarının makine öğrenmesi için kullanılmasından sonra görüntü, ses, video gibi yapısal olmayan verilerin derin öğrenme algoritmaları için modellenmesinin önü açılmış oluyor. Bu noktada ise modellerin eğitimi için farklı ve özel donanımlara ihtiyaç duyuluyor çünkü daha önce bahsettiğimiz, makine öğrenmesi modeline girdi olarak verilen 100-200 öznitelik sayısı, yapısal olmayan verilerin derin öğrenme algoritmaları için modellenmesi sonucunda milyonlar mertebesinde ifade edilmeye başlanıyor.

Örneğin, 8 bit 3 kanallı bir fotoğraf bilgisayarda her bir pikselin kırmızı, yeşil ve mavi (RGB) kanallarındaki 0 ile 255 arasındaki sayısal değerleri olarak tutuluyor. Yani 1 megapiksel görüntü, 1000*1000 piksel * 3 kanal  = 3.000.000 değere karşılık geliyor.

Görüntü işleme modeli kullanılacağı zaman, bu görüntü 3.000.000 satır , 1 sütunluk bir vektöre çevriliyor ve modele girdi olarak veriliyor. Modelin kaç katman ve her katmanda kaç noddan oluştuğuna bağlı olarak da her iterasyonda tek bir fotoğraf için milyonlarca işlem yapılıyor. Bilgisayarlarımızın işlemcileri (CPU) bu işlemleri yapmak için yetersiz kalıyorlar ve bu noktada grafik işlemciler (GPU) kullanılıyor.

Tasarımları gereği işlemciler bir işlemi bitirmeden bir sonraki işleme geçmiyorlar ve sıralı işlem yapıyorlar, grafik işlemcileri ise parallel processing işlemleri için çok güçlüler bu yüzden derin öğrenme modellerinin eğitim aşamalarında kullanılıyorlar ve standart işlemcilere göre çok daha iyi sonuçlar veriyorlar. CPU ve GPU’ların çalışma mantığını da aşağıdaki videoda izleyebilirsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir