2클래스 로컬 심층 지원 벡터 컴퓨터
중요
Machine Learning Studio(클래식)에 대한 지원은 2024년 8월 31일에 종료됩니다. 해당 날짜까지 Azure Machine Learning으로 전환하는 것이 좋습니다.
2021년 12월 1일부터 새로운 Machine Learning Studio(클래식) 리소스를 만들 수 없습니다. 2024년 8월 31일까지는 기존 Machine Learning Studio(클래식) 리소스를 계속 사용할 수 있습니다.
- ML Studio(클래식)에서 Azure Machine Learning으로 기계 학습 프로젝트 이동에 대한 정보를 참조하세요.
- Azure Machine Learning에 대한 자세한 정보.
ML Studio(클래식) 설명서는 사용 중지되며 나중에 업데이트되지 않을 수 있습니다.
로컬 심층 지원 벡터 컴퓨터 알고리즘을 사용하여 이진 분류 모델 만 들기
범주: Machine Learning/모델 초기화/분류
모듈 개요
이 문서에서는 Machine Learning Studio(클래식)에서 2클래스 로컬 딥 지원 벡터 머신 모듈을 사용하여 효율적인 예측에 최적화된 2클래스 비선형 SVM(지원 벡터 머신) 분류자를 만드는 방법을 설명합니다.
SVM(지원 벡터 머신)은 매우 널리 사용되며 연구 주제로도 활용되는 지도 학습 모델 클래스로서, 선형 및 비선형 분류 작업에서 사용할 수 있습니다. 최근에는 대규모 학습 집합에 맞게 효율적으로 확장할 수 있도록 이러한 모델을 최적화하는 방식과 관련된 연구가 집중적으로 진행되었습니다. Microsoft Research의 이 구현에서는 분류 정확도는 대부분 유지하면서 학습에 필요한 시간은 줄일 수 있도록 데이터 요소를 기능 공간에 매핑하는 데 사용되는 커널 함수가 구체적으로 설계되었습니다.
이 모델은 감독 학습 방법이므로 레이블 열을 포함하는 태그가 지정된 데이터 세트가 필요합니다.
모델 매개 변수를 정의한 후 모델 및 태그가 지정된 데이터 세트를 모델 학습 또는 모델 하이퍼 매개 변수 조정에 대한 입력으로 제공하여 학습시킵니다. 그러면 학습된 모델을 사용하여 새 입력 값을 예측할 수 있습니다.
로컬 심층 지원 벡터 머신을 Two-Class 구성하는 방법
Studio(클래식)에서 실험에 2클래스 Locally-Deep 지원 벡터 머신 모듈을 추가합니다.
모델을 학습시키는 방법을 트레이너 모드 만들기 옵션을 설정하여 지정합니다.
단일 매개 변수: 모델 구성 방법을 알고 있는 경우 특정 값 집합을 인수로 제공합니다.
매개 변수 범위: 최상의 매개 변수를 잘 모르는 경우 여러 값을 지정하고 모델 하이퍼 매개 변수 조정 모듈을 사용하여 최적의 구성을 찾아 최적의 매개 변수를 찾을 수 있습니다. 트레이너는 제공한 설정의 여러 조합을 반복하고 최상의 모델을 생성하는 값의 조합을 결정합니다.
트리의 깊이에 대해 로컬 심층 커널 학습 SVM(LD-SVM) 모델에서 만들 수 있는 트리의 최대 깊이를 지정합니다.
트리 깊이에 비례하여 학습 비용이 증가하므로 모델 빌드 시 사용할 수 있는 시간에 따라 적절한 깊이를 선택합니다.
깊이가 하나씩 증가하면 학습 시간은 약 2배로 늘어납니다.
깊이가 증가하면 예측 정확도는 높아지다가 최고점에 도달하면 낮아집니다.
람다 W의 경우 정규화 용어에 지정해야 하는 가중치를 지정합니다.
정규화에서는 학습된 분류자의 큰 값 구성 요소가 제한됩니다. 지정된 기능 수에 비해 샘플 수가 부족한 경우 L2 정규화를 사용하여 과잉 맞춤을 방지할 수 있습니다. 람다 W에 대한 값이 클수록 분류자 가중치 정규화에 더 중점을 두고 학습 집합 분류 오류에 대해 더 적게 강조한다는 것을 의미합니다.
기본값(0.1)을 사용하는 경우 작업이 정상적으로 수행되지 않으면 {0.0001, 0.001, 0.01}도 사용해 보아야 합니다.
람다 세타의 경우 지역 경계와 가장 가까운 데이터 요소 사이에 남은 공간을 지정합니다.
이 모델은 데이터 공간과 기능 공간을 영역으로 분할하는 방식으로 작동합니다. 학습된 모델의 영역 경계가 학습 데이터 요소에 너무 가깝도록 람다 세타 가 최소화되면 모델은 학습 오류가 낮지만 과잉 맞춤으로 인해 높은 테스트 오류가 발생할 수 있습니다.
유효성을 검사해야 하는 매개 변수 수를 줄이려면 람다 세타를 람다W에 사용되는 값의 1/10으로 설정하는 것이 좋습니다. 값이 크면 학습 집합에서 분류 오류를 최소화하는 것보다 과잉 맞춤을 방지하는 데 더 중점을 둡 수 있습니다.
기본값(0.01)이 제대로 작동하지 않으면 {0.0001, 0.001 및 0.1}도 시도해야 합니다.
람다 세타 프라임의 경우 모델의 의사 결정 경계에 허용되는 곡률의 양을 제어하는 값을 입력합니다.
값이 크면 모델이 곡선 의사 결정 경계를 학습할 수 있는 유연성을 제공하는 반면, 값이 작을수록 의사 결정 경계가 단계별 선형 패턴으로 제한될 수 있습니다.
이 매개 변수는 Sigma 매개 변수와 함께 작동합니다. 유효성을 검사해야 하는 매개 변수의 수를 줄이려는 경우에는 대개 람다 세타 소수를 람다 W 값의 1/10로 설정하는 것이 가장 좋습니다.
기본값(0.01)을 사용하는 경우 작업이 정상적으로 수행되지 않으면 {0.0001, 0.001 및 0.1}도 사용해 보아야 합니다.
Sigmoid 선명도의 경우 크기 조정 매개 변수 σ 사용할 값을 입력합니다.
값이 크면 로컬 커널 으로의 tanh (theta)가 포화된 반면, 값이 작으면 theta에 대한 선형 작동 범위가 더 커집니다. Technical Notes 섹션에서 전체 최적화 수식을 찾을 수 있습니다.
기본값(1)을 사용하는 경우 작업이 정상적으로 수행되지 않으면 {0.1, 0.01, 0.001}도 사용해 보아야 합니다.
반복 횟수에서 알고리즘이 예제의 임의 하위 집합으로 분류자 매개 변수를 업데이트해야 하는 횟수를 나타냅니다.
기능 정규화의 경우 기능 값을 정규화하는 데 사용할 메서드를 선택합니다. 지원되는 방법은 다음과 같습니다.
Binning normalizer: 범주화 정규화는 동일한 크기의 bin을 만든 다음 각 bin의 모든 값을 총 bin 수로 나누도록 정규화합니다.
Gaussian normalizer: Gaussian normalizer는 각 기능의 값을 크기 조정하여 평균이 0이고 분산이 1이 됩니다. 이 작업은 각 기능의 평균 및 분산을 계산하여 수행됩니다. 그런 다음 각 인스턴스에 대해 평균 값이 빼지고 결과는 분산의 제곱근(표준 편차)으로 나뉩니다.
Min-Max normalizer: min-max normalizer는 모든 기능을 [0,1] 간격으로 선형적으로 다시 크기 조정합니다.
[0,1] 간격으로 크기를 재조정하는 작업은 최소값이 0이 되도록 각 기능의 값을 이동한 다음, 새 최대값(원래 최대값과 최소값의 차이)으로 나누어 수행합니다.
정규화 안 함: 정규화가 수행되지 않습니다.
난수 시드에 실행에서 재현성을 보장하려면 시드로 사용할 값을 입력합니다.
알 수 없는 범주 수준 허용 옵션을 선택하여 테스트 또는 유효성 검사 집합에서 알 수 없는 값에 대한 그룹을 만듭니다.
선택을 취소하면 모델에서 학습 데이터에 포함된 값만 수락할 수 있습니다. 이 옵션을 선택한 경우 알려진 값에 대한 모델의 정확도가 떨어질 수 있지만, 새로운(알 수 없는) 값의 예측 정확도를 높일 수 있습니다.
태그가 지정된 데이터 세트와 학습 모듈 중 하나를 커넥트.
트레이너 모드 만들기를 단일 매개 변수로 설정한 경우 모델 학습 모듈을 사용합니다.
트레이너 모드 만들기를 매개 변수 범위로 설정한 경우 모델 하이퍼 매개 변수 튜닝 모듈을 사용합니다.
참고
모델 학습에 매개 변수 범위를 전달하면 매개 변수 범위 목록의 첫 번째 값만 사용됩니다.
단일 매개 변수 값 세트를 모델 하이퍼 매개 변수 튜닝 모듈에 전달하는 경우 각 매개 변수에 대한 설정 범위를 요청할 때 해당 값을 무시하고 학습자에 대한 기본값을 사용합니다.
매개 변수 범위 옵션을 선택하고 임의 매개 변수의 단일 값을 입력하는 경우 다른 매개 변수가 값 범위에서 변경되더라도 지정한 단일 값은 스윕 전체에서 사용됩니다.
실험을 실행합니다.
결과
학습 완료 후 다음이 수행됩니다.
모델의 매개 변수 요약을 보려면 모델 학습 모듈 또는 모델 하이퍼 매개 변수 튜닝 모듈의 출력을 마우스 오른쪽 단추로 클릭하고 시각화를 선택합니다.
학습된 모델의 snapshpt를 저장하려면 학습된 모델 출력을 마우스 오른쪽 단추 로 클릭하고 학습된 모델로 저장을 선택합니다. 이 모델은 동일한 실험의 연속 실행에서 업데이트되지 않습니다.
레이블이 지정된 데이터 집합에 대해 교차 유효성 검사를 수행하려면 학습되지 않은 모델을 모델 교차 유효성 검사에 연결합니다.
기술 정보
이 섹션에는 구현 세부 정보, 팁, 자주 묻는 질문에 대한 답변이 포함되어 있습니다.
사용 팁
이 LD-SVM 분류자는 다음과 같은 상황에서 가장 유용합니다.
이진 분류 관련 문제가 있거나 문제의 범위를 이진 분류 작업으로 좁힐 수 있는 경우
선형 분류자를 사용해 보았으나 성능이 낮은 경우
비선형 SVM 또는 기타 분류자를 사용한 결과 분류 정확도는 우수하지만 모델 학습 시간이 너무 오래 걸리는 경우
학습 시간을 줄일 수 있으면 예측 정확도는 다소 낮아져도 되는 경우
LD-SVM 모델은 선형 모델(예: 로지스틱 회귀)의 성능이 저하될 정도로 데이터가 복잡한 경우 선택하는 것이 좋습니다. 또한 LD-SVM 모델은 작기 때문에 모바일 장치 또는 복잡한 모델(예: 신경망)이 너무 커서 효율적으로 활용될 수 없는 다른 시나리오에서 사용할 수 있습니다.
반대로 모델 크기에 신경 쓰지 않거나 단순성이나 예측 속도를 위해 선형 모델이 필요한 경우에는 이 모델을 사용하지 않아야 합니다. 선형 분류자가 이미 좋은 결과를 제공하거나 적은 양의 비선형성을 추가하여 높은 분류 정확도를 얻을 수 있는 경우에도 LD-SVM으로 변경할 필요가 없습니다.
구현 세부 정보
LD-SVM 모델은 비선형 SVM 예측의 속도를 개선하기 위한 지속적 노력의 일환으로 Microsoft Research에서 개발되었습니다. 그중에서도 로컬 다중 커널 학습 방법에 대해 Gonen 및 Alpaydin이 2008년에 개발한 기능이 특히 유용합니다. 로컬 커널 함수를 사용하면 모델을 비선형적으로 만드는 고차원, 스파스 및 심층 계산 기능을 비롯하여 임의로 포함된 로컬 기능을 모델이 학습할 수 있습니다.
LD-SVM은 다음과 같은 이유로 대부분의 다른 분류자보다 빠릅니다.
모델이 로컬로 선형인 의사 결정 경계를 학습합니다. 따라서 테스트 지점을 기능 공간 전체에 있는 모든 의사 결정 경계의 집합에 대해 테스트하는 대신 로컬 의사 결정 경계에 대해 테스트하여 효율적으로 분류할 수 있습니다.
모델은 효율적인 원시 기반 루틴을 사용하여 50만 개가 넘는 학습 지점을 사용하여 대규모 학습 집합으로 확장되는 트리 구조로 포함된 로컬 기능의 공간을 최적화합니다.
로컬 의사 결정 경계에 대해 특정 지점을 테스트하는 비용이 학습 지점 수의 로그로 계산됩니다.
이러한 최적화로 인해 LD-SVM 모델은 기존의 SVM 모델에 비해 학습 속도가 매우 빠릅니다.
최적화 수식
연구
알고리즘 및 기본 연구에 대한 자세한 내용은 효율적인 비선형 SVM 예측에 대한 로컬 딥 커널 Learning 참조하세요.
모듈 매개 변수
Name | 범위 | Type | 기본값 | Description |
---|---|---|---|---|
트레이너 모드 만들기 | 목록 | 학습자 매개 변수 옵션 | 단일 매개 변수입니다. | 고급 학습자 옵션: 1. 단일 매개 변수를 사용하여 학습자 만들기 2. 매개 변수 범위를 사용하여 학습자 만들기 |
트리 깊이 | >=1 | 정수 | 3 | 로컬 심층 SVM 트리의 깊이입니다. |
람다 W | >=1.401298E-45 | Float | 0.1 | 분류자 매개 변수 람다 W의 정규화 가중치입니다. |
람다 세타 | >=1.401298E-45 | Float | 0.01 | 분류자 매개 변수 람다 세타의 정규화 가중치입니다. |
람다 세타 소수 | >=1.401298E-45 | Float | 0.01 | 분류자 매개 변수 람다 세타 프라임의 정규화 가중치입니다. |
시그모이드 선명도 | >=1.401298E-45 | Float | 1.0 | 시그모이드 선명도입니다. |
트리 깊이 | [1;int.MaxValue] | ParameterRangeSettings | 1; 3; 5; 7 | 로컬 심층 SVM 트리의 깊이 범위입니다. |
람다 W | [1.401298E-45;3.40282347E+38] | ParameterRangeSettings | 0.1; 0.01; 0.001 | 분류자 매개 변수 람다 W에 대한 정규화 가중치의 범위입니다. |
람다 세타 | [1.401298E-45;3.40282347E+38] | ParameterRangeSettings | 0.1; 0.01; 0.001 | 분류자 매개 변수 람다 세타에 대한 정규화 가중치의 범위입니다. |
람다 세타 소수 | [1.401298E-45;3.40282347E+38] | ParameterRangeSettings | 0.1; 0.01; 0.001 | 분류자 매개 변수 람다 세타 프라임에 대한 정규화 가중치의 범위입니다. |
시그모이드 선명도 | [1.401298E-45;3.40282347E+38] | ParameterRangeSettings | 1.0; 0.1; 0.01 | 시그모이드 선명도의 범위입니다. |
기능 노멀라이저 | 목록 | 노멀라이저 유형 | 최소-최대 노멀라이저 | 학습 예제에 적용할 정규화 유형입니다. |
반복 횟수 | >=1 | 정수 | 15000 | 학습 반복 횟수입니다. |
반복 횟수 | [1;int.MaxValue] | ParameterRangeSettings | 10000; 15000; 20000 | 반복 학습 횟수의 범위입니다. |
난수 초기값 | 모두 | 정수 | 모델에서 사용하는 난수 생성기의 초기값입니다. 기본값을 사용하려면 비워 둡니다. | |
알 수 없는 범주 수준 허용 | 모두 | 부울 | True | True로 설정하면 각 범주 열에 대해 추가 수준을 만듭니다. 학습 데이터 집합에서 사용할 수 없는 테스트 데이터 집합의 모든 수준은 이 추가 수준으로 매핑됩니다. |
출력
Name | Type | Description |
---|---|---|
학습되지 않은 모델 | ILearner 인터페이스 | 학습되지 않은 이진 분류 모델입니다. |