d2l_Chapter 5 학습_다층 퍼셉트론 다층 퍼셉트론

x.1 숨겨진 레이어

선형 모델의 기본 가정은 단조적 입니다. 즉, 특성이 증가하면 모델의 출력이 증가합니다(가중치가 양수이면 음수이기도 함). 그러나 현실의 많은 관계는 단순한 선형 관계가 아니며 이때 비선형 관계를 도입해야 하며 비선형 관계는 Hidden Layer Hidden Layer와 Activation Function 활성화 기능의 두 부분으로 구성됩니다.

Lenovo Regression/LInear Regression 및 Classification/Softmax Regression, 두 가지의 간결한 구현은 LazyLinear 선형 계층에 의해 실현되며, 이때 숨겨진 계층을 도입하여 Multilayer Perceptrons 다중 계층 퍼셉트론을 형성하기 위해 선형 계층의 또 다른 계층을 추가합니다( 이하 MLP로 약칭). 다음 그림은 두 개의 레이어가 있는 MLP입니다(입력 레이어는 별도의 레이어로 계산되지 않음). 첫 번째 레이어는 4 ∗ ( 5 + 1 ) = 24 4*(5+1)=244( 5+1 )=24개의 학습 가능한 매개변수, 두 번째 레이어에는5 ∗ ( 3 + 1 ) = 20 5*(3+1)=205( 3+1 )=20개의 학습 가능한 매개변수.

사진 설명을 추가해주세요

x.2 활성화 기능

x.2.1 선형에서 비선형으로

은닉층을 도입함으로써 아핀 함수는 (5.1.1) -> (5.1.2)에서 다음과 같이 변경되었습니다.

사진 설명을 추가해주세요

사진 설명을 추가해주세요

affine 함수의 affine 함수는 여전히 affine 함수이므로 비선형 특성을 도입하지 않습니다. 비선형 속성을 도입하기 위해서는 활성화 함수가 추가되어야 합니다.활성화 함수를 통해 하나의 레이어가 중첩되어 보다 표현력이 풍부한 모델을 생성하며 일반 근사 정리는 다음을 알려줍니다. , 많은 함수를 더 쉽게 근사화할 수 있습니다.

사진 설명을 추가해주세요

x.2.2 일반적인 활성화 기능

x.2.2.1 ReLU

ReLU는 가장 일반적으로 사용되는 활성화 함수이며 많은 변형이 있습니다.예를 들어 He_normal은 LeakyReLU 및 ReLU의 가중치 초기화 작업이기도 합니다.

ReLU에는 좋은 파생 속성이 있습니다. 매개변수를 사라지게 하거나 매개변수를 통과시키십시오. 함수 표현은 다음과 같습니다.

사진 설명을 추가해주세요

이미지는 다음과 같습니다.

사진 설명을 추가해주세요

파생 이미지는 다음과 같습니다.

사진 설명을 추가해주세요

x.2.2.2 시그모이드

로지스틱 함수라고도 하는 시그모이드 함수는 초기 신경망에서 제안된 임계값 단위와 유사하며 일정 입력이 일정 값보다 낮으면 0을, 일정 임계값보다 높으면 1이 걸립니다. (-inf, inf)에서 (0, 1)까지의 범위, 함수 표현, 이미지 표현, 도함수 이미지 표현을 다음과 같이 매핑합니다.

사진 설명을 추가해주세요

사진 설명을 추가해주세요

사진 설명을 추가해주세요

x.2.2.3 탄

Tanh는 함수 값 매핑이 (0, 1)에서 (-1, 1)로 변경된다는 점을 제외하면 시그모이드와 유사합니다. 함수 표현, 함수 이미지, 함수 그래디언트 이미지는 다음과 같습니다.

사진 설명을 추가해주세요

사진 설명을 추가해주세요

사진 설명을 추가해주세요

x.3 MLP 복합 구현

nn.Parameters복잡한 구현은 기능 인터페이스를 참조할 수 있습니다 . 를 참조하십시오 https://blog.csdn.net/qq_43369406/article/details/131234557.

x.4 MLP 쉬운 구현

MLP의 간단한 구현은 Pytorch에 의해 패키지된 nn.LazyLinear 선형 계층을 사용하여 nn.Parameter 자체로 정의된 가중치 계층을 대체하는 것입니다. nn.Sequentail이 과정에서 이 API에 접속해야 할 수도 있습니다.https://blog.csdn.net/qq_43369406/article/details/129998217

x.5 정방향 전파, 역방향 전파 및 계산 그래프.

nn의 하위 클래스를 사용하여 모델 모델을 정의하면 모델이 생성된 계산 그래프입니다. 정방향 전파를 사용하여 출력을 계산합니다. 역전파를 사용하여 모델의 기울기 행렬을 업데이트합니다. 모델의 가중치 행렬을 업데이트하려면 optimizer.step()을 사용하십시오.

네트워크 교육의 신기원에서 정확히 수행되는 작업을 이해하려면 기사를 참조하세요. + zero_grad는 뒤로 배치될 수 있습니다(train.py).https://blog.csdn.net/qq_43369406/article/details/129740629

x.6 그라데이션 소실 및 폭발 그라데이션 소실 및 그라데이션 폭발

연쇄법칙의 적용으로 기울기는 실제로 여러 값을 곱한 결과인데, 1보다 크거나 1보다 작은 수를 연속적으로 곱하면 결과가 매우 불안정하다.

사진 설명을 추가해주세요

이로 인해 Vanishing Gradients 그래디언트 소멸 및 Exploding Gradients 그래디언트 폭발 문제가 발생합니다.

x.6.1 그라데이션 소멸 그라데이션 사라짐

공통 기울기가 사라지는데, 예를 들어 아주 작거나 큰 숫자가 시그모이드 함수를 통과하면 그 도함수는 매우 작아지고 무선은 0에 접근하게 됩니다.

사진 설명을 추가해주세요

x.6.2 그래디언트 폭발 그래디언트 폭발

예를 들어 평균값이 0이고 분산이 1인 행렬을 100개 곱하면 1보다 큰 요소가 쉽게 나타납니다.

x.7 모델 초기화

일반적인 초기화에는 데이터 초기화 및 모델 초기화가 포함되며 데이터 초기화에는 정규화, 표준화 등이 포함되고 모델 초기화에는 he_normal 등이 포함됩니다. 우리가 알아야 할 것은 데이터가 산의 모습을 결정하고 모델 초기화가 시작 위치를 결정한다는 것입니다. 처음에 지역 최적점에서 시작하면 매우 나쁠 것입니다.

사진 설명을 추가해주세요

x.8 드롭아웃

과적합을 해결하는 근본적인 목적은 모델의 일반화 능력을 높이는 것이며 좋은 모델은 단순한 특성을 가져야 합니다. 여기서의 단순성은 두 가지 점으로 구성됩니다.

  1. 단순성은 더 작은 차원의 형태로 제공됩니다. 예를 들어 L2 정규화는 매개변수의 양을 줄입니다.
  2. 단순함의 또 다른 각도는 부드러움이 더해진 것입니다. 즉, 함수는 입력의 작은 변화에 민감하지 않아야 합니다. Bishop은 입력 노이즈를 사용한 훈련이 Tikhonov 정규화와 동일함을 증명하고 네트워크에 아이디어를 도입하여 드롭아웃 계층을 얻었습니다. 드롭아웃 방식은 정방향 전파 과정에서 각 내부 레이어를 계산하면서 노이즈를 주입하는데, 표면적으로는 훈련 과정에서 일부 뉴런을 버리는 것처럼 보입니다.

드롭아웃 레이어에서 각 중간 레이어의 활성화 값 h는 사임 확률이 p인 새로운 값(보통 0)으로 대체되며 h'의 기대치는 여전히 h입니다.

사진 설명을 추가해주세요

사진 설명을 추가해주세요

관련 코드 참조https://github.com/yingmuzhi/deep_learning/blob/main/chapter5/5.6.%20Dropout.py

추천

출처blog.csdn.net/qq_43369406/article/details/131209008