Multilayer Neural Networks - 텐서플로우를 이용하여 다층 레이어를 이용한 네트워크를 설계해보자. - hidden layer를 추가하게 될 경우 더 복잡한 모델을 만들 수 있다. - 또한 hidden layer단에서 비선형(non-linear) activation 함수를 사용하게될 경우 - 비선형 함수를 모델링 할 수 있다. - 텐서플로우를 사용한 hidden-layer의 구현 중 가장 먼저 알아야 할 내용은 - ReLU hidden layer이다. - ReLU는 비선형 함수이고 정제된 선형 유닛(rectified linear unit)이다. - ReLU함수는 음수에 대해선 0을, 0 이상인 x에 대해서는 x 자신을 리턴한다. TensorFlow ReLUs - 텐서플로우는 ReLU함수..
TensorFlow Neural Network Lab TensorFlow Lab - 텐서플로우를 이용해 single layer neural network를 만들어보자. - 데이터들을 Normalization하고, 네트워크를 학습하는 과정을 거침. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283import hashlibimport osimport picklefrom urllib.request import urlretrieve import numpy as npfrom PIL i..
Epochs - Epoch는 전체 데이터셋에 대한 forward pass와 backward pass를 나타낸다. - 그렇기 때문에 더 많은 데이터를 필요로하지 않고 Epoch의 count를 조절하므로써 - 모델의 정확도를 높힐 수 있다. - 텐서플로우에서의 epoch에 대해서 그리고 적절한 수의 epoch에 대해 알아보자. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107fro..
Mini-batch - Mini-batch는 한번에 모든 데이터를 처리하는 대신 - 하위집합으로 데이터셋을 분류하여 학습시키는 기술이다. - 컴퓨터에 전체 데이터셋을 저장할 여유가 없을 때에도 모델을 학습시킬 수 있게 해준다. - Mini-batching은 모든 샘플에서 동시에 손실(loss)을 계산할 수 없기 때문에 - 컴퓨터의 계산처리상 비효율적이라 할 수 있다. - 하지만 이는 모델을 전혀 실행할 수 없는 상황에 비해서는 작은부분이라 볼 수 있다. - 또한 Mini-batch 기술은 SGD와 결합하였을때 매우 유용하다. - 이 기술의 기본 개념은 매 epoch마다 데이터를 랜덤하게 섞은다음 mini-batch들을 생성하는것이다. - 그리고 각 mini-batch 에 대해 gradient descen..
Cross Entropy in TensorFlow - softmax 함수와 마찬가지로 텐서플로우에선 크로스 엔트로피 계산이 함수화 되어있다. - 텐서플로우에서 크로스 엔트로피 함수를 생성하려면 - tf.reduce_sum(), tf.log() 이 두가지 함수를 사용해야한다. Reduce Sum - tf.reduce_sum() 함수는 숫자들의 배열을 받아 그 합을 리턴해준다. Natural Log - tf.log() 함수는 특정 숫자의 자연로그를 취한 결과값을 리턴해줌 - softmax_data 와 one_hot_encod_label을 사용하여 cross entropy를 출력12345678910111213import tensorflow as tf softmax_data = [0.7, 0.2, 0.1]one..
TensorFlow Softmax - softmax 함수는 logits 또는 logit score라고 하는 입력을 0에서 1사이 값으로 채우고 - 그 모든 logits의 합이 1이 되도록 output을 정규화 한다. - 즉, softmax 함수의 출력은 범주형 확률분포(categorical probability distribution)와 같다. - 이 softmax 함수는 다중 클래스들을 예측할 때 output activation으로 사용하기 적절하다. - 텐서플로우를 사용하여 softmax 함수를 쓰려면 다음과 같이 해주면 된다. - tf.nn.softmax() 함수는 logits을 받아서 softmax activation을 리턴해준다. 1234567891011121314import tensorflow..
Linear functions in TensorFlow - neural network를 설계함에있어 가장 흔히 사용되는 연산은 - input, weight 그리고 bias의 linear function을 계산하는것이다. - 선형 연산의 output은 다음과 같이 쓸 수 있다. - W 는 두 레이어를 연결해주는 가중치 행렬 - y 는 output, x 는 input, b는 바이어스 벡터이다. Weights and Bias in TensorFlow - 신경망을 훈련시키는 목표는 label을 가장 잘 예측할 수 있도록 가중치와 바이어스를 수정하는것이다. - 가중치와 바이어스를 사용하려면 수정 가능한 텐서가 필요하다. - tf.placeholder(), tf.constant() 이 두 텐서는 수정될 수 없으므로..
TensorFlow - 앞으로의 네트워크엔 Keras와 TensorFlow를 교대로 사용하며 설계하게 될 것이다. - Keras는 신경망 네트워크를 빠르고 간편하게 구축하는데에 적합하다. - 하지만, 그렇기 때문에 세부적으로 설계하는데엔 제한적이다. - 텐서플로우는 신경망 네트워크를 low-level 단에서 작동하는 방식을 이해하는데 유용하다. - refresh를 위한 링크 - Linear Functions - Softmax - Cross Entropy - Batching and Epochs - notMNIST 데이터셋으로부터 이미지를 분류하는 네트워크를 설계해보자. - 네트워크는 A부터 J까지의 알파벳을 나타내는 이미지들을 적절하게 분류한다. - 이미지에 따라 자동으로 알파벳을 감지하고, 분류한다. I..
Mini Project: Using Keras to analyze IMDB Movie Data · The dataset - 25000개의 IMDB 데이터셋을 이용 - Movie Data의 각 review에는 label이 붙어있음 - Negative : 0 / Positive : 1 - review의 단어를 기반으로 review의 sentiment를 예측하는 모델을 만드는 프로젝트를 진행해보자. - 이미 사전에 처리된 input data를 기반으로 네트워크 설계. - 각 review의 단어에 해당하는 인덱스로 접근이 가능하다. - 단어는 빈도수에 비례하게 정렬되므로, 예를들어 가장 빈도수가 높은 "the"에 인덱스 1이 대응됨 - 인덱스 0은 알 수 없는 단어에 해당 - sentence는 이 인덱스와 연결..
Keras Optimizers - Keras엔 다양한 Optimizer들이 있다. 상세 - Optimizer들의 세부 구현 설명 - 그중에 가장 많이쓰이는것들을 다뤄보면 · SGD - Stochastic Gradient Descent 를 지칭, 다음과같은 인자를 취함 - Learning rate - Momentum : local minima에 빠지지 않기위해 이전 단계에서의 가중치가 적용된 평균을 사용 - Nesterov Momentum : solution에 가까워 질 수록 gradient를 slow down시킴 · ADAM - Adaptive Moment Estimation 을 지칭 - 이전 step에서의 평균뿐 아니라 분산까지 고려한 복잡한 지수 감쇠(exponential decay)를 사용 · RM..