Önceden eğitilmiş modeller:
Nedir, neden önemlidir ve nereden alınır?
Bu makalede Amazon Web Services Yazılım Geliştirme Mühendisi Yevgenia Soroka, transfer öğreniminin ne olduğunu ve önceden eğitilmiş modellerin nasıl aranacağını anlatıyor:
Derin öğrenmenin ( deep learning ) yardımıyla örneğin, nesne algılama ve sınıflandırma, yüz tanıma, görüntü oluşturma, segmentasyon gibi birçok bilgisayarla görme görevini çözebilirsiniz.
Bir modelin eğitilmesi birkaç dakikadan birkaç aya kadar (veri kümesine ve özel göreve bağlı olarak) sürebilir. Önemli hesaplama maliyetleri nedeniyle, birkaç yıl öncesine kadar bu durum araştırma üniversiteleri ve büyük teknoloji şirketleri tarafından yapılıyordu. Günümüzde ise transfer eğitimi bize yardımcı oluyor.
Transfer eğitimi
Transfer öğrenimi, makine öğreniminin bir alt bölümüdür. Amacı, bir görevi çözerek elde edilen bilgiyi diğerine, ancak benzer bir göreve uygulamaktır. Bu, doğru modeller elde etmenizi, zamandan ve paradan tasarruf etmenizi sağlayan popüler bir bilgisayarla görme yöntemidir. Transfer öğrenmede modelleri sıfırdan eğitmek yerine başka bir görevi çözerken edinilen özelliklerle başlıyoruz.
2016'da Andrew Ying, yöntemin artan popülaritesini tahmin etmişti: "Transfer öğrenimi, eğitimden sonra ticari makine öğrenimi başarısı için bir sonraki aşama olacak." dedi.
Önceden eğitilmiş modeller: nedir ve nerede bulunur
Transfer öğrenimi, önceden eğitilmiş modellerin (kamuya açık geniş bir veri kümesi üzerinde oluşturulmuş ve eğitilmiş) kullanımını içerir. Çoğu zaman, büyük teknoloji şirketleri veya bilgisayarla görme alanında önde gelen araştırmacılar tarafından geliştirilirler. Bu modeller büyük miktarda veri üzerinde eğitilmiştir (örneğin, ImageNet — ~14 milyon görüntü, Google Landmarks Dataset v2 — ~5 milyon görüntü).
Önceden eğitilmiş modelin seçimi göreve bağlıdır. Nesne algılama ve sınıflandırma için YOLOv2, yüz tanıma için OpenFace, görüntü sınıflandırma için ResNet kullanılmaktadır.
Başarılı transfer öğrenimi, hedefe benzer bir veri kümesi üzerinde eğitilmiş bir model gerektirir. Bu nedenle, yüz görüntüleri üzerinde eğitilen bir model, metin tanıma görevi için iyi bir genelleme yapmaz. Büyük ve çeşitli veri kümelerinde eğitilen modeller (öğrenilen özellikler, yüksek olasılıkla diğer veri kümelerinde ortaya çıkar) daha fazla popülerdir.
Makine öğrenimi çerçeveleri, eğitilmiş modellerin bir kaynağıdır. Önerilen model setleri Tensorflow, PyTorch, Keras, Caffe2 tarafından sağlanmaktadır. Örneğin:
- Tensorflow Model Garden ― TensorFlow'a dayalı birçok SOTA modeli uygulaması içeren bir depo.
- Моделі Torchvision görüntü sınıflandırma görevi için ana unsurları içerir (AlexNet, VGG, ResNet ve diğerleri).
- Keras applications Keras’ı kullanarak kolayca yüklenebilen sınıflandırma problemleri için popüler modellerden oluşan bir koleksiyon sağlar.
- Caffe і Caffe2 bir dizi önceden eğitilmiş model sağlar.
Uygulama alanlarına göre model koleksiyonları
Çerçeveler tarafından sağlanan modellerin çoğu, görüntü sınıflandırma veya nesne algılama ve bölümleme görevine odaklanır. Görev farklıysa, buna göre modeller aramanız gerekir.
- TensorFlow Hub Konulara ayrılmış görüntü ve video sınıflandırması, özellik vektörü, nesne algılama, segmentasyon, stil aktarımı, üreteç, poz algılama modellerini sunar.
- Model Zoo ― derin öğrenme meraklıları ve araştırmacıları için (TensorfFlow, PyTorch, Caffee dahil olmak üzere platformlar ve uygulamalar çok sayıda eğitimli modele sahip bir platform.
Önceden eğitilmiş modeller nasıl kullanılır?
İstenen eğitilmiş modeli bulduğumuzu varsayalım. Bir sınıflandırma problemi örneği üzerinde onu nasıl kullanacağımıza bakalım.
Eğitilmiş modeli yeniden amaçlandırmak için, orijinal sınıflandırıcıyı yenileriyle (ilgili sınıflarımız) değiştirmeniz ve verilerimiz üzerinde modeli yeniden eğitmeniz gerekir. Üç seçeneğimiz vardır:
- Modelin eğitimi, orijinal modelin tüm katsayılarının potansiyel olarak güncellenmesini içerir.
- Çoklu evrişimli katmanların eğitimi, sinir ağının ilk katmanlarının ağırlıklarının dondurulmasını (görevden bağımsız genel görüntü özelliklerine karşılık gelir) ve daha yüksek katmanların güncellenmesini (göreve bağlı olarak belirli özelliklere karşılık gelir) içerir.
- Sınıflandırıcının eğitimi, sinir ağının evrişimli tabanını kaydetmeye ve çıktı verilerini yeni bir sınıflandırıcıya beslemek için kullanmaya karşılık gelir.
Tüm modellerin eğitimi, büyük bir veri kümesi ve bilgi işlem gücü mevcut olduğunda yararlıdır. Görüntü kümesi küçükse, model mevcut görüntüleri hatırladığında ve yetersiz genelleme yaptığında, çoğu katman aşırı sığmayı önlemek için dondurulur. Yeterli bilgi işlem gücü yoksa, veri seti küçükse ve/veya önceden eğitilmiş model çok benzer bir sorunu çözüyorsa, bir eğitim sınıflandırıcısı uygundur. Bu durumda, önceden eğitilmiş model, sabit bir özellik edinme mekanizmasının rolünü oynar.
Computer vision kursunda, transfer öğrenmeyi pratikte uygulayarak, en yaygın görevlerden birini çözmek için hızlı ve ucuz bir şekilde bir sistem geliştireceğiz.