본문 바로가기

ComputerScience/Machine Learning

DeepLearning 2-2-1

728x90

1. Mini-batch

- vectorization으로 for loop 없이 더 빠르고 효율적인 계산이 가능했다

- 그럼에도 불구하고 만약 데이터가 매우 커진다면 한번 gradient descent하는데 whole training set에 대해 학습을 해야 하기 때문에 시간이 많이 걸릴 것이다.

- 따라서 매우 큰 training set을 전부다 학습하기 전에 그 과정에서 의미있는 gradient descent를 수행하기 위한 방법으로 minibatch가 있다.

- giant training set을 baby training set들로 나눠서 차례로 학습하고 gradient descent를 수행해 나가는 것이다.

- 전체 training set을 mini batch로 나누어서 tain을 진행하다가 전체 train set을 한번 다 돌았다면 이를 1 epoch이라고 한다. (single pass through train set)

- batch gradient desecent는 매 iteration 마다 J가 비교적 매끄럽게 하강하지만

- mini- batch 에서는 서로 다른 작은 training mini batch에 대해 학습하기 때문에 noise가 관찰된다.

- mini-batch에서 gradient descent 를 stochastic gradient descent라고 한다.

- stochastic gradient descent에서 더 짧은 주기로 gradient진행 결과를 관찰할 수 있을 것이다.

- 즉 mini batch 는 전체 training set을 학습하기 전에 작은 batch에대해 process를 진행하는 것이다.

- stochastic gradient descent의 경우는 때때로 wrong gradient를 택할 수도 있다 그래서 noise가 끼게 되는 것이다.

- mini batch 크기가 너무 작다면 (예로1) vertorization에서 속도 향상 효과를 잃을 수 있기 때문에 적절한 크기를 설정하는 것이 좋다.

- entire train set이 작다면 그냥 batch gradient descent를 사용하면 된다.

- 만약 train set이 너무 크다면 미니 배치로 쪼개고 그 크기는 64, 128, 256이 보통 권장된다. 

2. Exponentially weighted averages

- mini batch gradient descent보다 더 효율적이고 빠른 gradient알고리즘이다.

- 런던에 날에 따른 온도 데이터를 파란점으로 표현했다.

- 빨간선이 Exponentially weighted average를 구한 예시중 하나이다.

- 아래 수식을 참고하면 빨간선은 베타 값으로 0.9를 v에 곱해줘서 평균값을 지배하고 있다. 거의 근 10일의 온도 평균선이 된다.

- 만약 베타값을 0.98로 높이면 초록 선이 되는데 이 선은 거의 50일간의 온도평균치를 나타내는 선이 된다.

- 만약 베타가 0.5라면 노란선이 된다. 거의 2days 온도의 평균선이 된다. 온도 변화에 더 예민하게 반응하는 선이 된다.

- 베타가 0.9일 때 v100을 구해보자.

- 이렇게 optimize하는 것을 explonentially weighted average라고한다.

3. Bias correction

- average computation을 더 accurate하게 할 수 있는 테크닉이다.

- 베타가 0.98일때 선이 보라색 선이다. v1, v2를 구했는데 실제 데이터랑 잘 안맞는 모습이다. correction을 해보자.

- v0는 0으로 시작한다.

- 구한 Vt에 대해서 1-베타^t로 나눠주어 bias correction을 한다.

- t가 커질수록 bias를 없애서 더 좋은 estimate를 하도록 도와준다.

- 참고로 보라색 선이 뒤로갈 수록 초록선과 겹치면서 잘 예측을 하지만 초창기 warming up에는 약한 모습을 보인다 이때 bias correct로 교정을 해주는 것이다.

728x90
반응형

'ComputerScience > Machine Learning' 카테고리의 다른 글

AI - 7. 머신러닝 개요  (0) 2021.11.03
AI - 6. Uncertainty  (0) 2021.10.12
DeepLearning 2-1-2  (0) 2021.10.05
DeepLearning 2-1-1  (0) 2021.10.05
AI - 5. Fuzzy Logic  (0) 2021.10.01