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

다층 퍼셉트론에 대한 훈련 공식 및 역전파 이해

이 기사에서는 가중치 업데이트 계산을 수행할 때 사용하는 방정식을 제시하고 역전파의 개념도 논의할 것입니다.

머신 러닝에 관한 AAC 시리즈에 오신 것을 환영합니다.

여기에서 시리즈를 확인하십시오:

<올>
  • 신경망을 사용하여 분류를 수행하는 방법:퍼셉트론이란?
  • 간단한 퍼셉트론 신경망을 사용하여 데이터를 분류하는 방법
  • 기본 퍼셉트론 신경망 훈련 방법
  • 단순 신경망 훈련 이해
  • 신경망 훈련 이론 소개
  • 신경망의 학습률 이해
  • 다층 퍼셉트론을 사용한 고급 기계 학습
  • 시그모이드 활성화 함수:다층 퍼셉트론 신경망에서의 활성화
  • 다층 퍼셉트론 신경망 훈련 방법
  • 다층 퍼셉트론에 대한 훈련 공식 및 역전파 이해
  • Python 구현을 위한 신경망 아키텍처
  • Python에서 다층 퍼셉트론 신경망을 만드는 방법
  • 신경망을 사용한 신호 처리:신경망 설계 검증
  • 신경망용 데이터 세트 훈련:Python 신경망 훈련 및 검증 방법
  • 신경망 이론의 기본 주제인 MLP(다층 퍼셉트론)의 가중치를 미세 조정하여 입력 샘플을 정확하게 분류할 수 있도록 하는 계산 절차를 신중하게 고려해야 하는 시점에 도달했습니다. 이는 신경망 설계의 필수 측면인 "역전파" 개념으로 이어집니다.

    가중치 업데이트

    MLP 교육과 관련된 정보는 복잡합니다. 설상가상으로 온라인 리소스는 다른 용어와 기호를 사용하며 다른 결과를 제공하는 것 같습니다. 그러나 결과가 정말 다른지 아니면 동일한 정보를 다른 방식으로 제시하는지 잘 모르겠습니다.

    이 기사에 포함된 방정식은 이 블로그 게시물에서 Dr. Dustin Stansbury가 제공한 유도 및 설명을 기반으로 합니다. 그의 치료는 내가 찾은 최고이며, 경사 하강법과 역전파에 대한 수학적 개념적 세부 사항을 탐구하려는 경우 시작하기에 좋은 곳입니다.

    다음 다이어그램은 소프트웨어에서 구현할 아키텍처를 나타내며 아래 방정식은 이 아키텍처에 해당합니다. 이에 대해서는 다음 기사에서 자세히 설명합니다.


    용어

    이 주제는 명확한 용어를 유지하지 않으면 빠르게 관리할 수 없게 됩니다. 다음 용어를 사용하겠습니다.

    <울>
  • 사전 활성화 (약칭 \(S_{preA}\) ):이것은 노드의 활성화 함수에 대한 입력으로 사용되는 신호(실제로는 한 번의 훈련 반복 컨텍스트 내에서 단지 숫자)를 나타냅니다. 내적을 수행하여 계산됩니다. 가중치를 포함하는 배열과 이전 계층의 노드에서 발생하는 값을 포함하는 배열. 내적은 두 배열의 요소별 곱셈을 수행한 다음 해당 곱셈의 결과인 배열의 요소를 합산하는 것과 같습니다.
  • 사후 활성화 (약칭 \(S_{postA}\) ):이것은 노드를 나가는 신호(개별 반복 컨텍스트 내의 숫자)를 나타냅니다. 활성화 기능을 사전 활성화 신호에 적용하여 생성됩니다. 내가 선호하는 활성화 함수 용어는 \(f_{A}()\)으로 표시됩니다. , 물류 S자형이 아닌.
  • Python 코드에서 ItoH 레이블이 지정된 가중치 행렬을 볼 수 있습니다. 및 HtoO . "숨겨진 계층 가중치"와 같은 것을 말하는 것이 모호하기 때문에 이러한 식별자를 사용합니다. 이것이 전에 적용되는 가중치입니까? 숨겨진 레이어 또는 은폐층? 내 방식에서 ItoH는 입력 노드에서 히든 노드로 전달되는 값에 적용되는 가중치를 지정하고 HtoO는 히든 노드에서 출력 노드로 전달되는 값에 적용되는 가중치를 지정합니다.
  • 훈련 샘플의 올바른 출력 값을 타겟이라고 합니다. T로 표시됩니다. .
  • 학습률 약어로 LR .
  • 최종 오류 출력 노드(\(S_{postA,O}\)의 사후 활성화 신호 간의 차이입니다. ) 및 대상, \(FE =S_{postA,O} - T\)으로 계산됨 .
  • 오류 신호 (\(S_{ERROR}\) )는 출력 노드의 활성화 함수를 통해 은닉층으로 다시 전파되는 최종 오류입니다.
  • 그라데이션 오류 신호에 대한 주어진 가중치의 기여도를 나타냅니다. 이 기여도를 빼서 가중치를 수정합니다(필요한 경우 학습률을 곱함).
  • 다음 다이어그램은 이러한 용어 중 일부를 네트워크의 시각화된 구성에 배치합니다. 알겠습니다. 여러 가지 빛깔의 엉망진창처럼 보입니다. 죄송합니다. 정보가 촘촘한 도표로 얼핏 보기에는 다소 거슬릴 수 있지만 잘 살펴보시면 많은 도움이 되실 거라 생각합니다.


    가중치 업데이트 방정식은 수정할 가중치와 관련하여 오류 함수의 편도함수(합계 제곱 오차를 사용하고 있습니다. 활성화 함수를 다루는 시리즈의 파트 8 참조)를 사용하여 파생됩니다. 수학을 보고 싶다면 Dr. Stansbury의 게시물을 참조하세요. 이 기사에서는 결과로 바로 건너뛸 것입니다. 숨겨진 출력 가중치의 경우 다음이 있습니다.

    \[S_{오류} =FE \times {f_A}'(S_{preA,O})\]

    \[gradient_{HtoO}=S_{ERROR}\times S_{postA,H}\]

    \[weight_{HtoO} =weight_{HtoO}- (LR \times gradient_{HtoO})\]

    오류 신호를 계산합니다. l 최종 오류를 곱하여 파생을 적용할 때 생성된 값으로 활성화 기능 사전 활성화 신호로 출력 노드로 전달됩니다(\({f_A}'(S_{preA,O})\)에서 1차 도함수를 나타내는 소수 기호에 유의). 그라데이션 그런 다음 오류 신호를 곱하여 계산됩니다. 활성화 후 신호에 의해 숨겨진 레이어에서. 마지막으로 이 기울기를 빼서 가중치를 업데이트합니다. 현재 가중치 값에서 기울기를 곱할 수 있습니다. 학습률 단계 크기를 변경하려는 경우.

    입력-숨겨진 가중치의 경우 다음이 있습니다.

    \[gradient_{ItoH} =FE \times {f_A}'(S_{preA,O})\times weight_{HtoO} \times {f_A}'(S_{preA ,H}) \times 입력\]

    \[\Rightarrow gradient_{ItoH} =S_{ERROR} \times weight_{HtoO} \times {f_A}'(S_{preA,H})\times 입력\]

    \[weight_{ItoH} =weight_{ItoH} - (LR \times gradient_{ItoH})\]

    입력-숨겨진 가중치를 사용하면 오류가 추가 레이어를 통해 다시 전파되어야 하며 오류 신호를 곱하여 수행합니다. hidden-to-output weight에 의해 관심있는 숨겨진 노드에 연결됩니다. 따라서 숨겨진 입력 가중치를 업데이트하는 경우 첫 번째 숨겨진 노드로 연결되는 오류 신호 첫 번째 은닉 노드를 출력 노드에 연결하는 가중치에 의해 그런 다음 숨겨진 출력 가중치 업데이트와 유사한 곱셈을 수행하여 계산을 완료합니다. 도함수를 적용합니다. 활성화 기능의 숨겨진 노드의 사전 활성화 신호에 , 그리고 '입력' 값은 활성화 후 신호로 생각할 수 있습니다. 입력 노드에서.

    역전파

    위의 설명은 이미 역전파의 개념을 다루었습니다. 저는 이 개념을 간략하게 강조하고 신경망에 대한 토론에서 자주 등장하는 이 용어에 대해 확실히 알고 있는지 확인하고 싶습니다.

    역전파를 통해 8부에서 논의한 은닉 노드 딜레마를 극복할 수 있습니다. 네트워크에서 생성된 출력과 훈련 데이터가 제공하는 목표 출력 값 간의 차이를 기반으로 입력-숨겨진 가중치를 업데이트해야 하지만 이러한 가중치는 영향을 미칩니다. 생성된 출력을 간접적으로.

    역전파(Backpropagation)는 오류 신호를 하나 이상의 숨겨진 레이어로 다시 보내고 숨겨진 노드에서 나오는 가중치와 숨겨진 노드의 활성화 함수의 도함수를 모두 사용하여 해당 오류 신호를 확장하는 기술을 말합니다. 전체 절차는 출력 오류에 대한 가중치의 기여도를 기반으로 가중치를 업데이트하는 방법으로 사용됩니다. 비록 기여도가 입력-숨겨진 가중치와 생성된 출력 값 사이의 간접적인 관계에 의해 모호하더라도.

    결론

    우리는 많은 중요한 자료를 다루었습니다. 나는 우리가 이 기사에서 신경망 훈련에 대한 몇 가지 정말 귀중한 정보를 가지고 있다고 생각하며 귀하가 동의하기를 바랍니다. 시리즈가 더욱 흥미진진해지기 시작할 것이므로 새 시리즈를 다시 확인하세요.


    산업용 로봇

    1. 서비스 제공업체 및 IoT 애플리케이션을 위한 1G 양방향 트랜시버
    2. CEVA:심층 신경망 워크로드용 2세대 AI 프로세서
    3. 사물 인터넷 및 MVNO를 위한 스마트 코어 네트워크 슬라이싱 잠금 해제
    4. 5G의 상위 5가지 문제 및 과제
    5. 무선 센서 네트워크를 공급하고 관리하는 방법
    6. 제조업을 위한 린 및 6시그마 이해를 위한 가이드
    7. 당신과 나를 위한 BECKER의 진공 펌프 교육
    8. Senet과 SimplyCity, LoRaWAN 확장 및 IoT를 위해 협력
    9. 하이브리드 제조의 이점과 과제 이해
    10. 펀치 및 다이 제조를 위한 내충격 공구강 이해