클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

딥러닝 12 - 경사하강법의 종류와 특징에 대하여 본문

인공지능/딥러닝

딥러닝 12 - 경사하강법의 종류와 특징에 대하여

huenuri 2024. 9. 22. 18:52

최적화 함수의 종류에 대해서 학습해보는 중이다. 아직 배우지 않은 개념에 대해 이어서 학습을 진행해본다.


 

 

 

경사하강법에 대하여

 

 

경사하강법에도 여러 종류가 있는데 이 부분을 이제 알아보기로 하자.

 

 

 

 

데이터가 많을 때는 모든 데이터를 업데이트할 수 없기에 확률적 경사하강법을 사용한다. 일반 경사하강법은 시간과 비용이 많이 드는 단점이 있다. 확률적 데이터를 군집 단위로 쪼개어 일부만 업데이트하는 방식이다. 하지만 확률적인 데이터를 사용하기에 비효율적인 학습을 할 수 있다.


 

 

 

 

 

 

SGD에서는 mini-batch라고 데이터를 쪼개서 사용한다. 이 값도 하이퍼파라미터로 조절할 수 있다.


 

 

 

 

확률적 경사하강법 적용해보기

 

 

여기서 batch_size를 64로 하면 더 많은 데이터가 돌아갈 수 있다. 컴퓨터 사양에 따라 조절하면 된다.


 

 

 

개선된 경사하강법

 

 

작은 것으로 지도를 다 보고 내려가는 것과 같아 비효율적이라는 단점이 있다.

 

 

 

 

 

관성은 이전의 방향을 계속 유지하려는 성질인데, 모멘텀을 사용하면 현재 배치뿐 아니라 이전 배치도 고려하게 된다. 확률적 경사하강법은 일부 데이터만 보기 때문에 데이터에 따라 결과값이 들쑥날쑥한 점이 있었다. 모멘텀은 이전 배치를 파악해서 이후에 영향을 주는 학습법이다.

 

 

 


 

 

 

 

 

 

 

 

 

이전뿐 아니라 이후의 배치도 가정하여 불필요한 이동을 줄이는 방식이 개선된 모멘텀 방식이다.


 

 

 

 

최적해에 가까워지기 전까지는 빠르게 하고, 가까워질수록 느리게 하는 학습률을 적용한다.

 

 

 

 

 

 

 

 

 

최근에 가장 많이 사용하는 방식은 adam이다. adam까지 어떤 과정을 거쳐 나오게 되었는지 알아보기로 하자.

 

 

 

 

 


 

 

 

학습을 마치고

이번 시간에는 경사하강법에 대해서 공부해보았다. 종류가 참 많았는데 어떤 이론이든 최적화를 하는 방향으로 나아가는 것을 알게 되었다. 6시 반에는 학습을 마치려고 했지만 시간이 조금 늦어졌다. 한 교시 수업이 남아있지만 이건 운동을 마치고 저녁도 먹고 진행해보려고 한다.

오후 수업은 영상이 없어서 정말 아쉽다. 선생님께 카톡을 보냈지만 어차피 확인도 안할 걸 괜히 보냈나 싶었다. 그냥 답이 올 것을 기대하지 말고 나 혼자서 코드를 읽고 분석하며 공부해볼 생각이다.