영상을 보면서 내 나름대로 얻은 정보를 필기로 정리. 꼭... 끝을 보겠노라 불끈
Cost Function
손실함수, 어떤 특정 예측 알고리즘이 얼마나 잘 동작하고있는지 확인하는 지표 값. 실제값과 예측값이 얼마나 차이가 나는지 알수가있는 함수임. (MSE 알고리즘등)
Gradient Descent
위에서 말한 손실함수를 최소한의 값으로 줄이는게 목적인데. 이를 사람손으로 일일히 작업할수가없어서 자동으로 최소값을 찾아주는 알고리즘. 제일 처음으로 접하는 알고리즘 SGD가 그 예시이다.
세타는 예측 알고리즘의 파라미터 값이고. 알파는 우리가 딥러닝모델을 작업할때 흔히 말하는 Learning Rate이다. 예측 알고리즘의 파라미터는 동시에 업데이트가 되어야한다.
이 Learning rate가 너무 높아서도, 너무 낮아서도 안된다. 너무 높게 잡히면 overshoot이 되어 손실함수 값의 minimum을 지나칠수가있고, 너무 낮게 잡히면 손실함수 값의 minumum까지 도달하는데 너무 오래걸릴수가있기 때문
만약 도달하는곳이 local minimum이면 더이상 움직이지 않게됨.
"Batch" Gradient Descent (집단 기울기 하강)
"Batch" : Each step of gradient descent uses all the training examples
- Gradient descent can converge even if A is kept fixed. (But A cannot be too large, or else it may fail to converge)
- For the specific choice of cost function J used in linear regression, there are no local optima(other than the global optimum)
Feature Scaling
Make sure features are on a similar scale.
각피쳐의 값이 동일한 범위값으로 변경이되면, gradient descent 는 더빠르게 수렴할 수 있다.
Get every feature into approximately(대략) -1 <= x <= 1 range.
Mean normalization - Replace x with x-u to make features have approximately zero mean
normalization을 진행할때 feature에 평균값을 빼고 분모에는 feature의 범위값이나 표준편차값을 넣어준다
Learning Rate
Gradient descent Debugging - How to make sure gradient descent is working correctly.
working correctly -> cost function value should decrease after every iteration
만일 cost function 의 값이 계속해서 올라가게된다면(밑그림에서 왼쪽 그래프 두개처럼) 알파(여기선 learning rate)가 크다는 의미로 학습을 진행할때 learning rate의 값을 작게 조정해야한다
IF learning rate too smal: slow convergence(수렴)
IF learning rate too large: cost function may not decrease on every iteration; may not converge(모이다)
To choose learning rate, try
0.001 -> 0.003 -> 0.01 -> 0.03 -> 0.1 -> 0.3 -> 1 ...
Normal Equation
Gradient Descent는 결국에 cost function의 최소값 즉, cost function을 미분하였을때 얻어지는 값이 0(기울기가 수평일때)를 구하는것인데. 이러한 방법으로 cost function의 최소값을 갖는 세타값을 한번에 찾는방법을 Normal Equation이라고한다. 이렇게 Gradient Descent와는 달리 한번에 cost function의 최소값 찾아내는 장점이 있지만. 단점도 존재한다.
단점
1. feature 가 많아지면 계산량이 많아져서 오히려 Gradient Descent보다 느려짐. 보통 데이터셋이 10000개 이하일때 Gradient Descent보다 좋은 성능을 나타냄.
2. non-invertible matrix일경우 오류가 발생함. 중복된 features가 존재하거나, dataset의 크기에 비해 너무큰 features를 사용할 경우 오류가 발생
장점
1. Gradient Descent와는 달리 learning rate를 정할필요가 없다
2. dataset normalization을 할필요가 없다
'Data > Data Science' 카테고리의 다른 글
[deeplearning.ai] Coursera 필기정리 2 (0) | 2020.07.06 |
---|---|
[deeplearning.ai] Coursera 필기정리 1 (0) | 2020.07.02 |
[Coursera IBM] Data Science 필기2 (0) | 2020.06.29 |
[Coursera IBM] Data Science 필기 (0) | 2020.06.18 |
[Sklearn] PCA 차원축소 (0) | 2020.05.07 |