산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Equipment >> 산업용 로봇

은닉층 신경망의 정확도를 높이는 방법

이 기사에서는 몇 가지 분류 실험을 수행하고 은닉층 차원과 네트워크 성능 간의 관계에 대한 데이터를 수집합니다.

이 기사에서는 Python 구현 및 예제 문제를 사용하여 신경망 정확도를 개선하기 위해 은닉 계층을 수정하는 방법을 배웁니다.

그러나 해당 주제로 이동하기 전에 신경망에 대한 이 시리즈의 이전 항목을 따라잡는 것을 고려하십시오.

<올>
  • 신경망을 사용하여 분류를 수행하는 방법:퍼셉트론이란?
  • 간단한 퍼셉트론 신경망을 사용하여 데이터를 분류하는 방법
  • 기본 퍼셉트론 신경망 훈련 방법
  • 단순 신경망 훈련 이해
  • 신경망 훈련 이론 소개
  • 신경망의 학습률 이해
  • 다층 퍼셉트론을 사용한 고급 기계 학습
  • 시그모이드 활성화 함수:다층 퍼셉트론 신경망에서의 활성화
  • 다층 퍼셉트론 신경망 훈련 방법
  • 다층 퍼셉트론에 대한 훈련 공식 및 역전파 이해
  • Python 구현을 위한 신경망 아키텍처
  • Python에서 다층 퍼셉트론 신경망을 만드는 방법
  • 신경망을 사용한 신호 처리:신경망 설계 검증
  • 신경망용 데이터 세트 훈련:Python 신경망 훈련 및 검증 방법
  • 신경망에는 몇 개의 히든 레이어와 히든 노드가 필요합니까?
  • 은닉층 신경망의 정확도를 높이는 방법
  • 은닉층에 포함된 노드의 수는 퍼셉트론 신경망의 분류 능력과 속도에 영향을 미칩니다. 우리는 은닉층 차원이 합당한 시간 내에 훈련하고 허용 가능한 대기 시간으로 출력 값을 생성하며 정확도 요구 사항을 충족하는 네트워크를 설계하려는 시도에 어떻게 들어맞는지에 대한 초기 직관을 공식화하는 데 도움이 되는 실험을 실행할 것입니다. .

    Python의 벤치마킹

    12부에서 제공하는 신경망 Python 코드에는 검증 데이터 세트에서 샘플을 분류하기 위해 훈련된 네트워크를 사용하여 정확도를 계산하는 섹션이 이미 포함되어 있습니다. 따라서 훈련(피드포워드 작업 및 역전파 포함) 및 실제 분류 기능(피드포워드 작업만 포함)에 대한 실행 시간을 보고하는 코드를 추가하기만 하면 됩니다. time.perf_counter()를 사용합니다. 이를 위한 기능입니다.

    이것이 제가 훈련의 시작과 끝을 표시하는 방법입니다:

    유효성 검사 시작 및 중지 시간은 동일한 방식으로 생성됩니다.


    두 가지 처리 시간 측정값은 다음과 같이 보고됩니다.


    교육 데이터 및 측정 절차

    신경망은 –20에서 +20 사이의 네 가지 숫자 값으로 구성된 입력 샘플에 대해 참/거짓 분류를 수행합니다.

    따라서 4개의 입력 노드와 1개의 출력 노드가 있으며 입력 값은 다음과 같은 Excel 방정식으로 생성됩니다.


    내 훈련 데이터 세트는 40,000개의 샘플로 구성되어 있고 검증 세트에는 5000개의 샘플이 있습니다. learning rate는 0.1이고, training epoch를 한 번만 수행하고 있습니다.

    우리는 다양한 정도의 복잡성을 가진 입력-출력 관계를 나타내는 세 가지 실험을 수행할 것입니다. np.random.seed(1) 문은 주석 처리되어 있으므로 초기 가중치 값이 달라지므로 분류 정확도도 달라집니다.

    각 실험에서 프로그램은 각 은닉층 차원에 대해 5번(동일한 교육 및 검증 데이터로) 실행되며 정확도 및 처리 시간에 대한 최종 측정은 5개의 개별 실행으로 생성된 결과의 산술 평균이 됩니다. .

    실험 1:복잡성이 낮은 문제

    이 실험에서 출력은 아래 Excel 스크린샷과 같이 처음 세 개의 입력이 0보다 큰 경우에만 참입니다(네 번째 입력은 출력 값에 영향을 미치지 않습니다).

    이것은 다층 퍼셉트론에 대한 상당히 간단한 입출력 관계에 해당한다고 생각합니다.

    신경망에 필요한 레이어와 노드 수와 관련하여 15부에서 제공한 권장 사항을 기반으로 입력 차원의 2/3에 해당하는 숨겨진 계층 차원으로 시작합니다.

    노드의 일부로 숨겨진 레이어를 가질 수 없으므로 H_dim =2에서 시작하겠습니다. . 결과는 아래 표와 같습니다.


    5개의 히든 노드까지 분류가 개선된 것을 볼 수 있습니다. 그러나 4개의 숨겨진 노드 실행 중 하나의 정확도가 88.6%였고 이로 인해 평균이 낮아졌기 때문에 이러한 수치는 4개에서 5개 노드로 증가하는 이점을 과장한다고 생각합니다.

    저 정확도 실행을 제거하면 4개의 은닉 노드에 대한 평균 정확도는 실제로 5개의 은닉 노드에 대한 평균보다 약간 더 높습니다. 이 경우 4개의 히든 노드가 정확도와 속도의 최상의 균형을 제공할 것이라고 생각합니다.

    이 결과에서 주목해야 할 또 다른 중요한 점은 은닉층 차원이 훈련 시간과 처리 시간에 미치는 영향의 차이입니다. 2개에서 4개의 히든 노드로 이동하면 검증 시간이 1.3배 증가하지만 훈련 시간은 1.9배 증가합니다.

    훈련은 피드포워드 처리보다 훨씬 더 계산 집약적이므로 네트워크 구성이 합리적인 시간 내에 네트워크를 훈련하는 능력에 어떤 영향을 미치는지 특히 염두에 두어야 합니다.

    실험 2:중간 정도의 복잡성 문제

    Excel 스크린샷은 이 실험의 입력-출력 관계를 보여줍니다. 4개의 입력 모두 이제 출력 값에 영향을 미치며 비교는 실험 1에서보다 덜 간단합니다.

    저는 3개의 숨겨진 노드로 시작했습니다. 결과는 다음과 같습니다.

    이 경우 5개의 은닉 노드가 정확도와 속도의 최상의 조합을 제공할 것이라고 생각하지만 다시 4개의 은닉 노드 실행이 다른 것보다 상당히 낮은 하나의 정확도 값을 생성했습니다. 이 이상치를 무시하면 4개의 히든 노드, 5개의 히든 노드, 6개의 히든 노드에 대한 결과가 매우 유사하게 보입니다.

    5개의 은닉 노드 및 6개의 은닉 노드 실행이 이상값을 생성하지 않았다는 사실은 흥미로운 가능한 발견으로 이어집니다. 아마도 은닉 계층 차원을 증가시키면 어떤 이유로 훈련을 유발하는 조건에 대해 네트워크가 더 강력해질 수 있습니다. 특히 어렵습니다.

    실험 3:복잡한 문제

    아래와 같이 새로운 입력-출력 관계는 다시 네 개의 입력 값을 모두 포함하며 입력 중 하나를 제곱하고 다른 입력에 제곱근을 취하여 비선형성을 도입했습니다.


    결과는 다음과 같습니다.


    네트워크는 확실히 이 더 복잡한 수학적 관계에서 더 많은 어려움을 겪었습니다. 7개의 은닉 노드가 있더라도 정확도는 저복잡도 문제에서 3개의 은닉 노드만으로 달성한 것보다 낮았습니다. 예를 들어 편향(11부 참조) 또는 학습률 어닐링(6부 참조)을 포함하여 네트워크의 다른 측면을 수정하여 복잡한 성능을 개선할 수 있다고 확신합니다.

    그럼에도 불구하고 다른 개선 사항을 통해 네트워크가 더 작은 은닉 레이어로 적절한 성능을 유지할 수 있다고 완전히 확신할 때까지 은닉 레이어 차원을 7로 유지합니다.

    결론

    우리는 은닉층 차원과 퍼셉트론 성능 사이의 관계에 대해 상당히 명확한 그림을 그리는 몇 가지 흥미로운 측정을 보았습니다. 우리가 탐구할 수 있는 더 많은 세부 사항이 분명히 있지만 신경망 설계 및 교육을 실험할 때 활용할 수 있는 몇 가지 확실한 기본 정보를 제공한다고 생각합니다.


    산업용 로봇

    1. 신경망에는 몇 개의 은닉 계층과 은닉 노드가 필요합니까?
    2. 신경망 훈련 데이터 세트:Python 신경망 훈련 및 검증 방법
    3. Python에서 다층 퍼셉트론 신경망을 만드는 방법
    4. Python 구현을 위한 신경망 아키텍처
    5. 다층 퍼셉트론 신경망 훈련 방법
    6. 네트워크 생태계가 농장의 미래를 바꾸는 방법
    7. 네트워크 계층에서 애플리케이션 계층까지 IoT 보안
    8. Thomas WebTrax가 Google Analytics, The Thomas Network 등과 다른 점
    9. 0G 네트워크 센서가 백신 콜드 체인을 보호하는 방법
    10. 생산성과 정확성을 극대화하기 위해 올바른 레이저 절단 시스템을 선택하는 방법