numpy를 이용하여 간단한 경사하강법 구현

테스트를 위한 x_data와 y_data를 만들었습니다. 

아마 예제는 sung kim 교수님의 유튜브 강좌에서 가져왔습니다.

logistic 의 비용함수와 결과값을 위한 sigmoid함수를 정의하였습니다.

sigmoid는 0 ~ 1의 값을 반환해주죠?

기억하시길 바랍니다.

num_examples로 평균값을 내려고 했으나 cost_function에서 mean()으로 대체하였습니다.

W, b는 데이터의 모양에 맞춰주었고, 사실 이런 부분은 x.shape[0], [1]과 같은 것으로 일반화 시켜주는 것이 좋지만 직관적인 이해를 위해서 나이브한 표현을 사용하였습니다.

  1. 정해준 max_iter만큼 반복을 할겁니다.

  2. w*x + b

  3. sigmoid

    1. 여기까지가 신경망을 구성하는 두 가지 부분인걸 아시죠? 

    2. 첫 번째로 가중치와 bias를 곱(더)해주고, 두번째로는 activation function에 통과시킵니다. 

  4. 다음으로 cost_function을 이용해 비용을 계산해 주고

  5. a - y_data는 역전파를 통해 계산해보시면 나오는 값입니다. 가중치와 바이어스 업데이트를 위해 필요한 값이죠

  6. 마지막으로 w와 b를 업데이트 시켜줍니다. lr 다음에 곱해주는 식 또한, 역전파를 통해 나오는 식입니다. 

 

 

'# Machine Learning > 글 공부' 카테고리의 다른 글

deconvolution(conv2Dtranspose) vs upsampling  (0) 2018.12.10
1x1 convolution이란,  (16) 2018.12.10
Logistic Regression 의 비용함수  (0) 2018.12.09
Multi Class vs Multi Label  (0) 2018.12.06
fine tuning 시 상위층과 하위층  (0) 2018.11.25