반응형

Optimizer 6

[논문 읽기] AdamW(2017), Decoupled Weight Decay Regularization

안녕하세요, 오늘 읽은 논문은 AdamW(2017), Decoupled Weight Decay Regularization 입니다. 핵심 정리 weight decay는 loss function에 L2 regularization를 추가하여 구현할 수 있으며 딥러닝 라이브러리가 optimization 함수에 동일한 방법으로 적용되어 있습니다. SGD의 경우에는 weight decay = L2 reg 가 성립하지만 Adam의 경우에 파라미터마다 학습률을 다르게 적용하여 L2 reg로 weight decay를 구현한다면 동일하지 않아 성능이 하락합니다. 이 문제를 해결하기 위해 weight decay를 분리하여 따로 구현합니다. Motivation 여러 task에 test를 진행할때, SGD with moment..

[PyTorch] CNN 신경망 구축하고 MNIST 데이터셋으로 학습하기

PyTorch Computer Vision Cookbook 을 공부하고 정리한 포스팅입니다. colab 환경에서 MNIST 데이터를 활용해 간단한 CNN 신경망을 구축하고 학습, 평가까지 진행해 보도록 하겠습니다! 이번 포스팅에서는 다음 순서로 진행됩니다. MNIST 데이터셋 불러오고 전처리 CNN 모델 구축 loss function과 optimizer 정의 학습 및 평가 모델 파라미터 저장 및 불러오기 데이터 전처리 우선 구글 colab에 마운트를 해줍니다. from google.colab import drive drive.mount('cookbook') CUDA를 확인하고 device를 지정합니다. import torch if torch.cuda.is_available(): device = torch..

[논문 리뷰] An overview of gradient descent optimization algorithm

안녕하세요! 이번에 리뷰할 논문은 'An overviw of gradient descent optimization' 입니다. 이 논문은 독자에게 optimization algorithm에 대한 직관력을 제공할 목적으로 작성했다고 합니다. optimization에 대해 이해도가 높아지면 설계한 모델에 적합한 algorithm을 선택할 수 있다고 합니다. 이해도를 높이기 위해, gradient descent의 3가지 변종을 살펴보고 해결해야 할 문제점을 제시하고 이 문제점을 해결하기 위해 제시된 8가지 algorithms(Adam, RMSprop, Adagad 등등)를 소개합니다. 경사 하강법(Gradient descent) 논문의 Introduction에 경사 하강법(gradient descent)에 대해..

[PyTorch] 3. 예제로 배우는 파이토치 - nn 모듈, 가중치 공유, 제어 흐름, 사용자 정의 nn 모듈

공부 목적으로 PyTorch 튜토리얼 홈페이지를 변역해보았습니다. Learning PyTorch with Examples — PyTorch Tutorials 1.7.0 documentation Learning PyTorch with Examples Author: Justin Johnson This tutorial introduces the fundamental concepts of PyTorch through self-contained examples. At its core, PyTorch provides two main features: An n-dimensional Tensor, similar to numpy but can run on GP pytorch.org 예제로 배우는 파이토치 - Learni..

[딥러닝] 매개변수 갱신 - AdaGrad 기법

사이토고키의 을 공부하고 정리하였습니다. AdaGrad 신경망 학습에서는 학습률 값이 중요합니다. 이 값이 너무 작으면 학습 시간이 너무 길어지고, 반대로 너무 크면 발산하여 학습이 제대로 이뤄지지 않습니다. 이 학습률을 정하는 효과적 기술로 학습률 감소(learning rate decay)가 있습니다. 이는 학습을 진행하면서 학습률을 점차 줄여가는 방법입니다. 학습률을 서서히 낮추는 가장 간단한 방법은 매개변수 '전체'의 학습률 값을 일괄적으로 낮추는 것입니다. 이를 더욱 발전시킨 것이 AdaGrad입니다. AdaGrad는 '각각의' 매개변수에 '맞춤형'값을 만들어 줍니다. AdaGrad는 개별 매개변수에 적응적으로 학습률을 조정하면서 학습을 진행합니다. AdaGrad의 갱신 방법은 수식으로는 다음과 ..

[딥러닝] 매개변수 갱신 - 확률적 경사 하강법(SGD) 개념과 단점

사이토고키의 을 공부하고 정리하였습니다. 신경망 학습의 목적은 손실 함수의 값을 가능한 한 낮추는 매개변수를 찾는 것 입니다. 이는 곧 매개변수의 최적값을 찾는 문제이며, 이를 최적화(optimization)이라고 합니다. 1. 확률적 경사 하강법(SGD) 매개변수의 기울기를 구해, 기울어진 방향으로 매개변수 값을 갱신하는 일을 몇 번이고 반복해서 점점 최적의 값에 다가가는 것이 확률적 경사 하강법(SGD)입니다. SGD는 수식으로 다음과 같이 쓸 수 있습니다. 여기에서 W는 갱신할 가중치 매개변수고 $\frac{\partial L}{\partial W}$은 W에 대한 손실 함수의 기울기 입니다. $\eta$는 학습률을 의미하는데, 0.01이나 0.001과 같은 값을 미리 정해서 사용합니다. SGD는 기..

반응형