파이선 코딩을 배우는 초보자도 머신 러닝에 한번 도전해 보자.
머신 러닝을 배우려는 초보자들이 가지게 될 의문점들을 하나하나 찾아내어
실제 풀어보고 결과를 확인해볼 수 있도록 완전히 뒷문으로 들어가 시작하는 머신 러닝!
우선 아래 url 을 방문하여 url 로 구성된 본 서의 목차 파일을 무료로 다운로드 받아 살펴보시기 바랍니다.
파이선 코딩 초보자를 위한 톈서플로우∙OpenCV 머신러닝 머리말과 url 목차 파일 다운로드
https://steemit.com/kr/@codingart/pryx1-opencv
_____________________________________________________________________________________________________
2차 방정식이 중근을 가지는 경우도 2개의 근을 구하는 방법으로 접근하여 근사적으로 중근을 구할 수 있으나 지나치게 많은 학습 횟수가 요구된다. 하지만 2차 방정식의 계수를 알면 판별식에 의해 중근을 가지는지 여부를 알 수 있다. 따라서 중근을 가지는 경우는 다음과 같이 hypothesis = (x_train-W)*(x_train-W) 설정이 가능하다.
y=x*x 함수에 대해 2개의 학습 데이터를 사용하자.
x_train = [1.0, 2.0]
y_train = [1.0, 4.0]
.
즉 결과 식에 의하면 다음 좌표 값은 바로 앞 좌표 값의 (1/2)배씩 줄어든다는 것을 알 수 있다. 이 결과는 주어진 구간의 중앙 좌표를 다음 번 좌표로 사용하는 bisection search 의 결과와 유사한데 즉 수렴이 상당히 느린 편이다. 반면에 learning rate = 0.05로 둔 Tensorflow에 의한 계산 결과를 보면 수렴 속도가 Newton Raphson 기법과 비교할 수 없을 정도로 대단히 빠르다는 것을 알 수 있다.
#quadraticeqn_degen_regression_01.py
import tensorflow as tf
x_train = [1.0, 2.0]
y_train = [1.0, 4.0]
W = tf.Variable(tf.random_normal([1]), name='weight')
hypothesis = (x_train - W) * (x_train - W)
cost = tf.reduce_mean(tf.square(hypothesis - y_train))
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.05)
train = optimizer.minimize(cost)
sess = tf.Session()
sess.run(tf.global_variables_initializer())
for step in range(11):
sess.run(train)
if step % 1 == 0:
print(step, sess.run(cost), sess.run(W))
'머신러닝' 카테고리의 다른 글
sin(x) = 0 TensorFlow 수치 해 (0) | 2018.11.25 |
---|---|
3차방정식의 근 구하기 텐서플로우 파이선 코드 (0) | 2018.11.25 |
Rosenblatt Perceptron N = 1 조도센서 예제 Fermi-Diradc 확률분포를 사용하는 Sigmoid 확률분포 계산 (0) | 2018.09.06 |
통계역학의 Fermi-Dirac 확률분포, Fermi level 과 머신 러닝의 Sigmoid 함수에 대하여 (0) | 2018.09.06 |
Logistic regression 에 사용되는 Sigmoid 함수를 사용하게 된 배경을 추적해 보자. (0) | 2018.09.02 |