PyTorch-신경망 기본 사항
신경망의 주요 원리는 인공 뉴런 또는 퍼셉트론과 같은 기본 요소 모음을 포함합니다. 여기에는 x1, x2… .. xn과 같은 몇 가지 기본 입력이 포함되어 있으며 합계가 활성화 전위보다 클 경우 이진 출력을 생성합니다.
샘플 뉴런의 개략도는 아래에 언급되어 있습니다.
생성 된 출력은 활성화 전위 또는 바이어스가있는 가중치 합으로 간주 될 수 있습니다.
$$ Output = \ sum_jw_jx_j + Bias $$
일반적인 신경망 아키텍처는 다음과 같습니다.
입력과 출력 사이의 계층을 은닉 계층이라고하며 계층 간의 연결 밀도와 유형이 구성입니다. 예를 들어, 완전 연결 구성에는 L 층의 모든 뉴런이 L + 1의 뉴런에 연결되어 있습니다. 보다 뚜렷한 지역화를 위해 우리는 9 개의 뉴런과 같은 지역 이웃 만 다음 레이어에 연결할 수 있습니다. 그림 1-9는 조밀 한 연결이있는 두 개의 숨겨진 레이어를 보여줍니다.
다양한 유형의 신경망은 다음과 같습니다.
피드 포워드 신경망
피드 포워드 신경망에는 신경망 제품군의 기본 단위가 포함됩니다. 이러한 유형의 신경망에서 데이터의 이동은 현재 숨겨진 계층을 통해 입력 계층에서 출력 계층으로 이동합니다. 한 레이어의 출력은 네트워크 아키텍처의 모든 종류의 루프에 대한 제한이있는 입력 레이어 역할을합니다.
순환 신경망
Recurrent Neural Networks는 데이터 패턴이 일정 기간 동안 결과적으로 변경되는 경우입니다. RNN에서는 입력 매개 변수를 받아들이고 지정된 신경망에 출력 매개 변수를 표시하기 위해 동일한 계층이 적용됩니다.
torch.nn 패키지를 사용하여 신경망을 구축 할 수 있습니다.
단순한 피드 포워드 네트워크입니다. 입력을 받아 여러 레이어를 차례로 통과시킨 다음 마지막으로 출력을 제공합니다.
PyTorch의 도움으로 신경망에 대한 일반적인 훈련 절차를 위해 다음 단계를 사용할 수 있습니다.
- 학습 가능한 매개 변수 (또는 가중치)가있는 신경망을 정의합니다.
- 입력 데이터 세트를 반복합니다.
- 네트워크를 통해 입력을 처리합니다.
- 손실을 계산합니다 (출력이 정확하지 않은 정도).
- 그라디언트를 네트워크의 매개 변수로 다시 전파합니다.
- 일반적으로 아래와 같이 간단한 업데이트를 사용하여 네트워크의 가중치를 업데이트합니다.
rule: weight = weight -learning_rate * gradient