티스토리 뷰

모두의 딥러닝
Linear Regression cost함수 최소화

강의
Cost Function
이번 강의에서는 Cost 함수에 대해 설명을 한다.
우선 다음과 같이 Hypothesis값을 수정하는데, Cost함수에 대한 이해를 쉽게 하기 위해, (b) 없애서 설명하는 걸로 나온다
그러나 신기하게도, 해당 값이 있고 없고가 cost 함수를 최소화 시키는게 문제가 안된다. 왜냐하면 b 값이 없어진 만큼 w에서 값을 변경하면 되니깐..??
공식을 가볍게 만들기 위해서 이기도 하지만, 나중에 행렬로 계산을 때가 되면, 정말로 b값을 행렬에 넣어서 공식을 간단히 한다.
위의 이미지를 보면, 정말로 W 데이터를 넣고 계산을 cost 값을 있다. W 1 경우가 cost 값이 제일 낮은 것을 있다. 이전 강의에서 설명 했듯이. 우리가 원하는 w b 값은 cost 제일 낮게 하는 값이므로, 우리가 원하는 w 값은 1인걸 있다.
w값을 계속 바꿔가면서 계산을 하여 cost값에대한 그래프를 만들면 아래와 같은 있다.

Gradient Descent Algorithm

여기서 중요한 알고리즘인 Gradient Descent Algorithm 대해 설명한다.
Cost 함수에 대한 최소값(w,b) 찾아주는 알고리즘 이다.
지속적으로 동작하여, W b값을 찾아 cost함수를 최소 값으로 찾아준다. 어떻게 찾을 있을까?
cost함수를 미분했을 , 음수 또는 양수의 1 그래프가 생기는 수있다. 그래프에서는 위의 이미지에서 w 1보다 작은 경우, 음수의 그래프가 생길 것이고, 1보다 경우 양수의 그래프가 생길 것이다. 거기다, 경사각 또한 cost 최소화값인 1 멀어질수록 커지는 또한 있다.
Cost 함수를 조금 쉽게 미분하기 위해, 1/2 곱해준 다음( 값을 곱해준다고 해도 우리가 구하는 , cost 최소값일 때의 W b 값이므로, 해당 값을 구한 이후의 연산행위는 W b값을 구하는데 상관이 없다.)

아래와 같이 미분을 하고, W값에서 미분한 값을 빼주는 것이 경사각 알고리즘의 원리 이다.
참고로 Gradient descent algorithm에서 알파(a) 이전 소스에서 사용됐던 learning_rate 값이다

위의 왼쪽 이미지와 같이 cost 함수가 구현되면, 어느곳에서 시작하느냐에 따라 우리가 찾는 cost값이 달라 있을 것이다. 그래서 오른쪽과 같이 cost함수가 구현된 곳에서 Gradient descent algorithm 사용할 있다.

Lab
Matplotlib

이번 강의에선 matplotlib 사용하여, cost함수에 대해 그래프를 만들어 본다.
위의 이미지와 같이, W값을 계속 변경하면서, 배열에 W값과 cost값을 저장하여 matplotlib 라이브러리를 이용하여 그래프로 나타내었다.
W값을 변경하는 것을 통해, placeholder 어떻게 사용하는지에 대해 고민할 있게 되었다. 다음과 같이 지속적으로 값을 변경하기 위해, placeholder 사용한다. constant 사용하게되면 값이 고정되어 버리기 때문에, 값을 변경하기가 어렵다.

다음은 이전에 사용했던 Gradient Descent Algorithm 직접 구현하는 설명하고 있다.
실제로 구현을 소스는 다음과 같다.
결과값을 보면, cost값이 점점 내려가는걸 확인 있다. W.assign(descent) 통한 update 지속적으로 w 값을 변경해주고 있는걸 확인해 있다.

다음 이미지는 초기값을 최대한 우리가 원하는 값과 가깝게 설정하면 좋겠지만, 어떤 값을 설정하더라도 우리가 원하는 w값을 찾을 있다는 보여주는 이미지이다.
동영상에서 마지막으로 gradient descent algorithm 옵션값에 대해 설명한다. 필요시, 해당 알고리즘을 수정하는 방법?이다.

이부분에 대해서는 이미지하나로 대처한다.


댓글
공지사항
최근에 올라온 글
링크
«   2024/05   »
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 29 30 31
글 보관함