728x90
반응형
Sung Kim 님의 "모두의 딥러닝" 강의노트입니다
좋은 강의 감사드립니다!
https://www.youtube.com/watch?v=mQGwjrStQgg&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=5
Supervised Learning : 데이터를 가지고 학습시켜서 예측하는 것 ( 공부시간 학습을 통한 점수 예측 )
-> 모델을 만들어 Regression을 사용함 ( 새로운 학생의 공부시간을 입력 )
그 후 (Linear) Hypothesis를 세운다.
기존 데이터에 적합한 선을 결정하는 것임 - 선을 찾는 것이 학습을 하는 것
수학적으로 나타낸다면 H(x) = Wx + b로 나타낼 수 있다.
Cost function : 우리가 세운 가설과 실제 데이터가 얼마나 맞는지 확인하는 것
H(x) - y : 잔차 하지만 +, - 일 수도 있기 때문에 (H(x) - y)^2 을 해서 양수로 표현하여 확인한다. 차이가 클 때 더 큰 패널티를 주기도 한다.
각각의 가설 결과와 실제값의 차를 m개 더한 후 m개로 나눔 ( 평균 ) = cost
결국 Cost(W,b)에 대한 것 가장 최적의 W, b 를 구하는 것이 목적
Minimize cost(W, b)를 구하는 것이 학습의 목적이라고 할 수 있다.
< Linear Regression with TensorFlow >
- Build hypothesis
tf,Variable : trainable한 텐서이다. 과정에서 변경가능
tensor의 shape를 주어야함 tf.random.normal([1]) : 값이 하나인 1차원 array ( rank = 1 )
- Build cost function
tf.reduce.mean : 텐서들을 평균내주는 기능 1,2,3,4, => 2.5
tf.square : 제곱
- GradientDescent
스스로 w,b를 조정하여 값을 찾는 것
tf.train.GradientDescentOptimizer(learning_rate = 0.01)
Train = optimizer.minimize(cost) : cost minimize 하는 것
- Launch a session
tensor를 실행하기 이전에 sess.run(tf.global_variables_initializer())을 실행해줘야함
variable을 initialize 하는 것
- Run a session using sess.run 알고 싶은 값 sess.run(A)에 입력
출력하는 과정
Placeholder 사용하는 이유는 때에 따라 값을 다르게 넣을 수 있기 때문이다. shape도 임의로 정할 수 있음
728x90
반응형