일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- #실생활 영어
- 영어
- #영어
- convexhull
- #Android
- object detection
- python 알고리즘
- opencv SURF
- findContours
- #프로젝트
- 영어명언
- keras
- #영어 명언
- #1일1영어
- c언어
- word embedding
- #English
- 완전탐색
- python __init__
- #실생활영어
- #opencv
- 이미지 생성
- tokenizing
- python list
- Convolution Neural Network
- text2img
- TensorFlow
- tensorflow update
- 딥러닝
- #일상영어
- Today
- Total
When will you grow up?
Natural Language Processing(using IMDB dataset) 본문
이번시간에는,
Keras를 이용하여 IMDB dataset으로 NLP학습을 해보겠습니다.
IMDB dataset은 스탠포드 연구원에 의해 수집되었으며,
Large Movie Review Sentence dataset고, 문장에 따라 good(긍정) / bad(부정)으로 나뉘는 Label이 되어 있습니다.
Keras로 IMDB 데이터셋을 불러오면
training용 Data 25000 / test용 Data 25000로 구성이 되어있습니다.
1 2 3 4 | from keras.datasets import imdb #load the dataset (x_train, y_train), (x_test, y_test) = imdb.load_data() | cs |
word Embedding 이란?
- 자연어 처리 분야(NLP)에서 학습을 할 수 있도록, 텍스트를 숫자로 변환한 것으로 동일한 텍스트에 대해 다른 숫자로 표현이 가능하게
시켜주는 부분이 word Embedding이 주된 목적이며, 단어를 고차원 벡터로 매핑시켜주는 것 이며 수지를 입력 값으로 요구할 때
신경망과 관련된 자연어 처리 문제로 작업 할 때 아주 유용한 방법입니다.
Keras에서는 Embedding layer를 제공하며, 간편히 사용할 수 있습니다.
코드와 같이 만약 우리가 dataset에서 가장 많이 사용된 5,000개의 단어에만 관심이 있다고 가정을 한다면, 크기는 5,000이고
각 단어를 나타내기 위해서 32차원 벡터를 사용하도록 선택 할수 있으며, 문장의 최대 길이를 500단어로 제한하고 그보다 긴 리뷰는 잘라내고 0 값으로 채운 패딩 리뷰를 선택 할 수 있으며, 마지막으로 Embedding layer를 이용하면 32x 500인 matrix가 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | import numpy from keras.datasets import imdb from keras.models import Sequential from keras.layers import Dense from keras.layers import Flatten from keras.layers.embeddings import Embedding from keras.preprocessing import sequence imdb.load_data(nb_words=5000, test_split=0.33) x_train = sequence.pad_sequences(x_train, maxlen=500) x_test = sequence.pad_sequences(x_test, maxlen=500) Embedding(5000, 32, input_length=500) | cs |
One-Dimensional Convolutional Neural Network 이란?
- CNN은 보통 이미지 인식 부분에서 위치와 방향에 견고하면서 이미지 데이터 공간 구조를 이해 하도록 보통 설계가 되었는데, IMDB(영화리뷰)에서도 단어의 1차원 시퀀스와 같은 스퀀스에 사용을 할 수 있고, MaxPooling도 사용을 할 수 있다.
지금 까지 했던 내용을 바탕으로 Keras로 모델을 구성하고 검증 정확률이 제일 높은 모델을 비교하며 테스트 해보겠습니다
[모델 비교]
[성능비교]
[88.51%] [89.34%]
[동일한 모델로 epoch수를 늘렸을 경우] ->Train Loss는 줄어들어 0에 가까워지는데, Validation Loss는 증가하는 모습을 보이며,
또한 정확도 역시 좋아지지 않고 감소되는 overfitting 된 모습을 볼 수 있었다.
전체 코드 : 클릭
reference
Deep Learning for python - book
https://tykimos.github.io/lecture/
keras.io
'02. Study > Deep Learning' 카테고리의 다른 글
Natural Language Tokenizing (KoNLPy) (0) | 2019.08.05 |
---|---|
Natural Language Tokenizing (NLTK) (0) | 2019.08.05 |
자연어 처리(natural language processing) (0) | 2019.08.05 |
Transfer Learning (0) | 2017.11.28 |
Perceptron Learning Algorithm (0) | 2017.03.13 |