Loading...
2022. 1. 2. 00:05

여러가지 optimizer의 원리

1. Optimizer 일반적으로 최적화 알고리즘으로 gradient descent method를 사용하는데 손으로 하기도 어렵고 귀찮다. 그래서 요즘 컴퓨터가 다 계산해주는데 어떻게 계산해주느냐에 따라 여러가지 종류가 나왔다. 2. Gradient Descent 일반적인 gradient descent 방법 가중치에 그래디언트와 learning rate의 곱을 빼면서 update한다. 문제는 learning rate를 어떻게 잡아야할지가 고민이다. 너무 크게 잡자니 overshooting으로 학습이 안되는 현상이 나타나고 너무 작게 잡자니 너무 학습이 느림 3. Momentum 어떻게 하면 최적치에 더 빨리 갈수 있을까라는 생각에 이전 gradient의 정보를 가진 momentum을 이용하자. 이전에 g..

2021. 12. 30. 21:38

경사하강법 알고리즘(gradient descent algorithm)

1. 그래디언트 벡터(gradient vector) 어떤 변수 벡터 $x=(x_{1}, x_{2}, x_{3}, .... , x_{n})$에 대하여 함수 $f(x)$의 gradient vector는 각 변수별로 편미분한 성분을 원소로 갖는 벡터 \[\bigtriangledown f(x) = (\frac{df(x)}{x_{1}}, \frac{df(x)}{x_{2}}, ... , \frac{df(x)}{x_{n}})\] gradient vector $\bigtriangledown f(x)$는 점 x에서 함수 f가 가장 빠르게 증가하는 방향을 가리킨다. 당연하지만 -gradient vector인 $-\bigtriangledown f(x)$은 점 x에서 함수 f가 가장 빠르게 감소하는 방향을 가리킨다 2. 편미..

2021. 12. 29. 22:40

미분계수에 대하여

1. 미분계수의 정의 변수의 움직임에 따른 함숫값의 변화를 측정 변화율, 기울기의 극한값 함수 f(x)위의 한 점 (x,f(x))의 접선의 기울기 기본적으로 함수의 모양이 매끄러워야 미분가능 미분계수의 모임이 도함수 도함수를 요즘에는 컴퓨터가 다 계산해준다 python의 sympy를 이용하여 함수식을 다룰수 있고 도함수를 구할 수 있다 2. 미분계수의 성질 한 점에서 접선의 기울기를 알면 어느 방향으로 점을 움직여야 함숫값이 증가하는지, 감소하는지 알 수 있다. 함숫값을 증가시키려면 미분값을 더하고 감소시키려면 미분값을 빼주면 된다. 2차원이면 눈으로 쉽게 보이지만 앞으로 고차원을 다루기 때문에 잘 이해하는 것이 중요함 3. 미분에 대하여 너무 오랜만에 미분 했는지 아주아주 기본적인 부분에서 실수했다 저..

2021. 12. 29. 01:12

gradient descent method 핵심요약

1. Gradient Descent 미분가능한 함수의 반복적인 1차미분으로 국소적 최솟값(local minimum)을 찾는 과정 loss가 감소할 때 optimum이라 기대하는 지점이 존재하는 loss function이 존재할 것이라고 가정 최적을 찾고자 하는 parameter로 loss에 대해 편미분을 함 2. stochastic gradient descent 매 학습 스텝마다 random single sample 이용한 gradient 계산 random sample 1개만 사용하여 gradient를 계산함 가장 불안정하지만 가장 빠르게 계산 가능 3. mini batch gradient descent 매 학습 스텝마다 random subset of data sample을 이용한 gradient 계산 ..