Bagikan melalui


SdcaMulticlassTrainerBase<TModel> Kelas

Definisi

IEstimator<TTransformer> untuk memprediksi target menggunakan model pengklasifikasi multikelas linier yang dilatih dengan metode turunan koordinat. Tergantung pada fungsi kerugian yang digunakan, model terlatih dapat, misalnya, pengklasifikasi entropi maksimum atau mesin vektor dukungan multi-kelas.

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)

Jenis parameter

TModel
Warisan
Turunan

Keterangan

Untuk membuat pelatih ini untuk pengklasifikasi entropi maksimum, gunakan SdcaMaximumEntropy atau SdcaMaximumEntropy(Options). Untuk membuat pelatih ini untuk fungsi kehilangan (seperti mendukung kehilangan engsel mesin vektor) pilihan Anda, gunakan SdcaNonCalibrated atau SdcaNonCalibrated(Options).

Kolom Input dan Output

Data kolom label input harus berupa jenis kunci dan kolom fitur harus merupakan vektor berukuran yang diketahui dari Single.

Pelatih ini menghasilkan kolom berikut:

Nama Kolom Output Jenis Kolom Deskripsi
Score Vektor dari Single Skor semua kelas. Nilai yang lebih tinggi berarti probabilitas yang lebih tinggi untuk masuk ke kelas terkait. Jika elemen i-th memiliki nilai terbesar, indeks label yang diprediksi adalah i. Perhatikan bahwa i adalah indeks berbasis nol.
PredictedLabel jenis kunci Indeks label yang diprediksi. Jika nilainya adalah i, label aktual akan menjadi kategori ke-i dalam jenis label input bernilai kunci.

Karakteristik Pelatih

Tugas pembelajaran mesin Klasifikasi multikelas
Apakah normalisasi diperlukan? Ya
Apakah penembolokan diperlukan? Tidak
NuGet yang diperlukan selain Microsoft.ML Tidak ada
Dapat diekspor ke ONNX Ya

Fungsi Penilaian

Ini melatih model linier untuk memecahkan masalah klasifikasi multikelas. Asumsikan bahwa jumlah kelas $m$ dan jumlah fitur $n$. Ini menetapkan kelas $c$-th vektor koefisien $\textbf{w}_c \in {\mathbb R}^n$ dan bias $b_c \in {\mathbb R}$, untuk $c=1,\titik,m$. Mengingat vektor fitur $\textbf{x} \in {\mathbb R}^n$, skor kelas $c$-th adalah $\hat{y}^c = \textbf{w}_c^T \textbf{x} + b_c$. Jika $\textbf{x}$ milik kelas $c$, maka $\hat{y}^c$ harus jauh lebih besar dari 0. Sebaliknya, $\hat{y}^c$ jauh lebih kecil dari 0 berarti label yang diinginkan tidak boleh $c$.

Jika dan hanya jika model terlatih adalah pengklasifikasi entropi maksimum, Anda dapat menginterpretasikan vektor skor output sebagai probabilitas kelas yang diprediksi karena fungsi softmax dapat diterapkan pada skor semua kelas pasca-proses. Lebih khusus lagi, probabilitas $\textbf{x}$ milik kelas $c$ dihitung oleh $\tilde{P}( c | \textbf{x} ) = \frac{ e^{\hat{y}^c} }{ \sum_{c' = 1}^m e^{\hat{y}^{c'}} }$ dan simpan di elemen $c$-th di vektor skor. Dalam kasus lain, vektor skor output hanya $[\hat{y}^1, \dots, \hat{y}^m]$.

Detail Algoritma Pelatihan

Algoritma pengoptimalan adalah ekstensi metode turunan koordinat mengikuti jalur serupa yang diusulkan dalam makalah sebelumnya. Biasanya jauh lebih cepat daripada L-BFGS dan metode Newton terpotok untuk himpunan data berskala besar dan jarang.

Kelas ini menggunakan minimisasi risiko empiris (yaitu, ERM) untuk merumuskan masalah pengoptimalan yang dibangun berdasarkan data yang dikumpulkan. Perhatikan bahwa risiko empiris biasanya diukur dengan menerapkan fungsi kerugian pada prediksi model pada titik data yang dikumpulkan. Jika data pelatihan tidak berisi poin data yang cukup (misalnya, untuk melatih model linier di ruang $n$-dimensi, kita memerlukan setidaknya $n$ poin data), overfitting dapat terjadi sehingga model yang dihasilkan oleh ERM pandai menjelaskan data pelatihan tetapi mungkin gagal memprediksi hasil yang benar dalam peristiwa yang tidak terlihat. Regularisasi adalah teknik umum untuk meringankan fenomena seperti itu dengan menghukum besarnya (biasanya diukur oleh fungsi norma) parameter model. Pelatih ini mendukung regularisasi jaring elastis, yang menghukut kombinasi linier L1-norma (LASSO), $|| \textbf{w}_c || _1$, dan L2-norm (ridge), $|| \textbf{w}_c || _2^2$ regularisasi untuk $c=1,\titik,m$. Regularisasi L1-norma dan L2-norma memiliki efek dan penggunaan yang berbeda yang saling melengkapi dalam hal-hal tertentu.

Bersama dengan algoritma pengoptimalan yang diterapkan, regularisasi L1-norm dapat meningkatkan sparitas bobot model, $\textbf{w}_1,\dots,\textbf{w}_m$. Untuk himpunan data dimensi tinggi dan jarang, jika pengguna dengan hati-hati memilih koefisien L1-norma, dimungkinkan untuk mencapai kualitas prediksi yang baik dengan model yang hanya memiliki beberapa bobot bukan nol (misalnya, 1% dari total bobot model) tanpa memengaruhi daya prediksinya. Sebaliknya, L2-norma tidak dapat meningkatkan sparsitas model terlatih tetapi masih dapat mencegah overfitting dengan menghindari nilai parameter besar. Terkadang, menggunakan L2-norm menyebabkan kualitas prediksi yang lebih baik, sehingga pengguna mungkin masih ingin mencobanya dan menyempurnakan koefisien L1-norma dan L2-norma. Perhatikan bahwa secara konseptual, menggunakan L1-norm menyiratkan bahwa distribusi semua parameter model adalah distribusi Laplace sementara L2-norma menyiratkan distribusi Gaussian untuk mereka.

Regularisasi agresif (yaitu, menetapkan koefisien besar ke istilah regularisasi L1-norma atau L2-norma) dapat membahayakan kapasitas prediktif dengan mengecualikan variabel penting dari model. Misalnya, koefisien L1-norma yang sangat besar dapat memaksa semua parameter menjadi nol dan menyebabkan model sepele. Oleh karena itu, memilih koefisien regularisasi yang tepat penting dalam praktiknya.

Periksa bagian Lihat Juga untuk tautan ke contoh penggunaan.

Bidang

FeatureColumn

Kolom fitur yang diharapkan pelatih.

(Diperoleh dari TrainerEstimatorBase<TTransformer,TModel>)
LabelColumn

Kolom label yang diharapkan pelatih. Dapat berupa null, yang menunjukkan bahwa label tidak digunakan untuk pelatihan.

(Diperoleh dari TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

Kolom berat yang diharapkan pelatih. Dapat berupa null, yang menunjukkan bahwa berat tidak digunakan untuk pelatihan.

(Diperoleh dari TrainerEstimatorBase<TTransformer,TModel>)

Properti

Info

IEstimator<TTransformer> untuk memprediksi target menggunakan model pengklasifikasi multikelas linier yang dilatih dengan metode turunan koordinat. Tergantung pada fungsi kerugian yang digunakan, model terlatih dapat, misalnya, pengklasifikasi entropi maksimum atau mesin vektor dukungan multi-kelas.

(Diperoleh dari StochasticTrainerBase<TTransformer,TModel>)

Metode

Fit(IDataView)

Melatih dan mengembalikan ITransformer.

(Diperoleh dari TrainerEstimatorBase<TTransformer,TModel>)
GetOutputSchema(SchemaShape)

IEstimator<TTransformer> untuk memprediksi target menggunakan model pengklasifikasi multikelas linier yang dilatih dengan metode turunan koordinat. Tergantung pada fungsi kerugian yang digunakan, model terlatih dapat, misalnya, pengklasifikasi entropi maksimum atau mesin vektor dukungan multi-kelas.

(Diperoleh dari TrainerEstimatorBase<TTransformer,TModel>)

Metode Ekstensi

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

Tambahkan 'titik pemeriksaan penembolokan' ke rantai estimator. Ini akan memastikan bahwa estimator hilir akan dilatih terhadap data cache. Sangat membantu untuk memiliki titik pemeriksaan penembolokan sebelum pelatih yang mengambil beberapa data berlalu.

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

Mengingat estimator, kembalikan objek pembungkus yang akan memanggil delegasi setelah Fit(IDataView) dipanggil. Seringkali penting bagi estimator untuk mengembalikan informasi tentang apa yang cocok, itulah sebabnya Fit(IDataView) metode mengembalikan objek yang ditik secara khusus, bukan hanya umum ITransformer. Namun, pada saat yang sama, IEstimator<TTransformer> sering dibentuk menjadi alur dengan banyak objek, jadi kita mungkin perlu membangun rantai estimator melalui EstimatorChain<TLastTransformer> tempat estimator yang ingin kita dapatkan transformator dikubur di suatu tempat dalam rantai ini. Untuk skenario itu, kita dapat melalui metode ini melampirkan delegasi yang akan dipanggil setelah pas dipanggil.

Berlaku untuk

Lihat juga