Predicting Student Admissions with Neural Networks in Keras · Loading the data123456789# Importing pandas and numpyimport pandas as pdimport numpy as np # Reading the csv file into a pandas DataFramedata = pd.read_csv('student_data.csv') # Printing out the first 10 rows of our datadata[:10]Colored by Color Scriptercs >> · Plotting the data1234567891011121314151617# Importing matplotlibimport mat..
Neural Networks in Keras - 이전에 NumPy를 이용하여 네트워크를 설계하였다면, 이번엔 좀 더 실무적인 툴을 사용하여 - 네트워크를 설계하는 방법에 대해 알아보자. - 툴을 사용하는 이유로는, activation function 이나 gradient descent 등을 직접 구현하지 않고 - 가져다 쓰기만 해도 되는것이 단적인 예가 될 수 있겠다. - Keras, TensorFlow, Caffe, Theano, Scikit-learn 등의 툴이 이에 해당된다. - 이번시간에는 Keras를 다루는 법에대해 알아보자. Building a Neural Networks in Keras - Keras를 사용하여 네트워크를 만들어가기 전에 알아야할 몇가지를 짚고 넘어가자. · Sequentia..
Sentiment Classification & How To "Frame Problems" for a Neural Network · Curate a Dataset12345678910def pretty_print_review_and_label(i): print(labels[i] + "\t:\t" + reviews[i][:80] + "...") g = open('reviews.txt','r') # What we know!reviews = list(map(lambda x:x[:-1],g.readlines()))g.close() g = open('labels.txt','r') # What we WANT to know!labels = list(map(lambda x:x[:-1].upper(),g.readlines..
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148import numpy as np class NeuralNetwork(object): def __init__(s..
GPU Workspaces for iterator wrapper - GPU 사용 환경에서 지속적으로 세션을 유지할 경우 아래의 두 명령어를 이용하여 유지할 수 있음. import signal from contextlib import contextmanager import requests DELAY = INTERVAL = 4 * 60 # interval time in seconds MIN_DELAY = MIN_INTERVAL = 2 * 60 KEEPALIVE_URL = "https://nebula.udacity.com/api/v1/remote/keep-alive" TOKEN_URL = "http://metadata.google.internal/computeMetadata/v1/instance/attribu..
Other Activation Functions - 이전에 gradient descent로는 해결이 안되었던 문제를 해결하려면 sigmoid function이 아닌 - 다른 activation function을 사용하여야한다. - 바로 "Hyperbolic Tangent" 이다. - sigmoid function과 유사한 그래프를 보이지만, 기울기가 다르다. - 이 작은 차이가 neural networks에 엄청난 영향을 미친다. - 또 다른 activation function으로는 Rectified Linear Unit(ReLU)가 있다. - 이건 매우 간단하다. - 만약 positive일 경우 동일한 값을 리턴, negative일 경우 0을 리턴한다. - 이 방법은 positive의 경우 미분했을때 ..
Dropout - 만약 우리가 운동을 하는데 자기가 더 많이 사용하는 손(오른손잡이 와 같이)으로만 운동을 한다면? - 한쪽 팔뚝만 굵어지는 일이 생기게 된다. - 한쪽 팔뚝만 키우려고 운동하는 사람은 없지 않은가? 따라서 성공한 운동이 되었다고 볼 수 없다. - 마찬가지로 네트워크를 학습하는 과정에서도 한쪽의 weight이 더 큰 경우 - 특정 방향으로 편향되어 네트워크가 진행되는 경향이 생길 수 있다. - 따라서 이와같은 경우를 방지하고자, 특정 unit을 끄고(turn off) 나머지 네트워크 학습을 진행하곤 한다. - 이를 구현하는 방법으로는 각 노드들이 연산에서 (순방향 및 역방향 모두) 제외될 확률을 주는 알고리즘을 통해 - 랜덤하게 특정 노드들을 연산에서 제외시킨다. - 위의 경우 0.2로 ..
Early Stopping - 위의 모델들의 epoch에 따른 training set과 testing set의 모델변화 추이를 봐보자. - 우측으로 갈 수록 training set에 대해 정확하다 못해 너무 지엽적이게 된다. - 우리는 적절한 일반화가 잘 된 모델을 찾는것이 목표이기 때문에 - 맨 우측 모델은 너무 세부적이라 일반화에 실패한 모델이 되어버린다. - 이는 testing set을 적용시켜봤을때 하나도 들어맞는것이 없게 되며 - 마치 training set을 단순 암기 한 모델정도 뿐이다. - 따라서 우리의 목표는 Training Error도 적고, Testing Error도 적은 지점을 찾는것이다. - 모델 복잡도 그래프를 봐보면 특징이 있다. - Testing error의 경우 기울기가 급..
Training Optimization - deep neural network를 구현하는 방법과, 우리의 데이터에 가장 fit하게 들어맞게 학습하는 방법에 대해 알아본다. - 여러 조건에 의해 예를들면, 데이터의 분포가 too noisy한다던지, 나쁜 모델을 선택했다던지 등의 변수에 의해 - 최초에 의도한대로 설계한 네트워크가 한번에 구현되는것은 매우 어려운 일이다. - 따라서 최적의 모델을 찾아가는 과정에 대해 알아보자. Testing - 좌, 우 모델중 우리가 이상적으로 생각하는 모델은 우측이다. - 그러나 이번엔 조금 다른 개념을 도입하여 모델을 분류해보려한다. - 데이터를 Training point와 Testing point로 나눠서 모델을 평가하려한다. - Training set을 바탕으로 모델..
Implementing backpropagation - 위는 output layer의 error term을 구하는 방법이다. - 또한 위는 hidden layer의 error term을 구하는 방법이다. - 지금부터 하나의 hidden layer와 하나의 output unit을 가진 네트워크에 대해 예를 들어보자. backpropagation을 통한 weight들을 업데이트하는 알고리즘 · 각 layer에 대한 weight step들을 0으로 설정 - input → hidden weights = 0 - hidden → output weights = 0 · 각 training data들에 대해 - 네트워크를 통해 순서대로 yHat을 구함 - 그리고나서, output unit에서 error gradient를..