딥 러닝 - 하이퍼파라미터(지속적으로 업데이트됨)

목차

초매개변수


1. 모델 매개변수와 하이퍼 매개변수의 차이점

  • 모델 매개변수(Parameter): 모델의 내부 구성 변수로, 모델은 데이터를 기반으로 변수를 자동으로 학습하고 데이터에 따라 자체적으로 구동 및 조정할 수 있습니다.
    예를 들어 딥 러닝의 가중치와 편향이 있습니다.
  • 하이퍼파라미터: 기계 학습 알고리즘의 튜닝 매개변수(튜닝 매개변수) 또는 프레임워크 매개변수이기도 합니다. 모델의 외부 구성은 데이터에 의해 구동될 필요가 없지만 훈련 전이나 도중에 수동으로 설정 및 조정됩니다. " 확립된 또는 기존 경험을 기반으로 올바른" 가치를 제공합니다. 다른 하이퍼파라미터, 다른 모델

기계 학습에서 언급한 "파라미터 튜닝"은 사실 "파라미터"를 튜닝하는 것이 아니라 "초매개변수"를 튜닝하는 것입니다.

 

2. 분류

(1) 네트워크 매개변수

1. 네트워크 계층 간의 상호 작용 모드(더하기, 곱하기 또는 연결 등)

2. 컨볼루션 커널 수와 컨볼루션 커널 크기

컨볼루션 커널의 커널 매개변수는 모델 매개변수입니다.

3. 신경망 레이어(깊이라고도 함) 레이어

3.1 심층 신경망의 숨겨진 계층 수

4. 은닉층 뉴런 은닉 유닛의 수

5. 출력 뉴런의 코딩 방법

6. 뉴런 활성화 기능

(2) 파라미터 최적화

1. 학습률 α(학습률)

1.1 학습률 감소 매개변수(학습률 감소)

2. 배치 샘플 수(배치 크기)

(1) 설명:

  • 큰 배치는 행렬 및 선형 대수 라이브러리를 최대한 활용하여 계산을 가속화할 수 있습니다. 배치가 작을수록 가속 효과가 덜 분명할 수 있습니다.
  • 배치가 너무 작으면 업데이트가 로컬 최소값에 들어가게 됩니다.
  • Batch가 너무 크면 가중치가 덜 자주 업데이트되어 최적화 프로세스가 길어집니다.

(2) 선택:

  • 데이터 세트의 크기와 장치의 컴퓨팅 성능에 따라 선택하십시오.
  • 따라서 허용 가능한(최적일 필요는 없는) 다른 하이퍼파라미터 값을 선택하고 다양한 미니 배치 크기를 시도합니다.
  • 플롯 정확도 대 시간(루프 수가 아닌 실제 실행 시간임)
  • 빠른 성능 향상을 위해 가장 작은 배치 크기를 선택한 후 다른 하이퍼파라미터를 계속 최적화할 수 있습니다.

3. 다양한 옵티마이저의 매개변수

3.1 모멘텀 경사하강법 알고리즘 매개변수: β \beta
3.2 Adagrad 알고리즘 매개변수: ε \varepsilon이자형
3.3 Adadelta 알고리즘 매개변수: β \betab ,e \varepsilon이자형
3.4 아담 알고리즘 매개변수: β 1 \beta_{1}1, β 2 \beta_{2}2, ε \varepsilon이자형

4. 손실 함수 및 조정 가능한 매개변수

(3) 정규화 매개변수

1. 정규화 계수 η

η를 늘리면 가중치 w가 작아지는데, 이는 네트워크의 복잡성이 낮아지고 데이터에 더 잘 맞는다는 것을 의미하며 이는 실제 응용에서도 검증되었습니다.

2. 무게 감소 계수

3. 탈락

드롭아웃은
NN의 숨겨진 레이어에 있는 뉴런의 수를 수정하여 NN이 과적합되는 것을 방지합니다.

(4) 기타

1. 반복 횟수 epoch

No-improvement-in-n 규칙:

  • 교육 중에 최고의 유효성 검사 정확도를 기록합니다.
  • 10회 연속 에포크(또는 그 이상) 동안 최고의 정확도에 도달하지 못하면 "더 이상 개선되지 않음"으로 간주하고 이때 조기 중지를 사용할 수 있습니다.
  • n은 epoch의 수이며 실제 상황에 따라 10, 20, 30...이 될 수 있습니다.

2. k개의 가장 가까운 이웃 방법에서 k(가장 가까운 점의 수)

3. k-평균 클러스터링의 클러스터 수

4. 의사결정나무 모형에서 나무의 수와 나무의 깊이

5. 행렬 분해의 잠재 요인 수

6. 클러스터링 방법의 클래스 수

7. 주제 모델의 주제 수

8. 학습 모델의 데이터 크기

계획:

  • 소스에서 더 많은 데이터 수집
  • 원본 데이터 복사 및 랜덤 노이즈 추가
  • 리샘플링
  • 현재 데이터 세트를 기반으로 데이터 분포의 매개변수를 추정하고 해당 분포를 사용하여 더 많은 데이터 생성
     

3. 하이퍼파라미터 튜닝

(1) 최적화 이유

  • 본질적으로 이것은 최적의 솔루션을 찾기 위한 모델 최적화와 정규화 기간 간의 관계입니다. 네트워크 모델을 최적화하고 조정하는 목적은 전역 최적 솔루션(또는 더 나은 로컬 최적 솔루션)을 찾는 것이며 정규화 기간은 모델이 최대한 최적에 적합할 수 있기를 바랍니다. 일반적으로 둘 사이에는 일정한 반대가 있지만 둘의 목표는 동일합니다. 즉, 예상되는 위험을 최소화하는 것입니다. 모델 최적화는 경험적 위험을 최소화하기를 바라지만 과적합에 빠지기 쉽고 정규항을 사용하여 모델의 복잡성을 제한합니다. 따라서 둘 사이의 관계를 균형 있게 조정하고 최적의 또는 더 나은 솔루션을 얻는 방법은 하이퍼 매개변수 조정 최적화의 목적입니다.

학습률을 조정해야 하는 이유
학습률은 모델 학습에서 가장 중요한 하이퍼파라미터라고 할 수 있습니다. 일반적으로 우수한 학습률 하나 또는 세트는 모델 학습 속도를 높일 수 있을 뿐만 아니라 더 우수하거나 최적의 정확도를 얻을 수도 있습니다. 학습률이 너무 크거나 너무 작으면 모델의 수렴에 직접적인 영향을 미칩니다. 모델이 일정 수준까지 훈련되면 손실이 더 이상 감소하지 않는다는 것을 알고 있습니다. 이때 모델의 1차 기울기는 0에 가깝고 일반적으로 헤시안 행렬에 해당하는 두 가지 상황이 있습니다.

  1. 양의 정부호, 즉 모든 고유값이 양수이다. 이때 일반적으로 지역최소값을 구할 수 있다. 지역최소값이 전역최소값에 가까우면 이미 좋은 성능을 얻은 모델이지만 갭이 크다면 크면 모델 성능이 좋지 않습니다. 개선이 필요하며 일반적으로 후자가 훈련 초기에 가장 일반적입니다.
  2. 고유값은 양수와 음수가 모두 있는데 이때 모델은 안장점에 빠질 가능성이 높으며 안장점에 빠지면 모델의 성능이 매우 떨어지게 된다.

위의 두 가지 경우, 학습 초기 및 중간 단계에서 이 시점에서 여전히 학습률이 고정되어 있으면 모델이 좌우 진동 또는 안장점에 빠지고 계속해서 최적화할 수 없습니다. 따라서 학습률 감소 또는 증가는 모델이 효과적으로 충격을 줄이거나 안장점에서 벗어나는 데 도움이 될 수 있습니다.

 

(2) 최적화 전략

1. 조심하세요(시행착오라고도 함)

후속 접근 방식은 시행 착오 방식 또는 학계에서는 대학원 강하 방식으로 알려져 있습니다. 이 접근 방식은 100% 수동이며 학습 프로세스의 모든 단계(데이터 수집에서 기능 맵 시각화까지)를 따른 다음 시간이 다되거나 기한 또는 동기 부여가 될 때까지 하이퍼 매개변수를 순차적으로 반복합니다.
 

2. 자동화된 하이퍼파라미터 검색 방식

설명하다:

  • 뛰어난 데이터 전처리
  • 적절한 모델 구조 및 기능
  • 탁월한 교육 전략 및 하이퍼파라미터
  • 적절한 후처리
  • 결과에 대한 엄격한 분석. AutoML의 역할은 효율적인 모델 구축 및 하이퍼파라미터 튜닝을 용이하게 하는 것입니다.
     
2.1 그리드 검색/전 검색(grid search)

각 하이퍼파라미터에 대한 대략적인 후보 집합을 나열하고 항목별 조합 최적화에 이 집합을 사용합니다.

  • 장점: 더 나은 효과
  • 단점: 하이퍼파라미터의 개수에 따라 계산 시간이 기하급수적으로 늘어나 비효율적입니다.

두 종류의 하이퍼파라미터가 있는 경우 각각의 하이퍼파라미터는 3개의 값을 탐색하고 이들의 데카르트 곱 후 9개의 하이퍼파라미터 조합을 얻는다.

 

2.2 임의 검색

임의의 하이퍼파라미터를 생성하기 위해 각 하이퍼파라미터에 대한 분포 함수를 정의합니다.

  • 장점: 더 효율적
  • 단점: 더 나은 하이퍼파라미터를 찾을 수 있다는 보장이 없습니다.
     

3. 미세 회전

이름에서 알 수 있듯이 매개 변수를 약간 조정하면 뛰어난 성능을 얻을 수 있습니다.

소규모 데이터 세트에서는 미세 조정이 일반적으로 처음부터 훈련하는 것보다 훨씬 낫습니다. 더 많은 매개변수를 훈련하면 적은 양의 데이터를 전제로 과적합이 쉽게 발생할 수 있기 때문입니다.

(1) 방법:

  • 마지막으로 수정된 레이어에는 큰 학습률을 사용하고 수정되지 않은 레이어에는 작은 학습률을 사용합니다.
  • 맨 위 변경 레이어를 제외한 모든 레이어 매개변수 고정

(2) 미세 조정은 왜 맨 아래 레이어를 먼저 동결하고 맨 위 레이어를 훈련합니까?

  • 최상위 계층을 훈련하면 최상위 계층의 잘못된 초기화를 방지할 수 있습니다.
  • 하위 수준 기능은 일반적으로 더 일반적인 기능이며 수준이 높을수록 전반적인 상위 수준 의미 체계가 더 완전해집니다.

(3) 데이터 세트에 대한 미세 조정 방법을 선택하는 방법은 무엇입니까?

  • 데이터는 원래 데이터 세트와 유사합니다. 최종 출력 레이어를 수정하고 훈련하면 됩니다. 매개변수가 너무 많으면 과적합되기 쉽습니다.
  • 데이터가 원래 데이터 세트와 상당히 다릅니다. 출력 상위 레이어의 미세 조정을 완료한 후 미세 조정을 위해 상위 레이어부터 하위 절반까지 레이어 수를 미세 조정합니다.
     

4. 베이지안 최적화

 

(3) 프로세스

  • 먼저 검색 공간에 대한 선험적 가정, 즉 하이퍼파라미터를 선택하는 방법을 가정합니다.
  • 그런 다음 확률 모델을 지속적으로 최적화하고 업데이트합니다.
  • 궁극적인 목표는 유효성 검사 집합에서 가장 작은 오류가 있는 하이퍼 매개 변수 집합을 찾는 것입니다.
     

(4) 학습률 튜닝

1. 이유

학습률은 틀림없이 모델 교육에서 가장 중요한 하이퍼파라미터입니다. 일반적으로 우수한 학습률 하나 또는 세트는 모델 학습 속도를 높일 수 있을 뿐만 아니라 더 우수하거나 최적의 정확도를 얻을 수도 있습니다. 학습률이 너무 크거나 너무 작으면 모델의 수렴에 직접적인 영향을 미칩니다. 모델이 일정 수준까지 훈련되면 손실이 더 이상 감소하지 않는다는 것을 알고 있는데 이때 모델의 1차 기울기는 0에 가깝고 일반적으로 헤시안 행렬에 해당하는 두 가지 상황이 있습니다

  1. 양의 정부호, 즉 모든 고유값이 양수이다. 이때 일반적으로 지역최소값을 구할 수 있다. 지역최소값이 전역최소값에 가까우면 이미 좋은 성능을 얻은 모델이지만 갭이 크다면 크면 모델 성능이 좋지 않습니다. 개선이 필요하며 일반적으로 후자가 훈련 초기에 가장 일반적입니다.
  2. 고유값은 양수와 음수가 모두 있는데 이때 모델은 안장점에 빠질 가능성이 높으며 안장점에 빠지면 모델의 성능이 매우 떨어지게 된다.

위의 두 가지 경우, 학습 초기 및 중간 단계에서 이 시점에서 여전히 학습률이 고정되어 있으면 모델이 좌우 진동 또는 안장점에 빠지고 계속해서 최적화할 수 없습니다. 따라서 학습률 감소 또는 증가는 모델이 효과적으로 충격을 줄이거나 안장점에서 벗어나는 데 도움이 될 수 있습니다.
 

2. 설명:

  • 다른 하이퍼파라미터는 테스트 세트의 최종 분류 정확도를 향상시키는 것을 목표로 하므로 정확도에 따라 선택됩니다.
  • 그러나 학습률은 최종 분류 정확도에 가끔 영향을 미칩니다.
  • 주요 목적은 경사 하강법에서 단계 크기를 제어하는 ​​것이며 비용 모니터링은 단계 크기가 너무 큰지 감지하는 가장 좋은 방법입니다.
  • 마지막으로 교육 초기에 높은 정확도는 낮은 분산을 의미하는 경향이 있으므로 둘 사이에 큰 차이가 없어야 합니다.
     

3. 자동 조정:

  • 교육 과정에서 최고의 정확도를 기록하고 10회 연속 epoch(또는 그 이상) 동안 최고의 정확도에 도달하지 못하면 "더 이상 개선되지 않음"으로 간주할 수 있습니다.
  • 학습률을 절반(또는 1/10)으로 선택하여 프로그램이 계속 실행되도록 할 수 있습니다.
  • 이 과정을 학습률이 원본의 1/1024가 될 때까지 계속한 후 프로그램 종료
     

4. 텐서플로 조정 전략

(1) 지수_붕괴

  • 지수 감쇠는 가장 일반적으로 사용되는 감쇠 방법입니다.
  • 이 방법은 간단하고 간단합니다
  • 훈련 초기 단계에서 더 큰 감쇠는 수렴에 도움이 되고, 후기 기간에 더 작은 감쇠는 미세 조정에 도움이 됩니다.
    여기에 이미지 설명 삽입

(2) piecewise_constant

  • 부분적으로 학습 속도를 설정하는 방법
  • 다른 단계에서 수동으로 다른 학습 속도를 설정할 수 있습니다.
  • 이 학습 속도는 미세 조정에 중점을 둡니다.
    여기에 이미지 설명 삽입

(3) 다항식_쇠퇴

  • 거듭제곱이 1보다 작으면 1/승의 거듭제곱이 파란색 선이고, 녹색 선은 거듭제곱이 1보다 클 때입니다.
  • 싸이클 하락 후 다시 상승 여부를 결정하는 과정
    여기에 이미지 설명 삽입

 

5. 차등 학습

훈련 중에 네트워크의 다른 계층에 대해 다른 학습 속도를 설정하는 방법을 차등 학습이라고 합니다.


여기에 이미지 설명 삽입

  • 처음 몇 개의 레이어에는 일반적으로 변경되지 않고 정보를 유지하는 경향이 있는 선 및 가장자리와 같은 데이터의 매우 미세한 세부 정보가 포함됩니다.
  • 반대로 그림의 녹색 레이어와 같은 이후 레이어에서는 입, 코 등과 같은 세부적인 특징을 유지하지 않고 얻을 수 있습니다.

설명하다:

  • 일부 네트워크에는 100개 이상의 계층이 있을 수 있으므로 전체 모델을 미세 조정하는 데 비용이 너무 많이 듭니다. 따라서 모델 미세 조정은 일반적으로 한 번에 한 레이어씩 수행됩니다.
  • 그러나 이렇게 하려면 순차성이 필요하고 병렬 처리를 방지하며 데이터 세트를 여러 번 통과해야 하므로 작은 데이터 세트에 과적합이 발생합니다.
  • 차동 학습 방법은 다양한 NLP 분류 작업에서 정확도를 개선하고 오류율을 줄이는 것으로 나타났습니다.
     

4. 중요성의 순서

(1) 학습률 α, 손실 함수의 조정 가능한 매개변수

  • 학습률: 가장 중요한 하이퍼파라미터로, 훈련 중 네트워크 기울기 업데이트의 크기를 직접 제어하고 모델의 유효 허용오차에 직접적인 영향을 미칩니다.
  • 손실 함수의 조정 가능한 매개변수: 이러한 매개변수는 일반적으로 실제 손실 함수와 함께 조정해야 하며 대부분의 경우 이러한 매개변수는 모델의 유효 허용 오차에 직접 영향을 줄 수 있습니다.

이러한 손실은 일반적으로 세 가지 범주로 나눌 수 있습니다.

  1. 보조 손실은 일반적인 손실 함수를 결합하여 기능 표현을 최적화하는 데 도움을 줍니다. 예를 들어 메트릭 학습의 중심 손실은 일반적으로 일부 특정 작업을 완료하기 위해 교차 엔트로피 손실과 가중치를 결합합니다. 이 경우 일반적으로 보조 손실 값은 교차 엔트로피 손실 값의 두 자릿수보다 높거나 낮지 않은 것이 좋습니다.
  2. 다중 작업 모델을 위한 다중 손실 함수, 각 손실 함수는 작업 자체 간의 상관 관계에 따라 독립적이거나 서로 관련되어 있습니다.
  3. 독립적인 손실 함수, 이러한 유형의 손실은 일반적으로 특정 작업에 상당한 영향을 미칩니다. 예를 들어, RetinaNet의 초점 손실, 매개변수 γ, α는 최종 효과에 더 큰 영향을 미칩니다. 이러한 유형의 손실은 일반적으로 논문에서 특정 제안 값을 제공합니다.
     

(2) 배치 샘플의 수, 모멘텀 옵티마이저의 모멘텀 파라미터 β

  • 배치 샘플 크기(batch size): 배치 샘플은 양적 경사하강법의 방향을 결정합니다.
  1. 배치 샘플의 개수가 너무 적다 극단적인 경우 예를 들어 배치 크기가 1인 경우 즉, 각 샘플이 기울기 방향을 한 번 수정해야 하며 샘플 간의 차이가 클수록 수렴하기가 더 어렵습니다. 네트워크에 배치 정규화(batchnorm)가 있는 경우 배치 크기가 너무 작으면 수렴하기가 더 어려워지거나 심지어 축소됩니다. 이는 데이터 샘플이 적을수록 통계의 대표성이 떨어지고 이에 따라 노이즈가 증가하기 때문입니다.
  2. 지나치게 많은 수의 배치 샘플은 기울기 방향을 기본적으로 안정적으로 만들고, 로컬 최적 솔루션에 빠지기 쉽고 정확도를 떨어뜨립니다.
  3. 일반적인 기준 범위는 [1:1024] 사이일 것입니다. 물론 절대적인 것은 아니며 특정 시나리오 및 샘플 조건과 결합해야 합니다.
  • 모멘텀 옵티마이저(Gradient Descent with Momentum)의 모멘텀 감쇠 매개변수 β: 기울기의 지수 가중 평균을 계산하고 이 값을 사용하여 매개변수를 업데이트합니다. 0.9로 설정하는 것이 일반적이고 효과적인 선택입니다.
     

(3) 네트워크 매개변수, 아담 옵티마이저의 하이퍼 매개변수, 가중치 감쇠 계수, 폐기 방법의 비율

이러한 매개변수의 중요성을 마지막에 언급한다고 해서 이러한 매개변수가 중요하지 않다는 의미는 아닙니다. 대신, 이러한 매개 변수는 대부분의 관행에서 너무 많이 시도하지 않는 것이 좋습니다.

  • 네트워크 매개변수: 일반적으로 네트워크 레이어의 수를 늘리면 모델의 허용 오차가 증가할 수 있지만 모델의 실제 유효 허용 오차는 샘플의 수와 품질, 레이어 간의 관계 등과도 관련되므로 일반적으로 , 네트워크가 먼저 고정됩니다. 레이어 수, 특정 단계로 조정 또는 많은 수의 하드웨어 리소스가 네트워크의 깊이에서 추가로 조정될 수 있습니다.
  • Adam 옵티마이저의 하이퍼파라미터: Adam 옵티마이저의 β1, β2, ϵ, 일반적으로 0.9, 0.999, 10−8로 설정하면 좋은 성능을 발휘합니다.
  • 가중치 감쇠 계수: 일반적으로 0.0005와 같은 권장 값이 있습니다. 너무 많이 시도하지 말고 제안 값을 사용하십시오.
  • 드롭아웃 비율(dropout): 과적합을 방지하기 위해 일반적으로 완전 연결 레이어 사이에 사용되며 비율을 [0.2,0.5] 사이에서 제어하는 ​​것이 좋습니다.

드롭아웃을 사용할 때 다음 두 가지 사항에 특히 주의해야 합니다.

  1. RNN에서 메모리 셀에 직접 배치하면 루프가 노이즈를 증폭하고 학습을 방해합니다. 일반적으로 입력 및 출력 레이어에 배치하는 것이 좋습니다.
  2. dropout 직후에 batchnorm을 따라잡는 것은 권장하지 않으며, dropout은 batchnorm으로 계산된 통계에 영향을 미쳐 결과적으로 variance shift가 발생할 수 있으며, 이 경우 모델은 추론 단계에서 완전히 붕괴됩니다.
     

5. 일부 하이퍼파라미터의 적절한 범위

초매개변수 권장 범위 지침
컨볼루션 커널 크기 [7x7],[5x5],[3x3],[1x1],[7x1,1X7]
초기 학습률 SGD: [1e-2, 1e-1]
순간: [1e-3, 1e-2]
Adagrad: [1e-3, 1e-2]
Adadelta: [1e-2, 1e-1]
RMSprop: [1e-3 , 1e-2]
아담: [1e-3, 1e-2]
Adamax: [1e-3, 1e-2]
나담: [1e-3, 1e-2]
이러한 범위는 일반적으로 처음부터 훈련하는 경우를 나타냅니다. 미세 조정을 위해 초기 학습률을 1~2배 줄일 수 있습니다.
배치 샘플 크기 [1,1024] 배치 샘플의 수가 너무 크거나(6000 이상) 1과 같을 경우 학습 전략 또는 내부 정규화 방법의 조정에 주의해야 합니다.
손실 함수 부분 하이퍼파라미터 여러 손실 함수 사이에서 손실 값은 가능한 한 가까워야 하며 두 자릿수를 초과하거나 미달하지 않는 것이 좋습니다. 이것은 여러 손실 조합의 경우를 말하며 반드시 전적으로 사실은 아닙니다. 단일 손실 하이퍼파라미터는 실제 상황과 결합되어야 합니다.
체중감소계수 [0, 1e-4]
폐기 비율 [0, 0.5]

위 내용은 마무리가 되지 않아 수정이 필요하며, 개인 공부용으로만, 침해 연락처는 삭제하며, 오류나 미비한 사항이 있으면 지적하여 개선해 주시기 바랍니다.

추천

출처blog.csdn.net/abc31431415926/article/details/127962898