부본 역전파란 무엇입니까? - Unite.AI
Rescale 미팅 예약

AI 101

역전파란 무엇입니까?

mm
업데이트 on

역전파란 무엇입니까?

딥 러닝 시스템은 매우 복잡한 패턴을 학습할 수 있으며 가중치를 조정하여 이를 수행합니다. 심층 신경망의 가중치는 정확히 어떻게 조정됩니까? 그들은 통해 조정됩니다 과정 라는 역 전파. 역전파가 없으면 심층 신경망은 이미지 인식, 자연어 해석과 같은 작업을 수행할 수 없습니다. 역전파의 작동 방식을 이해하는 것은 심층 신경망을 일반적으로 이해하는 데 중요합니다. 따라서 역전파에 대해 논의하고 이 프로세스가 네트워크의 가중치를 조정하는 데 어떻게 사용되는지 살펴보겠습니다.

역전파는 이해하기 어려울 수 있으며 역전파를 수행하는 데 사용되는 계산은 상당히 복잡할 수 있습니다. 이 기사에서는 복잡한 수학 방식을 거의 사용하지 않고 역전파에 대한 직관적인 이해를 제공하기 위해 노력할 것입니다. 그러나 역전파 뒤에 있는 수학에 대한 약간의 논의가 필요합니다.

역전파의 목표

역전파의 목표를 정의하는 것으로 시작하겠습니다. 심층 신경망의 가중치는 신경망 단위 간의 연결 강도입니다. 신경망이 설정되면 한 계층의 단위가 결합된 계층에 어떻게 연결되는지에 대한 가정이 이루어집니다. 데이터가 신경망을 통해 이동함에 따라 가중치가 계산되고 가정이 이루어집니다. 데이터가 네트워크의 최종 계층에 도달하면 기능이 데이터 세트의 클래스와 어떻게 관련되는지에 대한 예측이 이루어집니다. 예측 값과 실제 값의 차이는 손실/오차이며 역전파의 목표입니다. 손실을 줄이는 것입니다. 이는 네트워크의 가중치를 조정하여 가정을 입력 기능 간의 실제 관계와 유사하게 만들어 달성됩니다.

심층 신경망 훈련

역전파가 수행되기 전에 신경망, 신경망의 regular/forward training pass가 수행되어야 합니다. 신경망이 생성되면 가중치 집합이 초기화됩니다. 네트워크가 훈련됨에 따라 가중치 값이 변경됩니다. 신경망의 순방향 훈련 패스는 뉴런 활성화, 뉴런 전송 및 순방향 전파의 세 가지 개별 단계로 생각할 수 있습니다.

심층 신경망을 훈련할 때 여러 수학 함수를 사용해야 합니다. 심층 신경망의 뉴런은 들어오는 데이터와 노드를 활성화하는 데 필요한 값을 결정하는 활성화 함수로 구성됩니다. 뉴런의 활성화 값은 입력의 가중 합인 여러 구성 요소로 계산됩니다. 가중치와 입력 값은 활성화를 계산하는 데 사용되는 노드의 인덱스에 따라 다릅니다. 활성화 값을 계산할 때 바이어스 값인 또 다른 숫자를 고려해야 합니다. 바이어스 값은 변동하지 않으므로 가중치 및 입력과 함께 곱하지 않고 추가됩니다. 이 모든 것은 활성화 값을 계산하는 데 다음 방정식을 사용할 수 있음을 의미합니다.

활성화 = 합계(가중치 * 입력) + 편향

뉴런이 활성화된 후 활성화 함수를 사용하여 뉴런의 실제 출력이 무엇인지 결정합니다. 서로 다른 활성화 함수는 서로 다른 학습 작업에 최적이지만 일반적으로 사용되는 활성화 함수에는 sigmoid 함수, Tanh 함수 및 ReLU 함수가 있습니다.

원하는 활성화 함수를 통해 활성화 값을 실행하여 뉴런의 출력이 계산되면 정방향 전파가 수행됩니다. 순방향 전파는 한 레이어의 출력을 가져와 다음 레이어의 입력으로 만드는 것입니다. 그런 다음 새 입력을 사용하여 새 활성화 함수를 계산하고 이 작업의 출력을 다음 레이어로 전달합니다. 이 프로세스는 신경망 끝까지 계속됩니다.

네트워크의 역전파

역전파 프로세스는 모델 학습 패스의 최종 결정을 내린 다음 이러한 결정의 오류를 결정합니다. 오류는 네트워크의 출력/결정과 네트워크의 예상/원하는 출력을 대조하여 계산됩니다.

네트워크 결정의 오류가 계산되면 이 정보는 네트워크를 통해 역전파되고 네트워크 매개변수는 그 과정에서 변경됩니다. 네트워크의 가중치를 업데이트하는 데 사용되는 방법은 미적분학, 특히 체인 규칙을 기반으로 합니다. 그러나 역전파 개념을 이해하기 위해 미적분학을 이해할 필요는 없습니다. 출력 값이 뉴런에서 제공되면 전달 함수로 출력 값의 기울기를 계산하여 파생 출력을 생성한다는 점만 알아두십시오. 역전파를 수행할 때 특정 뉴런에 대한 오류는 다음과 같이 계산됩니다. 공식:

error = (expected_output – actual_output) * 뉴런 출력 값의 기울기

출력 레이어의 뉴런에서 연산을 수행할 때 클래스 값이 예상 값으로 사용됩니다. 오류가 계산된 후 오류는 숨겨진 레이어의 뉴런에 대한 입력으로 사용됩니다. 즉, 이 숨겨진 레이어의 오류는 출력 레이어 내에서 발견된 뉴런의 가중 오류입니다. 오차 계산은 가중치 네트워크를 따라 네트워크를 통해 역방향으로 이동합니다.

네트워크에 대한 오류가 계산된 후에는 네트워크의 가중치를 업데이트해야 합니다. 앞서 언급한 대로 오류를 계산하려면 출력 값의 기울기를 결정해야 합니다. 기울기가 계산된 후 경사하강법이라는 프로세스를 사용하여 네트워크의 가중치를 조정할 수 있습니다. 경사도는 각도/경사도를 측정할 수 있는 경사면입니다. 경사는 "런"에 대한 "y 오버" 또는 "상승"을 플로팅하여 계산됩니다. 신경망과 오류율의 경우 "y"는 계산된 오류이고 "x"는 네트워크의 매개변수입니다. 네트워크의 매개변수는 계산된 오류 값과 관계가 있으며 네트워크의 가중치가 조정됨에 따라 오류가 증가하거나 감소합니다.

"경사하강법"은 오류율이 감소하도록 가중치를 업데이트하는 과정입니다. 역전파는 신경망의 매개변수와 오류율 사이의 관계를 예측하는 데 사용되며 경사 하강법에 대한 네트워크를 설정합니다. 경사 하강법으로 신경망을 훈련하려면 전방 전파를 통해 가중치를 계산하고 오류를 역전파한 다음 신경망의 가중치를 업데이트해야 했습니다.

전문 분야의 블로거 및 프로그래머 기계 학습 깊은 학습 주제. 다니엘은 다른 사람들이 사회적 이익을 위해 AI의 힘을 사용하도록 돕기를 희망합니다.