*)NN: 딥러닝
프로그래머가 정확하게 프로그래밍 하기 어려운 경우
- 스팸 필터
- 자율 주행 차
Machine Learning (기계 학습)
프로그램 자체가 데이터를 보고 학습해서 능력을 갖는 프로그램
학습하는 방법에 따라 Supervised/Unsupervised learning (지도/비지도 학습) 으로 분류할 수 있다.
Supervised learning
라벨링이 되어있는 학습 데이터로 학습을 하는 방법
Unsupervised learning
주어진 데이터로 스스로 학습하는 방법
Types of Supervised learning
- regression (ex. 시험점수 예측-범위가 넓음)
- binary classification (ex. Pass/non-pass 예측)
- multi-label classification (ex. A, B, C, D, ...등급 예측)
Tensorflow 특징
실행을 안하고 그냥 print하면 "얘는 텐서야"라는 정보만 줌
어떤 선이 우리의 데이터에 맞을까? 이것을 찾는것이 학습
선형식은 위와 같은 1차 방정식으로 나타낼 수 있다.
W와 b의 값을 어떻게 설정하면 파란 선처럼 데이터의 특징을 잘 나타낼 수 있을까?
실제 데이터의 값과 선형식의 값의 차이를 최소한으로 줄이면 최적의 선형식을 찾을 수 있을 것이다.
실제 값과 예측값의 차이를 Cost라 한다.
Cost 값을 가장 최소화시키는 W, b를 찾는 것이 목표가 될 것이다.
우리의 목표를 위와 같이 나타낼 수 있다.
tf.reduce_mean : 평균
tf.global_variables_initializer() : variable사용하기 전에 반드시 초기화 해야함
w의 값을 알고 싶으면 sees.run(w)로 실행 시켜야함
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
W=tf.Variable(tf.random_normal([1]), name='weight')
b=tf.Variable(tf.random_normal([1]), name='bias')
X=tf.placeholder(tf.float32, shape=[None])
Y=tf.placeholder(tf.float32, shape=[None])
hypothesis = X*W + b
cost=tf.reduce_mean(tf.square(hypothesis - Y))
optimizer = tf.train.GradientDescentOptimizer(learning_rate= 0.01)
train=optimizer.minimize(cost)
sees=tf.Session()
sees.run(tf.global_variables_initializer())
for step in range(2001):
cost_val, W_val, b_val, _ =sees.run([cost, W, b, train],
feed_dict={X: [1,2,3], Y: [1,2,3]})
if step % 20 ==0 :
print(step, cost_val, W_val, b_val)
'모두를 위한 딥러닝' 카테고리의 다른 글
[DL] 모두를 위한 딥러닝 6 - Multinomial classification (0) | 2022.03.30 |
---|---|
[DL] 모두를 위한 딥러닝 5 - classifier 구현 (0) | 2022.03.30 |
[DL] 모두를 위한 딥러닝 4 - classification (0) | 2022.03.30 |
[DL] 모두를 위한 딥러닝 3 (0) | 2022.03.29 |
[DL] 모두를 위한 딥러닝 2 (0) | 2022.03.29 |