ML(16)
-
[DL] 5.3. hyper-parameter 선정 방법: validation loss
이전 글에서 여러 hyper-parameter(batch size, learning rate, weight initialization) 성질에 대해 살펴봤다. 이번 글에서는 적절한 hyper-parameter 조합을 찾는 효율적인 방법에 대해 살펴볼 것이다. train vs validation vs test 일반적으로, hyper-parameter 조합의 적절함은 해당 조합으로 학습한 모델의 성능(e.g., loss, accuracy)을 기준으로 평가한다. 즉, 가장 높은 성능을 보여주는 hyper-parameter 조합이 가장 적절하다고 판단하는 것이 일반적이다. 그러하나, 학습 데이터셋 성능을 기준으로 사용(=검증)하면 안된다. 우리가 궁극적으로 원하는 것은 범용 성능(=일반화) 즉, 테스트 데이터 ..
2024.03.10 -
[DL] 5.2. Optimizer hyper-parameter: batch size & learning rate
이번 장에서는 optimizer의 대표적인 hyper-parameter인 batch size와 learning rate에 대해 알아볼 것이다. 그 전에 학습에 대해 간단히 살펴보도록 하자. 딥러닝에서 학습은 "경사하강법으로 최적의 매개변수 즉, 손실 함수의 미분값이 0이 되는 지점을 찾는 과정"이며, 이는 파라미터 갱신을 통해 이루어진다. 파라미터를 갱신할 때는 어느 방향으로 얼마만큼 이동할지를 정해야 한다. 즉, 방향과 크기를 정해야 한다. 이것을 결정하는 대표적인 요소 두 가지가 바로 기울기(=gradient)와 학습률(=learning rate)이다. 방향은 기울기에 의해 결정되고, 크기(=보폭)는 기울기와 학습률에 의해 결정된다. Batch size (방향) 탐험 쉽게 생각해 봤을 때, 배치 크기..
2024.02.27 -
[DL] 5.1. Model hyper-parameter: Weight initialization
이전 글에서, "매개변수 초깃값에 따라 학습의 성공 여부가 좌우된다"고 이야기했다.왜냐하면, 매개변수 초깃값에 따라 도달 위치(최솟값 or 극솟값)가 달라지기 때문이다.물론 이 말고도 여러 이유가 존재한다. 그렇기 때문에, 이번 글에서는 매개변수 초깃값 설정에 대해 알아볼 것이다.역전파의 분포 구하기!!!, n-rank에서 1-rank를 빼면 어떻게 되는지 고찰해보기!!!그 전에 벡터-행렬 곱 연산의 결과값과 미분값에 대해 알아보자.다시 말해, 벡터($\mathbf{x}$)와 행렬($\mathbf{W}$)이 주어졌을 때, 벡터-행렬 곱 연산 $\mathbf{W}\mathbf{x}$의 결과값($\mathbf{Y}$)과 미분값(${\partial \mathbf{Y} \over \partial {\mathbf..
2024.02.18 -
[DL] 4. Backpropagation
저번 글에서는, 기본적인 최적화 기법인 GD와 SGD에 대해 살펴봤다.그 두 가지 기법 모두 수치 미분으로 미분값을 계산했다. 수치 미분은 구현하기 쉽지만, 계산 시간이 오래 걸린다는 단점이 존재한다. 이번 글에서는, 수치 미분보다 효율적으로 미분값을 계산하는 "오차역전파법(backpropagation)"에 대해 살펴볼 것이다. 1. 계산 그래프(computational graph)계산 그래프는 계산 과정을 그래프로 나타낸 것이다. 노드에는 연산 정보를, 엣지에는 계산 결과를 표기한다.(이전 글을 통해 눈치채겠지만, 신경망도 대부분 계산 그래프로 표현한다.) 이해를 돕기 위해 간단한 예시 문제의 계산 과정을 어떻게 계산 그래프로 나타낼 수 있는지 살펴보자!예시 문제1: 슈퍼에서 사과를 2개, 귤을 3개 ..
2024.02.13 -
[DL] 3.1. Advanced Optimization (Momentum, RMSprop, Adam)
이번 글에서는, (mini-batch) SGD의 단점을 살펴보고, 이를 보완한 최적화 기법 Momentum, RMSprop 그리고 마지막으로 이 둘을 합친 Adam에 대해 알아볼 것이다. SGD의 단점1. (mini-batch) SGD는 비등방성 함수에서 불필요한 움직임을 많다. 즉, 탐색(=학습) 경로가 매우 비효율적이다.왜냐하면, 현재 위치에서 가장 가파른 방향은 현재 위치에서의 등고선과 수직인 방향이기 때문이다. 비등방성(Anisotropy) 함수는 각 위치에서의 기울기가 가리키는 지점이 하나가 아니라 여러 개인 함수다.등고선(Contour)은 같은 함수값을 가지는 모든 지점을 연결한 선이다. 2. (mini-batch) SGD는 위험한 기법이다.예를 들어, "눈을 가린 채 하산을 하고 있다"고 가..
2024.02.13 -
[DL] 3. Optimization (GD, SGD)
저번 글에서, "손실 함수"가 무엇인지 대해 알아봤다.그리고, 손실 함수를 활용해 최적의 매개변수를 구하는 무식한(?) 방법 두 가지에 대해서도 살펴봤다. 첫번째, 매개변수를 일일이 바꿔가며 손실값이 가장 낮은 매개변수를 찾는다.위 방식은 시간이 매우 오래 걸리는 매우 무식한 방법이다. 두번째, "손실 함수(Loss(a,b)">Loss(($\hat\theta$)의 도함수를 구해 미분값이 0이 되는 부분을 찾는다.위 방식도 매우 비효율적이다. 왜냐하면, 함수가 복잡해질수록 도함수 구하기가 매우 어려워지기 때문이다. 이번 글에서는, 위 방식보다 더 빠르고 효율적이게 최적의 매개변수($\hat\theta$)를 구하는 방법에는 무엇이 있는지 알아볼 것이다. 1. 경사 하강법(Gradient Descent)경사 ..
2024.02.10