Matlab'ın Derin Öğrenme Aracıbox'ı Image Classification Projects

Giriş: Görüntü Sınıflandırması için Derin Öğrenme Neden?

Resim sınıflandırması - kategori önceden tanımlanmış bir diziden bir görüntüye bir etiket atama görevi - modern bilgisayar vizyonunun temel taşı haline gelir. Tıbbi tanıdan otonom sürüş, doğru sınıflandırma sürücüler sayısız gerçek dünya uygulamaları. Deep learning, özellikle convolutional sinir ağları (CNNs), doğru sınıflandırma doğruyu daha iyi bir şekilde geliştirdi, genellikle doğrulayıcı veri setlerine giriş için gerekli olan esnekliği sağlar.

MATLAB, sayısal bir hesaplama ve prototipleme için mühendisler ve bilim insanları arasında uzun zamandır favori olmuştur. Deep Learning Toolbox bu yeteneği önceden inşa edilmiş katmanlar, eğitim işlevleri ve sorunsuz donanım hızlandırma ile genişletmektedir.Eğer bir öğrenci gerçek zamanlı bir sınıflandırıcıyı keşfederseniz, araç kutusu veri hazırlığı, modelleme, tasarım, eğitim, değerlendirme ve dağıtım içeren bir yapılandırılmış bir iş akışı sunar.

Deep Learning Toolbox'ın Genel Bakışı

Deep Learning Toolbox (eski olarak Neural Network Toolbox), tasarım, eğitim ve derin sinir ağları için kapsamlı bir dizi işlev ve uygulama sağlar. Ayrıca, çok çeşitli mimarileri destekler:

Alet kutusu, Görüntü İşleme Toolbox, Bilgisayar Vizyon Toolbox ve Paralel Hesaplama Toolbox dahil olmak üzere MATLAB'in daha geniş ekosistemiyle entegre eder ve görüntü sınıflandırması için özellikle faydalı özellikler içerir:

Görüntü Sınıflandırması için Convolutional Neural Networks'ı Anlamak

Çoğu görüntü sınıflandırma sistemlerinin özünde CNN vardır. Bu ağlar hiyerarşik özellikleri öğrenir: erken katmanlar kenarlar ve dokular, orta tabakalar şekilleri ve parçaları tanır ve daha derin tabakalar nesneleri tanımlamak için basit. MATLAB'in Deep Learning Toolbox tüm standart tabaka türlerini uygular -konuşturma2dLayer, maxPooling2dLayer, tam olarak temasa geçtiLayer, yumuşakmaxLayer, ve sınıflandırmaLayer - özel mimarileri birleştirmek için basit.

CNN Design için MATLAB neden kullanın?

TensorFlow veya PyTorch gibi çerçeveler ile karşılaştırıldığında, MATLAB birkaç eşsiz avantaj sunuyor:

Veri Hazırlık: Başarılı Sınıflandırıcılık Vakfı

Model ne kadar sofistike olursa olsun, zavallı veriler zayıf performansa yol açıyor. MATLAB, görüntü veri kümelerini verimli bir şekilde yönetmek için birkaç hizmet sunuyor.

[FONTD: 5)

[[TheD: 16) işlevi, büyük görüntü koleksiyonları yüklemek için standart bir yoldur. Otomatik olarak klasör isimlerine dayanan görüntüler otomatik olarak eğitim, doğrulama ve test setlerine bölünmesi ve görüntülerini topludan hafızadan kaçınmak için okuyabilmektedir. Örneğin:

imds = imageDatastore('path/to/images', 'IncludeSubfolders', true, 'LabelSource', 'foldernames');
[imdsTrain, imdsValidation, imdsTest] = splitEachLabel(imds, 0.7, 0.15, 'randomized');

Data Augmentation with [[DDD3|)

Genelleştirmeyi geliştirmek için, özellikle sınırlı verilerle, eğitim sırasında rastgele dönüşümler uygulayabilirsiniz. MATLAB'in OLFLT:9) desteklemektedir:

Bu dönüşümler, model diskte birden fazla kopya depolamadan her bir dönemi biraz farklı bir görüntü görür. Bu önemli ölçüde aşırı yükleme ve sağlamlığı artırmak için aşırı yüklemeyi azaltır.

Imbalanced Datasets

Gerçek dünya veri setleri genellikle eşit sınıf dağıtımları vardır. MATLAB ağırlıklandırılmış sınıflandırma katmanları sunar (). ve sınıf ağırlıkları otomatik olarak eğitim set frekanslarından hesaplayabilir. Alternatif olarak, özel bir veri deposu veya [[DFLT:11) eğitim seçeneğinin mülkünü kullanarak aşırı azınlık sınıf sınıf sınıf sınıf sınıf sınıflarını aşırı derecede üstlenebilirsiniz.

Transfer Öğrenme: Ön lisanslanmış Modellerle Hızlandırmak

Küçük bir veri kümesi üzerinde çizilebilen derin bir CNN eğitim nadiren pratiktir. Transfer öğrenme büyük bir veri kümesi üzerinde önceden eğitim almış bir modelden yararlanır (örneğin, ImageNet) ve yeni bir görev için iyi bir şekilde iyileşir. MATLAB bu süreci olağanüstü basitleştirir.

Bir Pre-trained Network

[FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=I=FONT=FONT=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

Ağı Özel Bir Görev için Değiştirin

Ön lisanslanmış bir ağ son katmanları 1000 sınıf ResimNet sınıflandırması için tasarlanmıştır. Sınıflarınıza adapte olmak (say, 5), tam bağlantılı katmanı ve sınıflandırma katmanını değiştirirsiniz:

lgraph = layerGraph(net);
newLayers = [
fullyConnectedLayer(numClasses, 'Name', 'fc_new', 'WeightLearnRateFactor', 10, 'BiasLearnRateFactor', 10)
softmaxLayer('Name', 'softmax_new')
classificationLayer('Name', 'classoutput_new')
];
lgraph = replaceLayer(lgraph, 'fc1000', newLayers(1));
lgraph = replaceLayer(lgraph, 'fc1000_softmax', newLayers(2));
lgraph = replaceLayer(lgraph, 'ClassificationLayer_fc1000', newLayers(3));

Güzel-Tuning vs. Feature Ekstraksiyon

İki ortak strateji:

MATLAB'de Transfer Öğrenmesi için Pratik İpuçları

Sınıflandırıcılığı Eğitim: Seçenekler, Hiperparametreler ve İzleme

Ağ tanımlandığında ve veriler hazırlanırken, veri deposu, tabaka grafiği ve eğitim seçenekleri ile birlikte “DÜDÜDÜDÜSÜSÜŞÜNÜ” diyorsunuz.

Eğitim Seçenekleri

[FONT: {2} işlevi, neredeyse her eğitim yönünü kontrol etmenize olanak sağlar:

Eğitimin İzleme Eğitimi

MATLAB'in eğitim arsası hem eğitim hem de geçerlilik doğruluğu / zaman içinde kaybın devam ederken iyileştirmeyi durdurursa, model aşırı yüklemeyi sağlar - ağ boyutunu azaltır veya daha güçlü bir augmentasyon kullanarak.

Erken Durma ve Checkpointing

Doğrudan inşa edilmedikçe, eğitim seçeneklerinin mülkünü kullanarak erken durabilirsiniz. Alternatif olarak, her sabit sayıda dönem kurtarma seçeneği kullanın, ilerlemenizi sağlamanızı sağlar.

Evaluating Model Performansı

Eğitimden sonra, modelin, görünmez verilere iyi genelleştirildiğini doğrulamanız gerekir. MATLAB birkaç değerlendirme aracı sağlar.

Sınıflama Test Resimleri

YPred = classify(net, imdsTest);
YTest = imdsTest.Labels;
accuracy = sum(YPred == YTest) / numel(YTest);

Confüzyon Matrix ve Per-Class Metriks

[[Use theFLT:26), modelin hata yaptığını görselleştirmek için. sınıfsal hassasiyet için, hatırla ve F1-print, kullanım:

confMat = confusionmat(YTest, YPred);

Ardından metrikleri manuel olarak hesaplayın veya wwwC analizi için tahmin puanları elde etmek için [[ŞUYGÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜyetim.

ROC ve AUC

İkili sınıflandırma veya tek-vs-all senaryoları için, alıcı işletim karakteristik (ROC) eğrileri kullanarak arsayabilirsiniz.Bu özellikle de eşiğin önemli olan tıbbi görüntülemede önemlidir.

İşsizlik: Üretim Modelinin Üretimine Alınması

MATLAB'in gücü, prototypingin ötesine uzanır - eğitimli modelleri gerçek dünya uygulamaları içine dağıtmak için birden fazla yol sunar.

Diğer Çerçevelere ihracat

MATLAB Coder ve GPU Coder

Bir MATLAB runtime gerektiren sınıflandırıcılara giriş yapmak için tasarlanmıştır. GPU Coder, kenardaki gerçek zamanlı çıkarımlara izin verir.

MATLAB Compiler ve Üretim Server

Sınıflandırıcıyı bir köşeli veya paylaşılan bir kütüphane olarak paketleyin. MATLAB Production Server web uygulamaları, mobil uygulamalar veya işletme yazılımı tarafından tüketilebilecek RESTful APIs olarak modeller dağıtmanıza olanak tanır.

Gömülü Donanıma İş Etmek

Deep Learning Toolbox'ın ARM Cortex-A ve NVIDIA Jetson için desteği ile, doğrudan sistemleri barındırmak için optimize edilmiş ağları dağıtabilirsiniz.TheurFLT:32) işlevi, kaynaklanmış ortamlara uygun donanım optimize edilmiş kod oluşturabilir.

Gerçek Dünya Uygulamaları ve Vaka Çalışmaları

Mühendisler ve araştırmacılar MATLAB'in Deep Learning Toolbox'ı sayısız alanda görüntü sınıflandırma için kullandılar:

Beton örnekleri için, bkz.TELFLT:0)MATLAB'in resmi transfer öğrenme öğreticisi[Dönetici:2) ve [[Dönetici görüntülemede derin öğrenme üzerine bu makale ).

Diğer Derin Öğrenme Çerçeveleri ile Karşılaştırma

MATLAB açık kaynak olmasa da, araç zincir zaten MATLAB ekosisteminde çalışan mühendisler için eşsiz bir entegrasyon sunar.For team that require free, open-source solutions, TensorFlow or PyTorch tercih edilebilir. Ancak, MATLAB'in avantajları şunlardır:

MATLAB kullanıcıları ile işbirliği kritik olan projeler için, INNX'e ihracat, içilebilirlik sağlar.ETHFLT:0)Buradaki ING ihracat hakkında daha fazla bilgi sahibi olun).

Ortak Pitfalls ve Them'dan Nasıl Kaçırmak

Gelişmiş Konular: Özel Eğitim Halkaları ve Araştırma

Araştırmacılar devlet-öğrenme, MATLAB, özel eğitim döngülerini kullanarak MATFLT:36'leri ve otomatik farklı farklılığı uygulamanız için, yeni katmanlar, kayıp fonksiyonları veya eğitim prosedürleri (örneğin, meta-öğrenme, adversarial eğitim).

Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç

MATLAB'in Deep Learning Toolbox, MATLAB'in daha geniş ekosistemi için güçlü, kullanıcı dostu bir ortam sağlar - hem akademik araştırma hem de endüstriyel dağıtım için mükemmel bir seçim yapın.Bu makalede belirtilen yapısal iş akışlarını takip ederek, gelişmiş uygulamalar için gerekli olan esnekliğin tamamını kullanabilirsiniz.