pw: ****
blog.naver.com/ins_soul80 - 잡다 - p.3 - 맨위
jupyter notebook 설치
REPL, Shebang
출처 - https://m.blog.naver.com/laonple/220463627091
딥러닝 공부 블로그!
지도 학습(supervised learning)
어떤 입력에 대해서 어떤 결과가 나와야하는지 사전지식을 갖고 있는 경우에 해당 입력에 대해 특정 출력(label)이 나오도록 하는 규칙을 찾아내게 만듬, 입력과 출력 사이의 규칙을 발견하는 것이 목표, 회귀 방법 사용, 가장 많이 사용
자율 학습(unsupervised learning)
입력은 있지만 정해진 출력이 없는 경우를 말하며, 순수하게 데이터들이 갖고있는 속성을 이용해 그룹으로 나누는 경우를 말하며, 지도학습이 회귀방법을 사용하는 것과 달리, 분류(clustering)에 해당됌
강화 학습(reinforcement learning)
로봇의 학습 등에 사용할 수 있으며, 자신과 환경과의 상호관계에 따라 자신의 행동을 개선해 나가게 만듬, 가령 칭찬받는 행위는 많이, 벌받을만한 행위는 줄이는 쪽으로 감


인공신경망은 생물학적 뉴런의 구조를 모방하여 만들어짐
입력: x_1, x_2, ... , x_n
가중치: w_1, w_2, ... , w_n
여러 가중치가 들어간 입력이 다 더해져서 신경세포체(Soma)에 전달되면,
신경세포체에서는 활성함수(activate function)에 따라 최종 출력 Y를 결정
활성함수가 특정 경계값(threshold)과 비교를 해서 같거나 크면 +1
작으면 -1을 출력
인공신경망(ANN)은 보통 이런 뉴런들을 multi-layer로 구성하며, 역전파 알고리즘을 통해 신경망의 학습 결과가 기대치와 비슷한 결과를 낼 수 있도록 뉴런의 입력으로 들어오는 시냅스의 가중치를 계속 조절해가는 과정을 거친다(training)
뉴런의 활성함수로 step function 사용, 0과 1밖에 출력 못한다는 한계있었음
rank 0 - 10
rank 1 - [10, 20]
rank 2 - [[10,20], [30,40]]
rank 3 -
[[[10], [20], [30]]
[[40], [50], [60]]
[[70], [80], [90]]]
<tf 라이브러리 사용 규칙>
1. Variable은 초기화 필수
2. ~.run(), ~.eval()은 Interactive Session 필요
3. name 인자에 문자열로 변수명 전달 가능
import tensorflow as tf
tf.disable_eager_execution() # tf2
#matrix1 = tf.constant([[3., 3.]])
#matrix2 = tf.constant([[2.], [2.]])
#product = tf.matmul(matrix1, matrix2)
# with tf.Session() as sess:
# print(sess.run(product))
# sess = tf.Session()
# print(sess.run(product))
# sess.close()
x = tf.Variable([1., 2.])
a = tf.constant([3., 3.])
sub = tf.subtract(x, a)
# with tf.Session() as sess:
# x.initializer.run()
# print(sess.run(sub))
sess = tf.InteractiveSession()
x.initializer.run()
print(sess.run(sub))
print(sub.eval())
sess.close()
#product.numpy() # tf2
#----------------
# 텐서플로우 만들때 순서 구조
import tensorflow as tf
tf.disable_eager_execution() # tf2
state = tf.Variable(0, name= 'counter')
one = tf.constant(1)
new_value = tf.add(state, one)
update = tf.assign(state, new_value)
init_op = tf.global_variables_initializer()
# writer = tf.summary.FileWriter(
# '/tmp/log',
# graph = tf.get_default_graph())
with tf.Session() as sess:
sess.run(init_op)
print(sess.run(state))
for _ in range(3):
sess.run(update)
#print(sess.run(state))
print(sess.run(update))
input1 = tf.placeholder(tf.float32)
input2 = tf.placeholder(tf.float32)
output = tf.multiply(input1, input2)
with tf.Session() as sess:
res = sess.run([output],
{input1:[7.], input2:[3.]})
print(res)
import tensorflow as tf
import numpy as np
x_data = np.random.rand(100).astype('f')
y_data = x_data * .1 + .3
W = tf.Variable(tf.random_uniform([1], -1., 1.))
b = tf.Variable(tf.zeros([1]))
y = W * x_data + b
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(.5)
train = optimizer.minimize(loss)
init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)
for step in range(201):
sess.run(train)
if step % 20 == 0:
print(step, 'W =', sess.run(W),
'b =', sess.run(b))
sess.close()