커피 사주세요주의! *메모: 내 게시물에서는 Overfitting과 Underfitting에 대해 설명합니다. 내 게시물에서는 PyTorch의 레이어에 대해 설명합니다. 내 게시물에서는 PyTorch의 활성화 기능에 대해 설명합니다. 내 게시물에서는 PyTorch의 손실 기능에 대해 설명합니다. 내 게시물에서는 PyTorch의 최적화 프로그램에 대해 설명합니다. 그라데이션 소멸 문제: 역전파 중에 경사가 점점 작아지거나 0이 되어 출력 레이어에서 입력 레이어로 이동하면서 작은 경사를 여러 번 곱하면 모델을 효과적으로 훈련할 수 없습니다. 모델에 레이어가 많을수록 더 쉽게 발생합니다. 은 PyTorch의 Sigmoid()인 시그모이드 활성화 함수에 의해 쉽게 발생합니다. 범위가 0<=x<=1인 작은 값을 생성한 후 여러 번 곱하여 그라데이션을 만들기 때문입니다. 출력층에서 입력층으로 갈수록 작아집니다. 발생 장소: CNN(컨볼루션 신경망). RNN(Recurrent Neural Network) PyTorch의 RNN()입니다. 쉽게 발생하지 않는 경우: LSTM(Long Short-Term Memory) PyTorch의 LSTM()입니다. GRU(Gated Recurrent Unit) PyTorch의 GRU()입니다. Resnet(Residual Neural Network)은 PyTorch의 Resnet입니다. PyTorch의 Transformer()인 Transformer 등 다음과 같은 경우 감지될 수 있습니다. 매개변수는 출력 레이어 근처의 레이어에서 크게 변경되는 반면, 입력 레이어 근처의 레이어에서는 매개변수가 약간 변경되거나 변경되지 않은 상태로 유지됩니다. 입력 레이어 근처 레이어의 가중치는 0에 가깝거나 0이 됩니다. 수렴이 느리거나 중단되었습니다. 다음을 통해 완화할 수 있습니다. 배치 정규화 계층은 PyTorch의 BatchNorm1d(), BatchNorm2d() 또는 BatchNorm3d()입니다. Leaky ReLU 활성화 함수는 PyTorch의 LeakyReLU()입니다. *PyTorch에서 ReLU()인 ReLU 활성화 함수를 사용할 수도 있지만, 나중에 설명할 Dying ReLU 문제가 발생하는 경우가 있습니다. PyTorch의 PReLU()인 PReLU 활성화 함수 PyTorch의 ELU()인 ELU 활성화 함수입니다. 그라디언트 클리핑은 PyTorch에서clip_grad_norm_() 또는clip_grad_value_()입니다. *그라디언트 클리핑은 지정된 범위 내에서 그라데이션을 유지하는 방법입니다. 그라데이션 폭발 문제: 역전파 중에는 그래디언트가 점점 커지고 출력 레이어에서 입력 레이어로 갈수록 더 큰 그래디언트가 여러 번 곱해져서 수렴이 불가능해집니다. 모델에 레이어가 많을수록 더 쉽게 발생합니다. 발생 장소: CNN. RNN. LSTM. GRU. 쉽게 발생하지 않는 경우: 레스넷. 트랜스포머. 등 다음과 같은 경우 감지될 수 있습니다. 모델의 무게가 눈에 띄게 늘어납니다. 크게 증가한 모델의 가중치가 결국 NaN이 됩니다. 수렴은 끝나지 않은 채 요동친다. 다음을 통해 완화할 수 있습니다. 일괄 정규화 계층. 그라디언트 클리핑. ReLU 문제가 죽어가고 있습니다: 역전파 중에 ReLU 활성화 함수가 있는 노드(뉴런)가 0 또는 음수 입력 값을 받으면 모든 입력 값에 대해 항상 0을 생성하고 마지막으로 다음을 제외한 어떤 값도 생성하도록 복구되지 않습니다. 0이면 모델을 효과적으로 훈련할 수 없습니다. Dead ReLU 문제라고도 합니다. 다음과 같은 경우 더 쉽게 발생합니다. 더 높은 학습률. 부정적 편향이 더 높습니다. 다음과 같은 경우 감지될 수 있습니다. 수렴이 느리거나 중단되었습니다. 손실 함수는 nan을 반환합니다. 다음을 통해 완화할 수 있습니다. 학습률이 낮습니다. 긍정적 편견. Reaky ReLU 활성화 함수. PReLU 활성화 기능. ELU 활성화 기능.