AveragedPerceptronTrainer 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
使用 IEstimator<TTransformer> 一個線性二元分類模型,並以平均感知器訓練,預測目標。
public sealed class AveragedPerceptronTrainer : Microsoft.ML.Trainers.AveragedLinearTrainer<Microsoft.ML.Data.BinaryPredictionTransformer<Microsoft.ML.Trainers.LinearBinaryModelParameters>,Microsoft.ML.Trainers.LinearBinaryModelParameters>
type AveragedPerceptronTrainer = class
inherit AveragedLinearTrainer<BinaryPredictionTransformer<LinearBinaryModelParameters>, LinearBinaryModelParameters>
Public NotInheritable Class AveragedPerceptronTrainer
Inherits AveragedLinearTrainer(Of BinaryPredictionTransformer(Of LinearBinaryModelParameters), LinearBinaryModelParameters)
- 繼承
備註
要建立這個訓練器,請使用 AveragedPerceptron 或 AveragedPerceptron(Options)。
輸入與輸出欄位
輸入標籤欄位資料必須是 Boolean。 輸入特徵欄位資料必須是已知大小的向量。Single 此訓練器會輸出下列欄位:
| 輸出數據行名稱 | 欄類型 | Description |
|---|---|---|
Score |
Single | 模型計算出的無界分數。 |
PredictedLabel |
Boolean | 根據分數的符號來預測的標籤。 負數分數會對應至 false,正分數會對應至 true。 |
訓練師特性
| 機器學習任務 | 二元分類 |
| 需要正規化嗎? | Yes |
| 快取是必須的嗎? | No |
| 除了 Microsoft.ML 之外,必須使用 NuGet | None |
| 可匯出至 ONNX | Yes |
訓練演算法細節
感知器是一種分類演算法,透過尋找分離的超平面來進行預測。 例如,特徵值為 $f_0, f_1,..., f_{D-1}$,預測是透過確定該點落在超平面的哪一側來給出。 這與特徵加權和的符號相同,即 $\sum_{i = 0}^{D-1} (w_i * f_i) + b$,其中 $w_0, w_1,..., w_{D-1}$ 為演算法計算的權重,$b$ 為演算法計算的偏壓。
感知器是一種線上演算法,意即它會逐個處理訓練集中的實例。 它從一組初始權重開始(零、隨機或從前一位學習者初始化)。 接著,針對訓練集中的每個範例,計算特徵的加權總和。 如果這個值與當前範例的標籤符號相同,權重保持不變。 若符號相反,則加重向量更新,若標籤為正或負,則分別加減當前範例的特徵向量,乘以 0 < a <= 1,稱為學習率。 在此演算法的推廣中,權重會透過將特徵向量乘以學習率,以及某個損失函數的梯度來更新(在上述特定情況下,損失為鉸鏈損失,當梯度非零時為1)。
在平均感知器(又稱投票感知器)中,對於每次迭代,即通過訓練資料時,會如前所述計算一個權重向量。 最終預測是透過將每個權重向量的加權和平均並觀察結果的符號來計算。
欲了解更多資訊,請參閱 維基百科關於Perceptron 或 使用Perceptron演算法進行大邊界分類的條目。
請參考「參見」區塊,裡面有使用範例的連結。
欄位
| 名稱 | Description |
|---|---|
| FeatureColumn |
訓練師期待的特色欄。 (繼承來源 TrainerEstimatorBase<TTransformer,TModel>) |
| LabelColumn |
訓練師期望的標籤欄。 可以是 |
| WeightColumn |
訓練師預期的體重欄。 可以是 |
屬性
| 名稱 | Description |
|---|---|
| Info |
使用 IEstimator<TTransformer> 一個線性二元分類模型,並以平均感知器訓練,預測目標。 (繼承來源 OnlineLinearTrainer<TTransformer,TModel>) |
方法
| 名稱 | Description |
|---|---|
| Fit(IDataView, LinearModelParameters) |
繼續訓練 a OnlineLinearTrainer<TTransformer,TModel> 使用已訓練 |
| Fit(IDataView) |
訓練並返回 ITransformer。 (繼承來源 TrainerEstimatorBase<TTransformer,TModel>) |
| GetOutputSchema(SchemaShape) |
使用 IEstimator<TTransformer> 一個線性二元分類模型,並以平均感知器訓練,預測目標。 (繼承來源 TrainerEstimatorBase<TTransformer,TModel>) |
擴充方法
| 名稱 | Description |
|---|---|
| AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
在估計鏈中附加一個「快取檢查點」。 這將確保下游估計器能針對快取資料進行訓練。 在訓練師接受多次資料通行前設置快取檢查點會很有幫助。 |
| WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
給定一個估計器,回傳一個包裹物件,該物件會呼叫一次 Fit(IDataView) 代理。 估計器通常回傳擬合的資訊很重要,因此該 Fit(IDataView) 方法回傳一個特定型別的物件,而非一般 ITransformer的 。 然而,同時, IEstimator<TTransformer> 通常會被組成包含許多物件的管線,因此我們可能需要建立一條估計鏈,將 EstimatorChain<TLastTransformer> 我們想要取得變壓器的估計器埋藏在這條鏈的某處。 在這種情況下,我們可以透過此方法附加一個代理,當 fit 被呼叫時會被呼叫。 |