Bagikan melalui


LbfgsMaximumEntropyMulticlassTrainer Kelas

Definisi

IEstimator<TTransformer> untuk memprediksi target menggunakan pengklasifikasi multikelas entropi maksimum yang dilatih dengan metode L-BFGS.

public sealed class LbfgsMaximumEntropyMulticlassTrainer : Microsoft.ML.Trainers.LbfgsTrainerBase<Microsoft.ML.Trainers.LbfgsMaximumEntropyMulticlassTrainer.Options,Microsoft.ML.Data.MulticlassPredictionTransformer<Microsoft.ML.Trainers.MaximumEntropyModelParameters>,Microsoft.ML.Trainers.MaximumEntropyModelParameters>
type LbfgsMaximumEntropyMulticlassTrainer = class
    inherit LbfgsTrainerBase<LbfgsMaximumEntropyMulticlassTrainer.Options, MulticlassPredictionTransformer<MaximumEntropyModelParameters>, MaximumEntropyModelParameters>
Public NotInheritable Class LbfgsMaximumEntropyMulticlassTrainer
Inherits LbfgsTrainerBase(Of LbfgsMaximumEntropyMulticlassTrainer.Options, MulticlassPredictionTransformer(Of MaximumEntropyModelParameters), MaximumEntropyModelParameters)
Warisan

Keterangan

Untuk membuat pelatih ini, gunakan LbfgsMaximumEntropy atau LbfgsMaximumEntropy(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

Model entropi maksimum adalah generalisasi regresi logistik linier. Perbedaan utama antara model entropi maksimum dan regresi logistik adalah jumlah kelas yang didukung dalam masalah klasifikasi yang dipertimbangkan. Regresi logistik hanya untuk klasifikasi biner sementara model entropi maksimum menangani beberapa kelas. Lihat Bagian 1 dalam makalah ini untuk pengenalan terperinci.

Asumsikan bahwa jumlah kelas $m$ dan jumlah fitur $n$. Model entropi maksimum menetapkan kelas $c$-th vektor koefisien $\textbf{w}_c \in {\mathbb R}^n$ dan bias $b_c \di {\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$. Probabilitas $\textbf{x}$ milik kelas $c$ ditentukan oleh $\tilde{P}(c | \textbf{x}) = \frac{ e^{\hat{y}^c} }{ \sum_{c' = 1}^m e^{\hat{y}^{c'}} }$. Biarkan $P(c, \textbf{ x})$ menunjukkan probabilitas bersama untuk melihat $c$ dan $\textbf{x}$. Fungsi kerugian yang diminimalkan oleh pelatih ini adalah $-\sum_{c = 1}^m P(c, \textbf{ x}) \log \tilde{P}(c | \textbf{x}) $, yang merupakan fungsi kemungkinan log negatif.

Detail Algoritma Pelatihan

Teknik pengoptimalan yang diterapkan didasarkan pada memori terbatas metode Broyden-Fletcher-Goldfarb-Shanno (L-BFGS). L-BFGS adalah metode kuasi-Newtonian, yang menggantikan komputasi mahal matriks Hessian dengan perkiraan tetapi masih menikmati tingkat konvergensi cepat seperti metode Newton di mana matriks Hessian lengkap dihitung. Karena perkiraan L-BFGS hanya menggunakan sejumlah status historis terbatas untuk menghitung arah langkah berikutnya, sangat cocok untuk masalah dengan vektor fitur dimensi tinggi. Jumlah status historis adalah parameter yang ditentukan pengguna, menggunakan jumlah yang lebih besar dapat menyebabkan perkiraan yang lebih baik dari matriks Hessian tetapi juga biaya komputasi yang lebih tinggi per langkah.

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 pengklasifikasi multikelas entropi maksimum yang dilatih dengan metode L-BFGS.

(Diperoleh dari LbfgsTrainerBase<TOptions,TTransformer,TModel>)

Metode

Fit(IDataView)

Melatih dan mengembalikan ITransformer.

(Diperoleh dari TrainerEstimatorBase<TTransformer,TModel>)
Fit(IDataView, MaximumEntropyModelParameters)

Melanjutkan pelatihan LbfgsMaximumEntropyMulticlassTrainer menggunakan yang sudah dilatih modelParameters dan mengembalikan MulticlassPredictionTransformer<TModel>.

GetOutputSchema(SchemaShape)

IEstimator<TTransformer> untuk memprediksi target menggunakan pengklasifikasi multikelas entropi maksimum yang dilatih dengan metode L-BFGS.

(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