Derin Öğrenmede Transfer Öğrenimi [Kapsamlı Kılavuz]

Yayınlanan: 2020-12-07

İçindekiler

Tanıtım

Derin Öğrenme Nedir? Sinir ağları olarak bilinen insan beyninin bir simülasyonunu kullanan Makine Öğreniminin bir dalıdır. Bu sinir ağları, insan beyninin temel birimine benzeyen nöronlardan oluşur.

Nöronlar bir sinir ağı modeli oluşturur ve bu çalışma alanı hep birlikte derin öğrenme olarak adlandırılır. Bir sinir ağının nihai sonucuna derin öğrenme modeli denir. Çoğunlukla, derin öğrenmede, derin öğrenme modelinin veriler üzerinde tekrarlanan eğitim yoluyla öznitelikleri çıkardığı yapılandırılmamış veriler kullanılır.

Farklı bir veri ve özellik kümesine sahip başka bir model geliştirmek için başlangıç ​​noktası olarak kullanıma uygun olduğunda belirli bir veri kümesi için tasarlanan bu tür modeller, Aktarım Öğrenimi olarak bilinir. Basit bir ifadeyle, Transfer Öğrenimi, belirli bir görev için geliştirilen bir modelin, başka bir görev için bir model geliştirmek için başlangıç ​​noktası olarak kullanıldığı popüler bir yöntemdir.

Transfer Öğrenimi

Transfer Öğrenme çok eski zamanlardan beri insanlar tarafından kullanılmaktadır. Bu aktarım öğrenimi alanı, makine öğrenimi için nispeten yeni olsa da, insanlar bunu doğal olarak hemen hemen her durumda kullandılar.

Yeni bir problem veya görevle karşılaştığımızda her zaman geçmiş deneyimlerimizden edindiğimiz bilgileri uygulamaya çalışırız ve bu transfer öğrenmenin temelidir. Örneğin, bisiklete binmeyi biliyorsak ve daha önce yapmadığımız bir motosiklete binmemiz istendiğinde, bisiklete binme deneyimimiz her zaman motosikleti sürerken gidonu yönlendirmek ve bisikleti dengelemek gibi uygulanacaktır. Bu basit kavram, Transfer Öğrenmenin temelini oluşturur.

Transfer Öğreniminin temel kavramını anlamak için, bir X modelinin M1 modeliyle A görevini gerçekleştirmek için başarıyla eğitildiğini düşünün. B görevi için veri kümesinin boyutu çok küçükse, Y modelinin verimli bir şekilde eğitilmesini veya verilerin aşırı takılmasına neden olmasını engelliyorsa, B görevini gerçekleştirmek için Y modelini oluşturmak için temel olarak model M1'in bir bölümünü kullanabiliriz.

Neden Transfer Öğrenimi?

Günümüz dünyasının Yapay Zekayı teşvik etme konusundaki öncülerinden Andrew Ng'ye göre, “Transfer Learning, ML başarısının bir sonraki itici gücü olacak”. Nöral Bilgi İşleme Sistemleri Konferansı'nda (NIPS 2016) verilen bir konuşmada bundan bahsetti. Makine öğreniminin günümüz endüstrisindeki başarısının öncelikle denetimli öğrenmeden kaynaklandığına şüphe yoktur. Öte yandan, daha fazla denetimsiz ve etiketlenmemiş veri ile ileriye dönük olarak, transfer öğrenmesi sektörde yoğun olarak kullanılacak bir teknik olacaktır.

Günümüzde insanlar , sıfırdan bütün bir Evrişimsel Sinir Ağı modeli oluşturmak yerine , ImageNet gibi çeşitli görüntüler üzerinde önceden eğitilmiş bir model kullanmayı tercih ediyor . Transfer öğreniminin çeşitli faydaları vardır, ancak ana avantajları eğitim süresinden tasarruf, sinir ağlarının daha iyi performansı ve çok fazla veriye ihtiyaç duymamasıdır.

Okuyun: En İyi Derin Öğrenme Teknikleri

Transfer Öğrenme Yöntemleri

Genel olarak, transfer öğrenimini uygulamanın iki yolu vardır - Biri sıfırdan bir model geliştirmek, diğeri ise önceden eğitilmiş bir model kullanmaktır.

İlk durumda, genellikle eğitim verilerine bağlı olarak bir model mimarisi oluştururuz ve modelin modelden ağırlıkları ve kalıpları çıkarma yeteneği birkaç istatistiksel parametre ile dikkatlice incelenir. Birkaç tur eğitimden sonra sonuca bağlı olarak, en iyi performansı elde etmek için modelde bazı değişiklikler yapılması gerekebilir. Bu şekilde modeli kaydedebilir ve benzer bir görev için başka bir model oluşturmaya başlamak için kullanabiliriz.

Önceden eğitilmiş modelleri kullanmanın ikinci durumu, genellikle en yaygın olarak Transfer Öğrenimi olarak adlandırılır. Bunda, genel kullanım için periyodik olarak yayınlanan çeşitli araştırma kurum ve kuruluşları tarafından paylaşılan önceden eğitilmiş modelleri aramamız gerekiyor. Bu modeller ağırlıklarıyla birlikte internetten indirilebilir ve benzer veri kümeleri için modeller oluşturmak için kullanılabilir.

Transfer Öğrenimi Uygulaması – VGG16 Modeli

VGG16 olarak adlandırılan önceden eğitilmiş bir modeli kullanarak Transfer Öğreniminin bir uygulamasını inceleyelim.

VGG16, Oxford Üniversitesi Profesörleri tarafından 2014 yılında piyasaya sürülen bir Evrişimsel Sinir Ağı modelidir. O yıl ILSVR (ImageNet) Yarışmasını kazanan ünlü modellerden biriydi. Hala en iyi vizyon modeli mimarilerinden biri olarak kabul edilmektedir. 13 evrişim katmanı, 3 tam bağlantılı katman ve yumuşak bir maksimum katman dahil olmak üzere 16 ağırlık katmanına sahiptir. Yaklaşık 138 milyon parametreye sahiptir. Aşağıda VGG16 Modelinin Mimarisi verilmiştir.

Görüntü Kaynağı: https://towardsdatascience.com/understand-the-architecture-of-cnn-90a25e244c7

Adım 1: İlk adım, keras kitaplığı tarafından sağlanan VGG16 modelini TensorFlow çerçevesinde içe aktarmaktır.

Adım 2: Bir sonraki adımda modeli bir “vgg” değişkenine atayacağız ve ImageNet'in ağırlıklarını modele argüman olarak vererek indireceğiz.

Adım 3: VGG16, ResNet gibi önceden eğitilmiş bu modeller binlerce görüntü üzerinde eğitildiğinden ve birkaç sınıfı sınıflandırmak için kullanıldığından, önceden eğitilmiş modelin katmanlarını bir kez daha eğitmemize gerek yoktur. Bu nedenle VGG16 modelinin tüm katmanlarını “Yanlış” olarak ayarladık.

Adım 4: Önceden eğitilmiş VGG16 modelinin tüm katmanlarını dondurduğumuz ve son sınıflandırma katmanlarını kaldırdığımız için, bir veri kümesi üzerinde eğitmek için önceden eğitilmiş modelin üstüne bir sınıflandırma katmanı eklememiz gerekiyor. Bu nedenle, katmanları düzleştiriyoruz ve bir ikili sınıf tahmin modeli örneği ile aktivasyon fonksiyonu olarak softmax ile son bir Yoğun katmanı tanıtıyoruz.

Adım 5: Bu son adımda, önceden eğitilmiş VGG16 modelinin katmanlarını ve üzerine eklediğimiz iki katmanı Transfer Öğrenimi kullanarak görselleştirmek için modelimizin özetini yazdırıyoruz.

Yukarıdaki özetten, 3. Adımda yukarıda belirtilen koşul nedeniyle eğitim amacıyla kullanılmasına izin verilen son iki katmana ait yalnızca yaklaşık 50.000 parametrenin toplam 14.76 milyona yakın parametresi olduğunu görebiliriz. M parametreleri eğitilebilir olmayan parametreler olarak adlandırılır.

Bu adımlar gerçekleştirildikten sonra, modelimizi optimize edici ve kayıp işlevi gibi harici hiper parametrelerle derleyerek normal Evrişimli Sinir Ağını eğitmek için adımlar gerçekleştirebiliriz.

Derlemeden sonra, belirli sayıda dönem için fit işlevini kullanarak eğitime başlayabiliriz. Bu şekilde, herhangi bir veri setini ağ üzerinde önceden eğitilmiş birkaç modelle eğitmek ve eğitim verilerimizin sınıf sayısına göre modelin üzerine birkaç katman eklemek için transfer öğrenme yöntemini kullanabiliriz.

Ayrıca Okuyun: Derin Öğrenme Algoritması [Kapsamlı Kılavuz]

Çözüm

Bu yazıda, Transfer Learning'in temel anlayışını, uygulamasını ve ayrıca keras kütüphanesinden önceden eğitilmiş örnek bir VGG16 Modeli ile uygulamasını inceledik. Buna ek olarak, ağın sadece son iki katmanından önceden eğitilmiş ağırlıkların kullanılmasının yakınsama üzerinde en büyük etkiye sahip olduğu tespit edilmiştir.

Bu aynı zamanda özelliklerin tekrarlanan kullanımı nedeniyle daha hızlı yakınsama ile sonuçlanır. Transfer Öğrenimi, günümüzde model oluşturmada birçok uygulamaya sahiptir. En önemlisi, sağlık uygulamaları için AI, büyük boyutu nedeniyle bu tür önceden eğitilmiş birkaç moda ihtiyaç duyar. Transfer Öğrenimi başlangıç ​​aşamasında olsa da, önümüzdeki yıllarda büyük veri setlerini daha verimli ve doğru bir şekilde eğitmek için en çok kullanılan yöntemlerden biri olacaktır.

Makine öğrenimi hakkında daha fazla bilgi edinmek istiyorsanız, çalışan profesyoneller için tasarlanmış ve 450+ saat zorlu eğitim, 30'dan fazla vaka çalışması ve ödev, IIIT- sunan IIIT-B & upGrad'ın Makine Öğrenimi ve Yapay Zeka PG Diplomasına göz atın. B Mezun statüsü, 5+ pratik uygulamalı bitirme projesi ve en iyi firmalarla iş yardımı.

Derin öğrenmenin makine öğrenmesinden farkı nedir?

Hem makine öğrenimi hem de derin öğrenme, yapay zeka adı verilen şemsiye altında uzmanlaşmış alanlardır. Makine öğrenimi, minimum insan katılımıyla belirli görevleri öğrenmek ve gerçekleştirmek için makinelere veya bilgisayarlara nasıl öğretilebileceği ile ilgilenen bir yapay zeka alt kategorisidir. Ve derin öğrenme, makine öğreniminin bir alt alanıdır. Derin öğrenme, makinelerin bağlamları takdir etmesine ve insanlar gibi karar vermesine yardımcı olan yapay sinir ağları kavramları üzerine kuruludur. Derin öğrenme, büyük hacimli ham verileri işlemek için kullanılırken, makine öğrenimi genellikle yapılandırılmış veriler biçiminde girdiler bekler. Ayrıca, derin öğrenme algoritmaları sıfırdan minimuma insan müdahalesi ile çalışabilirken, makine öğrenimi modelleri yine de bir miktar insan müdahalesine ihtiyaç duyacaktır.

Derin sinir ağlarını öğrenmek için herhangi bir ön koşul var mı?

Özellikle derin öğrenme olmak üzere yapay zeka alanında büyük ölçekli bir proje üzerinde çalışmak, yapay sinir ağlarının temelleri hakkında net ve sağlam bir konsepte sahip olmanızı gerektirecektir. Sinir ağlarının temellerini geliştirmek için öncelikle konuyla ilgili çok sayıda kitap okumanız ve ayrıca trend konu ve gelişmelere ayak uydurmak için makaleler ve haberler incelemeniz gerekir. Ancak sinir ağlarını öğrenmenin ön koşullarına gelince, matematiği, özellikle lineer cebir, hesap, istatistik ve olasılığı göz ardı edemezsiniz. Bunların dışında Python, R ve Java gibi programlama dillerini iyi derecede bilmek de faydalı olacaktır.

Yapay zekada transfer öğrenme nedir?

Önceden eğitilmiş bir makine öğrenimi modelindeki öğeleri yeni bir modelde yeniden kullanma tekniği, yapay zekada transfer öğrenimi olarak bilinir. Her iki model de benzer işlevleri yerine getirmek üzere tasarlanmışsa, transfer öğrenme yoluyla aralarında genelleştirilmiş bilgiyi paylaşmak mümkündür. Bu eğitim modelleri tekniği, mevcut kaynakların etkin kullanımını teşvik eder ve sınıflandırılmış verilerin israfını önler. Makine öğrenimi gelişmeye devam ettikçe, yapay zekanın geliştirilmesinde transfer öğrenimi daha fazla önem kazanmaya devam ediyor.