티스토리 뷰
[ML] Optimization method (최적화 알고리즘)
Daniel803 2023. 10. 11. 06:12최적화 알고리즘의 목적은 cost function (비용 함수) 을 최소화 (또는 최대화) 해 모델에 가장 적합한 파라미터를 찾는 것으로, Gradient Descent (경사 하강법), Stochastic Gradient Descent (확률적 경사 하강법), Newton's Method, Adam, RMSProp 등이 있다. 최적화 알고리즘이 모델에서 맞는 역할은 cost function 의 정보를 기반으로 모델 파라미터를 조정하거나 업데이트 하는 방법을 결정하는 것이다. 대표적인 최적화 알고리즘을 알아보자.
1. Batch Gradient Descent (배치 경사 하강법, 일괄 경사 하강법)
: * 전체 데이터 세트를 사용해 gradient (기울기) 를 계산한다.
* convex loss surfaces (볼록 손실 표면) 에선 전역 최소값 (global minium) 으로, non-convex surfaces (비볼록 표면) 에서는 국소 최소값 (local minimum) 으로 수렴하는 것을 보장한다.
* 매우 큰 데이터 세트에서는 계산 비용이 많이 들고 속도가 느릴 수 있다.
2. Stochastic Gradient Descent (확률 적 경사 하강법)
: * stochastic (확률적) 이라는 단어는 무작위 샘플을 사용해 gradient를 추정하는 방법의 특성을 나타낸다.
* 한 번에 하나의 예제(batch size가 1)만 사용해 gradient를 계산한다.
* 노이즈가 많은 업데이트라, 안정화 되지 않고 최적값을 중심으로 bounce (와리가리) 되므로 얕은 국소 최소값 (shallow local minima) 를 피하는 데 유용할 수 있다.
* 특히 대규모 데이터 세트의 경우 일반적으로 Batch Gradient Descent 보다 빠르다. (batch size가 1이므로)
* learning rate (학습 속도) 조정이 필요하며 feature scaling (특징 규모 정도) 에 따라 민감할 수 있다.
3. Mini-Batch Gradient Descent (미니 배치 경사 하강법)
: * Batch Gradient Descent와 Stochastic Gradient Descent 사이의 절충안이다.
* 데이터 세트에서 무작위로 선택된 작은 하위 집합인 샘플인 mini-batch를 사용해 graident를 계산한다.
* Batch Graident Descent의 빠른 수렴과 SGD의 국부 최소값을 피하는 확률적 특성이라는 두 가지 장점을 결합하는 것이 목표다.
* Deep Learning에서 가장 인기 있고 널리 사용되는 방법이다.
비록 Mini-Batch Gradient Descent가 두 가지의 장점을 결합한 접근법이지만, 더 나은 최적화 알고리즘이라고 단정하기는 어려우므로, 최적화 알고리즘을 선택할 때는 데이터 세트와 계산 조건 등의 상황을 고려해 선택해야 한다.
'기술(Tech, IT) > 머신 러닝(Machine Learning)' 카테고리의 다른 글
[ML] TF-IDF - 1 (2) | 2023.10.17 |
---|---|
[ML] Multinomial Naive Bayes (다항 분포 나이브 베이즈) - 1 (0) | 2023.10.17 |
[ML] t-SNE (t-Stochastic Neighbor Embedding) - 2 (2) | 2023.10.06 |
[ML] t-SNE (t-Stochastic Neighbor Embedding) - 1 (0) | 2023.10.05 |
[ML] SNE (Stochastic Neighbor Embedding) (0) | 2023.10.04 |
- Total
- Today
- Yesterday
- 딕셔너리
- DICTIONARY
- java
- 투 포인터
- Android
- min heap
- vertex shader
- machine learning
- Python
- Computer Graphics
- 티스토리챌린지
- The Economist
- I2C
- The Economist Espresso
- 오블완
- 머신 러닝
- socket programming
- 소켓 프로그래밍
- 파이썬
- 안드로이드
- leetcode
- 이코노미스트
- defaultdict
- 이코노미스트 에스프레소
- join
- Hash Map
- tf-idf
- ml
- 리트코드
- C++
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |