딥러닝(5) - 경사하강법 알고리즘 도입 및 최적화

     기초 지식의 숙달이 연구의 높이를 결정합니다. 우리가 처음 딥러닝을 접했을 때, 보통 다른 사람들의 일반화를 보았습니다. 이 방법은 빨리 시작하기에는 매우 좋지만 큰 단점도 있습니다. 이해가 철저하지 않아 알고리즘을 최적화할 때 혼란을 야기했습니다. 저 역시 지식 요약이라는 아이디어로 딥러닝 지식의 본질에 대한 탐구를 시작했고, 더 많은 분들께 도움이 되었으면 좋겠습니다. 기사에 불분명한 점이 있는데, 동료 연구자(딥러닝을 연구하는 친구들)가 지적해 주시길 바라며, 열심히 기사를 개선하도록 노력하겠습니다.

1. 경사하강법 알고리즘 소개

     앞서 언급한 손실 함수를 찾는 목적은 손실을 줄여 매개변수를 지속적으로 최적화하여 네트워크를 최적화하는 것입니다. 극한값을 찾아야 한다는 것은 분명합니다. 연속적으로 도함수를 도출한 후 극한값을 찾기 위해 판단을 하는 선형함수의 극값을 찾는 것은 매우 간단합니다. 이진 함수인 경우 편도함수를 수행해야 합니다. 함수가 볼록하지 않으면 여러 극단값 문제가 발생합니다. 따라서 딥러닝과 같은 고수준 손실 함수의 최소값을 찾는 것이 어렵고, 딥러닝은 학습을 위해 많은 수의 샘플이 필요하므로 경사하강법 방법에 따라 효과가 달라집니다. 먼저 그라디언트를 찾는 데 가장 일반적으로 사용되는 프레임워크를 소개하겠습니다.

     1. 전역 경사하강법( 배치 경사하강법 )

           기울기 계산을 반복할 때마다 모델을 업데이트하려면 모든 훈련 세트 샘플이 필요합니다.

     범위(에포크) 내의 i에 대해:

          params_grad = 평가_그라디언트(손실_함수, 데이터, 매개변수)

          params = params - learning_rate * params_grad

위는 코드 구현입니다. 전역 변수의 장단점을 요약할 수 있습니다. 매번 모든 데이터가 반복에 참여하기 때문에 매번 최적화 방향이 올바른지 확인하여 함수는 극단값으로 수렴할 수 있습니다.(볼록 함수인 경우 최소값이 되고, 비볼록 함수인 경우 로컬 최소값이 될 수 있습니다.) 그러나 각 반복에는 오랜 시간이 걸릴 수 있으며, 한 번에 너무 많은 데이터를 훈련하면 계산 메모리 부족이 발생할 수 있습니다.

   2. 확률적 경사하강법

         확률적 경사하강법에서는 학습할 때마다 훈련에서 하나의 샘플이 무작위로 선택됩니다.

       장점과 단점: SGD의 한 가지 단점은 손실 값의 변동이 크고 업데이트될 때마다 기울기가 올바른 방향으로 진행되는지 확인할 수 없다는 것입니다. 그러나 변동으로 인해 함수가 로컬 최적 솔루션에서 벗어나 다른 더 나은 로컬 최적 솔루션에 도달할 수 있다는 장점도 있습니다. 더 나은 수렴 효과와 심지어 전역 최적점도 있습니다. 또한 변동으로 인해 반복 횟수가 늘어나므로 수렴 속도가 느려집니다. 그러나 결국에는 여전히 로컬 또는 전역 최적으로 수렴됩니다.

  3. 미니 배치 경사하강법( Mini-batch Gradientc Decent )

     미니 배치 경사하강법은 전역 경사하강법과 확률적 경사하강법 간의 균형을 맞추는 것입니다. 먼저 데이터를 무작위 그룹으로 섞습니다. 그런 다음 작은 데이터 세트가 각 교육 세션에 제공됩니다.

   장점과 단점: 경사 하강법에 비해 미니 배치 경사 하강법은 수렴의 변동성을 줄입니다. 업데이트를 더욱 안정적으로 만드세요. 전역 경사하강법(Global Gradient Descent) MIni-batch에 비해 학습 속도가 향상되고 메모리의 한계를 걱정할 필요가 없습니다. 각 입력 그림은 선택 문제이며 여러 번의 시도를 거쳐 적절한 수의 샘플을 선택할 수 있습니다.

2. 경사하강법 알고리즘의 문제점과 과제

  1. 학습률 선택이 특히 어려운데, 학습률이 작으면 수렴 속도가 느리고, 학습률이 크면 수렴 효과가 좋지 않습니다. 극한값이지만 줄일 수는 없습니다.

  2. 학습률 조정, 즉 훈련 과정에서 학습률을 지속적으로 변경하는 전략을 설정하지만, 이를 위해서는 여전히 임계값 설정이 필요합니다.

  3. 모델의 각 매개변수 업데이트에는 동일한 학습률이 필요하지만, 데이터 특징의 희소성과 각 특징의 통계적 특징 및 공간이 다르기 때문에 매개변수 업데이트마다 다른 학습률이 필요합니다.

  4. 볼록하지 않은 함수의 경우 쉽게 로컬 최적 솔루션에 속합니다. 또 다른 가장 심각한 문제는 국소 최적해가 아닌 안장점(특정 선에서는 상대적으로 안정적이지만 최대값도 최소값도 아닌)에서 낯설음이 발생한다는 것입니다.

3. 상기 문제점을 완화하기 위한 최적화 방법

  경사하강법 최적화 알고리즘을 소개하겠습니다.

   1. 모멘텀

    더 많은 지역적 극값을 갖는 일부 함수에서는 경사하강법의 사용이 이러한 위치에서 방황하게 되어 수렴 속도가 감소하게 되는데, 이 경우 운동량 메모리 엔딩을 추가합니다. 원리는 이 순간의 경사하강 방향이 이전 순간의 경사하강 방향과 같을 때, 이 순간의 경사하강 속도가 증가한다는 것입니다. 만약 방향이 이전 순간과 반대라면, 그 방향의 경사하강 속도를 줄여야 합니다. 이렇게 하면 잘못된 방향으로 너무 멀리 이동하지 않고 경사 하강 속도가 더 빨라집니다.

  2、 복용량 

  Adagrad는 각 매개변수 업데이트에 대해 서로 다른 학습률에 적응하고, 희소 기능에 대해 큰 학습률을 얻고, 기능이 많은 기능에 대해 더 작은 학습률을 사용할 수 있는 그래디언트 기반 최적화 알고리즘입니다. 따라서 이 최적화 알고리즘은 희소한 특징 데이터를 처리하는 데 더 적합하며 네트워크의 견고성을 향상시킬 수 있습니다. 일반적으로 단어 벡터는 학습이 가능하며, 현장에 등장하는 단어에 대해서는 작은 학습률을 부여합니다.

방정식은 다음과 같습니다.

                   

  방정식을 보면 운동량이 다르며 2차 운동량을 사용하는 것을 알 수 있습니다.

  3、아담

  Adaptive Moment Estimation(Adam) 역시 적응형 학습률의 한 방법으로 그 붕괴 방식은 모멘텀과 유사합니다.

    방정식은 다음과 같습니다. 실제로 이는 1차 모멘텀과 2차 모멘텀의 조합입니다.

               

4. SGD 옵티마이저 선택 방법

    데이터 특성이 희소한 경우 훈련 중에 학습률을 수동으로 조정할 필요가 없으므로 적응형 학습률 SGD 최적화 방법(Adagrad, Adadelta, RMSprop, Adam)을 사용하는 것이 좋습니다. 그러나 현재 많은 최신 논문에서는 SGD의 가장 기본적인 학습 속도 어닐링 조정을 사용합니다. 증거에 따르면 SGD는 최소값을 얻을 수 있지만 강력한 초기화 값과 학습에 의존하는 다른 최적화 프로그램과 비교할 수 있습니다. 속도 어닐링 조정 전략, 그리고 최소값과 안장점에 갇히기 쉽습니다. 따라서 빠른 수렴을 달성하기 위해서는 적응형 학습률을 갖춘 SGD 최적화 방법을 선택해야 합니다.

5. 추가 SGD 최적화 전략

    앞서 언급한 Momentum, Adagrade 및 Adam은 모두 학습 속도를 변경하고 기울기를 올바른 방향으로 제어하는 ​​방식으로 작동합니다. 다음 최적화 알고리즘은 이러한 분포를 보완하여 훈련을 보다 안정적으로 만듭니다.

   1. 샘플을 무작위로 섞거나 특정 의미에 따라 정렬합니다.

     학습 과정에 편향이 없도록 훈련 세트의 순서가 혼란스럽습니다. 그러나 경우에 따라 문제를 단계별로 해결하고 훈련 세트를 정렬하는 것이 수렴 ​​및 SGD 성능에 더 도움이 됩니다. 의미있는 방법.

    2. 배치 정규화(BN 알고리즘)

      네트워크의 수렴과 훈련 속도 성능의 영향을 보장하기 위해 평균 0과 분산 1의 원칙을 사용하여 입력 데이터를 초기화하는 경우가 많습니다. 그러나 네트워크가 훈련됨에 따라 매개변수는 다양한 수준으로 업데이트되므로 이러한 매개변수는 평균이 0이고 분산이 1인 분포를 잃게 됩니다. 이로 인해 데이터 오프셋이 발생하여 수렴 속도가 저하되고, 너무 많은 뉴런이 비활성화되기 쉬워 매개변수가 과도하게 조정되어 수렴 성능에 영향을 미치게 됩니다.

    3. 조기 중단(훈련 조기 종료)

     여러 번의 반복 중에 손실 함수가 더 이상 크게 감소하지 않으면 훈련을 조기에 종료해야 합니다. 혹은 과적합(overfitting)이 증가한다면 조기에 종료해야 합니다.

  4, 그래디언트 노이즈

   각 반복마다 가우스 분포의 무작위 오류를 추가하면 네트워크의 견고성을 높일 수 있으며 심층 네트워크 훈련에 적합합니다. 무작위 노이즈를 추가하면 국지적 극값을 건너뛰고 더 나은 수렴을 달성할 가능성이 높기 때문입니다.

 

    위 내용은 경사하강법 관련 지식을 요약한 것이며, 불분명한 표현이나 오류가 있는 경우 수정을 환영합니다. 다음으로, 기사에서 언급한 BN(Batch Normalization)의 원리와 딥 네트워크에서의 역할에 대해 자세히 소개하겠습니다.

Je suppose que tu aimes

Origine blog.csdn.net/qq_37100442/article/details/81743813
conseillé
Classement