Yerleştirmeler

Kullanıcılara yiyecek öneren bir uygulama geliştirdiğinizi hayal edin. Uygulama, en sevdikleri yiyecekleri giren kullanıcılara beğenebilecekleri benzer yiyecekler öneriyor. Yiyeceklerin benzer olup olmadığını tahmin edebilen bir makine öğrenimi (ML) modeli geliştirerek uygulamanızın isabetli önerilerde (ör. "Pankek seviyorsanız size krep öneriyoruz.") bulunmasını istiyorsunuz.

Modelinizi eğitmek için 5.000 popüler yiyecekten oluşan bir veri kümesi oluşturuyorsunuz. Bu yiyecekler arasında borş çorbası, sosisli, salata, pizza ve döner yer alıyor.

1. şekil Beş yiyeceğin resimleri. Saat yönünde sol üstten başlayarak borş çorbası, sosisli, salata, pizza ve döner yer alıyor.
1. şekil Yiyecek veri kümesindeki yiyecek örnekleri

Veri kümesinde yiyeceklerden her birinin one-hot kodlama temsilini içeren meal özelliği oluşturuyorsunuz. Kodlama, modelin eğitileceği veriler için ilk sayısal temsili belirleme sürecini ifade eder.

2. şekil. Üst: Borş çorbası için one-hot kodlama görselleştirmesi
       [1, 0, 0, 0, ..., 0] vektörü, 6 kutunun üzerinde gösteriliyor. Soldan sağa dizili kutuların her birinin üzerinde bir vektör sayısı gösteriliyor. Soldan sağa dizili kutularda şu resimler yer alıyor: borş çorbası, sosisli, salata, pizza, [boş], döner. Orta: Sosisli için one-hot kodlama görselleştirmesi.
       [0, 1, 0, 0, ..., 0] vektörü, 6 kutunun üzerinde gösteriliyor. Soldan sağa dizili kutuların her birinin üzerinde bir vektör sayısı gösteriliyor. Soldan sağa dizili kutularda, yukarıdaki borş çorbası görselleştirmesiyle aynı resimler yer alıyor. Alt: Döner için one-hot kodlama görselleştirmesi. [0, 0, 0, 0, ..., 1] vektörü, 6 kutunun üzerinde gösteriliyor. Soldan sağa dizili kutuların her birinin üzerinde bir vektör sayısı gösteriliyor. Soldan sağa dizili kutularda, yukarıdaki borş çorbası ve sosisli görselleştirmesiyle aynı resimler yer alıyor.
2. şekil. Borş çorbası, sosisli ve dönerin one-hot kodlamaları. Her bir one-hot kodlama vektörünün uzunluğu 5.000'dir (veri kümesindeki her bir menü öğesi için bir giriş). Diyagramdaki üç nokta işareti, gösterilmeyen 4.995 girişi temsil eder.

Seyrek veri temsillerinde sık karşılaşılan sorunlar

One-hot kodlamaları incelerken bu veri temsiliyle ilgili çeşitli sorunları fark etmiş olabilirsiniz.

  • Ağırlık sayısı: Büyük giriş vektörleri, nöral ağ için çok sayıda ağırlık anlamına gelir. One-hot kodlamanızda M giriş ve girişten sonra ağın ilk katmanında N düğüm varsa modelin ilgili katman için MxN ağırlığı eğitmesi gerekir.
  • Veri noktası sayısı: Modelinizde ağırlık arttıkça düzgün şekilde eğitmeniz gereken veri miktarı da artar.
  • İşlem miktarı: Ağırlık arttıkça modeli eğitmek ve kullanmak için gereken işlem yükü de artar. Donanımınızın kapasitesi hızlıca aşılabilir.
  • Bellek miktarı: Modelinizde ağırlık arttıkça modeli eğiten ya da çalıştıran hızlandırıcı donanımlarda daha fazla belleğe ihtiyaç olur. Büyüyen bir sistemi etkili şekilde yönetmek oldukça zordur.
  • Cihaz üzerinde makine öğrenimini (ODML) desteklemeyle ilgili zorluklar: Makine öğrenimi modelinizi sunucular yerine yerel cihazlarda çalıştırmayı hedefliyorsanız modelinizi küçültmeye odaklanmalı ve ağırlık sayısını azaltmaya çalışmalısınız.

Bu modülde, bu sorunları gideren düşük boyutlu seyrek veri temsilleri olan yerleştirmeleri oluşturmayı öğreneceksiniz.