전체 글(95)
-
[DL] 6. 인공 신경망이 깊어질 때 발생하는 고질적 문제 (gradient vanishing & overfitting)
인공 신경망을 무턱대고 깊게 만들면 크게 3가지 문제점이 발생한다. 1. Vanishing gradient (기울기 손실) 2. Overfitting (과적합) 3. loss landscape의 non-convexity 증가 1. Vanishing Gradient layer가 많으면 입력층에 가까워질수록 미분이 점점 작아져 소멸된다. 이런 현상이 일어나는 대표적인 원인은 바로 sigmoid 함수다. sigmoid 함수의 최대 기울기는 1/4이다. 역전파 시 전달되는 미분값에 꾸준히 1/4을 곱하기 때문에 점점 기울기가 소멸되는 것이다. 직관적으로 sigmoid 함수는 "입력이 출력에게 줄 수 있는 영향력이 최대 1/4"이다. sigmoid 함수를 활성화 함수로 채택할 경우, 입력층 가중치가 첫 은닉층 출..
2024.03.19 -
[DL] 7. How does DL solve problems?
이번 글에서는 딥러닝이 어떤 방식으로 문제를 접근하고 푸는지에 대해 자세히 살펴볼 것이다.더 나아가, 딥러닝에 근간이 되는 이론이 무엇인지 살펴볼 것이다. 이진 분류 문제 풀이 방법"임의의 키와 몸무게가 주어졌을 때 다이어트가 필요한지 혹은 필요하지 않은지를 판단"하는 문제를 풀어볼 것이다. 우선, 문제를 풀기 위해서는 문제를 정확히 이해하고, 이를 (수학적으로) 적절하게 재정의해야 한다.위 문제를 독립 변수인 키/몸무게(=$x_1$, $x_2$)와 종속 변수인 다이어트 유무(=$y$) 간의 관계를 파악하는 것으로 재정의할 수 있다.입력이 키/몸무게고 출력이 다이어트의 필요성 (or 확률)인 모델 (or 알고리즘)을 만든 후,모델 출력인 $p$가 0.5보다 크면 다이어트가 필요한 것이고, 0.5보다 작으..
2024.03.11 -
[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