2022. 12. 4. 12:34ㆍ텐서플로우로 보는 딥러닝 기초

▣ 문제
x = {1, 2, 3}
y = {1, 2, 3} 이고,
W = 0일때 cost(W)의 값은 ?
▣ 풀이

cost(W) = 4.67
동일하게
W = 1, W = 2, W = 3일때를 각각 계산 해 준다.
▣ W = 1, cost (W) = ?

cost(W) = 0
▣ W = 2, cost (W) = ?

cost(W) = 4.67
▣ W = 3, cost (W) = ?

cost(W) = 18.67
이를 그래프로 그려보면

W = 1 일때 cost의 값이 최저가 된다는걸 알 수 있다.
그런데 컴퓨터는 이를 직관적으로 판별 할 수 없으니 이를 판별하기 위해 쓰이는 방법이 바로
Gradient descent algorithm이다.
▣ Gradient descent algorithm의 동작 법
1. 최초의 W, b 값을 추정해서 정한다.
(그 값이 랜덤이든 0, 0 이든 상관 X)
2. W, b 값을 cost(W,b) 값이 줄어들도록 조금씩 지속적으로 바꿔준다.
3. 이렇게 지속적으로 업데이트 할 때의 기울기 값을 구해서 cost(W, b)가 최소화가 되도록 업데이트 해준다.
4. cost(W, b)의 값이 최소가 될 때 까지 앞의 과정을 무한 반복 해준다.
그림으로 한번 살펴보자

1. Initial Weight = 최초의 W, b값 (임의로 설정) W = 4, b = 40
2. Gradient = 그래프에서 지정한 점의 미분점 즉 기울기 값을 의미하고 그 값에 맞게 cost의 값이 최소가 되도록 Initial Weight의 값을 업데이트 한다.
3. Increment Step = 2번 과정을 거친 후의 다음 점을 의미 이 점에서의 기울기를 또 구해서 2번 과정을 반복한다.
4. Minimum cost = cost값이 최소인 점으로, 이 점에 도달할 때 까지 1~3번 과정을 무한 반복 하면 된다.
▣ 이때 알 수 있는 특징
1. 기울기가 클수록 업데이트과정에서 많이 변한다.
2. W 초기 값을 양수로 잡던 음수로 잡던 결국 기울기에 따라 업데이트를 하기 때문에 cost 값이 최소가 되도록 하는 Minimum cost에 똑같이 도달한다.
▣ 자세한 과정
여기서 Gradient를 구하기위해 미분을 할 건데



즉 Gradient descent의 값은

이렇게 표현할 수 있다.
▣ Gradient descent를 사용할 수 없는 구조

▣ 이유
Local Minimum이 여러개이기 때문
Local Minimum : 주변에 비해 상대적으로 낮은 곳을 의미 (빨간색 동그라미)
▣ Gradient descent를 사용할 수 있는 구조

▣ 이유
Local Minimum이 한개이기 때문
'텐서플로우로 보는 딥러닝 기초' 카테고리의 다른 글
Logistic Regression/Classification를 TensorFlow로 구현 (0) | 2022.12.10 |
---|---|
로지스틱 회귀/ 분류 (Logistic Regression/Classification) (0) | 2022.12.10 |
Multi-variable Linear Regression 를 TensorFlow 로 구현 (0) | 2022.12.09 |
다중 선형회귀(Multi-variable Linear Regression) (0) | 2022.12.09 |
Simple Linear Regression을 TensorFlow로 구현 (0) | 2022.12.03 |