Aracılığıyla paylaş


SdcaMulticlassTrainerBase<TModel> Sınıf

Tanım

Koordinat IEstimator<TTransformer> azalma yöntemiyle eğitilmiş doğrusal bir çok sınıflı sınıflandırıcı modeli kullanarak hedefi tahmin etme. Kullanılan kayıp işlevine bağlı olarak eğitilen model, örneğin entropi sınıflandırıcısı veya çok sınıflı destek vektör makinesi olabilir.

public abstract class SdcaMulticlassTrainerBase<TModel> : Microsoft.ML.Trainers.SdcaTrainerBase<Microsoft.ML.Trainers.SdcaMulticlassTrainerBase<TModel>.MulticlassOptions,Microsoft.ML.Data.MulticlassPredictionTransformer<TModel>,TModel> where TModel : class
type SdcaMulticlassTrainerBase<'Model (requires 'Model : null)> = class
    inherit SdcaTrainerBase<SdcaMulticlassTrainerBase<'Model>.MulticlassOptions, MulticlassPredictionTransformer<'Model>, 'Model (requires 'Model : null)>
Public MustInherit Class SdcaMulticlassTrainerBase(Of TModel)
Inherits SdcaTrainerBase(Of SdcaMulticlassTrainerBase(Of TModel).MulticlassOptions, MulticlassPredictionTransformer(Of TModel), TModel)

Tür Parametreleri

TModel
Devralma
Türetilmiş

Açıklamalar

Maksimum entropi sınıflandırıcı için bu eğitmeni oluşturmak için SdcaMaximumEntropy veya SdcaMaximumEntropy(Seçenekler) kullanın. Seçtiğiniz bir kayıp işlevi (destek vektörü makinesinin menteşe kaybı gibi) için bu eğitmeni oluşturmak için SdcaNonCalibrated veya SdcaNonCalibrated(Seçenekler) kullanın.

Giriş ve Çıkış Sütunları

Giriş etiketi sütun verileri anahtar türü olmalı ve özellik sütunu bilinen boyutlu bir vektör Singleolmalıdır.

Bu eğitmen aşağıdaki sütunları oluşturur:

Çıkış Sütunu Adı Sütun Türü Description
Score Vektör Single Tüm sınıfların puanları. Daha yüksek değer, ilişkili sınıfa düşme olasılığının yüksek olduğu anlamına gelir. i-th öğesi en büyük değere sahipse, tahmin edilen etiket dizini i olur. Sıfır tabanlı dizin olduğunu unutmayın.
PredictedLabel anahtar türü Tahmin edilen etiketin dizini. Değeri i ise, gerçek etiket anahtar değerli giriş etiketi türündeki i. kategori olacaktır.

Eğitmen Özellikleri

Makine öğrenmesi görevi Çok sınıflı sınıflandırma
Normalleştirme gerekli mi? Yes
Önbelleğe alma gerekli mi? No
Microsoft.ML ek olarak gerekli NuGet Hiçbiri
ONNX'e aktarılabilir Yes

Puanlama İşlevi

Bu, çok sınıflı sınıflandırma sorunlarını çözmek için doğrusal modeli eğitmektedir. Sınıf sayısının $m$ ve özellik sayısının $n$ olduğunu varsayalım. $c$-th sınıfına {\mathbb R}^n$ içinde $\textbf{w}_c \katsayı vektöru ve {\mathbb R}$ içinde bir sapma $b_c \in $c=1,\dots,m$ atar. {\mathbb R}^n$ içindeki $\textbf{x} \özellik vektöründe $c$-th sınıfının puanı $\hat{y}^c = \textbf{w}_c^T \textbf{x} + b_c$ olur. $\textbf{x}$ $c$ sınıfına aitse, $\hat{y}^c$ değeri 0'dan çok daha büyük olmalıdır. Buna karşılık, $\hat{y}^c$ değerinin 0'dan çok daha küçük olması istenen etiketin $c$ olmaması gerektiği anlamına gelir.

Yalnızca eğitilen model maksimum entropi sınıflandırıcısı ise, softmax işlevi tüm sınıfların puanlarını işlemeden sonra uygulanabileceğinden çıkış puanı vektörünü tahmin edilen sınıf olasılıkları olarak yorumlayabilirsiniz. Daha açık belirtmek gerekirse, $\textbf{x}$ öğesinin $c$ sınıfına ait olma olasılığı $\tilde{P}( c | \textbf{x} ) = \frac{ e^{\hat{ tarafından hesaplanır y}^c} }{ \sum_{c' = 1}^m e^{\hat{y}^{c'}} }$ ve puan vektöründe $c$-th öğesinde depolayın. Diğer durumlarda, çıkış puanı vektöru yalnızca $[\hat{y}^1, \dots, \hat{y}^m]$ şeklindedir.

Eğitim Algoritması Ayrıntıları

İyileştirme algoritması, önceki bir makalede önerilen benzer bir yolu izleyen bir koordinat azalma yönteminin uzantısıdır. Genellikle L-BFGS'den çok daha hızlıdır ve büyük ölçekli ve seyrek veri kümeleri için kesilmiş Newton yöntemleridir .

Bu sınıf, toplanan veriler temelinde oluşturulan iyileştirme sorununu formüle etmek için ampirik risk minimizasyonu (ERM) kullanır. Ampirik riskin genellikle modelin toplanan veri noktalarındaki tahminlerine bir kayıp işlevi uygulanarak ölçüldüğünü unutmayın. Eğitim verileri yeterli veri noktası içermiyorsa (örneğin, doğrusal modeli $n$boyutlu alanda eğitmek için en az $n$ veri noktalarına ihtiyacımız vardır), ERM tarafından üretilen modelin eğitim verilerini açıklamada iyi olması ancak görünmeyen olaylarda doğru sonuçları tahmin etmede başarısız olması için fazla uygunluk gerçekleşebilir. Düzenlileştirme , model parametrelerinin büyüklüğünü (genellikle norm işleviyle ölçülür) azaltarak böyle bir olguyu hafifletmek için yaygın bir tekniktir. Bu eğitmen, L1-norm (LASSO), $|| doğrusal bir bileşimini cezalandıran esnek net düzenlileştirmeyi destekler \textbf{w}_c || _1$ ve L2-norm (sırt), $|| \textbf{w}_c || _2^2$ $c=1,\dots,m$ için normalleştirmeler. L1-norm ve L2-norm düzenlileştirmelerinin farklı etkileri ve belirli açılardan tamamlayıcı olan kullanımları vardır.

Uygulanan iyileştirme algoritmasıyla birlikte L1-norm normalleştirmesi, $\textbf{w}_1,\dots,\textbf{w}_m$ model ağırlıklarının sıklığını artırabilir. Yüksek boyutlu ve seyrek veri kümelerinde, kullanıcılar L1 norm katsayısını dikkatle seçerse, tahmin gücünü etkilemeden yalnızca birkaç sıfır dışı ağırlığa (toplam model ağırlıklarının %1'i) sahip bir modelle iyi bir tahmin kalitesi elde etmek mümkündür. Buna karşılık, L2-norm eğitilen modelin sparsity'sini artıramaz, ancak yine de büyük parametre değerlerinden kaçınarak fazla uygunluğu önleyebilir. Bazen L2-norm kullanmak daha iyi bir tahmin kalitesine yol açar, bu nedenle kullanıcılar yine de bunu denemek ve L1-norm ve L2-norm katsayılarına ince ayar yapmak isteyebilir. Kavramsal olarak L1-norm kullanmanın tüm model parametrelerinin dağılımının bir Laplace dağılımı olduğunu, L2 norm ise onlar için Gauss dağılımını ifade ettiğini unutmayın.

Agresif bir düzenlileştirme (yani L1-norm veya L2 normlu normalleştirme terimlerine büyük katsayılar atamak), önemli değişkenleri modelden dışlayarak tahmine dayalı kapasiteye zarar verebilir. Örneğin, çok büyük bir L1 norm katsayısı tüm parametreleri sıfır olmaya zorlayabilir ve önemsiz bir modele yol açabilir. Bu nedenle, doğru normalleştirme katsayılarının seçilmesi pratikte önemlidir.

Kullanım örneklerinin bağlantıları için Ayrıca Bkz. bölümüne bakın.

Alanlar

FeatureColumn

Eğitmenin beklediği özellik sütunu.

(Devralındığı yer: TrainerEstimatorBase<TTransformer,TModel>)
LabelColumn

Eğitmenin beklediği etiket sütunu. etiketin eğitim için kullanılmadığını gösteren olabilir null.

(Devralındığı yer: TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

Eğitmenin beklediği ağırlık sütunu. olabilir null, bu da ağırlığın eğitim için kullanılmadığını gösterir.

(Devralındığı yer: TrainerEstimatorBase<TTransformer,TModel>)

Özellikler

Info

Koordinat IEstimator<TTransformer> azalma yöntemiyle eğitilmiş doğrusal bir çok sınıflı sınıflandırıcı modeli kullanarak hedefi tahmin etme. Kullanılan kayıp işlevine bağlı olarak eğitilen model, örneğin entropi sınıflandırıcısı veya çok sınıflı destek vektör makinesi olabilir.

(Devralındığı yer: StochasticTrainerBase<TTransformer,TModel>)

Yöntemler

Fit(IDataView)

Bir ITransformereğiter ve döndürür.

(Devralındığı yer: TrainerEstimatorBase<TTransformer,TModel>)
GetOutputSchema(SchemaShape)

Koordinat IEstimator<TTransformer> azalma yöntemiyle eğitilmiş doğrusal bir çok sınıflı sınıflandırıcı modeli kullanarak hedefi tahmin etme. Kullanılan kayıp işlevine bağlı olarak eğitilen model, örneğin entropi sınıflandırıcısı veya çok sınıflı destek vektör makinesi olabilir.

(Devralındığı yer: TrainerEstimatorBase<TTransformer,TModel>)

Uzantı Metotları

AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

Tahmin aracı zincirine bir 'önbelleğe alma denetim noktası' ekler. Bu, aşağı akış tahmincilerinin önbelleğe alınan verilere karşı eğitilmesini sağlar. Birden çok veri geçişi alan eğitmenlerden önce bir önbelleğe alma denetim noktası olması yararlıdır.

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>)

Tahmin aracı verildiğinde, çağrıldıktan sonra Fit(IDataView) temsilci çağıracak bir sarmalama nesnesi döndürün. Tahmin aracının neyin uygun olduğu hakkında bilgi döndürmesi genellikle önemlidir. Bu nedenle Fit(IDataView) yöntem yalnızca genel ITransformerbir nesne yerine özel olarak yazılan bir nesne döndürür. Bununla birlikte, aynı zamanda, IEstimator<TTransformer> genellikle birçok nesneye sahip işlem hatları halinde oluşturulur, bu nedenle transformatör almak istediğimiz tahmin aracının EstimatorChain<TLastTransformer> bu zincirde bir yere gömülü olduğu bir tahmin aracı zinciri oluşturmamız gerekebilir. Bu senaryo için, bu yöntem aracılığıyla sığdır çağrıldıktan sonra çağrılacak bir temsilci ekleyebiliriz.

Şunlara uygulanır

Ayrıca bkz.