Simple ID array and slicing¶ In [5]: # https://www.tensorflow.org/api_guides/python/array_ops import tensorflow as tf import numpy as np import pprint tf.set_random_seed(777) # for reproducibility pp = pprint.PrettyPrinter(indent=4) sess = tf.InteractiveSession() In [2]: from PIL import Image Image.open('kimbab.png') Out[2]: In [6]: t = np.array([0., 1., 2., 3., 4., 5., 6]) 1차원 array를 생성시킬 수 있다...
딥뉴럴 넷트워크 아이디어가 어떻게 시작되었고, 어떤 문제가 있었으며, 그 문제들을 어떻게 해결되었는지에 대해 알아보자. 처음엔 우리의 뇌를 연구했고 우리의 뇌가 굉장히 복잡하게 연결되어 있다는 것을 알게 되었다. 연결된 부분 부분을 자세히 보았더니 뉴런이라고 불리는 unit이 정말 단순하게 동작하더라. 이렇게 단순하게 동작하는데 우리가 어떻게 생각할 수 있을까? 어떤 인풋으로 들어오는 어떤 값들의 가중치와 bias의 합들이 어떤 값이 되면 활성화가 되고 아니면 활성화가 되지 않더라. 이 아이디어에 착안하여, 이런 뉴런은 기계적으로 수학적으로 만들 수 있겠다라고 생각함. 그렇게 만들어 낸 모델이 Activation functions이라고 한다. 왼쪽 것들을 모은다면 오른쪽과 같이 여러개의 출력을 동시에 낼..
Meet MNIST Dataset¶ In [1]: from PIL import Image Image.open('MNIST.png') Out[1]: 28x28x1 image¶ In [2]: Image.open('pic.png') Out[2]: In [ ]: # MNIST data image of shape 28 * 28 = 784 X = tf.placeholder(tf.float32, [None, 784]) # 0 - 9 digits recognition = 10 classes Y = tf.placeholder(tf.float32, [None, nb_classes]) MNIST Dataset¶ In [ ]: from tensorflow.examples.tutorials.mnist import input_d..
Training/Test dataset, learning rate, normalization¶ 우리가 가지고 있는 데이터를 Training과 Test로 나누기 Training set은 학습에만 사용. Teset set은 모델의 평가. In [3]: import tensorflow as tf In [1]: x_data = [[1, 2, 1], [1, 3, 2], [1, 3, 4], [1, 5, 5], [1, 7, 5], [1, 2, 5], [1, 6, 6], [1, 7, 7]] y_data = [[0, 0, 1], [0, 0, 1], [0, 0, 1], [0, 1, 0], [0, 1, 0], [0, 1, 0], [1, 0, 0], [1, 0, 0]] # Evaluation our model using th..
머신러닝 모델이 얼마나 잘 동작하는지에 대해 확인하는 방법 Performance evaluation: is this good? 지난번에 알파(learning rate)와 람다(regularization strength)라는 두 개의 상수를 배웠다. 이런 값을 튜닝 할 필요가 있을 때, training set을 완벽한 training set과 validation set으로 나눈다. 완벽한 training set을 가지고 훈련을 한 다음 validation set을 가지고 알파와 람다를 어떻게 튜닝할지를 고민한다.(모의시험) 다음 test set을 가지고 모델이 잘 동작하는지 확인한다.(test set은 숨겨져있고 한번만 확인 가능하다고 생각하면됨) Online learning 그리고 data set이 너무..
머신러닝 알고리즘을 실제로 사용할 때 팁. 1. learning rate 2. 데이터 선처리(preprocessing) 3. overfitting 1. learning rate 이 알고리즘을 정할 때 learning rate라는 알파값을 임의로 정했다. 이 learning rate를 잘 정하는 것이 중요하다. learning rate가 크다는 것은 경사 하강을 할 때 step이 크다는 것이다. step이 크면 왔다갔다 하거나, 위로 튕겨 올라가버릴 수 있다. 이럴 때는 학습이 이루어 지지 않을 뿐만 아니라 숫자가 아닌 값이 나오기도 한다. 이런 현상을 overshooting이라고 한다. learning rate가 작다는 것은 경사 하강을 할 때 step이 작다는 것이다. step이 작으면 너무 천천히 내..
Tensorflow로 Fancy Softmax Clasification 구현 1. Softmax_cross_entropy_with_logits 이 함수를 사용하면 굉장히 깔끔하게 만들수 있는데 마지막에 항상 logit을 넘겨준다는 겻을 기억할 것. logits = tf.matmul(X, W) + b hypothesis = tf.nn.softmax(logits) In [ ]: # Cross entropy cost/loss cost = tf.reduce_mean(-tf.reduce_sum(Y * tf.log(hypothesis), axis=1)) # Y 는 one hot으로 주어짐 In [ ]: # Cross entropy cost/loss cost_i = tf.nn.softmax_cross_entropy_..
Tensorflow로 Softmax Classification의 구현하기 soft max function은 여러개 클래스 예측할 때 좋아 In [1]: import tensorflow as tf 1. 텐서플로우로 어떻게 구현할 것인가? hypothesis = tf.nn.softmax(tf.matmul(X,W)+b) tf.matmul(X,W)+b 는 XW=y를 의미한다. scores 부분을 logit이라고 부르기도 한다. Cost function: cross entropy 소프트 맥스에 걸맞는 loss function이 필요하다. loss function은 텐서플로우로 굉장히 쉽게 구현 가능하다. Cost = tf. reduce_mean(-tf.reduce_sum(Y * tf.log(hypothesis),..