확률적 경사하강법은 대표적이고 인간에게 아담과 같은 존재인 경사 하강법(Gradient Descent, GD)에게서 파생된 최적화 알고리즘(Optimizer, 옵티마이저)이다. 일단 본 포스팅에 앞서 경사 하강법에는 Mini Batch Gradient Descent도 있지만 보통 mini batch를 SGD를 포함시켜서 mini batch의 특징도 SGD로 설명 하였다. 경사 하강법의 단점과 확률적 경사하강법의 원리 그러나 GD에게는 치명적인 단점이 있는데 바로 한스텝 내딛을 때마다 전체 데이터를 이용하는 단점이 있다. 이를 등산으로 비교하자면, 내가 한걸음 옮길 때마다 지도랑 나침반보고 갈길 정한다는 것과 같다. 대충 들어도 엄청 비효율적인것 같지만 반면에 성능자체는 꽤 괜찮게 나올 수 있다는 것도 대..
기계학습(Machine Learning, 머신러닝)과 딥러닝(Deep Learning)이 현재 이정도까지 수준까지 발전하기에는 수많은 사람들의 노력과 정교한 수학적 모델들이 계속 고도화되었으며 많은 사람들이 실제 프로젝트에 활용하면서 무엇이 어떤 상황에 좋고 나쁨을 피드백하거나 논문등으로 발표하기 때문일거라 생각한다. 머신러닝의 성능 개선법 머신러닝, 딥러닝의 성능을 좌우하는 녀석 중에 옵티마이저(Optimizer, 최적화)가 있는데 DB를 잘아는 사람들은 옵티마이저가 최소의 Cost로 결과를 찾아주는 것으로 알고 있을 것이다. 사실 DB와 머신러닝, 딥러닝에서 말하는 옵티마이저의 궁극적인 목적은 동일할 것이다. DB에서 최소의 코스트로 결과를 찾는 개념과 신경망의 모델이 실제 결과와 예측 결과의 차이를..
기계 학습은 매개변수인 W(weight, 가중치)와 B(bias, 편향)을 찾기 위해서 반복 작업을 하는 것으로 해석할 수 있다. 최적화 알고리즘(optimizer)는 이 매개변수를 찾기 위한 최적화된 알고리즘을 제공하는 것인데 가장 기본적인 것으로는 Gradient Descent가 있다. 이름에서 풍기는 것처럼 기울기를 구한 후, 기울기가 낮은 쪽으로 계속 이동시켜서 극값에 이를 때까지 반복한다. 좀 쉽게 이해를 하자면, 우리가 산을 등산한다고 가정을 해보자. 꼭대기로 이동을 한다면 인간은 어떻게 움직일 것인가? 바로 경사가 높아지는 쪽으로 계속 움직여서 정상에 도착을 할 것이다. 반대로 하산한다면, 경사가 낮아지는 쪽으로 움직일 것이다. 이 간단한 원리가 바로 Gradient Descent이다. 위와..