일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 논문 요약
- vlm hallucination
- 원격 학습 안끊기게
- dinov2: learning robust visual features without supervision 논문
- evaluating object hallucination in large vision-language models
- vlm hallucination paper
- dinov2: learning robust visual features without supervision
- evaluating object hallucination in large vision-language models paper
- mobilenetv1
- vlm
- 이미지 필터링
- 딥러닝 목적함수
- 딥러닝 엔트로피
- 기계학습
- dinov2: learning robust visual features without supervision 논문 리뷰
- polling-based object probing evaluation
- vlm 환각
- dinov2 논문 리뷰
- vlm 환각이란
- clip
- 객체 검출
- object detection
- clip adapter
- 에지 검출
- 논문 리뷰
- Object detection article
- blip-2
- evaluating object hallucination in large vision-language models 논문
- 엔트로피란
- 1차 미분 마스크
- Today
- Total
My Vision, Computer Vision
[딥러닝 공부] 딥러닝 최적화4 - 하이퍼 파라미터 최적화 본문
이 글은
『오일석, Machine Learning(기계 학습), 한빛아카데미(2017년)』
에서 공부한 내용을 토대로 작성되었다.
https://mvcv.tistory.com/43 이 글에서 이어집니다.
하이퍼 매개변수 최적화
하이퍼 매개변수(Hyper Parameter)란 모델의 외부에서 작용하는 매개변수들을 의미한다. 지금까지 모델의 내부 매개변수들은 Θ,w등으로 표시를 했는데, 이 매개변수들은 학습을 통해 추정할 수 있다는 특징이 있지만 하이퍼 매개변수들은 사용자가 직접 정해주어야 하며, 이 과정에서 사용자의 노하우가 개입될 수 있다. 그 외 격자 탐색 방법과 임의 탐색 방법을 이용하여 좋은 성능을 보여주는 하이퍼 매개변수를 찾을 수 도 있다.

하지만 위 방법들로 찾은 하이퍼 매개변수들은 전역 최적해가 아닐 수도 있으며 더 좋은 하이퍼 매개변수들이 존재할 수 있다.

위 그림에서 봉우리의 정상이 가장 좋은 성능의 하이퍼 매개변수 집합이라고 하자. 검은색 점은 하이퍼 매개변수의 조합을 의미한다. 격자 탐색은 하이퍼 매개변수의 집합을 사용자가 정의하기 때문에 봉우리를 빗겨갈 가능성이 크다. 하지만 임의 탐색은 하이퍼 매개변수의 집합을 무작위로 정하기 때문에 봉우리에 도달할 가능성이 생기게 되고, 이러한 이유로 임의 탐색이 격자 탐색보다 우월하다고 알려져있다.
2차 미분을 이용한 매개변수 최적화
그래디언트를 사용한 경사 하강법은 1차 미분을 이용해서 매개변수를 최적화했다고 할 수 있다. 경사 하강법은 시작점에서 목표점까지 그래디언트를 구하여 업데이트하면서 지그재그로 나아가기 때문에 학습 시간이 오래걸린다는 단점이 있었다. 이러한 단점을 해결하기 위해 2차 미분을 이용하여 시작점부터 목표점까지 한번에 도달하는 방법이 연구되었다.

위 그림에서 파란색 선은 경사하강법으로 최적해를 찾아가는 과정이고, 빨간색 선은 2차 미분 정보를 활용하여 알아내고자 하는 경로이다. 왜 2차 미분의 정보가 필요할까?
테일러 급수와 뉴턴 방법
먼저 테일러 급수란, 어떤 미지의 함수 f(x)가 있을 때, f(x)가 어떤 모습의 함수든, 다항 함수로 근사할 수 있는 것이다. 식으로 나타내면 다음과 같다.
f(x)=p∞(x) pn(x)=f(a)+f′(a)(x−a)+f″(a)2!(x−a)2+⋯+f(n)(a)n!(x−a)n =n∑k=0f(k)(a)k!(x−a)k
테일러 급수의 특징은 다음과 같다.
- 미지의 함수 f(x)에서 x=a일 때를 다항함수 pn(x)로 근사한 식
- x=a에서 멀어질수록 f(x)는 오차가 커지게 된다.
- n이 크면 오차가 작아지고, n이 작아지면 오차가 커진다.
즉 테일러 급수는 미지의 함수를 특정 값에 대해서만 근사한 것이기 때문에, 그 값에서 멀어질수록 오차는 커지고, n차 미분의 값을 사용해서 구하기 때문에 n이 작을수록 오차가 커진다.
뉴턴 방법에서는 n=2로 둔다. 즉 테일러 급수를 2차까지만 전개한다. 이 때 n을 무한대로 두는 것보다는 오차가 크겠지만, x가 a에 충분히 가까워지게 되면 오차는 거의 없게 된다. 목적함수에 테일러 급수를 적용하면 다음과 같은 식으로 나타낼 수 있다.
J(w+δ)≈J(w)+w+J′(w)δ+J″(w)2δ2
위 식은 w+δ에서의 목적함수를 의미하는데, 최적해를 구하기 위해선 목적함수의 값이 최소가되는, 즉 목적함수의 미분값이 0이 되는 w+δ을 구해야하므로 δ에 대해 미분하면
∂J(w+δ)∂δ≈J′(w)+δJ″(w)=0 δ=−J′(w)J″(w)
가 되어 δ의 값을 구할 수 있게 된다. 따라서 시작점 w1에서 δ만큼 이동하게 되면 최적해를 바로 구할 수 있게 되는 것이다. 위 식을 헤시안 행렬을 이용하여 변수가 여러개인, 행렬로 확장하게 되면 아래와 같이 정리할 수있다.
J(\mathbf w + \mathbf {\delta}) \approx J(\mathbf w)+\triangledown J^T {\mathbf \delta} + \frac{1}{2}\boldsymbol \delta^T \mathbf H \boldsymbol \delta \ \boldsymbol \delta = - \mathrm H^{-1}\triangledown \mathrm J
위 식이 테일러 급수를 적용하여 2차 미분 정보를 활용해 최적해를 한번에 찾아내는 뉴턴 방법이다. 하지만 뉴턴 방법은 3차항 이상을 무시한다. 일반적인 기계학습에서 사용하는 목적함수는 2차 함수보다는 고차이기 때문에 뉴턴 방법을 반복 적용해야 한다. 또한 함수의 2차 미분 정보를 담고있는 헤시안 행렬은 매개변수의 개수가 k개일 떄 k*k 크기의 행렬이므로 역행렬을 구하게 되면 O(m^3)만큼의 높은 시간 복잡도가 요구된다.
켤레 그레디언트 방법

위 그림에서 왼쪽은 경사하강법을, 오른쪽은 켤레 그레디언트 방법을 나타낸다. 경사하강법은 현재점 w에서 그레디언트를 계산할 때 이전의 그레디언트들의 정보를 반영하지 않고 계산하지만, 켤레 그레디언트 방법은 그레디언트를 구할때 직전의 그레디언트를 반영하여 계산하는 방법이다. 위 사진에서 빨간색 선은 직선 탐색을 나타내는데, 직선 탐색이란 학습률을 탐색하는 방법이다. 목적함수를 그래디언트 방향의 단면으로 자른다고 생각했을 때 최소가 되는 점이 그래디언트의 학습률이 되는 것이다.
켤레 그레디언트에서 직전에 사용한 직선을 p_{t-1}이라하고 현재 점에서 계산되는 직선을 p_{t}로 나타낸다. 이 때 p_{t-1}와 p_{t}의 관계를 나타내는 식은 아래와 같다.
\mathbf {p^T_tHp_{t-1}} = 0
위 식은 여전히 헤시안 행렬을 포함하기 때문에 헤시안 행렬을 상수 \beta를 도입하여 근사하여 계한다.
\mathbf p_t = -\mathbf g_t + \beta_t \mathbf p_{t-1}
즉 현재 직선 \mathbf p_t는 현재 그래디언트에 직전의 직선 \mathbf p_{t-1}을 \beta_t만큼 반영한 것이다. 이 때 \beta_t를 구하는 식은 두가지가 있다.
Polak-Ribiere : \beta_t =\frac{(g_t -g_{t-1})^Tg_t}{g^T_{t=1}g_{t-1}} \\ Fletcher-Reeves : \beta = \frac{g^T_tg_t}{g^T_{t-1}g_{t-1}}
'공부' 카테고리의 다른 글
[딥러닝 공부] KL Divergence와 Cross Entropy (0) | 2025.01.26 |
---|---|
[딥러닝 공부] Bernoulli Distribution, Laplace Distribution(베르누이 분포, 라플라스 분포) (0) | 2025.01.15 |
[딥러닝 공부] 딥러닝 최적화3 - 규제 기법, 하이퍼 파라미터 최적화 (0) | 2025.01.03 |
[딥러닝 공부] 딥러닝 최적화2 - 모멘텀, 적응적 학습률, 배치 정규화 (1) | 2025.01.03 |
[딥러닝 공부] 딥러닝 최적화1 - 목적 함수 (0) | 2025.01.03 |