- 2022년 6월 10일 오후 1:26
- 조회수: 6805
REFERENCES
INFORMATION
- 2022년 6월 17일
- 오후 12시 ~
온라인 비디오 시청 (YouTube)

TOPIC
On-Line Video
OVERVIEW
참고 문헌 :
[1] Sun, Shiliang, et al. "A survey of optimization methods from a machine learning perspective." IEEE transactions on cybernetics 50.8 (2019): 3668-3681.
[2] Kastratia, Muhamet, and Marenglen Bibaa. "A state-of-the-art survey of advanced optimization methods in machine learning." International Journal of Computer Science and Information Security (IJCSIS) 19.7 (2021).
[3] https://www.upgrad.com/
발표자 후기

이번 세미나에서는 optimizer를 주제로 발표를 했다. optimizer는 모델을 학습할 때 중요한 요소이지만 모델이나 loss와 같은 다른 요소보다 덜 신경을 쓰게 되고 정확한 차이를 잘 몰랐던 것 같았다. 그래서 이번 세미나를 통해 optimizer에 대해 다시 공부하고 다양한 optimizer를 정리하자는 생각으로 해당 주제를 고르게 되었다. 세미나를 준비하면서 정말 다양한 optimizer가 있고 이를 적절하게 활용한다면 실제로 연구나 프로젝트에서도 많은 도움이 될 수 있을 것이라고 느꼈다.
optimizer의 전반적인 내용과 다양한 optimizer에 대해 다뤄보려고 욕심을 내봤지만 오히려 양이 더 많아져서 optimizer마다 설명이 부족했던 것 같다. 다음부터는 분량 조절도 잘 해서 더 좋은 세미나를 하고 싶다.
청취자 후기

딥러닝 학습에 가장 중요한 경사 하강법과 옵티마이저에 관한 세미나를 청취하였다. 딥러닝 연구 초창기에 사용된 옵티마이저를 시작으로 오늘날 최신 옵티마이저까지, 여러가지 방법론들을 꼼꼼하게 리뷰 받을 수 있는 세미나였다. 옵티마이저의 경우 원리를 생각하지 않고 단순히 사용하는 경우가 많은데, 금일 세미나를 통해서 자세한 원리 또한 터득할 수 있어 좋았다. 그리고 오늘날 가장 많이 사용되는 ADAM 이외에도 ADAMW, RADAM와 같은 최신 옵티마이저를 리뷰 받을 수 있어 좋았는데, 이 부분은 ADAM만 주로 사용하는 연구원(나를 의미)들에게 좋은 인싸이트를 가져다 줄 수 있을 것으로 생각한다. 늘 사용하는 것만 사용하게 되는 나를 돌아보며, 최신 연구 결과를 실질적으로 바로 사용할 수 있는 자세를 갖춰야겠다 하는 생각이 든 세미나였다. 좋은 세미나 준비하느라 고생한 새린이에게 감사의 말을 전하며, 세미나 후기를 마치도록 한다.

이번 세미나는 Optimizer에 대해서 진행되었다. Optimizer는 본 세미나에서 언급된 것처럼 모델을 학습하기 위한 주요요소 4가지 중 하나이다. Optimizer를 통해 파라미터를 어떻게 업데이트 할 지가 결정되기 때문에, 주어진 문제에 대하여 어떤 Optimizer를 쓸 지 판단하는 것은 매우 중요한 요소이다.
본 세미나는 Optimizer의 가장 기본인 Gradient Descent부터 Adagrad, RMSprop, AdaDelta, Adam에 대해 순차적으로 진행되었고, 근래 가장 각광받는 Adam을 넘어서 RAdam 및 AdamW에 대해서도 소개하였다. 특히 본인은 Adam 이후의 알고리즘에 대해서는 잘 몰랐는데, AdamW와 RAdam이 Adam의 “Weight Decay” 및 “Bad Local Optima Convergence Problem”을 보완한 알고리즘이란 것을 공부할 수 있는 중요한 계기가 되었다.
Optimizer를 다룬 본 세미나를 계기로, 들을 때마다 늘 새로운 Optimizer에 대해 다시 한 번 복습하는 계기가 되었고, 새로운 신상 Optimizer에 대해서도 공부할 수 있었다. 특히 Adam이 최고라는 말만 믿고, Optimizer에 대해서는 큰 고민을 하지 않았었던 스스로에게 반성하는 시간이 되었다. 또한 세미나의 흐름이 기존의 Optimizer에 대한 장점 및 단점을 언급하고 해당 단점을 어떻게 극복했는지에 대해 진행되었기에, 전체적인 흐름을 머릿속에 다시금 정립할 수 있었던 것 같다. 유익한 세미나를 준비해주신 임새린 연구원님께 감사드리며 이상으로 세미나 후기를 마친다.

이번 세미나는 딥러닝의 학습에서 빠질 수 없는 gradient descent 알고리즘과 optimizer에 대해서 진행되었다. 우선적으로 직관적으로 optimizer를 이해할 수 있도록 길 찾기라는 쉬운 예시를 통하여 잘 설명을 해주었으며 여러가지의 optimizer 알고리즘에 대해 순차적으로 설명하며 세미나를 진행하였다. 딥러닝 초창기부터 최신 알고리즘까지 각 방법론의 장단점을 언급하며 해당 단점을 보완하기 위한 개선된 알고리즘을 설명해주어 흐름이 쉽게 정리가 될 수 있었다. 청취자 본인의 경우 보통 딥러닝 학습을 진행할 때 모델에 대해서는 굉장히 고민하지만 optimizer는 아무런 생각 없이 Adam이나 SGD를 사용해보고 정확도가 높게 나오는 것을 선택하는 경우가 많았는데 알고 사용하는 것과 모르고 사용하는 것은 굉장히 큰 차이이기 때문에 반성하는 시간을 가질 수 있었다. 또한 현재는 연구를 위하여 정확도를 극한으로 올려야 하는 경우가 없지만 향후에는 모델의 정확도를 보다 더 향상 시키기 위해서 optimizer를 고민해야 하는 시기가 올 것 같다. 그때가 되어 데이터나 모델의 특성에 잘 맞는 optimizer를 선택하기 위해서 각 optimizer 알고리즘의 원리, 최신 optimizer등을 학습하는 것이 중요하다는 생각이 들었으며 본 세미나를 통해 다양한 optimizer를 접하고 익힐 수 있어서 의미 있는 시간이었다. 향후에도 optimizer에 대해 필요 시 본 세미나를 재청취하러 올 것 같다. 많은 내용을 쉽게 설명해주신 임새린 연구원님께 감사의 인사를 드리며 세미나 후기를 마친다.

이번 세미나는 Optimizer를 주제로 진행되었다. Introduction에서 모델 학습을 위해 필요한 요소와 그 중 Optimizer 역할에 대해 설명되었다. Optimizer는 파라미터의 업데이트를 담당하는 중요 요소로 성능에 직접적인 영향을 준다. 그렇기에 우리는 다양한 Optimizer를 이해하고 상황에 맞게 사용해야 한다. 총 9가지의 Optimizer 방법론이 설명되었다.
딥러닝 기초를 공부할 때 배웠던 Optimizer를 심도 있게 알려주어서 많은 도움이 되었다. Optimizer는 코드로 간편하게 사용할 수 있기에 중요도를 잊게 되는데, 해당 세미나를 보며 Optimizer에 대한 중요성을 다시 한번 상기한 것 같다. 청취자가 쉽게 이해할 수 있게 고민한 흔적이 보이는 세미나로 준비하느라 고생했다는 감사의 말을 새린이에게 전하며 세미나 후기를 마친다.

이번 세미나는 optimizer에 대해여 진행되었다. Optimizer는 모델을 학습하기 위한 주요 요소 네 가지(model, loss function, optimizer, data) 중 하나로 파라미터의 업데이트를 담당하는 역할을 한다.
Optimizer는 미분 정보를 어디까지 어떻게 사용하는지에 따라 Derivate-Free Optimization, First-Order Methods, High-Order Methods로 분류할 수 있다. Derivate-Free Optimization은 그 이름에 맞게 목적 함수의 미분이 불가능한 상황에서 사용하는 최적화 알고리즘이다. First-Order Methods는 1차 미분 정보인 gradient를 활용하는 방법으로 가장 일반적인 방법이다. High-Order Methods는 고차원 미분 정보(Hessian 등)을 활용하는 방법으로 목적함수가 highly non-linear and ill-conditioned일 때 사용되는 방법이지만 계산 비용이 크다는 단점이 있다.
이번 세미나는 First-Order Methods를 중심으로 진행되었다. 이 방법은 기본적인 gradient descent algorithm에서 시작되는데 이는 현재의 gradient 정보를 이용해 방향과 step size를 결정하는 가장 기본적인 알고리즘이다. 이후 과거 gradient 정보를 사용해서 방향을 선택할 것인지, step size를 선택할 것인지에 따라 여러 방법론이 발전되었다.
이번 세미나를 통해 Adam, AdamW와 같이 현재 많이 사용되는 optimizer에 대한 설명과 함께 해당 optimizer들이 왜 성능이 좋고 어떻게 발전되었는지 자세히 알 수 있었다. Optimizer는 모델을 학습할때 매우 중요한 요소인데 이번 세미나를 통해 알고리즘별 차이를 이해할 수 있었다. 많은 수식을 입력하기 어려웠을텐데 유용한 세미나를 진행해준 새린에게 감사의 말을 전하며 세미나 후기를 마친다.

이번 세미나는 optimizer를 주제로 진행되었다. Optimizer는 간단하게 말해 최적의 파라미터를 찾는 알고리즘이다. 이는 gradient를 활용하여 최적의 파라미터를 향한 이동 방향과 이동 폭(step size)을 결정하는 것이 주요 구성 요소이다. 이때, 어떠한 방식이 이를 더 효율적으로 결정할 수 있는지에 대한 연구가 다양하게 진행되어 왔다. 본 세미나에서는 optimizer의 가장 기본이 되는 gradient descent와 이를 기반으로 뻗어나간 다양한 optimizer에 대해 다루었다. Gradient descent 알고리즘은 현재의 gradient 정보를 이용해 방향과 step size를 결정하는 가장 기본적인 알고리즘이다. 그러나 이는 여러 한계점을 지니고 있으며, 이를 극복하기 위해 과거의 gradient 정보를 활용하거나 momentum, adaptive learning rate를 적용하는 등 여러가지 term을 추가한 형태의 optimizer들이 개발되었다. 본 세미나에서는 SGD부터 RAdam까지 방대한 양임에도 이해하기 쉬운 예시와 시각 자료 덕분에 여러 optimizer에 대해 깔끔히 정리해주었다. 프로젝트를 수행하거나 개인연구를 할 때마다 매번 새로운 모델이나 손실함수만을 고민해보았지, 정작 optimizer에 대해 고민해본 시간은 적었다. Optimizer의 중요성 및 효용성에 대해 다시금 생각해볼 수 있었으며, 좋은 세미나를 준비하느라 고생해준 새린 오빠에게 감사한 마음을 전하고 싶다.

본 세미나는 딥러닝에서 사용되는 Optimizer에 대해 소개해주었다. 현재 비정형 데이터가 많은 현실속에서 딥러닝이 각광받는 중인데 이러한 딥러닝에서 Optimizer는 Loss function을 통해 최적의 파라미터를 학습 시켜주는 역할을 한다. SGD부터 Adam까지 다양한 Optimizer가 존재하고 본 세미나에서는 다양한 First-order method Optimizer들의 성질에 대해 설명해주었다.
가장 기본적인 GD, 혹은 이에 batch를 적용한 SGD부터 방향 선택적인 부분을 개선한 Momentum, 스텝 사이즈 부분을 개선한 AdaGrad, RMSProp, AdaDelta 등과 이러한 부분들을 결합한 Adam이 존재한다. 이전에 학습할 때는 이 부분까지만 학습을 했었는데 본 세미나에서 Adam 이후의 Optimizer에 대해 설명해주어서 많은 도움이 되었다. AdamW는 Adam에서 weight decay와 L2 regularization을 분리하여 일반화 성능을 향상 시켰고 RAdam은 Adam에서의 Bad Local Optima Convergence 문제를 해결해주었다.
본 세미나에서는 Optimizer들의 특징에 따라 문제점을 개선 시켜주는 순서로, 이해를 도와주는 시각화 자료들과 같이 설명해주어 보다 학습하기 편했다. 실제로 Optimizer를 적용할 때, 단순히 Adam이 제일 좋겠거니 하고 적용했었는데 상황마다 특징을 잘 파악해야 하고 Adam에서 더 발전된 Optimizer들이 존재하기 때문에 이러한 행동들을 고쳐야겠다고 생각했다. 딥러닝에서 어떻게보면 기본적인 내용이면서 어려운 내용을 가진 Optimizer에 대해 이해하기 쉽게 설명해주신 임새린 연구원님께 감사드리며 본 세미나 후기를 마친다.

이번 세미나는 모델의 최적화를 위한 Optimizer를 주제로 진행되었다. 사실 어떤 코드를 보더라도 Optimizer를 정의하면서도 따로 깊게 고민해보진 않고, 이미 쓰여진 optimizer를 일단 가져와서 사용하곤 했었다. 이번 기회를 통해서 다시한번 근본적인 개념에 대해서 제대로 알고, 앞으로의 연구에 어떤 방식으로 optimizer를 선택하고 개선하여 사용할지에 대해서 되짚어 볼 수 있었다.
결론적으로 optimizer는 모델의 예측과 타겟과의 차이를 좁히기 위해 보정해주기 위한 계산값이다. 세미나에서는 기울기를 통해 차이를 줄여가는 Gradient Decent에서부터 시작하여, batch를 나누어 사용하는 stochastic gradient decent, local minima에 빠지는 것을 극복하기 위한 momentum, momentum의 과한 영향을 막는 NAG, iteration마다 조정된 learning rate을 사용하는 AdaGrid, Learning rate이 0으로 수렴해 가는 것을 막기위한 RMSProp, 또 Momentum과 RMSProp을 조합하여 만든 ADam, 또 이를 보정해주는 AdamW, RAdam 까지 천천히 이해하기 쉽게 설명해주었다.
결국 기존에 Optimizer를 조금씩 개선하며 어떻게 하면 모델을 효과적으로 잘 학습시킬 수 있을까에 대한 문제다. Loss를 정의하는 것이 연구의 가장 중요한 포인트 중 하나라면, 이 Loss에 맞게 잘 학습시킬 수 있는 Optimizer또한 모델의 성능을 제대로 올릴 수 있는 중요 포인트중 하나가 될 것이다. 공부가 얕은 나로서는 기존의 optimizer에 대한 간략한 설명만을 읽은 다음, 단순히 실험적으로 바꿔가면서 찾기만 한 것 같다. 하지만 각각의 optimizer의 특징을 제대로 알고 사용한다면, 더 효율적인 방법에 대해서 논리적으로 빠르게 접근 할 수 있을 것이다. 연구를 할 수록 무엇이든 전체 흐름과 각각의 수식적인 개념을 제대로 짚는 것이 중요하다는 생각이 든다. 이번 세미나는 언젠가 optimizer에 대해 다시 봐야겠단 생각이 들 때 이 영상을 틀 것 같다는 예상이 된다. 그만큼 맥락잡고 이해하기 쉽고 듣기 좋았던 세미나였다. 준비해준 새린이에게 감사의 인사를 전한다.