

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 선형 학습자 알고리즘
<a name="linear-learner"></a>

선형 모델은 분류 또는 회귀 문제를 해결하는 데 사용되는 지도 학습 알고리즘입니다.** 입력을 위해 라벨링된 모델 예제를 제공합니다(*x*, *y*). *x* 는 고차원 벡터이고, *y*는 숫자 레이블입니다. 바이너리 분류 문제의 경우 레이블이 0 또는 1이어야 합니다. 멀티클래스 분류 문제의 경우 레이블이 0 또는 `num_classes` - 1이어야 합니다. 회귀 문제의 경우 *y*는 실수입니다. 이 알고리즘은 선형 함수 또는 선형 임계 함수(분류 문제의 경우)를 학습하여 벡터 *x*를 레이블 *y*의 근사치로 매핑합니다.

Amazon SageMaker AI 선형 학습자 알고리즘은 분류 및 회귀 문제에 대한 솔루션을 제공합니다. SageMaker AI 알고리즘을 사용하면 다양한 훈련 목표를 동시에 탐색할 수 있고 검증 세트에서 최적의 솔루션을 선택할 수 있습니다. 또한 많은 수의 모델을 탐색하여 최적의 모델을 선택할 수 있습니다. 최적의 모델은 다음 중 하나를 최적화합니다.
+ 지속적 목표(예: 평균 제곱근 오차, 교차 엔트로피 손실, 절대 오차).
+ 분류에 맞는 별도 목표(예: F1 측정, 정밀도, 재현율 또는 정확도) 

지속적인 목표에 대한 솔루션만을 제공하는 방법과 비교했을 때 SageMaker AI 선형 학습자 알고리즘은 단순한 하이퍼파라미터 최적화 기법에 비해 속도를 크게 높입니다. 뿐만 아니라 훨씬 더 편리합니다.

Linear Learner 알고리즘은 데이터 매트릭스를 예상합니다. 매트릭스에서 행은 관측치를 나타내고 열은 특징의 차원을 나타냅니다. 또한 데이터 지점과 일치하는 레이블을 포함하는 추가 열을 필요로 합니다. 최소한 Amazon SageMaker AI 선형 학습자의 경우 입력 및 출력 데이터 위치와 목표 유형(분류 또는 회귀)을 인수로 지정해야 합니다. 특징 차원 또한 필요합니다. 자세한 내용은 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html) 섹션을 참조하세요. 요청 본문의 `HyperParameters` 문자열 맵에서 추가 파라미터를 지정할 수 있습니다. 이러한 파라미터는 최적화 절차를 제어하거나 훈련시킬 목표 함수를 지정합니다. epoch의 수, 정규화 및 손실 유형이 그 예입니다.

[관리형 스팟 훈련](https://docs.aws.amazon.com/sagemaker/latest/dg/model-managed-spot-training.html)을 사용하는 경우 선형 학습자 알고리즘은 [모델 상태의 스냅샷을 찍을 수 있는 체크포인트](https://docs.aws.amazon.com/sagemaker/latest/dg/model-checkpoints.html) 사용을 지원합니다.

**Topics**
+ [선형 학습자 알고리즘에 대한 입력/출력 인터페이스](#ll-input_output)
+ [선형 학습자 알고리즘에 대한 EC2 인스턴스 권장 사항](#ll-instances)
+ [선형 학습자 샘플 노트북](#ll-sample-notebooks)
+ [선형 학습자 작동 방식](ll_how-it-works.md)
+ [선형 학습자 하이퍼파라미터](ll_hyperparameters.md)
+ [선형 학습자 모델 튜닝](linear-learner-tuning.md)
+ [선형 학습자 응답 형식](LL-in-formats.md)

## 선형 학습자 알고리즘에 대한 입력/출력 인터페이스
<a name="ll-input_output"></a>

Amazon SageMaker AI 선형 학습자 알고리즘은 훈련, 검증(선택 사항) 및 테스트(선택 사항)라는 3가지 데이터 채널을 지원합니다. 검증 데이터를 제공하는 경우 `S3DataDistributionType`은 `FullyReplicated`여야 합니다. 이 알고리즘은 epoch마다 검증 손실을 로깅하고, 검증 데이터의 샘플을 사용해 최적의 모델을 보정 및 선택합니다. 검증 데이터를 제공하지 않는 경우 이 알고리즘은 훈련 데이터 샘플을 사용하여 모델을 보정 및 선택합니다. 테스트 데이터가 제공된 경우 알고리즘 로그에는 최종 모델에 대한 테스트 점수가 포함됩니다.

**훈련의 경우** 선형 학습자 알고리즘은 `recordIO-wrapped protobuf` 및 `CSV` 형식을 지원합니다. `application/x-recordio-protobuf` 입력 유형의 경우 Float32 텐서만 지원됩니다. `text/csv` 입력 유형의 경우 첫 번째 열은 레이블(예측에 대한 대상 변수)로 간주됩니다. 파일 모드 또는 파이프 모드를 사용하여 `recordIO-wrapped-protobuf` 또는 `CSV`로 형식이 지정된 데이터에 대해 선형 학습자 모델을 훈련할 수 있습니다.

**추론의 경우** 선형 학습자 알고리즘은 `application/json`, `application/x-recordio-protobuf`, 및 `text/csv` 형식을 지원합니다. 새로운 데이터에 대해 예측할 경우 응답 형식은 모델 유형에 따라 달라집니다. **회귀의 경우** (`predictor_type='regressor'`) `score`는 모델에 의해 생성된 예측입니다. **분류의 경우** (`predictor_type='binary_classifier'` 또는 `predictor_type='multiclass_classifier'`) 모델은 `score`를 반환하고 `predicted_label`도 반환합니다. `predicted_label`은 모델이 예측한 클래스이고, `score`는 해당 예측의 강도를 측정합니다.
+ **바이너리 분류의 경우** `predicted_label`은 `0`이나 `1` 및 `score`이며 레이블이 1이어야 한다고 알고리즘에서 간주하는 정도를 나타내는 단일 부동 소수점 숫자입니다.
+ **멀티클래스 분류의 경우** `predicted_class`는 `0`\$1`num_classes-1` 사이의 정수이고, `score`는 클래스당 단일 부동 소수점 숫자의 목록입니다.

분류 문제에서 `score`를 해석하려면 사용된 손실 함수를 고려해야 합니다. `loss` 하이퍼파라미터 값이 `logistic`(바이너리 분류) 또는 `softmax_loss` 멀티클래스 분류인 경우 `score`는 해당 클래스의 확률로 해석할 수 있습니다. 이들은 `loss` 값이 `auto` 기본값일 때 선형 학습자가 사용하는 손실 값입니다. 하지만 손실이 `hinge_loss`로 설정된 경우 점수를 확률로 해석할 수 없습니다. 이는 Hinge 손실이 확률 추정치를 생산하지 않는 Support Vector 분류자에 해당하기 때문입니다.

입력 및 출력 파일 형식에 대한 자세한 내용은 [선형 학습자 응답 형식](LL-in-formats.md) 섹션을 참조하세요. 추론 형식에 대한 자세한 내용은 [선형 학습자 샘플 노트북](#ll-sample-notebooks) 섹션을 참조하세요.

## 선형 학습자 알고리즘에 대한 EC2 인스턴스 권장 사항
<a name="ll-instances"></a>

선형 학습자 알고리즘은 훈련 및 추론을 위해 CPU 및 GPU 인스턴스를 모두 지원합니다. GPU의 경우 선형 학습자 알고리즘은 P2, P3, G4dn 및 G5 GPU 패밀리를 지원합니다.

테스트 과정에서 다중 GPU 인스턴스가 단일 GPU 인스턴스에 비해 빠르다는 확실한 증거는 발견되지 않았습니다. 결과는 특정 사용 사례에 따라 다를 수 있습니다.

## 선형 학습자 샘플 노트북
<a name="ll-sample-notebooks"></a>

 다음 테이블에는 Amazon SageMaker AI 선형 학습자 알고리즘의 다양한 사용 사례를 다루는 다양한 샘플 노트북이 요약되어 있습니다.


| **노트북 제목** | **설명** | 
| --- | --- | 
|  [MNIST 데이터 세트 소개](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/linear_learner_mnist/linear_learner_mnist.html)  |   MNIST 데이터 세트를 사용하여 한 자릿수를 예측하도록 바이너리 분류자를 훈련시킵니다.  | 
|  [멀티클래스 분류자를 구축하는 방법은 무엇입니까?](https://sagemaker-examples.readthedocs.io/en/latest/scientific_details_of_algorithms/linear_learner_multiclass_classification/linear_learner_multiclass_classification.html)  |   UCI의 Covertype 데이터 세트를 사용하여 멀티클래스 분류자를 훈련하는 방법을 보여줍니다.  | 
|  [추론을 위한 기계 학습(ML) 파이프라인을 구축하는 방법은 무엇입니까?](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-python-sdk/scikit_learn_inference_pipeline/Inference%20Pipeline%20with%20Scikit-learn%20and%20Linear%20Learner.html)  |   Scikit-Learn 컨테이너를 사용하여 엔드-투-엔드 ML 파이프라인을 구축하는 방법을 보여줍니다.  | 

 SageMaker AI에서 예시 실행에 사용할 수 있는 Jupyter Notebook 인스턴스를 만들고 액세스하는 방법은 [Amazon SageMaker 노트북 인스턴스](nbi.md) 섹션을 참조하세요. 노트북 인스턴스를 만든 후 열고 **SageMaker AI 예시** 탭을 선택하여 모든 SageMaker AI 샘플 목록을 확인하세요. 선형 학습 알고리즘을 사용하는 주제 모델링 예제 노트북은 **Amazon 알고리즘 소개** 섹션에 있습니다. 노트북을 열려면 **사용** 탭을 선택한 후 **사본 생성**을 선택합니다.

# 선형 학습자 작동 방식
<a name="ll_how-it-works"></a>

선형 학습자 알고리즘의 구현에는 사전 처리, 훈련 및 검증의 세 단계가 포함됩니다.

## 1단계: 사전 처리
<a name="step1-preprocessing"></a>

정규화 또는 특징 확장은 특정 손실 함수의 중요한 사전 처리 단계이며 데이터 세트에서 학습되는 모델이 단일 특징의 가중치에 따라 관리되지 않게 합니다. Amazon SageMaker AI Linear Learner 알고리즘에는 이 사전 처리 단계를 지원하는 정규화 옵션이 있습니다. 정규화를 사용 중인 경우 알고리즘은 먼저 데이터의 작은 샘플을 검토하여 각 특징 및 레이블의 평균 값과 표준 편차를 학습합니다. 전체 데이터 세트의 각 특징은 0의 평균 값을 갖도록 이동하며 단위 표준 편차를 갖도록 크기가 조정됩니다.

**참고**  
최상의 결과를 얻으려면 훈련 전에 데이터가 섞여 있는지 확인하세요. 섞여 있지 않은 데이터로 훈련하면 실패할 수 있습니다.

Linear Learner 알고리즘이 `normalize_data` 및 `normalize_label` 하이퍼파라미터를 각각 사용하여 특징 데이터 및 레이블을 정규화하는지 여부를 구성할 수 있습니다. 정규화는 특징 및 회귀 레이블에 대해 기본적으로 활성화됩니다. 바이너리 분류에서는 특징만 정규화할 수 있으며 이것이 기본 동작입니다.

## 2단계: 훈련
<a name="step2-training"></a>

Linear Learner 알고리즘을 사용하면 확률 그라디언트 하강(SGD)의 분산 구현을 통해 훈련합니다. 최적화 알고리즘을 선택하여 최적화 프로세스를 제어할 수 있습니다. 예를 들어, Adam, AdaGrad, 확률 그라디언트 하강 또는 기타 최적화 알고리즘을 사용하도록 선택할 수 있습니다. 또한 모멘텀, 학습률 및 학습률 일정 등과 같은 하이퍼파라미터를 지정할 수도 있습니다. 어떤 알고리즘 또는 하이퍼파라미터 값을 사용할지 잘 모르는 경우 대부분 데이터 세트에 작동하는 기본값을 선택합니다.

훈련 중 각 목표가 조금씩 다른 여러 모델을 동시에 최적화합니다. 예를 들어 L1 또는 L2 정규화를 다르게 한 다음 각기 다른 옵티마이저 설정을 시도합니다.

## 3단계: 검증 및 임곗값 설정
<a name="step3-validation"></a>

여러 모델을 병렬로 훈련할 때, 훈련이 완료되면 검증 세트에 대해 모델을 평가하여 가장 적합한 모델을 선택합니다. 회귀의 경우 가장 적합한 모델은 검증 세트에서 가장 큰 손실을 얻는 모델입니다. 분류의 경우 검증 세트의 샘플은 분류 임계값을 교정하는 데 사용됩니다. 가장 적합한 모델은 검증 세트에서 가장 높은 바이너리 분류 선택 기준을 충족하는 모델입니다. 이러한 기준의 예에는 F1 측정, 정확도 및 교차 엔트로피 손실이 있습니다.

**참고**  
알고리즘에 검증 세트가 제공되지 않으면 가장 적합한 모델을 평가 및 선택할 수 없습니다. 병렬 훈련 및 모델 선택을 활용하려면 알고리즘에 검증 세트를 제공하세요.

# 선형 학습자 하이퍼파라미터
<a name="ll_hyperparameters"></a>

다음 표에는 선형 학습자 알고리즘에 대한 하이퍼파라미터가 나와 있습니다. 이들은 사용자가 데이터로부터 모델 파라미터의 예측을 촉진하기 위해 설정하는 파라미터입니다. 먼저 반드시 설정해야 하는 필수 하이퍼파라미터가 알파벳 순으로 나열되어 있습니다. 그 다음에 설정할 수 있는 선택적 하이퍼파라미터가 알파벳 순으로 나열되어 있습니다. 하이퍼파라미터를 `auto`로 설정하면 Amazon SageMaker AI에서 자동으로 해당 하이퍼파라미터의 값을 계산하고 설정합니다.


| 파라미터 이름 | 설명 | 
| --- | --- | 
| num\$1classes |  응답 변수의 클래스 수. 이 알고리즘에서는 클래스에 `0`, ..., `num_classes - 1` 레이블이 지정되어 있다고 가정합니다. `predictor_type`이 `multiclass_classifier`인 경우 **필요함**. 그렇지 않으면 알고리즘에서 무시됩니다. 유효한 값: 정수(3\$11,000,000)  | 
| predictor\$1type |  대상 변수 유형을 바이너리 분류, 멀티클래스 분류 또는 회귀로 지정합니다. **필수** 유효값: `binary_classifier`, `multiclass_classifier` 또는 `regressor`  | 
| accuracy\$1top\$1k |  멀티클래스 분류의 top-k 정확도 지표를 계산하는 경우 *k*의 값. 모델이 실제 레이블에 top-k 점수 중 하나를 할당하면 예제의 점수가 정답으로 매겨집니다. **선택 사항** 유효한 값: 양수 기본값: 3   | 
| balance\$1multiclass\$1weights |  손실 함수에서 각 클래스에 동일한 중요도를 제공하는 클래스 가중치를 사용할지 여부를 지정합니다. `predictor_type`이 `multiclass_classifier`인 경우에만 사용합니다. **선택 사항** 유효값: `true`, `false`  기본값: `false`  | 
| beta\$11 |  1차 추정치에 대한 지수 감소율. `optimizer` 값이 `adam`일 경우에만 해당됩니다. **선택 사항** 유효한 값: `auto` 또는 0부터 1.0 사이의 부동 소수점 기본값: `auto`  | 
| beta\$12 |  2차 추정치에 대한 지수 감소율. `optimizer` 값이 `adam`일 경우에만 해당됩니다. **선택 사항** 유효한 값: `auto` 또는 0부터 1.0 사이의 부동 소수점 정수  기본값: `auto`  | 
| bias\$1lr\$1mult |  편향항에 대한 다른 학습률을 허용. 편이에 대한 실제 학습률은 `learning_rate` \$1 `bias_lr_mult`입니다. **선택 사항** 유효한 값: `auto` 또는 양의 부동 소수점 정수 기본값: `auto`  | 
| bias\$1wd\$1mult |  편향항에 대한 다른 정규화 허용. 편이에 대한 실제 L2 정규화 가중치는 `wd` \$1 `bias_wd_mult`입니다. 기본적으로 편향항에 대한 정규화는 없습니다. **선택 사항** 유효한 값: `auto` 또는 음수가 아닌 부동 소수점 정수 기본값: `auto`  | 
| binary\$1classifier\$1model\$1selection\$1criteria |  `predictor_type`이 `binary_classifier`로 설정된 경우 검증 데이터 세트에 대한 모델 평가 기준. 검증 데이터 세트를 제공하지 않은 경우에는 훈련 데이터 세트에 대한 모델 평가 기준입니다. 기준은 다음과 같습니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/ll_hyperparameters.html) **선택 사항** 유효한 값: `accuracy`, `f_beta`, `precision_at_target_recall`, `recall_at_target_precision` 또는 `loss_function` 기본값: `accuracy`  | 
| early\$1stopping\$1patience | 관련 지표에서 개선 사항이 없는 경우 훈련 완료 전 epoch 수. binary\$1classifier\$1model\$1selection\$1criteria에 값을 제공한 경우 지표는 해당 값입니다. 그렇지 않으면 지표는 loss 하이퍼파라미터에 대해 지정된 값과 동일합니다.지표는 검증 데이터에 따라 검증됩니다. 검증 데이터를 제공하지 않은 경우 지표는 항상 `loss` 파라미터에 지정된 값과 동일하고 훈련 데이터에 대해 평가됩니다. 조기 중지를 비활성화하려면 `early_stopping_patience`를 `epochs`에 대해 지정된 값보다 높은 값으로 설정하세요.**선택 사항**유효한 값: 양수기본값: 3 | 
| early\$1stopping\$1tolerance |  손실의 개선을 측정하는 상대 공차. 이전 최적 손실로 나눈 손실의 개선율이 이 값보다 작은 경우 조기 중지 시 개선이 0인 것으로 간주합니다. **선택 사항** 유효한 값: 양의 부동 소수점 정수 기본값: 0.001  | 
| epochs |  훈련 데이터의 최대 전달 횟수. **선택 사항** 유효한 값: 양수 기본 값: 15  | 
| f\$1beta |  바이너리 또는 멀티클래스 분류에 대한 F 점수 지표를 계산하는 경우 사용할 베타 값. `binary_classifier_model_selection_criteria`에 대해 지정된 값이 `f_beta`인 경우에도 사용됩니다. **선택 사항** 유효한 값: 양의 부동 소수점 정수 기본값: 1.0   | 
| feature\$1dim |  입력 데이터의 특징 수. **선택 사항** 유효한 값: `auto` 또는 양의 정수 기본값: `auto`  | 
| huber\$1delta |  Huber 손실에 대한 파라미터. 훈련 및 지표 검증 도중 델타보다 작은 오차에 대해서는 컴퓨팅 L2 손실, 델타보다 큰 오차에 대해서는 L1 손실. **선택 사항** 유효한 값: 양의 부동 소수점 정수 기본값: 1.0   | 
| init\$1bias |  편향항에 대한 초기 가중치. **선택 사항** 유효한 값: 부동 소수점 정수 기본값: 0  | 
| init\$1method |  모델 가중치에 사용되는 초기 분포 함수를 설정합니다. 함수는 다음과 같습니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/ll_hyperparameters.html) **선택 사항** 유효한 값: `uniform` 또는 `normal` 기본값: `uniform`  | 
| init\$1scale |  모델 가중치에 대한 최초 균등 분포를 조정합니다. `init_method` 하이퍼파라미터가 `uniform`으로 설정된 경우에만 적용됩니다. **선택 사항** 유효한 값: 양의 부동 소수점 정수 기본값: 0.07  | 
| init\$1sigma |  정규 분포에 대한 초기화 표준편차. `init_method` 하이퍼파라미터가 `normal`으로 설정된 경우에만 적용됩니다. **선택 사항** 유효한 값: 양의 부동 소수점 정수 기본 값: 0.01  | 
| l1 |  L1 정규화 파라미터. L1 정규화를 사용하지 않으려면 이 값을 0으로 설정합니다. **선택 사항** 유효한 값: `auto` 또는 음수가 아닌 부동 소수점 기본값: `auto`  | 
| learning\$1rate |  파라미터 업데이트를 위해 옵티마이저에서 사용하는 단계 크기. **선택 사항** 유효한 값: `auto` 또는 양의 부동 소수점 정수 기본값: `auto`, 이 값은 선택한 옵티마이저에 따라 달라집니다.  | 
| loss |  손실 함수를 지정합니다. 사용 가능한 손실 함수와 그 기본값은 `predictor_type`의 값에 따라 달라집니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/ll_hyperparameters.html) 유효한 값: `auto`, `logistic`, `squared_loss`, `absolute_loss`, `hinge_loss`, `eps_insensitive_squared_loss`, `eps_insensitive_absolute_loss`, `quantile_loss` 또는 `huber_loss`  **선택 사항** 기본값: `auto`  | 
| loss\$1insensitivity |  엡실론의 영향을 받지 않는 손실 유형에 대한 파라미터. 훈련 및 지표 검증 도중 이 값보다 작은 모든 오차는 0으로 간주됩니다. **선택 사항** 유효한 값: 양의 부동 소수점 정수 기본 값: 0.01   | 
| lr\$1scheduler\$1factor |  매 `lr_scheduler_step` 하이퍼파라미터마다 학습률은 이 수치만큼 감소합니다. `use_lr_scheduler` 하이퍼파라미터가 `true`으로 설정된 경우에만 적용됩니다. **선택 사항** 유효한 값: `auto` 또는 0부터 1 사이의 양의 부동 소수점 정수 기본값: `auto`  | 
| lr\$1scheduler\$1minimum\$1lr |  학습률은 `lr_scheduler_minimum_lr`에 대해 설정된 값 미만으로 절대 감소하지 않습니다. `use_lr_scheduler` 하이퍼파라미터가 `true`으로 설정된 경우에만 적용됩니다. **선택 사항** 유효한 값: `auto` 또는 양의 부동 소수점 정수 기본값: `auto`  | 
| lr\$1scheduler\$1step |  학습률 감소 사이의 단계 수. `use_lr_scheduler` 하이퍼파라미터가 `true`으로 설정된 경우에만 적용됩니다. **선택 사항** 유효한 값: `auto` 또는 양의 정수 기본값: `auto`  | 
| margin |  `hinge_loss` 함수의 마진. **선택 사항** 유효한 값: 양의 부동 소수점 정수 기본값: 1.0  | 
| mini\$1batch\$1size |  데이터 반복자의 미니 배치당 관측치의 수. **선택 사항** 유효한 값: 양수 기본값: 1000  | 
| momentum |  `sgd` 옵티마이저의 모멘텀. **선택 사항** 유효한 값: `auto` 또는 0부터 1.0 사이의 부동 소수점 정수 기본값: `auto`  | 
| normalize\$1data |  훈련 전에 특징 데이터를 정규화합니다. 데이터 정규화는 각 특징에 대해 평균 값 0을 갖도록 이동하고 단위 표준편차를 갖도록 조정합니다. **선택 사항** 유효값: `auto`, `true` 또는 `false` 기본값: `true`  | 
| normalize\$1label |  레이블을 정규화합니다. 레이블 정규화는 평균 값 0을 갖도록 레이블을 이동하고 단위 표준편차를 갖도록 조정합니다. `auto` 기본값은 회귀 문제에서 레이블을 정규화하지만 분류 문제에서는 정규화하지 않습니다. 분류 문제의 경우 `normalize_label` 하이퍼파라미터를 `true`로 설정하면 알고리즘에서 무시됩니다. **선택 사항** 유효값: `auto`, `true` 또는 `false` 기본값: `auto`  | 
| num\$1calibration\$1samples |  (최적의 임계값을 찾은 경우) 모델 보정에 사용할 검증 데이터 세트의 관측치 수. **선택 사항** 유효한 값: `auto` 또는 양의 정수 기본값: `auto`  | 
| num\$1models |  병렬로 훈련할 모델 수. 기본값 `auto`의 경우 알고리즘이 훈련할 병렬 모델의 수를 결정합니다. 주어진 훈련 파라미터(정규화, 옵티마이저, 손실)에 따라 한 모델이 훈련되고, 나머지는 근접 파라미터에 따라 훈련됩니다. **선택 사항** 유효한 값: `auto` 또는 양의 정수 기본값: `auto`  | 
| num\$1point\$1for\$1scaler |  정규화 또는 비편향항 계산에 사용할 데이터 포인트의 수. **선택 사항** 유효한 값: 양수 기본값: 10,000  | 
| optimizer |  사용할 최적화 알고리즘. **선택 사항** 유효한 값: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/ll_hyperparameters.html) 기본값: `auto`. `auto`의 기본 설정은 `adam`입니다.  | 
| positive\$1example\$1weight\$1mult |  바이너리 분류자 훈련 시 양수 예제에 할당된 가중치. 음수 예제 가중치는 1로 고정됩니다. 이 알고리즘에서 음수 대 양수 예제 분류의 오차가 훈련 손실에 동일한 영향을 미치도록 가중치를 선택하려는 경우 `balanced`를 지정합니다.** 이 알고리즘이 성능을 최적화하는 가중치를 선택하도록 하려는 경우 `auto`를 지정합니다. **선택 사항** 유효한 값: `balanced`, `auto` 또는 양의 부동 소수점 정수 기본값: 1.0  | 
| quantile |  분위 손실에 대한 분위. 분위 q의 경우 이 모델은 `true_label`의 값을 가능성 q를 사용한 예측보다 크도록 예측을 생성하려고 합니다. **선택 사항** 유효한 값: 0부터 1 사이의 부동 소수점 정수 기본 값: 0.5  | 
| target\$1precision |  대상 정밀도. `binary_classifier_model_selection_criteria`가 `recall_at_target_precision`인 경우 재현율이 최대화된 상태에서는 정밀도가 이 값에서 유지됩니다. **선택 사항** 유효한 값: 0부터 1.0 사이의 부동 소수점 정수 기본값: 0.8  | 
| target\$1recall |  대상 재현율. `binary_classifier_model_selection_criteria`가 `precision_at_target_recall`인 경우 정밀도가 최대화된 상태에서는 재현율이 이 값에서 유지됩니다. **선택 사항** 유효한 값: 0부터 1.0 사이의 부동 소수점 정수 기본값: 0.8  | 
| unbias\$1data |  평균이 0이 되도록 훈련 전 특징을 비편향화합니다. `use_bias` 하이퍼파라미터가 `true`로 설정되어 있으므로 기본적으로 데이터는 비편향화됩니다. **선택 사항** 유효값: `auto`, `true` 또는 `false` 기본값: `auto`  | 
| unbias\$1label |  평균이 0이 되도록 훈련 전 레이블을 비편향화합니다. `use_bias` 하이퍼파라미터가 `true`로 설정된 경우에만 회귀에 적용됩니다. **선택 사항** 유효값: `auto`, `true` 또는 `false` 기본값: `auto`  | 
| use\$1bias |  모델이 편향항을 포함해야 할지 여부를 지정합니다. 편향항은 선형 방정식의 절편항입니다. **선택 사항** 유효한 값: `true` 또는 `false` 기본값: `true`  | 
| use\$1lr\$1scheduler |  학습률에 대한 스케줄러를 사용할지 여부. 스케줄러를 사용하려는 경우 `true`를 지정합니다. **선택 사항** 유효한 값: `true` 또는 `false` 기본값: `true`  | 
| wd |  가중치 감소 파라미터(L2 정규화 파라미터라고도 함). L2 정규화를 사용하지 않으려면 이 값을 0으로 설정합니다. **선택 사항** 유효한 값: `auto` 또는 음수가 아닌 부동 소수점 정수 기본값: `auto`  | 

# 선형 학습자 모델 튜닝
<a name="linear-learner-tuning"></a>

하이퍼파라미터 튜닝이라고도 하는 자동 모델 튜닝은 데이터세트에 대한 광범위한 하이퍼파라미터를 테스트하는 여러 작업을 실행하여 최적의 모델 버전을 찾습니다.** 튜닝 가능한 하이퍼파라미터, 각 하이퍼파라미터에 대한 값 범위 및 목표 지표를 선택합니다. 알고리즘에서 계산하는 지표 중에서 목표 지표를 선택합니다. 자동 모델 튜닝은 선택한 하이퍼파라미터를 검색하여 목표 지표를 최적화하는 모델을 만드는 값 조합을 찾습니다.

또한 Linear Learner 알고리즘은 여기서 설명하는 자동 모델 튜닝 기능과 별도로 하이퍼파라미터 튜닝을 위한 내부 메커니즘을 가지고 있습니다. 기본적으로 Linear Learner 알고리즘은 여러 모델을 병렬로 훈련해 하이퍼파라미터를 튜닝합니다. 자동 모델 튜닝을 사용하는 경우 Linear Learner 내부 튜닝 메커니즘은 자동으로 꺼집니다. 병렬 모델 수 `num_models`는 1로 설정됩니다. 이 알고리즘에서는 `num_models`에 대해 설정한 모든 값이 무시됩니다.

모델 튜닝에 대한 추가 정보는 [SageMaker AI로 자동 모델 튜닝](automatic-model-tuning.md) 섹션을 참조하세요.

## 선형 학습자 알고리즘으로 계산되는 지표
<a name="linear-learner-metrics"></a>

선형 학습자 알고리즘은 다음 표에 나오는 지표를 보고합니다. 이들 지표는 훈련 중 계산됩니다. 이러한 지표 중 하나를 목표 지표로 선택합니다. 과적합을 피하기 위해 훈련 지표 대신 검증 지표를 기준으로 모델을 튜닝하는 것이 좋습니다.


| 지표 이름 | 설명 | 최적화 방향 | 
| --- | --- | --- | 
| test:absolute\$1loss |  테스트 데이터 세트에 대한 최종 모델의 절대 손실. 이 목표 지표는 회귀에만 유효합니다.  |  최소화  | 
| test:binary\$1classification\$1accuracy |  테스트 데이터 세트에 대한 최종 모델의 정확도. 이 목표 지표는 바이너리 분류에만 유효합니다.  |  최대화  | 
| test:binary\$1f\$1beta |  테스트 데이터 세트에 대한 최종 모델의 F-베타 점수. 기본적으로, 이 점수는 정밀도와 재현율의 조화 평균인 F1 점수입니다. 이 목표 지표는 바이너리 분류에만 유효합니다.  |  최대화  | 
| test:dcg |  테스트 데이터 세트에서 최종 모델의 할인된 누적 이득입니다. 이 목표 지표는 멀티클래스 분류에만 유효합니다.  |  최대화  | 
| test:macro\$1f\$1beta |  테스트 데이터 세트에 대한 최종 모델의 F-베타 점수. 이 목표 지표는 멀티클래스 분류에만 유효합니다.  |  최대화  | 
| test:macro\$1precision |  테스트 데이터 세트에 대한 최종 모델의 정밀도 점수. 이 목표 지표는 멀티클래스 분류에만 유효합니다.  |  최대화  | 
| test:macro\$1recall |  테스트 데이터 세트에 대한 최종 모델의 재현율 점수. 이 목표 지표는 멀티클래스 분류에만 유효합니다.  |  최대화  | 
| test:mse |  테스트 데이터 세트에 대한 최종 모델의 평균 제곱 오차. 이 목표 지표는 회귀에만 유효합니다.  |  최소화  | 
| test:multiclass\$1accuracy |  테스트 데이터 세트에 대한 최종 모델의 정확도. 이 목표 지표는 멀티클래스 분류에만 유효합니다.  |  최대화  | 
| test:multiclass\$1top\$1k\$1accuracy |  테스트 데이터 세트에서 예측된 상위 k개 레이블 간의 정확도입니다. 이 측정치를 목표로 선택하는 경우 `accuracy_top_k` 하이퍼파라미터를 사용하여 k 값을 설정하는 것이 좋습니다. 이 목표 지표는 멀티클래스 분류에만 유효합니다.  |  최대화  | 
| test:objective\$1loss |  모델 훈련 후 테스트 데이터 세트에 대한 목표 손실 함수의 평균값. 기본적으로 이러한 손실은 바이너리 분류의 경우 로지스틱 손실이고, 회귀의 경우 제곱 손실입니다. 이러한 손실을 다른 유형으로 설정하려면 `loss` 하이퍼파라미터를 사용하세요.  |  최소화  | 
| test:precision |  테스트 데이터 세트에 대한 최종 모델의 정밀도. 이 지표를 목표 지표로 선택한 경우에는 `binary_classifier_model_selection` 하이퍼파라미터를 `precision_at_target_recall`로 설정하고 `target_recall` 하이퍼파라미터에 대한 값을 설정하여 목표 재현율을 설정하는 것이 좋습니다. 이 목표 지표는 바이너리 분류에만 유효합니다.  |  최대화  | 
| test:recall |  테스트 데이터 세트에 대한 최종 모델의 재현율. 이 지표를 목표 지표로 선택한 경우에는 `binary_classifier_model_selection` 하이퍼파라미터를 `recall_at_target_precision`으로 설정하고 `target_precision` 하이퍼파라미터에 대한 값을 설정하여 목표 정밀도를 설정하는 것이 좋습니다. 이 목표 지표는 바이너리 분류에만 유효합니다.  |  최대화  | 
| test:roc\$1auc\$1score |  테스트 데이터 세트에서 최종 모델의 수신 작동 특성 곡선(ROC 곡선) 아래 영역. 이 목표 지표는 바이너리 분류에만 유효합니다.  |  최대화  | 
| validation:absolute\$1loss |  검증 데이터 세트에 대한 최종 모델의 절대 손실. 이 목표 지표는 회귀에만 유효합니다.  |  최소화  | 
| validation:binary\$1classification\$1accuracy |  검증 데이터 세트에 대한 최종 모델의 정확도. 이 목표 지표는 바이너리 분류에만 유효합니다.  |  최대화  | 
| validation:binary\$1f\$1beta |  검증 데이터 세트에 대한 최종 모델의 F-베타 점수. 기본적으로, F-베타 점수는 `validation:precision` 및 `validation:recall` 지표의 조화 평균인 F1 점수입니다. 이 목표 지표는 바이너리 분류에만 유효합니다.  |  최대화  | 
| validation:dcg |  검증 데이터 세트에서 최종 모델의 할인된 누적 이득입니다. 이 목표 지표는 멀티클래스 분류에만 유효합니다.  |  최대화  | 
| validation:macro\$1f\$1beta |  검증 데이터 세트에 대한 최종 모델의 F-베타 점수. 이 목표 지표는 멀티클래스 분류에만 유효합니다.  |  최대화  | 
| validation:macro\$1precision |  검증 데이터 세트에 대한 최종 모델의 정밀도 점수. 이 목표 지표는 멀티클래스 분류에만 유효합니다.  |  최대화  | 
| validation:macro\$1recall |  검증 데이터 세트에 대한 최종 모델의 재현율 점수. 이 목표 지표는 멀티클래스 분류에만 유효합니다.  |  최대화  | 
| validation:mse |  검증 데이터 세트에 대한 최종 모델의 평균 제곱 오차. 이 목표 지표는 회귀에만 유효합니다.  |  최소화  | 
| validation:multiclass\$1accuracy |  검증 데이터 세트에 대한 최종 모델의 정확도. 이 목표 지표는 멀티클래스 분류에만 유효합니다.  |  최대화  | 
| validation:multiclass\$1top\$1k\$1accuracy |  검증 데이터 세트에서 예측된 상위 k개 레이블 간의 정확도입니다. 이 측정치를 목표로 선택하는 경우 `accuracy_top_k` 하이퍼파라미터를 사용하여 k 값을 설정하는 것이 좋습니다. 이 목표 지표는 멀티클래스 분류에만 유효합니다.  |  최대화  | 
| validation:objective\$1loss |  매 epoch마다 검증 데이터 세트에 대한 목표 손실 함수의 평균값. 기본적으로 이러한 손실은 바이너리 분류의 경우 로지스틱 손실이고, 회귀의 경우 제곱 손실입니다. 이러한 손실을 다른 유형으로 설정하려면 `loss` 하이퍼파라미터를 사용하세요.  |  최소화  | 
| validation:precision |  검증 데이터 세트에 대한 최종 모델의 정확도. 이 지표를 목표 지표로 선택한 경우에는 `binary_classifier_model_selection` 하이퍼파라미터를 `precision_at_target_recall`로 설정하고 `target_recall` 하이퍼파라미터에 대한 값을 설정하여 목표 재현율을 설정하는 것이 좋습니다. 이 목표 지표는 바이너리 분류에만 유효합니다.  |  최대화  | 
| validation:recall |  검증 데이터 세트에 대한 최종 모델의 재현율. 이 지표를 목표 지표로 선택한 경우에는 `binary_classifier_model_selection` 하이퍼파라미터를 `recall_at_target_precision`으로 설정하고 `target_precision` 하이퍼파라미터에 대한 값을 설정하여 목표 정밀도를 설정하는 것이 좋습니다. 이 목표 지표는 바이너리 분류에만 유효합니다.  |  최대화  | 
| validation:rmse |  검증 데이터 세트에 대한 최종 모델의 평균 제곱근 오차. 이 목표 지표는 회귀에만 유효합니다.  |  최소화  | 
| validation:roc\$1auc\$1score |  검증 데이터 세트에서 최종 모델의 수신 작동 특성 곡선(ROC 곡선) 아래 영역. 이 목표 지표는 바이너리 분류에만 유효합니다.  |  최대화  | 

## 선형 학습자 하이퍼파라미터 튜닝
<a name="linear-learner-tunable-hyperparameters"></a>

다음 하이퍼파라미터를 사용하여 Linear Learner 모델을 튜닝할 수 있습니다.


| 파라미터 이름 | 파라미터 유형 | 권장 범위 | 
| --- | --- | --- | 
| wd |  `ContinuousParameterRanges`  |  `MinValue: ``1e-7`, `MaxValue`: `1`  | 
| l1 |  `ContinuousParameterRanges`  |  `MinValue`: `1e-7`, `MaxValue`: `1`  | 
| learning\$1rate |  `ContinuousParameterRanges`  |  `MinValue`: `1e-5`, `MaxValue`: `1`  | 
| mini\$1batch\$1size |  `IntegerParameterRanges`  |  `MinValue`: `100`, `MaxValue`: `5000`  | 
| use\$1bias |  `CategoricalParameterRanges`  |  `[True, False]`  | 
| positive\$1example\$1weight\$1mult |  `ContinuousParameterRanges`  |  `MinValue`: 1e-5, `MaxValue`: `1e5`  | 

# 선형 학습자 응답 형식
<a name="LL-in-formats"></a>

## JSON 응답 형식
<a name="LL-json"></a>

모든 Amazon SageMaker AI 기본 제공 알고리즘은 [공통 데이터 형식 - 추론](https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-inference.html)에서 설명하는 공통 입력 추론 형식을 따릅니다. 다음은 SageMaker AI 선형 학습자 알고리즘에 사용 가능한 출력 형식입니다.

**바이너리 분류**

```
let response =   {
    "predictions":    [
        {
            "score": 0.4,
            "predicted_label": 0
        } 
    ]
}
```

**멀티클래스 분류**

```
let response =   {
    "predictions":    [
        {
            "score": [0.1, 0.2, 0.4, 0.3],
            "predicted_label": 2
        } 
    ]
}
```

**회귀**

```
let response =   {
    "predictions":    [
        {
            "score": 0.4
        } 
    ]
}
```

## JSONLINES 응답 형식
<a name="LL-jsonlines"></a>

**바이너리 분류**

```
{"score": 0.4, "predicted_label": 0}
```

**멀티클래스 분류**

```
{"score": [0.1, 0.2, 0.4, 0.3], "predicted_label": 2}
```

**회귀**

```
{"score": 0.4}
```

## RECORDIO 응답 형식
<a name="LL-recordio"></a>

**바이너리 분류**

```
[
    Record = {
        features = {},
        label = {
            'score': {
                keys: [],
                values: [0.4]  # float32
            },
            'predicted_label': {
                keys: [],
                values: [0.0]  # float32
            }
        }
    }
]
```

**멀티클래스 분류**

```
[
    Record = {
    "features": [],
    "label":    {
            "score":  {
                    "values":   [0.1, 0.2, 0.3, 0.4]   
            },
            "predicted_label":  {
                    "values":   [3]
            }
       },
    "uid":  "abc123",
    "metadata": "{created_at: '2017-06-03'}"
   }
]
```

**회귀**

```
[
    Record = {
        features = {},
        label = {
            'score': {
                keys: [],
                values: [0.4]  # float32
            }   
        }
    }
]
```