Makine Öğrenimi Modellerini Özelleştirme: Kolay yol

1. Giriş

2a934d0e86f14118.png

Son güncelleme tarihi: 28.03.2022

Makine Öğrenimi

Makine öğrenimi, son derece hızlı gelişen bir alandır. Her gün, daha önce mümkün olmayan kullanım alanlarına olanak tanıyan yeni araştırmalar ve olanaklar ortaya çıkıyor.

Bu sürümlerin genellikle sonuç olarak bir modeli vardır. Modeller, bir girdi (ör. resim) verilen bir sonuç veren (ör. sınıflandırma) çok uzun Matematik denklemleri olarak anlaşılabilir

  • Bu yeni modellerden birini kendi verilerinizle kullanmak isterseniz ne olur?
  • Kullanım alanınızda veya uygulamanızda bu son teknoloji ürünü modellerden nasıl yararlanabilirsiniz?

Bu codelab'de, makine öğrenimi modellerini kendi verilerinize göre kolayca özelleştirebilirsiniz.

Makine öğrenimi modelleri oluşturup eğitmenin birçok zorluğu vardır:

  • Çok zaman alıyor.
  • Büyük miktarda veri kullanır.
  • Matematik ve İstatistik gibi alanlarda uzmanlık gerektirir.
  • Yoğun kaynak gerektirir: Bazı modellerin eğitilmesi günler sürebilir.

Yeni model mimarileri oluşturmak çok fazla zaman alır, ayrıca birçok deneme ve yıllarca deneyim gerektirebilir. Peki, tüm bu bilgiden yararlanabilseydiniz ve son teknoloji araştırmaları kendi sorununuz için özelleştirerek kendi verileriniz üzerinde kullanabilseydiniz nasıl olurdu? Bu, Öğrenimi Aktar adlı bir teknik kullanarak mümkündür.

Bu codelab'de, Öğrenme Aktarımı'nın nasıl yapılacağını, neden çalıştığını ve ne zaman kullanılacağını öğreneceksiniz.

Neler öğreneceksiniz?

  • Aktarım Öğrenimi'nin ne olduğu ve ne zaman kullanılacağı.
  • Öğrenimi aktarma özelliği nasıl kullanılır?
  • Modellerde ince ayar yapma.
  • TensorFlow Lite Model Maker'ı kullanma.
  • TensorFlow Hub'ı kullanma.

Gerekenler

  • Tüm kod Google Colaboratory kullanılarak yürütüldüğü için makinenize herhangi bir şey yüklemenize gerek yoktur. Colab'de oturum açmak için yalnızca internete erişiminizin ve bir Google Hesabınızın olması gerekir.
  • TensorFlow ve Keras API hakkında temel düzeyde bilgi sahibi olma.
  • Python bilgisi.

TensorFlow veya Makine Öğrenimi ile ilgili temel bilgilere sahip değilseniz yine de Öğrenimi Aktarma hakkında bilgi edinebilirsiniz. "Öğrenimi aktarma nedir?" başlıklı sonraki adımı okuyun. deneyin ve ardından "Model Oluşturucu ile Öğrenimi Aktar" bölümüne geçin. Daha ayrıntılı bilgi edinmek ve süreci daha ayrıntılı incelemek isterseniz bunu TensorFlow Hub ile Öğrenimi Aktarma bölümündeki bölümlerde bulabilirsiniz.

2. Öğrenimi Aktarma nedir?

Önceden eğitilmiş model, daha önce genellikle büyük ölçekli bir görüntü sınıflandırma görevi sırasında büyük bir veri kümesi kullanılarak eğitilmiş kayıtlı bir ağdır. Önceden eğitilmiş modeli olduğu gibi kullanabilir veya bu modeli belirli bir göreve göre özelleştirmek için aktarım öğrenmesini kullanabilirsiniz.

Görüntü sınıflandırma için aktarımla öğrenmenin arkasındaki sezgi, bir modelin yeterince geniş ve genel bir veri kümesiyle eğitilmesi halinde bu modelin etkin bir şekilde görsel dünyanın genel bir modeli olarak işlev göreceğidir. Böylece, büyük bir modeli büyük bir veri kümesi üzerinde eğiterek sıfırdan başlamak zorunda kalmadan öğrenilen bu özellik haritalarından yararlanabilirsiniz.

Makine Öğrenimi Modelini özelleştirmenin iki yolu vardır

  • Özellik Ayıklama: Yeni örneklerden önemli özellikleri ayıklamak için önceki bir ağ tarafından öğrenilen gösterimleri kullanın. Sıfırdan eğitilmiş yeni bir sınıflandırıcıyı önceden eğitilmiş modelin üzerine eklemeniz yeterlidir. Böylece, daha önce veri kümesi için öğrenilen özellik eşlemelerini yeniden kullanabilirsiniz. Modelin tamamını (yeniden) eğitmeniz gerekmez. Temel konvolüsyonel ağ, genel olarak resimlerin sınıflandırılması için yararlı olan özellikler zaten içermektedir. Bununla birlikte, önceden eğitilmiş modelin son sınıflandırma kısmı orijinal sınıflandırma görevine ve daha sonra modelin eğitildiği sınıf grubuna özgüdür.
  • İnce ayarlar: Dondurulmuş bir model tabanının üst katmanlarından birkaçını çözün ve hem yeni eklenen sınıflandırıcı katmanlarını hem de temel modelin son katmanlarını birlikte eğitin. Bu sayede "ince ayar yapabiliriz" belirli görevle daha alakalı hale getirmek için temel modelde üst düzey özellik temsillerini kullanmak.

Özellik çıkarma işlemi daha hızlı eğitilir ancak ince ayar ile daha iyi sonuçlar elde edebilirsiniz.

Öğrenme Aktarımı için iki farklı yöntem kullanarak her ikisini de (Özellik Ayıklama ve İnce Ayar) deneyeceksiniz:

  • TensorFlow Lite Model Maker kitaplığı, veri ardışık düzeni ve model oluşturma işleminin büyük kısmını otomatik olarak gerçekleştirir, böylece süreci çok daha kolay hale getirir. Elde edilen model ayrıca mobil cihazlarda ve tarayıcıda kullanılmak üzere kolayca dışa aktarılabilir.
  • TensorFlow Hub modelleri, TensorFlow Hub'da bulunan geniş makine öğrenimi modelleri deposundan yararlanır. Araştırmacılar ve topluluk da bu modellere katkıda bulunarak son teknoloji modellerinin çok daha hızlı ve daha çeşitli olmasını sağlıyor.

3. Model Oluşturucu ile Öğrenimi Aktarma

Artık Öğrenim Aktarımı'nın arkasındaki fikri bildiğinize göre, bu işlemi kolay şekilde yapmanıza yardımcı olacak bir araç olan TensorFlow Lite Model Maker kitaplığını kullanmaya başlayalım.

TensorFlow Lite Model Maker kitaplığı, Öğrenimi Aktarma sürecini basitleştiren ve bu süreci, mobil ve web geliştiricileri gibi makine öğrenimi dışı geliştiriciler için çok daha erişilebilir hale getiren açık kaynaklı bir kitaplıktır.

Colab not defteri, uygulayacağınız adımlarda size yol gösterir:

  • Verileri yükleyin.
  • Verileri bölün.
  • Model oluşturma ve eğitme
  • Modeli değerlendirin.
  • Modeli dışa aktarın.

Bu adımdan sonra, tam olarak aynı süreci izleyerek Öğrenimi Aktarma işlemine kendi verilerinizle başlayabilirsiniz.

Colaboratory

Şimdi de özel modeli eğitmek için Google Colab'e gidelim.

Açıklamanın üzerinden geçmek ve not defteriyle ilgili temel bilgileri anlamak yaklaşık 15 dakika sürer.

Avantajları:

  • Modelleri özelleştirmenin kolay yolu.
  • TensorFlow veya Keras API'yi anlamanız gerekmez.
  • Kullanıcının henüz uygulanmamış belirli bir uygulamaya ihtiyacı varsa değiştirilebilecek açık kaynaklı araç.
  • Modeli doğrudan mobil veya tarayıcı yürütmesi için dışa aktarır.

Eksileri

  • Önceki iki yöntemde olduğu gibi, tam ardışık düzeni ve modeli kendiniz oluşturmaya kıyasla daha az yapılandırma imkanı
  • Temel model seçilirken bile tüm modeller temel olarak kullanılamaz.
  • Veri ardışık düzeninin daha karmaşık olduğu büyük miktarda veri için uygun değildir.

4. TensorFlow Hub'da model bulma

Bu bölümün sonunda:

  • TensorFlow Hub'da Makine Öğrenimi modellerini bulun.
  • Koleksiyonlar hakkında bilgi edinin.
  • Farklı model türlerini anlama

Öğrenimi Aktarmak için iki şeyle başlamanız gerekir:

  • Veriler (ör. tanımak istediğiniz konulardan resimler).
  • Verilerinize göre özelleştirebileceğiniz bir temel model.

Veri kısmı genellikle işe bağlıdır ancak en kolay yol, tanımak istediğiniz bilgilerin birçok fotoğrafını çekmektir. Temel modelde durum nedir? Nerede bulabilirsiniz? TensorFlow Hub size bu konuda yardımcı olabilir.

TensorFlow Hub, TensorFlow modellerinizin ihtiyaçları için model deposudur.

Kullanabileceğiniz binlerce modelle ilgili dokümanları arayıp okuyabilirsiniz. Bunların birçoğu Öğrenimi Aktarma ve İnce ayar için hazırdır.

Model arama

Öncelikle, TensorFlow Hub'da kullanacağınız ve daha sonra kodunuzda kullanabileceğiniz modeller için basit bir arama yapalım.

1. Adım: Tarayıcınızda tfhub.dev sitesini açın.

tfhub.dev ana sayfasının resmi

Resim alanında Öğrenimi Aktarma için Özellik Vektörleri'ne ihtiyacımız vardır. Özellik Vektörleri, sınıflandırma modelleri gibidir ancak sınıflandırma başlığı yoktur.

Özellik Vektörleri, resimleri N'inci alanda sayısal bir gösterime dönüştürebilir (burada N, modelin çıkış katmanının boyut sayısıdır).

TFHub'da, belirli bir kartı tıklayarak Özellik Vektörleri için özel olarak arama yapabilirsiniz.

Özellik vektör görevini vurgulayan bir karenin yer aldığı tfhub.dev sayfasının resmi

Yalnızca Image feature vectors adını göstermek için soldaki filtreyi kullanarak modelin adını da arayabilirsiniz.

Bu, ana sayfada bir özellik vektör görevi seçildikten sonra tfhub.dev'deki arama sayfasının resmidir

Mavi simgeli kartlar model koleksiyonlarıdır. Bir resim koleksiyonunu tıkladığınızda, aralarından seçim yapabileceğiniz birçok benzer modele erişebilirsiniz. Resim koleksiyonunu seçelim.

Bu, tfhub.dev'deki Resim koleksiyonu sayfasıdır

Ekranı aşağı kaydırın ve MobileNet V3 seçeneğini belirleyin. Özellik vektörlerinden herhangi biri işe yarar.

Bu, tfhub.dev adresindeki Resim koleksiyonu sayfasıdır ve önceki sayfadan biraz kaydırılır.

Modelin ayrıntılar sayfasında modelle ilgili tüm belgeleri okuyabilir, modeli denemek için kod snippet'lerini inceleyebilir, hatta doğrudan Colab not defterinde deneyebilirsiniz.

mobilenetV3 özellik vektör modelinin ayrıntılar sayfası

Şimdilik tek ihtiyacınız olan şey üstteki URL'dir. Model herkese açık kullanıcı adı bu şekildedir ve bir modele TensorFlow Hub kitaplığından kolayca erişebilirsiniz.

5. TensorFlow Hub ile Öğrenimi Aktarma

Kullanılacak bir model seçtiğinize göre, şimdi TensorFlow Hub kitaplığından KerasLayer yöntemiyle yükleyerek bu modeli özelleştirelim.

Bu yöntem, bir modeli modelinizde katman olarak kullanılabilecek şekilde yükler. Böylece modelinizi bu katman etrafında derleyebilirsiniz.

Daha önce, Model Maker'ı nasıl kullanacağınızı öğrendiğinizde, daha kolay anlaşılması için tüm dahili öğeler sizden gizleniyordu. Hayır, perde arkasında Model Maker'ın ne yaptığını göreceksiniz.

Colaboratory

Şimdi de özel modeli eğitmek için Google Colab'e gidelim.

Açıklamanın üzerinden geçmek ve not defteriyle ilgili temel bilgileri anlamak yaklaşık 20 dakika sürer.

Avantajları:

  • Araştırmacıların ve topluluğun sağladığı, çeşitli veri kümeleriyle eğitilmiş binlerce mevcut model.
  • Görsel, metin ve ses gibi tüm görevler için modeller.
  • Farklı benzer modellerle deneme yapmak kolaydır. Temel modeli değiştirmek için yalnızca bir dizenin değiştirilmesi gerekebilir.

Eksileri

  • Modelleri kullanmak için hâlâ TensorFlow/Keras uzmanlığına ihtiyaç duyuyor.

Daha ayrıntılı bilgi edinmek istiyorsanız Keras Uygulamasıyla Öğrenimi Aktar özelliğini de kullanabilirsiniz. Bu, TensorFlow Hub'a çok benzer bir süreçtir, ancak yalnızca temel TensorFlow API'leri söz konusudur.

6. Tebrikler

Tebrikler, Öğrenimi Aktarma'nın ne olduğunu ve bunu kendi verilerinize nasıl uygulayacağınızı öğrendiniz.

Bu Codelab'de, Aktarım Öğrenimi adlı bir teknik kullanarak makine öğrenimi modellerini kendi verilerinize göre nasıl özelleştireceğinizi öğrendiniz.

2 farklı Öğrenim Aktarma yöntemini denediniz:

  • TensorFlow Lite Model Maker gibi bir araç kullanarak.
  • TensorFlow Hub'daki Özellik Vektörü'nü kullanma.

Her iki seçeneğin de artıları ve eksileri vardır ve özel ihtiyaçlarınız için birçok olası yapılandırma bulunur

Ayrıca, biraz daha ileri gidip verilerinize daha iyi uyum sağlamak için modellerin ağırlıklarını biraz daha artırarak modellerde ince ayar yapabileceğinizi öğrendiniz.

Her iki seçenek de modeller üzerinde ince ayarlar yapabilir.

Öğrenme aktarımı ve ince ayar yalnızca görüntüyle ilgili modeller için değildir. Burada amaç, veri kümenize ince ayar yapmak için bir alanın öğrenilen gösterimini kullanmak olduğundan, Metin ve Ses alanları için de kullanılabilir.

Sonraki Adımlar

  • Bu özelliği kendi verilerinizle deneyin.
  • Neler geliştirdiğinizi bizimle paylaşın ve projelerinizle TensorFlow'u sosyal medyada etiketleyin.

Daha Fazla Bilgi

Sorunuz mu var?