본문 바로가기

분류 전체보기72

[NLP] 코드로 보는 RNN 2018-01-19-rnn 김성훈 교수님의 모두의 딥러닝 강의의 RNN 구현 코드는 최신 Tensorflow 버전에서는 안 돌아간다. 그래서 구글링해가면서 다시 구현했다. 이왕 구현하는 김에 객체화해서 구현해보았다. 1. 모델 구축def build(self): self.x_data = tf.placeholder(shape=self.input_size, dtype=tf.float32) rnn_cell = tf.nn.rnn_cell.BasicRNNCell(self.rnn_size) initial_state = tf.random_normal(shape=(self.batch_size, rnn_cell.state_size), mean=1.0) # cell, inputs, dtype outputs, _ = tf.n.. 2019. 1. 19.
Regularization과 딥러닝의 일반적인 흐름 정리 최적화(optimization) : 가능한 훈련 데이터에서 최고의 성능을 얻으려고 모델을 조정하는 과정일반화(generalization) : 훈련된 모델이 이전에 본 적 없는 데이터에서 얼마나 잘 수행되는지를 의미하지만, 일반화 성능을 제어할 방법이 없기 때문에 단지 훈련 데이터를 기반으로 모델을 조정할 수 있음과소적합(underfitting) : 훈련 데이터의 손실이 낮아질수록 테스트 데이터의 손실도 낮아진다. 즉, 모델 성능이 계속 발전될 여지가 있음.과대적합(overfitting) : 모델이 훈련 데이터에 특화되어 일반화 성능이 높아지지 않고 오히려 감소즉, 훈련 데이터에 특화된 패턴을 학습하기 시작했다는 의미, 이 패턴은 새로운 데이터와 관련성이 적어 잘못된 판단을 하게 만듦 Regularizat.. 2019. 1. 13.
[NLP] 기본 개념 : Bag-Of-Words(BOW), Distributed hypothesis 2019-01-06-bow-distributed 1. Bag Of Words(BOW)간단히 말하면, 특정 문서에서 단어의 순서들을 생각하지 않고 그저 단어가 출현하는 빈도 수만을 보는 방법입니다. 다음은 NLP 기본 가정 중 하나인 Bag of words hypothesis입니다. Turney & Pantel (2010:153): Bag of words hypothesis "The frequencies of words in a document tend to indicate the relevance of the document to a query (Salton et al., 1975). – If documents and pseudo-documents (queries) have similar column v.. 2019. 1. 6.
[keras] Boston Housing 데이터를 통한 주택 가격 예측(regression) 2019-01-05-boston-housing 1. 보스턴 주택 가격 데이터셋1970년 중반 보스턴 외곽 지역의 범죄율, 방 개수, 지방세율 등 총 14개의 변수로 이루어진 데이터셋으로, 이를 통해 주택 가격을 예측할 수 있다. 변수에 대한 자세한 내용은 kaggle: boston housing에서 확인할 수 있다. 데이터 수는 총 506개로, 훈련 샘플 404개, 테스트 샘플 102개로 나뉘어 있어 비교적 개수가 적은 데이터셋이다. 따라서 K-fold cross validation을 이용하여 좀 더 정확한 평가를 할 것이다. 데이터셋 로드from keras.datasets import boston_housing(train_data, train_targets), (test_data, test_target.. 2019. 1. 5.
[keras] 정확한 평가를 위한 검증(validation) 데이터 나누기 2019-01-05-validation 딥러닝 모델을 구축할 때, 훈련 데이터와 테스트 데이터만으로도 훈련의 척도를 판단할 수 있다. 하지만, 훈련 데이터에 대한 학습만을 바탕으로 모델의 설정(Hyperparameter)를 튜닝하게 되면 과대적합(overfitting)이 일어날 가능성이 매우 크다. 또한, 테스트 데이터는 학습에서 모델에 간접적으로라도 영향을 미치면 안 되기 때문에 테스트 데이터로 검증을 해서는 안 된다. 그래서 검증(validation) 데이터셋을 따로 두어 매 훈련마다 검증 데이터셋에 대해 평가하여 모델을 튜닝해야 한다. 하지만, 검증 데이터셋이 훈련에 사용되지 않더라도 검증 데이터셋에 대한 성능을 기반으로 hyperparameter를 튜닝하므로 정보 누설(information lea.. 2019. 1. 5.
[keras] tensorflow-gpu ImportError 해결 및 keras 간단 설치 2019-01-04-tensorflow-gpu xxxxxxxxxxpip install tensorflow-gpu위 명령어를 통해 tensorflow gpu를 설치하고 import를 하면 다음과 같은 오류가 날 때가 있다.xxxxxxxxxxImportError: DLL load failed: The specified module could not be found.일반적으로 CUDA를 설치해야 하기 때문에 발생하는 에러일 가능성이 높다. 인터넷 상에 CUDA 홈페이지에서 이것저것을 다운받아 설치하는 방법들이 많이 소개되어있지만, 최근 keras까지 anaconda를 이용해서 간단히 설치할 수 있는 방법을 소개하고자 한다. 방법은 간단하다. 그저 다음 명령어들을 따라 입력하면 된다.conda install -.. 2019. 1. 4.
[Linux] 터미널에서 생성된 pyplot 그래프 보기 일반적으로 SSL로 접속했을 때 GUI 인터페이스를 사용할 수 없으므로 pyplot으로 그래프를 생성하여 plt.show()를 해도 그래프를 볼 수 없다. 따라서 생성된 그래프를 이미지로 저장한 뒤 sftp를 이용해서 이미지를 다운받아서 보는 방식을 사용하면 된다. 1. 그래프 저장 ... import matplotlib.pyplot as plt ​ plt.figure(1) plt.plot(range(1, len(average_mae_history) + 1), average_mae_history, 'r', label='mae') plt.title('MAE') plt.xlabel('Epochs') plt.ylabel('Validation MAE') plt.legend() plt.show() plt.save.. 2018. 12. 29.
[Linux] no display name and no $DISPLAY environment variable 에러 해결 2018-12-29-matplotlib-error 리눅스 환경에서 SSL을 통해 pyplot을 사용하려고 하면 아래와 같은 에러가 발생할 때가 있다.xTraceback (most recent call last): File "boston_housing.py", line 52, in plt.figure(1) File "/usr/local/local/lib/python2.7/dist-packages/matplotlib/pyplot.py", line 533, in figure **kwargs) File "/usr/local/local/lib/python2.7/dist-packages/matplotlib/backend_bases.py", line 161, in new_figure_manager return cls.. 2018. 12. 29.
[Linux] 터미널 창 분할하기 2018-12-29-tmux-use SSL로 서버에 접속하여 작업을 하면 하나의 터미널에서 작업하게 되기 때문에 특정 코드가 실행되는동안 다른 작업을 할 수 없다. 이를 위해 세션을 생성하는 tmux를 사용할 수 있다. 세션 생성tmux new -s [세션명]세션을 생성하면 새로운 터미널로 갱신되는데 여기서 화면분할을 할 수 있다. 대부분의 명령어를 입력할 때는 ctrl + b를 먼저 입력해야 한다. 가로 분할xxxxxxxxxxctrl + b를 누른 뒤 shift + 5세로 분할xxxxxxxxxxctrl + b를 누른 뒤 shift + '분할을 통해 생성된 창 사이를 이동하고 싶으면, ctrl + b를 누른 다음 방향키로 이동할 수 있다. 해당 세션을 종료하고 싶으면 exit를 입력하고, 나가고 싶다면 .. 2018. 12. 29.
[Keras] 뉴스 기사 토픽 분류로 보는 다중 분류(multi-classification) 2018-12-26-reuter-dataset 1986년에 공개된 로이터(Reuter) 데이터셋은 짧은 뉴스 기사와 토픽의 집합으로 이루어져 있다. 알다시피 뉴스 기사는 텍스트 데이터이며, 단어 순서가 유지되어야 하는 시퀀스 데이터다. 총 46개의 토픽이 있으며, 각 토픽마다 기사 데이터 수가 일정하지는 않다. 1. 데이터 준비하기from keras.datasets import reuters(train_data, train_labels), (test_data, test_labels) = reuters.load_data(num_words=10000)로이터 데이터셋도 IMDB 데이터셋과 마찬가지로 Keras에 포함되어 있으며, 같은 형태를 취하고 있다. 학습 데이터는 정의된 단어 사전 내 해당 단어의 인덱스.. 2018. 12. 26.