앞서 이진 분류 두 가지 가능한 선택 항목 중 하나를 선택할 수 있는 모델입니다. 예를 들면 다음과 같습니다.
- 특정 이메일이 스팸이거나 스팸이 아닙니다.
- 주어진 종양이 악성 또는 양성입니다.
이 섹션에서는 다중 클래스 분류 여러 가능성 중에서 선택할 수 있습니다. 예를 들면 다음과 같습니다.
- 이 개는 비글인가요, 바셋하운드인가요, 아니면 블러드하운드인가요?
- 이 꽃은 시베리안 아이리스인가요, 더치 아이리스, 블루 플래그 아이리스, 아니면 드워프 비어디드 아이리스인가요?
- 이 비행기가 보잉 747인가요, 에어버스 320인가요, 보잉 777인가요, 엠브라에르 190인가요?
- 사과, 곰, 사탕, 개 또는 달걀의 이미지인가요?
실제로 수백만 개 중 하나를 선택해야 하는 다중 클래스 문제도 있습니다. 구성할 수 있습니다 예를 들어 다중 클래스 분류를 거의 모든 것의 이미지를 식별할 수 있습니다.
이 섹션에서는 다중 클래스 분류의 두 가지 주요 변형을 자세히 설명합니다.
일대다
일대다는 이진 분류를 사용하는 방법을 제공합니다. '예' 또는 '아니요' 예측 결과를 제공합니다.
가능한 해가 N개인 분류 문제에서는 일대다(one-vs.-all) 한 개의 이진 분류기로 구성되며 가능한 각 결과에 대한 분류기입니다. 학습 중에는 모델이 실행됩니다. 이진 분류기의 시퀀스를 통해 각각을 학습시켜 별개의 분류 질문입니다.
예를 들어, 과일 한 조각의 사진을 4, 인식기가 서로 다른 학습자가 될 수 있으며, 각 인식기는 서로 다른 예/아니요에 답변합니다. 질문:
- 사과 이미지인가요?
- 주황색 이미지인가요?
- 바나나 이미지인가요?
- 포도 이미지인가요?
다음 이미지는 이것이 실제로 어떻게 작동하는지 보여줍니다.
![그림 7. 4가지 다른 이미지에 입력되는 배 이미지
바이너리 분류 기준 모델입니다. 첫 번째 모델은 '사과'를 예측합니다. 또는 '아님
사과'로 지정되고 예상 검색어는 '사과 아님'입니다. 두 번째 모델은
'주황색' '오렌지 아님'으로 검색했을 때 이 단어의 예상 검색어는 '오렌지 아님'입니다. 이
세 번째 모델은 '배'를 예측합니다. '배지 아님'에 대한 예측이
'배'라고 합니다. 네 번째 모델은 '포도'를 예측합니다. 또는 '포도가 아닌'
'not grape'인 것을 알 수 있습니다](https://developers.google.cn/static/machine-learning/crash-course/neural-networks/images/one_vs_all_binary_classifiers.png?authuser=9&hl=ko)
이 접근 방식은 총 클래스 수가 작지만 클래스 수가 증가함에 따라 증가하기 시작했습니다.
훨씬 더 효율적인 일대다 모델을 만들 수 있습니다 각 출력 노드가 서로 다른 클래스에 대해 자세히 알아보세요. 다음 이미지는 이 접근 방식을 보여줍니다.
![그림 8. 입력 레이어와 같은 아키텍처로 구성된 신경망
노드 1개, 노드가 3개인 히든 레이어, 노드가 4개인 히든 레이어
4개의 노드가 있는 출력 레이어입니다. 입력 노드에는 배 이미지가 제공됩니다.
시그모이드 활성화 함수가 출력 레이어에 적용됩니다. 각
출력 노드는 이미지가
지정되어 있을 확률을
과일을 먹었습니다. 출력 노드 1은 'Is apple?'을 나타냅니다. 값은 0.34입니다.
출력 노드 2는 'Is orange?'을 값은 0.18입니다.
출력 노드 3은 'Is pear?'를 나타냅니다. 값은 0.84입니다
출력 노드 4는 'Is grape?'을 값은 0.07입니다.](https://developers.google.cn/static/machine-learning/crash-course/neural-networks/images/one_vs_all_neural_net.png?authuser=9&hl=ko)
1 대 1 (소프트맥스)
그림 8의 출력 레이어에서 확률 값이 합계가 1.0 (또는 100%)이 되지 않습니다. 실제로 합하면 1.43입니다. 일대다(one-vs.-all) 각 이진 결과 세트의 확률은 서로 독립적으로 작동합니다. 다시 말해서 (사과) '사과 아님' 대비 다른 광고 항목의 게재 가능성을 고려하지 않고 과일 옵션: '오렌지', '배', '포도'
각 과일의 확률을 예측하려면 어떻게 해야 할까요? 이 경우 '사과'를 예측하지 않고 '아님'과 '사과'라는 단어를 '주황색' 대비 '배' 비교 '포도'로 바꾸세요. 이러한 유형의 다중 클래스 분류를 일대일 분류라고 합니다.
동일한 유형의 신경망을 사용하여 일대일 분류를 구현할 수 있습니다. 일대다 분류에 사용되는 네트워크 아키텍처로, 한 가지 주요 변경사항이 있습니다. 출력 레이어에 다른 변환을 적용해야 합니다.
일대다 모델의 경우, 각 출력값에 시그모이드 활성화 함수를 적용했습니다. 그 결과 각 노드에 대해 0과 1 사이의 출력값이 이러한 값이 정확히 1이 된다는 것을 보장하지는 않았습니다.
일대일의 경우, 소프트맥스라는 함수를 대신 적용할 수 있습니다. 다중 클래스 문제에서 각 클래스에 소수 확률을 할당합니다. 모든 확률의 합이 1.0이 됩니다. 이러한 추가 제약 조건 학습이 수렴되지 않는 경우보다 더 빠르게 수렴하는 데 도움이 됩니다.
다음 이미지는 일대다 다중 클래스 분류를 재구현합니다. 작업을 일대일 작업으로 간주합니다. 소프트맥스를 실행하기 위해 숨겨진 출력 레이어 (소프트맥스 레이어라고 함) 바로 앞에 오는 레이어는 출력 레이어와 동일한 수의 노드를 사용합니다.
<ph type="x-smartling-placeholder">![그림 9. 입력 아키텍처가 있는 신경망
노드가 1개인 히든 레이어, 3개의 노드가 있는 히든 레이어, 4개의 노드가 있는 히든 레이어
4개의 노드가 있는 출력 레이어입니다. 입력 노드에는 배 이미지가 제공됩니다.
소프트맥스 활성화 함수가 출력 레이어에 적용됩니다. 각
출력 노드는 이미지가
지정되어 있을 확률을
과일을 먹었습니다. 출력 노드 1은 'Is apple?'을 나타냅니다. 값은 0.19입니다
출력 노드 2는 'Is orange?'을 값은 0.12입니다.
출력 노드 3은 'Is pear?'를 나타냅니다. 값은 0.63입니다.
출력 노드 4는 'Is grape?'을 값은 0.06입니다.](https://developers.google.cn/static/machine-learning/crash-course/neural-networks/images/one_vs_one_neural_net.png?authuser=9&hl=ko)
소프트맥스 옵션
다음과 같은 소프트맥스의 변형을 생각해 보세요.
전체 소프트맥스는 앞서 설명한 소프트맥스입니다. 즉, 소프트맥스는 가능한 모든 클래스의 확률을 계산합니다.
후보 샘플링은 소프트맥스에서 특정 예측이 아닌 양성 라벨에 대해 학습했지만 제외 라벨입니다. 예를 들어 사용자가 입력 이미지가 비글이든 블러드하운드이든 상관없이 개가 아닌 모든 예에 대한 확률을 제공합니다.
전체 소프트맥스는 클래스 수가 적을 때 상당히 저렴함 클래스 수가 증가하면 엄청난 비용이 듭니다. 후보 샘플링은 데이터가 큰 문제에서 효율성을 클래스 수
단일 라벨 및 여러 라벨 비교
소프트맥스는 각 예가 정확히 하나의 클래스에 속해 있다고 가정합니다. 그러나 동시에 여러 클래스의 멤버가 될 수 있는 예도 있습니다. 이러한 예의 경우 다음과 같습니다.
- 소프트맥스를 사용할 수 없습니다.
- 여러 로지스틱 회귀를 사용해야 합니다.
예를 들어, 위의 그림 9에서 일대일 모델은 각 입력의 입력 값이 이미지는 사과, 오렌지, 배 또는 있습니다. 그러나 입력 이미지에 여러 유형의 과일( 한 그릇에 사과와 오렌지가 담겨 있습니다. 회귀를 사용할 수도 있습니다