본문 바로가기

BLOG/딥러닝

Adam Optimizer (Adaptive Moment Estimation) 【1】Deep Learning 시작하기_최적화가 가장 중요하다! Adam Optimizer (Adaptive Moment Estimation) “Momentum+RMSProp의 장점을 다 가질거야! ” 작성자 홍다혜 ghdek11@gmail.com / 이원재 ondslee0808@gmail.com 더보기
Adadelta Optimizer (Adaptive Delta) 【1】Deep Learning 시작하기_최적화가 가장 중요하다! Adadelta Optimizer (Adaptive Delta) “아다그라드, 아직 갈 길이 먼데 보폭이 점점 작아지네? 가중치의 변화량을 고려해서 학습률을 변화시키자!” 작성자 홍다혜 ghdek11@gmail.com / 이원재 ondslee0808@gmail.com 더보기
RMSProp 【1】Deep Learning 시작하기_최적화가 가장 중요하다! RMSProp “아다그라드, 아직 갈 길이 먼데 보폭이 점점 작아지네? 상황을 보면서 줄여야지!” RMSProp은 딥러닝의 아버지라 불리는 제프리 힌튼이 소개한 방법으로 아다그라드의 단점을 해결하기 위해 등장했다. RMSProp은 모든 기울기를 단순히 더하는 것이 아니라 최신 기울기 정보를 더 크게 반영하는 원리이다. 과거의 정보는 약하게 반영하고 최신의 정보를 크게 반영하기 위해 지수이동평균(Exponential Moving Average, EMA)을 사용했다. 이를 수식으로 나타내면 다음과 같다. 새로운 변수 γ을 추가하여 G(t) 값이 무한히 커지는 것을 방지하면서 γ가 작을수록 최신의 정보(기울기)를 더 크게 반영한다. 작성자 홍다혜.. 더보기
Adagrad Optimizer (Adaptive Gradient) 【1】Deep Learning 시작하기_최적화가 가장 중요하다! Adagrad Optimizer (Adaptive Gradient) “SGD의 탐색 거리를 개선해보자! 처음엔 크게, 나중엔 작게! 맞춤형 학습률 주겠어!“ 이번에는 탐색 거리에 대한 문제를 해결하고자 등장한 Adagrad(Adaptive Gradient, Adagrad) 최적화에 대해서 설명하겠다. 수식에서 α라고 표시하는 학습률은 가중치의 최적 값을 탐색할 때 얼만큼 이동할지 결정하는 중요한 변수이다. 학습률이 너무 작으면 시간이 오래 걸리고, 너무 크면 최적 값을 찾지 못하고 치솟게 된다(발산한다고 말한다). 학습률 값은 초반에 큰 값을 주다가 점차 값을 줄이는데 이는 최적 값에 근접할 시 이동거리를 짧게 해 지나치지 않으려는 것이다... 더보기
Momentum Optimizer 【1】Deep Learning 시작하기_최적화가 가장 중요하다! Momentum Optimizer “SGD는 너무 지그재그로 가네? 진행 하던 방향으로 계속 가 보자!“ 작성자 홍다혜 ghdek11@gmail.com / 이원재 ondslee0808@gmail.com 더보기
최적화(Optimizer)가 뭐였지? 확률적 경사 하강법(SGD) 【1】Deep Learning 시작하기_최적화가 가장 중요하다! 최적화(Optimizer)가 뭐였지? 확률적 경사 하강법(SGD) 여러분은 1.2 경사 하강법이 기억나는가? 경사 하강법은 오차를 가장 작게 만드는 방향으로 가중치를 업데이트 하면서 최적 값을 찾는 방법이다. 이렇게 파라미터의 최적 값을 찾는 문제를 최적화(optimizer)라고 하며 최적화는 정답에 가까운 출력을 만드는 신경망의 목표인만큼 중요하지만 어려운 문제다. 앞에서 최적화의 방법으로 경사 하강법을 언급했는데 시간이 지나면서 더욱 발전된 기술들이 등장하기 시작했다. 지금부터 그 종류를 하나씩 살펴보겠다. 확률적 경사 하강법(SGD) “GD보다 조금 보되 빠르게 찾자!“ 우리가 앞에서 다룬 경사 하강법(Gradient Descent)은.. 더보기
신경망 모형의 기본 구조 【1】Deep Learning 시작하기_신경망 모형(Neural Networks) 신경망 모형의 기본 구조 우리는 앞에서 신경망의 구조를 여러 번 언급했었다. 신경망은 다층퍼셉트론의 발전된 형태로 입력층-은닉층-출력층 구조인 다층퍼셉트론에서 은닉층을 두개 이상 쌓은 구조를 가진다. 은닉층의 개수가 많아지면 신경망이 깊어졌다(deep)이라고 하며 이를 심층 신경망(Deep Nerual Network, DNN)이라고 한다. 이번장에서는 딥러닝으로 넘어가기 전 마지막으로 신경망의 구조에 대해서 정리해보는 시간을 가질것이다. 처음 소개하는 내용이 아니므로 질문에 대답해보면서 따라와주기를 바란다! 아래의 그림은 가장 기본적인 신경망의 구조라고 할수 있는 은닉층이 2개인 구조의 신경망 그림이다. 몇가지 퀴즈를 통해.. 더보기
발전된 비선형 함수(Nonlinearity) (Ricky ReLU / Parametric ReLU 등) 【1】Deep Learning 시작하기_Vanishing Gradient Problem 발전된 비선형 함수(Nonlinearity) (Ricky ReLU / Parametric ReLU 등) 혜성처럼 등장한 ReLU는 그 존재감만큼 완벽할 것 같지만 아쉽게도 약간의 문제점이 존재한다. 모든 0 이하의 입력에 대해서는 미분 값이 0이 된다는 것이다. 가중치가 업데이트되면서 가중합이 음수가 되는 순간 ReLU는 0만 출력하여 그 이후의 노드들이 활성화되지 않게 된다. 이를 dying ReLU라고 하며 이러한 문제를 해결하기 위해 ReLU를 변형시킨 함수들이 등장했는데, 그중 대표적인 몇 가지를 소개하겠다. 리키렐루 (Leaky ReLU) 리키렐루는 아래와 같은 식을 가지는 ReLU의 변형된 함수이다. Lea.. 더보기
발전된 초기화 함수(Initializer) (Xavier / He 등) 【1】Deep Learning 시작하기_다시 마주친 장벽, Vanishing Gradient Problem 발전된 초기화 함수(Initializer) (Xavier / He 등) >> Xavier 초기화의 정규분포 식 [도전! 연습문제] 아래 그림과 같은 3층 신경망이 있다. Xavier 를 이용해 은닉층 1, 2의 가중치 값을 초기화 를 계산 해 보아라. He 홍콩 중문대 박사과정의 Kaiming he가 이 초기화 방법을 사용해 ImageNet에서 에러율 3%를 달성하게 되며 주목을 받게 된 방식이다. 기존 Xavier 초기화에서 앞 층의 노드 수를 2로 나눈 후 루트를 씌운 방식으로 Xavier에 비해 분모가 작기 때문에 활성화 함수 값들을 더 넓게 분포 시킨다. Xavier와 유사하지만 He는 입력.. 더보기
해결책 2 : 문제는 활성화 함수 - ReLU / (확률분포) 【1】Deep Learning 시작하기_다시 마주친 장벽, Vanishing Gradient Problem 해결책 2 : 문제는 활성화 함수 - ReLU / (확률분포) “We used the wrong type of non-linearity” 그 다음으로는 힌튼이 네번째로 제시한 이유인 활성화 함수에 대해 이야기하겠다. 오차 역전파는 출력층에서 입력층 방향으로 각 층의 가중치를 수정하는 방식이라는 것을 모두 알고 있을 것이다. 가중치를 수정하는 과정에서 활성화 함수의 미분이 진행되는데 문제는 바로 여기서 발생한다. 활성화 함수로 시그모이드 함수를 사용했더니 출력층과 가까운 경우에는 오차역전파가 잘 되는데 반해 출력층과 멀어지는 경우 오차 전파가 잘 안되는 문제가 생긴 것이다. 이러한 문제는 시그모이드 .. 더보기