Learning Rate
포스트 난이도: HOO_Senior
# Gradient descent
# Learning Rate
Learning rate는 한국에서 학습률이라고 불리는 Mahcine learning에서 training 되는 양 또는 단계를 의미한다. Learning rate 또는 학습률은 딥러닝(Deep learning)에 대해서 배울 때 다룬다. 그 이유는 Deep learning neural networks 자체가 학습하는 과정에서 Stochastic gradient descent algorithm을 사용한다. 이때 사용되는 Stochastic gradient descent에서 학습 데이터를 기반으로 학습 모델 에러에 대한 가중치를 업데이트할 때 사용되는 기준점 중 하나가 Learning rate이기 때문이다. 따라서 Learning rate는 딥러닝과 관계가 있으면서도 실질적으로 Data science 프로젝트의 ML에 사용되기 때문에 정확한 기준점을 알고 있어야 정확도를 높일 수가 있다. Learning rate를 공식으로 표기하거나 수치로 나타낼때는 그리스 문자인 eta를 사용한다. eta는 η 이런식으로 표기를 하여 사용하는 그리스 문자이며 오류의 양을 추정하는 데 사용한다.
# Learning rate 기준 값
Learning rate(학습률)의 값을 어떻게 설정하느냐에 따라서 ML 결과가 달라진다. 최적의 학습률을 설정해야지만 최종적으로 원하는 결과를 산출해낼 수 있다. 이전 포스트에서 다룬 Epoch와 마찬가지로 Learning rate의 값이 적합하지 않을 경우, Overflow가 발생할 수도 있다. 한마디로 학습률이 너무 크면 Training 과정에서 발생하는 오류를 줄이지 못한다는 것이다. 반면에 학습률이 너무 낮다고 해서 좋지만은 않다. 학습률이 너무 낮을 경우에는 ML 과정이 오래 걸리고 검증해내는 오류 값이 너무 많아져 Machine learning이 멈출 수가 있다. 한마디로 Learning rate가 높으면 산출되는 결과 속도가 빨라지지만 오류 값을 제대로 산출해내지 못하거나 오버플로우가 발생할 수 있고, 반대로 Learning rate가 너무 낮으면 산출되는 결과 속도가 느려지고 오류 값이 너무 많아져 실행 과정 자체가 멈출 수 있다. 따라서 적합한 Learning rate 값을 찾는 것이 중요하다.
# Learning rate 값 찾는 방법
Learning rate의 적합한 값을 찾는 방법은 직접 해보는 방법밖에 없다. 각각 프로젝트마다 각기 다른 데이터셋들이 존재하고 학습하는 목적과 환경 또한 각기 다르기 때문에 정해진 학습률이 존재하지는 않는다. 따라서 데이터 사이언스의 표준화된 최적의 학습률을 분석하고 계산할 수가 없다. 하지만 Run만 돌린다면 컴퓨터가 알아서 ML을 하기 때문에 우리는 여러가지 시도를 통해서 최적의 Learning rate를 찾아낼 수 있다.
# Learning rate 초기값
여러 방법과 시도를 통해 Learning rate를 찾아야 하지만 그럼에도 기본적으로 시도되는 값의 범위가 존재한다. 글쓴이의 개인적인 견해가 포함되어 있기 때문에 다를 수는 있지만 필자의 경우에는 1*10^-6에서 1.0까지 Learning rate를 고려하여 Testing을 한다. 이것이 표준화된 신경망의 일반적인 값에 해당하며 Learning rate를 찾는 범위에 해당한다. 여기서 조금더 필자의 개인적인 견해를 포함하자면, 글쓴이는 Learning rate를 찾는 초기값으로 0.1, 0.01, 0.001을 선호한다. 사실상 Learning rate를 다루다 보면 자주 사용되는 최적의 값으로 0.01이 되다 보니 0.01을 초기값으로 시도는 해보되, 해당 값이 최적 Learning rate가 아닐 수가 있기 때문에 무조건적으로 믿어서는 안 된다. 그럼에도 우리는 최대한 빠르게 최적의 결과 산출을 원하기에 자주 사용되는 Learning rate를 우선적으로 시도해보는 것이 좋다. 또한 마지막으로 같은 Learning rate라도 컴퓨터 환경에 따라서 산출되는 결과의 정확도가 다를 수 있기 때문에 같은 Learning rate로도 여러 번 ML 과정을 해보는 것을 추천한다.
'AI & Data' 카테고리의 다른 글
[Data Science] Data Science vs Data Analyst vs Data Engineering (0) | 2022.07.18 |
---|---|
[Machine Learning] Training Dataset vs Testing Dataset (0) | 2022.07.17 |
[Data Science] Side Project: HuBMAP + HPA (0) | 2022.07.15 |
[Data Science] 데이터 사이언스 코드 작성 요령: 디렉토리, 파일명 선언하기 (0) | 2022.07.08 |
[Data Science] Excel CSV 파일에서 한글 깨짐 현상 해결 방법: 메모장 활용하기 (0) | 2022.07.07 |
댓글