다중 클래스 인공신경망

신경망 알고리즘을 사용하여 다중 클래스 분류 모델 만들기

범주: 모델/분류 Machine Learning/초기화

참고

적용 대상: Machine Learning Studio (클래식)

이 콘텐츠는 Studio (클래식)에만 해당 됩니다. Azure Machine Learning 디자이너에는 비슷한 끌어서 놓기 모듈이 추가 되었습니다. 이 문서에서는 두 가지 버전을 비교 하는방법에 대해 자세히 알아보세요.

모듈 개요

이 문서에서는 Azure Machine Learning Studio (클래식)에서 다중 클래스 신경망 모듈을 사용 하 여 여러 값이 포함 된 대상을 예측 하는 데 사용할 수 있는 신경망 모델을 만드는 방법을 설명 합니다.

예를 들어 이러한 종류의 신경망은 숫자 또는 문자 인식, 문서 분류, 패턴 인식과 같은 복잡 한 컴퓨터 비전 작업에서 사용할 수 있습니다.

신경망을 사용 하는 분류는 감독 된 학습 방법이 며 따라서 레이블 열을 포함 하는 태그가 지정 된 데이터 집합이 필요 합니다.

모델을 학습 하거나 모델 하이퍼 매개 변수를 조정하기 위해 모델 및 태그가 지정 된 데이터 집합을 입력으로 제공 하 여 모델을 학습 시킬 수 있습니다. 그러면 학습 된 모델을 사용 하 여 새 입력 예제에 대 한 값을 예측할 수 있습니다.

신경망에 대 한 자세한 정보

신경망은 상호 연결 된 계층 집합입니다. 입력은 첫 번째 계층 이며 가중치가 적용 된 가장자리와 노드로 구성 된 비순환 그래프에 의해 출력 계층에 연결 됩니다.

입력 및 출력 계층 사이에 여러 개의 숨겨진 계층을 삽입할 수 있습니다. 대부분의 예측 작업은 숨겨진 계층을 하나 또는 몇 개만 사용하여 쉽게 완료할 수 있습니다. 그러나 최근 연구에서는 이미지 또는 음성 인식과 같은 복잡 한 작업에서 많은 계층의 DNN (심층 신경망)가 매우 효과적일 수 있음을 보여 줍니다. 연속 된 계층은 더 높은 수준의 의미 수준을 모델링 하는 데 사용 됩니다.

입력 및 출력 간의 관계는 입력 데이터의 신경망 학습에서 학습 됩니다. 그래프의 방향은 숨겨진 계층 및 출력 계층을 통해 입력에서 진행 됩니다. 계층의 모든 노드는 가중치가 적용 된 가장자리를 통해 다음 계층의 노드에 연결 됩니다.

특정 입력에 대 한 네트워크 출력을 계산 하기 위해 숨겨진 계층의 각 노드 및 출력 계층에 값이 계산 됩니다. 값은 이전 계층에서 노드 값의 가중치가 적용 된 합계를 계산 하 여 설정 합니다. 그러면 활성화 함수가 가중치가 적용 된 합계에 적용 됩니다.

다중 클래스 신경망을 구성 하는 방법

  1. Studio (클래식)의 실험에 다중 클래스 신경망 모듈을 추가 합니다. 이 모듈은 분류 범주의 Machine Learning, 초기화 에서 찾을 수 있습니다.

  2. 교육 담당자 모드 만들기:이 옵션을 사용 하 여 모델을 학습 하는 방법을 지정 합니다.

    • 단일 매개 변수: 모델을 구성 하려는 방법을 이미 알고 있는 경우이 옵션을 선택 합니다.

    • 매개 변수 범위: 최적의 매개 변수를 잘 모르겠으면 매개 변수 스윕를 사용 하려는 경우이 옵션을 선택 합니다. 그런 다음 값 범위를 지정 하 고 모델 하이퍼 매개 변수 조정 모듈을 사용 하 여 조합을 반복 하 고 최적의 구성을 찾습니다.

  3. 숨겨진 계층 사양: 만들 네트워크 아키텍처의 유형을 선택 합니다.

    • 완전히 연결 된 사례: 기본 신경망 아키텍처를 사용 하 여 모델을 만들려면이 옵션을 선택 합니다. 다중 클래스 신경망 모델의 경우 기본값은 다음과 같습니다.

      • 숨겨진 계층 하나
      • 출력 계층은 숨겨진 계층에 완전히 연결 됩니다.
      • 숨겨진 계층은 입력 계층에 완전히 연결 됩니다.
      • 입력 계층의 노드 수는 학습 데이터의 기능 수에 따라 결정됩니다.
      • 숨겨진 계층의 노드 수는 사용자가 설정할 수 있습니다. 기본값은 100입니다.
      • 출력 계층의 노드 수는 클래스의 수에 따라 다릅니다.
    • 사용자 지정 정의 스크립트. Net # 언어를 사용 하 여 사용자 지정 신경망 아키텍처를 만들려면이 옵션을 선택 합니다. 숨겨진 계층의 수, 해당 연결 및 계층 간의 매핑을 지정 하는 등의 고급 옵션을 정의할 수 있습니다. Net #에 대 한 소개는이 항목의 뒷부분에 나오는 net #에 대 한 자세한 정보 를 참조 하세요.

  4. 신경망 정의: 사용자 지정 아키텍처 옵션을 선택한 경우 텍스트 상자를 사용 하 여 Net # 언어로 작성 된 문을 입력 하거나 붙여 넣습니다. 추가 스크립트 예제는 Net # 신경망 사양 언어에대 한 가이드를 참조 하세요.

  5. 숨겨진 노드 수:이 옵션을 사용 하면 기본 아키텍처에서 숨겨진 노드 수를 사용자 지정할 수 있습니다. 숨겨진 노드 수를 입력 합니다. 기본값은 100 노드를 포함 하는 하나의 숨겨진 계층입니다.

  6. 학습 속도: 수정 전에 각 반복에서 수행 되는 단계의 크기를 정의 합니다. 학습 속도의 값이 클수록 모델이 더 빨리 수렴 될 수 있지만 로컬 최소을 과도 하 게 사용할 수 있습니다.

  7. 학습 반복 횟수: 알고리즘이 학습 사례를 처리 해야 하는 최대 횟수를 지정 합니다.

  8. 초기 학습 가중치 지름: 학습 프로세스를 시작할 때 노드 가중치를 지정 합니다.

  9. 모멘텀: 이전 반복에서 노드를 학습 하는 동안 적용할 가중치를 지정 합니다.

  10. 노 멀 라이저의 형식: 기능 정규화에 사용할 메서드를 선택 합니다. 다음 정규화 방법이 지원 됩니다.

    • 범주화: 범주화는 동일한 크기의 bin을 만든 다음 각 bin의 모든 값을 bin의 총 수로 나누어 정규화 합니다.

    • 가우스 노 멀 라이저: 가우스 노 멀 라이저 다시 조정 각 기능의 값은 0과 분산 1을 의미 합니다. 이러한 작업은 각 기능의 평균 및 분산을 계산 하 여 수행 됩니다. 각 인스턴스에 대해 평균 값을 빼고 결과를 분산의 제곱근 (표준 편차)으로 나눕니다.

    • 최소-최대 노 멀 라이저: 최소 노 멀 라이저 선형 다시 조정 모든 기능을 [0, 1] 간격으로 계산 합니다.

      [0,1] 간격으로 크기를 재조정하는 작업은 최소값이 0이 되도록 각 기능의 값을 이동한 다음, 새 최대값(원래 최대값과 최소값의 차이)으로 나누어 수행합니다.

    • 정규화 안 함: 정규화가 수행 되지 않습니다.

  11. 순서 섞기 예: 반복 간의 사례 순서를 섞기 하려면이 옵션을 선택 합니다.

    이 옵션의 선택을 취소 하면 실험을 실행할 때마다 정확히 동일한 순서로 사례가 처리 됩니다.

  12. 난수 초기값: 동일한 실험의 실행 간에 반복성 보장 하려는 경우 초기값으로 사용할 값을 입력 합니다.

  13. 알 수 없는 범주 수준 허용: 학습 및 유효성 검사 집합에서 알 수 없는 값에 대 한 그룹화를 만들려면이 옵션을 선택 합니다. 알려진 값에 대 한 모델의 정확도가 떨어질 수 있지만 새 (알 수 없는) 값에 대해 더 나은 예측을 제공 합니다.

    이 옵션의 선택을 취소 하면 모델에서 학습 데이터에 포함 된 값만 수락할 수 있습니다.

  14. 학습 데이터 집합 및 학습 모듈중 하나를 연결 합니다.

    참고

    모델 학습에 매개 변수 범위를 전달 하는 경우 매개 변수 범위 목록의 첫 번째 값만 사용 합니다.

    단일 매개 변수 값 집합을 모델 하이퍼 매개 변수 조정 모듈에 전달 하는 경우 각 매개 변수에 대 한 설정 범위가 필요한 경우 값을 무시 하 고 학습자에 대 한 기본값을 사용 합니다.

    매개 변수 범위 옵션을 선택 하 고 매개 변수에 대해 단일 값을 입력 하는 경우 다른 매개 변수가 값 범위에서 변경 되더라도 지정한 단일 값은 스윕 전체에서 사용 됩니다.

결과

학습 완료 후:

  • 학습에서 배운 기능 가중치와 신경망의 다른 매개 변수를 사용 하 여 모델의 매개 변수에 대 한 요약을 보려면 모델 학습 또는 모델 모델 조정의 출력을 마우스 오른쪽 단추로 클릭 하 고 시각화 를 선택 합니다.

  • 학습 된 모델의 스냅숏을 저장 하려면 학습 된 모델 출력을 마우스 오른쪽 단추로 클릭 하 고 학습 된 모델로 저장 을 선택 합니다. 이 모델은 동일한 실험의 연속 실행에서 업데이트 되지 않습니다.

  • 레이블이 지정 된 데이터 집합에 대해 교차 유효성 검사를 수행 하려면 학습 되지 않은 모델을 연결 하 여 모델 교차유효성 검사를 수행 합니다.

예제

이 학습 알고리즘을 사용 하는 방법에 대 한 예제는 Azure AI Gallery에서 다음 샘플 실험을 참조 하세요. 실험은 한 문서에서 설명되며 기본 구성에서 고급 구성까지 진행됩니다.

기술 정보

이 섹션에는 구현 세부 정보, 팁 및 질문과 대답 (faq)이 포함 되어 있습니다.

스크립트를 사용 하 여 신경망 사용자 지정

Azure Machine Learning Studio (클래식)에서 Net # 언어를 사용 하 여 신경망 모델의 아키텍처를 사용자 지정할 수 있습니다. Net # 언어에서 지 원하는 사용자 지정 항목은 다음과 같습니다.

  • 숨겨진 계층 수 및 각 계층의 노드 수 지정
  • 계층 간 매핑 지정
  • 나선 및 가중치 공유 번들 정의
  • 활성화 기능 선택

신경망 모델은 다음 특성을 포함하는 그래프 구조로 정의됩니다.

  • 숨겨진 계층 수
  • 숨겨진 각 계층의 노드 수
  • 레이어를 연결 하는 방법
  • 사용 되는 활성화 함수
  • 그래프 에지의 가중치

중요

사용자는 그래프의 전체 구조와 활성화 함수를 지정할 수 있습니다. 그러나에 지에 대 한 가중치는 지정할 수 없으며, 입력 데이터에서 신경망을 학습할 때 학습 해야 합니다.

일반적으로 네트워크의 기본값은 다음과 같습니다.

  • 첫 번째 계층은 항상 입력 계층입니다.
  • 마지막 계층은 항상 출력 계층입니다.
  • 출력 계층의 노드 수는 클래스 수와 같아야 합니다.

중간 계층을 원하는 수 만큼 정의할 수 있습니다. 이러한 계층은 모델 내에 포함 되어 있으며 끝점으로 직접 노출 되지 않으므로 숨겨진 계층이 라고도 합니다.

Net# 참조 가이드에서 구문을 설명하고 샘플 네트워크 정의를 제공합니다. 이 가이드에는 Net#을 사용하여 숨겨진 계층을 추가하고 여러 계층이 서로 상호 작용하는 방식을 정의하는 방법에 대한 설명이 포함되어 있습니다.

예를 들어 다음 스크립트는 auto 입력 및 출력 계층에 대 한 기능 수를 자동으로 설정 하는 키워드를 사용 하 고 숨겨진 계층에 대 한 기본값을 사용 합니다.

input Data auto;  
hidden Hidden auto from Data all;  
output Result auto from Hidden all;   

추가 스크립트 예제는 Net # 신경망 사양 언어에대 한 가이드를 참조 하세요.

신경망은 다양 한 하이퍼 매개 변수 및 사용자 지정 네트워크 토폴로지의 도입으로 인해 계산 비용이 많이 들 수 있습니다. 하지만 대부분의 경우 신경망은 다른 알고리즘보다 나은 결과를 생성하며 그러한 결과를 얻으려면 하이퍼 매개 변수에 대한 상당한 양의 스윕(반복)이 필요할 수 있습니다.

모듈 매개 변수

Name 범위 Type 기본값 설명
숨겨진 계층 사양 목록 신경망 토폴로지 완전히 연결된 사례 하나 이상의 숨겨진 계층 아키텍처를 지정합니다.
초기 학습 가중치 지름 >=double.Epsilon Float 0.1 학습 프로세스 시작 시의 노드 가중치를 지정합니다.
학습 속도 [double.Epsilon;1.0] Float 0.1 학습 프로세스에서 각 단계의 크기를 지정합니다.
가속도 [0.0; 1.0] Float 0.0 학습하는 동안 이전 반복의 노드에 적용할 가중치를 지정합니다.
신경망 정의 모두 StreamReader 사용자 지정 정의 스크립트 를 선택하는 경우 사용자 지정 신경망의 계층, 노드 및 동작을 정의하는 유효한 스크립트 식을 각 줄에 입력합니다.
노멀라이저 유형 목록 정규화 방법 최소-최대 노멀라이저 학습 예제에 적용할 정규화 유형을 선택합니다.
학습 반복 횟수 >= 1 정수 100 학습하는 동안의 반복 횟수를 지정합니다.
예제 섞기 모두 부울 True 학습 반복 간에 인스턴스 순서를 변경하려면 이 옵션을 선택합니다.
난수 초기값 모두 정수 난수 생성에 사용할 숫자 초기값을 지정합니다. 기본 초기값을 사용하려면 비워 둡니다.
알 수 없는 범주 수준 허용 모두 부울 True 알 수 없는 범주에 대해 추가 수준을 만들어야 하는지 여부를 나타냅니다. 테스트 데이터 집합이 학습 데이터 집합에 없는 범주를 포함하는 경우 해당 범주는 이 알 수 없는 수준에 매핑됩니다.

출력

Name Type 설명
학습되지 않은 모델 ILearner 인터페이스 학습되지 않은 다중 클래스 분류 모델입니다.

참고 항목

유형을
2 클래스 신경망
신경망 회귀
전체 모듈 목록