Share via


SdcaMulticlassTrainerBase<TModel> 클래스

정의

IEstimator<TTransformer> 좌표 하강 메서드로 학습된 선형 다중 클래스 분류자 모델을 사용하여 대상을 예측하는 것입니다. 사용된 손실 함수에 따라 학습된 모델은 예를 들어 최대 엔트로피 분류자 또는 다중 클래스 지원 벡터 컴퓨터일 수 있습니다.

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)

형식 매개 변수

TModel
상속
파생

설명

최대 엔트로피 분류자를 위해 이 트레이너를 만들려면 SdcaMaximumEntropy 또는 SdcaMaximumEntropy(옵션)를 사용합니다. 선택한 손실 함수 (예: 지원 벡터 머신의 힌지 손실)에 대해 이 트레이너를 만들려면 SdcaNonCalibrated 또는 SdcaNonCalibrated(옵션)를 사용합니다.

입력 및 출력 열

입력 레이블 열 데이터는 형식이어야 하며 기능 열은 알려진 크기의 벡터 Single여야 합니다.

이 트레이너는 다음 열을 출력합니다.

출력 열 이름 열 유형 설명
Score Single 벡터 모든 클래스의 점수. 값이 높을수록 연결된 클래스에 해당할 가능성이 높습니다. i번째 요소의 값이 가장 크다면 예측된 레이블 인덱스는 i가 됩니다. i는 0부터 시작하는 인덱스입니다.
PredictedLabel 형식 예측된 레이블의 인덱스입니다. 값이 i라면 실제 레이블은 키 값 입력 레이블 형식에서 i번째 범주입니다.

트레이너 특성

기계 학습 작업 다중 클래스 분류
정규화가 필요한가요?
캐싱이 필요한가요? 아니요
Microsoft.ML 외에도 필요한 NuGet 없음
ONNX로 내보낼 수 있습니다.

점수 매기기 함수

이렇게 하면 선형 모델을 학습하여 다중 클래스 분류 문제를 해결합니다. 클래스 수가 $m$이고 기능 수가 $$n 가정합니다. $c$-th 클래스에 계수 벡터 $\textbf{w}_c \in {\mathbb R}^n$ 및 바이어스 $b_c \in {\mathbb R}$에 $c=1,\dots,m$을 할당합니다. 기능 벡터 $\textbf{x} \in {\mathbb R}^n$이면 $c$-th 클래스의 점수는 $\hat{y}^c = \textbf{w}_c^T \textbf{x} + b_c$입니다. $\textbf{x}$가 클래스 $c$에 속하는 경우 $\hat{y}^c$는 0보다 훨씬 커야 합니다. 반면에 $\hat{y}^c$가 0보다 훨씬 작으면 원하는 레이블이 $c$이 아니어야 합니다.

학습된 모델이 최대 엔트로피 분류자인 경우에만 softmax 함수 가 모든 클래스의 점수를 사후 처리에 적용할 수 있으므로 출력 점수 벡터를 예측 클래스 확률로 해석할 수 있습니다. 더 구체적으로 말하자면, 클래스 $c$에 속하는 $\textbf{x}$의 확률은 $\tilde{P}( c | \textbf{x} ) = \frac{ e^{\hat{에 의해 계산됩니다. y}^c} }{ \sum_{c' = 1}^m e^{\hat{y}^{c'}} }$ 및 점수 벡터의 $c$-th 요소에 저장합니다. 다른 경우에는 출력 점수 벡터가 $[\hat{y}^1, \dots, \hat{y}^m]$에 불과합니다.

학습 알고리즘 세부 정보

최적화 알고리즘은 이전 문서에서 제안된 유사한 경로를 따르는 좌표 하강 방법의 확장입니다. 일반적으로 대규모 및 스파스 데이터 집합에 대한 L-BFGS잘린 Newton 메서드 보다 훨씬 빠릅니다.

이 클래스는 경험적 위험 최소화 (즉, ERM)를 사용하여 수집된 데이터에 기반한 최적화 문제를 작성합니다. 경험적 위험은 일반적으로 수집된 데이터 요소에 대한 모델의 예측에 손실 함수를 적용하여 측정됩니다. 학습 데이터에 충분한 데이터 요소가 없는 경우(예: $n$차원 공간에서 선형 모델을 학습하려면 $n$ 이상의 데이터 요소가 필요함) ERM에서 생성된 모델이 학습 데이터를 설명하는 데 적합하지만 보이지 않는 이벤트에서 올바른 결과를 예측하지 못할 수 있도록 과잉 맞춤 이 발생할 수 있습니다. 정규화 는 모델 매개 변수의 크기(일반적으로 표준 함수에 의해 측정됨)를 처벌하여 이러한 현상을 완화하는 일반적인 기술입니다. 이 트레이너는 LASSO(LASSO)의 선형 조합을 처벌하는 탄력적 net 정규화를 지원합니다|| \textbf{w}_c || _1$, L2-norm(ridge), $|| \textbf{w}_c || $c=1,\dots,m$에 대한 _2^2$ 정규화 L1-norm 및 L2-norm 정규화는 특정 측면에서 보완적인 다양한 효과와 용도를 가집니다.

구현된 최적화 알고리즘과 함께 L1-norm 정규화는 모델 가중치 $\textbf{w}_1,\dots,\textbf{w}_m$의 스파스를 증가시킬 수 있습니다. 고차원 및 스파스 데이터 세트의 경우 사용자가 L1-norm의 계수를 신중하게 선택하는 경우 예측 성능에 영향을 주지 않고 0이 아닌 가중치(예: 총 모델 가중치의 1%)만 있는 모델을 사용하여 좋은 예측 품질을 얻을 수 있습니다. 반면, L2-norm은 학습된 모델의 스파스를 늘릴 수 없지만 큰 매개 변수 값을 방지하여 과잉 맞춤을 방지할 수 있습니다. 경우에 따라 L2-norm을 사용하면 더 나은 예측 품질이 발생하므로 사용자는 여전히 이를 시도하고 L1-norm 및 L2-norm 계수를 미세 조정할 수 있습니다. 개념적으로 L1-norm을 사용하면 모든 모델 매개 변수의 분포가 Laplace 분포 인 반면 L2-norm은 가우스 분포 를 의미합니다.

적극적인 정규화(즉, L1-norm 또는 L2-norm 정규화 용어에 큰 계수를 할당)는 모델에서 중요한 변수를 제외하여 예측 용량에 해를 끼칠 수 있습니다. 예를 들어 매우 큰 L1-norm 계수는 모든 매개 변수를 0으로 강제 적용하여 사소한 모델로 이어질 수 있습니다. 따라서 올바른 정규화 계수를 선택하는 것이 실제로 중요합니다.

사용 예제에 대한 링크는 참고 섹션을 확인하세요.

필드

FeatureColumn

트레이너가 기대하는 기능 열입니다.

(다음에서 상속됨 TrainerEstimatorBase<TTransformer,TModel>)
LabelColumn

트레이너가 기대하는 레이블 열입니다. null수 있습니다. 이는 레이블이 학습에 사용되지 않음을 나타냅니다.

(다음에서 상속됨 TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

트레이너가 기대하는 체중 열입니다. 가중치가 학습에 사용되지 않음을 나타내는 일 수 null있습니다.

(다음에서 상속됨 TrainerEstimatorBase<TTransformer,TModel>)

속성

Info

IEstimator<TTransformer> 좌표 하강 메서드로 학습된 선형 다중 클래스 분류자 모델을 사용하여 대상을 예측하는 것입니다. 사용된 손실 함수에 따라 학습된 모델은 예를 들어 최대 엔트로피 분류자 또는 다중 클래스 지원 벡터 컴퓨터일 수 있습니다.

(다음에서 상속됨 StochasticTrainerBase<TTransformer,TModel>)

메서드

Fit(IDataView)

를 학습하고 반환합니다 ITransformer.

(다음에서 상속됨 TrainerEstimatorBase<TTransformer,TModel>)
GetOutputSchema(SchemaShape)

IEstimator<TTransformer> 좌표 하강 메서드로 학습된 선형 다중 클래스 분류자 모델을 사용하여 대상을 예측하는 것입니다. 사용된 손실 함수에 따라 학습된 모델은 예를 들어 최대 엔트로피 분류자 또는 다중 클래스 지원 벡터 컴퓨터일 수 있습니다.

(다음에서 상속됨 TrainerEstimatorBase<TTransformer,TModel>)

확장 메서드

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

추정기 체인에 '캐싱 검사점'을 추가합니다. 이렇게 하면 다운스트림 추정기가 캐시된 데이터에 대해 학습됩니다. 여러 데이터 전달을 수행하는 트레이너 앞에 캐싱 검사점이 있는 것이 좋습니다.

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

추정기가 지정된 경우 호출된 대리 Fit(IDataView) 자를 호출할 래핑 개체를 반환합니다. 예측 도구가 적합한 항목에 대한 정보를 반환하는 것이 중요한 경우가 많습니다. 따라서 Fit(IDataView) 메서드는 일반 ITransformer개체가 아닌 구체적으로 형식화된 개체를 반환합니다. 그러나 동시에 IEstimator<TTransformer> 개체가 많은 파이프라인으로 형성되는 경우가 많으므로 변환기를 가져올 추정기가 이 체인의 어딘가에 묻혀 있는 위치를 통해 EstimatorChain<TLastTransformer> 추정기 체인을 빌드해야 할 수 있습니다. 이 시나리오에서는 이 메서드를 통해 fit이 호출되면 호출될 대리자를 연결할 수 있습니다.

적용 대상

추가 정보