{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "9_ghwEiv-i9o" }, "source": [ "# 9장. 텍스트를 분류합니다" ] }, { "cell_type": "markdown", "metadata": { "id": "fthL_KBq-i9p" }, "source": [ "이 노트북을 주피터 노트북 뷰어(nbviewer.jupyter.org)로 보거나 구글 코랩(colab.research.google.com)에서 실행할 수 있습니다.\n", "\n", "\n", " \n", " \n", "
\n", " 주피터 노트북 뷰어로 보기\n", " \n", " 구글 코랩(Colab)에서 실행하기\n", "
" ] }, { "cell_type": "markdown", "metadata": { "id": "hIqZy_G_-i9q" }, "source": [ "이 노트북을 실행하려면 텐서플로 2.0.0-alpha0 버전 이상이 필요합니다." ] }, { "cell_type": "markdown", "metadata": { "id": "lZq0nOLM-i9r" }, "source": [ "## 09-2 순환 신경망을 만듭니다" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "id": "8tuqmlzv-i9r" }, "outputs": [], "source": [ "import numpy as np\n", "from tensorflow.keras.datasets import imdb" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "bB7Y2lgT-i9r", "outputId": "60828e4c-82a6-4579-e90e-b4378565af66" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/imdb.npz\n", "17465344/17464789 [==============================] - 1s 0us/step\n", "17473536/17464789 [==============================] - 1s 0us/step\n" ] } ], "source": [ "(x_train_all, y_train_all), (x_test, y_test) = imdb.load_data(skip_top=20, num_words=100)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "RW83TkMm-i9s", "outputId": "48b8f4f6-0f9b-4baa-aa21-d435a81eefdb" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[2, 2, 22, 2, 43, 2, 2, 2, 2, 65, 2, 2, 66, 2, 2, 2, 36, 2, 2, 25, 2, 43, 2, 2, 50, 2, 2, 2, 35, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 39, 2, 2, 2, 2, 2, 2, 38, 2, 2, 2, 2, 50, 2, 2, 2, 2, 2, 2, 22, 2, 2, 2, 2, 2, 22, 71, 87, 2, 2, 43, 2, 38, 76, 2, 2, 2, 2, 22, 2, 2, 2, 2, 2, 2, 2, 2, 2, 62, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 66, 2, 33, 2, 2, 2, 2, 38, 2, 2, 25, 2, 51, 36, 2, 48, 25, 2, 33, 2, 22, 2, 2, 28, 77, 52, 2, 2, 2, 2, 82, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36, 71, 43, 2, 2, 26, 2, 2, 46, 2, 2, 2, 2, 2, 2, 88, 2, 2, 2, 2, 98, 32, 2, 56, 26, 2, 2, 2, 2, 2, 2, 2, 22, 21, 2, 2, 26, 2, 2, 2, 30, 2, 2, 51, 36, 28, 2, 92, 25, 2, 2, 2, 65, 2, 38, 2, 88, 2, 2, 2, 2, 2, 2, 2, 2, 32, 2, 2, 2, 2, 2, 32]\n" ] } ], "source": [ "print(x_train_all[0])" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "AGGlzizB-i9t", "outputId": "216564b6-54bc-459a-936f-73626dd0b084" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[22, 43, 65, 66, 36, 25, 43, 50, 35, 39, 38, 50, 22, 22, 71, 87, 43, 38, 76, 22, 62, 66, 33, 38, 25, 51, 36, 48, 25, 33, 22, 28, 77, 52, 82, 36, 71, 43, 26, 46, 88, 98, 32, 56, 26, 22, 21, 26, 30, 51, 36, 28, 92, 25, 65, 38, 88, 32, 32]\n" ] } ], "source": [ "for i in range(len(x_train_all)):\n", " x_train_all[i] = [w for w in x_train_all[i] if w > 2]\n", "\n", "print(x_train_all[0])" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "PnziRrOV-i9t", "outputId": "64883537-97c8-4178-896a-49ec14708816" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/imdb_word_index.json\n", "1646592/1641221 [==============================] - 0s 0us/step\n", "1654784/1641221 [==============================] - 0s 0us/step\n" ] }, { "data": { "text/plain": [ "17" ] }, "execution_count": 5, "metadata": { "tags": [] }, "output_type": "execute_result" } ], "source": [ "word_to_index = imdb.get_word_index()\n", "\n", "word_to_index['movie']" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "OtnWluCa-i9u", "outputId": "2285ba97-5b79-47e7-c7ab-c7fe2220086e" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "film just story really they you just there an from so there film film were great just so much film would really at so you what they if you at film have been good also they were just are out because them all up are film but are be what they have don't you story so because all all " ] } ], "source": [ "index_to_word = {word_to_index[k]: k for k in word_to_index}\n", "\n", "for w in x_train_all[0]:\n", " print(index_to_word[w - 3], end=' ')" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "a8mnm0xk-i9u", "outputId": "b82e7609-4c37-45b2-bda5-3256c11afea7" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(25000,) (25000,)\n" ] } ], "source": [ "print(x_train_all.shape, y_train_all.shape)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "m6jYt7CG-i9v", "outputId": "27978992-fb0a-42c7-b3f1-dd27229b8096" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "59 32\n" ] } ], "source": [ "print(len(x_train_all[0]), len(x_train_all[1]))" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "z5-teaRv-i9v", "outputId": "54c9d820-888a-49d5-ea61-d6786c3bfe4e" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1 0 0 1 0 0 1 0 1 0]\n" ] } ], "source": [ "print(y_train_all[:10])" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "id": "M3HNEvNx-i9v" }, "outputs": [], "source": [ "np.random.seed(42)\n", "random_index = np.random.permutation(25000)\n", "\n", "x_train = x_train_all[random_index[:20000]]\n", "y_train = y_train_all[random_index[:20000]]\n", "x_val = x_train_all[random_index[20000:]]\n", "y_val = y_train_all[random_index[20000:]]" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "id": "XZIL6Ghj-i9v" }, "outputs": [], "source": [ "from tensorflow.keras.preprocessing import sequence\n", "\n", "maxlen=100\n", "x_train_seq = sequence.pad_sequences(x_train, maxlen=maxlen)\n", "x_val_seq = sequence.pad_sequences(x_val, maxlen=maxlen)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "5DDjVYVY-i9w", "outputId": "d88b10a7-c634-4f66-ba70-ff31b3a44612" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(20000, 100) (5000, 100)\n" ] } ], "source": [ "print(x_train_seq.shape, x_val_seq.shape)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "7J0WG33D-i9w", "outputId": "d613471c-eb1b-40b6-f394-1164a234c958" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 35 40 27 28 40 22 83 31 85 45\n", " 24 23 31 70 31 76 30 98 32 22 28 51 75 56 30 33 97 53 38 46 53 74 31 35\n", " 23 34 22 58]\n" ] } ], "source": [ "print(x_train_seq[0])" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "id": "tc_bNtvw-i9w", "scrolled": true }, "outputs": [], "source": [ "from tensorflow.keras.utils import to_categorical\n", "\n", "x_train_onehot = to_categorical(x_train_seq)\n", "x_val_onehot = to_categorical(x_val_seq)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "nJTYFe9A-i9w", "outputId": "4d1988e2-4efd-4f00-cd72-be098a8205bb", "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(20000, 100, 100)\n" ] } ], "source": [ "print(x_train_onehot.shape)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "Zo5yvEEO-i9x", "outputId": "e9a73f2b-5e26-4fc9-c8b6-f189ae6e2f59", "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "800000000\n" ] } ], "source": [ "print(x_train_onehot.nbytes)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "id": "pce0migf-i9x" }, "outputs": [], "source": [ "import tensorflow as tf" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "id": "eDAuFbq2-i9x" }, "outputs": [], "source": [ "class RecurrentNetwork:\n", " \n", " def __init__(self, n_cells=10, batch_size=32, learning_rate=0.1):\n", " self.n_cells = n_cells # 셀 개수\n", " self.batch_size = batch_size # 배치 크기\n", " self.w1h = None # 은닉 상태에 대한 가중치\n", " self.w1x = None # 입력에 대한 가중치\n", " self.b1 = None # 순환층의 절편\n", " self.w2 = None # 출력층의 가중치\n", " self.b2 = None # 출력층의 절편\n", " self.h = None # 순환층의 활성화 출력\n", " self.losses = [] # 훈련 손실\n", " self.val_losses = [] # 검증 손실\n", " self.lr = learning_rate # 학습률\n", "\n", " def forpass(self, x):\n", " self.h = [np.zeros((x.shape[0], self.n_cells))] # 은닉 상태를 초기화합니다.\n", " # 배치 차원과 타임 스텝 차원을 바꿉니다.\n", " seq = np.swapaxes(x, 0, 1)\n", " # 순환 층의 선형 식을 계산합니다.\n", " for x in seq:\n", " z1 = np.dot(x, self.w1x) + np.dot(self.h[-1], self.w1h) + self.b1\n", " h = np.tanh(z1) # 활성화 함수를 적용합니다.\n", " self.h.append(h) # 역전파를 위해 은닉 상태 저장합니다.\n", " z2 = np.dot(h, self.w2) + self.b2 # 출력층의 선형 식을 계산합니다.\n", " return z2\n", "\n", " def backprop(self, x, err):\n", " m = len(x) # 샘플 개수\n", " \n", " # 출력층의 가중치와 절편에 대한 그래디언트를 계산합니다.\n", " w2_grad = np.dot(self.h[-1].T, err) / m\n", " b2_grad = np.sum(err) / m\n", " # 배치 차원과 타임 스텝 차원을 바꿉니다.\n", " seq = np.swapaxes(x, 0, 1)\n", " \n", " w1h_grad = w1x_grad = b1_grad = 0\n", " # 셀 직전까지 그래디언트를 계산합니다.\n", " err_to_cell = np.dot(err, self.w2.T) * (1 - self.h[-1] ** 2)\n", " # 모든 타임 스텝을 거슬러가면서 그래디언트를 전파합니다.\n", " for x, h in zip(seq[::-1][:10], self.h[:-1][::-1][:10]):\n", " w1h_grad += np.dot(h.T, err_to_cell)\n", " w1x_grad += np.dot(x.T, err_to_cell)\n", " b1_grad += np.sum(err_to_cell, axis=0)\n", " # 이전 타임 스텝의 셀 직전까지 그래디언트를 계산합니다.\n", " err_to_cell = np.dot(err_to_cell, self.w1h) * (1 - h ** 2)\n", " \n", " w1h_grad /= m\n", " w1x_grad /= m\n", " b1_grad /= m\n", " \n", " return w1h_grad, w1x_grad, b1_grad, w2_grad, b2_grad\n", " \n", " def sigmoid(self, z):\n", " z = np.clip(z, -100, None) # 안전한 np.exp() 계산을 위해\n", " a = 1 / (1 + np.exp(-z)) # 시그모이드 계산\n", " return a\n", " \n", " def init_weights(self, n_features, n_classes):\n", " orth_init = tf.initializers.Orthogonal()\n", " glorot_init = tf.initializers.GlorotUniform()\n", " \n", " self.w1h = orth_init((self.n_cells, self.n_cells)).numpy() # (셀 개수, 셀 개수)\n", " self.w1x = glorot_init((n_features, self.n_cells)).numpy() # (특성 개수, 셀 개수)\n", " self.b1 = np.zeros(self.n_cells) # 은닉층의 크기\n", " self.w2 = glorot_init((self.n_cells, n_classes)).numpy() # (셀 개수, 클래스 개수)\n", " self.b2 = np.zeros(n_classes)\n", " \n", " def fit(self, x, y, epochs=100, x_val=None, y_val=None):\n", " y = y.reshape(-1, 1)\n", " y_val = y_val.reshape(-1, 1)\n", " np.random.seed(42)\n", " self.init_weights(x.shape[2], y.shape[1]) # 은닉층과 출력층의 가중치를 초기화합니다.\n", " # epochs만큼 반복합니다.\n", " for i in range(epochs):\n", " print('에포크', i, end=' ')\n", " # 제너레이터 함수에서 반환한 미니배치를 순환합니다.\n", " batch_losses = []\n", " for x_batch, y_batch in self.gen_batch(x, y):\n", " print('.', end='')\n", " a = self.training(x_batch, y_batch)\n", " # 안전한 로그 계산을 위해 클리핑합니다.\n", " a = np.clip(a, 1e-10, 1-1e-10)\n", " # 로그 손실과 규제 손실을 더하여 리스트에 추가합니다.\n", " loss = np.mean(-(y_batch*np.log(a) + (1-y_batch)*np.log(1-a)))\n", " batch_losses.append(loss)\n", " print()\n", " self.losses.append(np.mean(batch_losses))\n", " # 검증 세트에 대한 손실을 계산합니다.\n", " self.update_val_loss(x_val, y_val)\n", "\n", " # 미니배치 제너레이터 함수\n", " def gen_batch(self, x, y):\n", " length = len(x)\n", " bins = length // self.batch_size # 미니배치 횟수\n", " if length % self.batch_size:\n", " bins += 1 # 나누어 떨어지지 않을 때\n", " indexes = np.random.permutation(np.arange(len(x))) # 인덱스를 섞습니다.\n", " x = x[indexes]\n", " y = y[indexes]\n", " for i in range(bins):\n", " start = self.batch_size * i\n", " end = self.batch_size * (i + 1)\n", " yield x[start:end], y[start:end] # batch_size만큼 슬라이싱하여 반환합니다.\n", " \n", " def training(self, x, y):\n", " m = len(x) # 샘플 개수를 저장합니다.\n", " z = self.forpass(x) # 정방향 계산을 수행합니다.\n", " a = self.sigmoid(z) # 활성화 함수를 적용합니다.\n", " err = -(y - a) # 오차를 계산합니다.\n", " # 오차를 역전파하여 그래디언트를 계산합니다.\n", " w1h_grad, w1x_grad, b1_grad, w2_grad, b2_grad = self.backprop(x, err)\n", " # 셀의 가중치와 절편을 업데이트합니다.\n", " self.w1h -= self.lr * w1h_grad\n", " self.w1x -= self.lr * w1x_grad\n", " self.b1 -= self.lr * b1_grad\n", " # 출력층의 가중치와 절편을 업데이트합니다.\n", " self.w2 -= self.lr * w2_grad\n", " self.b2 -= self.lr * b2_grad\n", " return a\n", " \n", " def predict(self, x):\n", " z = self.forpass(x) # 정방향 계산을 수행합니다.\n", " return z > 0 # 스텝 함수를 적용합니다.\n", " \n", " def score(self, x, y):\n", " # 예측과 타깃 열 벡터를 비교하여 True의 비율을 반환합니다.\n", " return np.mean(self.predict(x) == y.reshape(-1, 1))\n", "\n", " def update_val_loss(self, x_val, y_val):\n", " z = self.forpass(x_val) # 정방향 계산을 수행합니다.\n", " a = self.sigmoid(z) # 활성화 함수를 적용합니다.\n", " a = np.clip(a, 1e-10, 1-1e-10) # 출력 값을 클리핑합니다.\n", " val_loss = np.mean(-(y_val*np.log(a) + (1-y_val)*np.log(1-a)))\n", " self.val_losses.append(val_loss)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "vvwaZZgY-i9y", "outputId": "06110bc7-7a5c-4aa9-d172-11f3bd4fe4e1", "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "에포크 0 .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................\n", "에포크 1 .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................\n", "에포크 2 .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................\n", "에포크 3 .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................\n", "에포크 4 .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................\n", "에포크 5 .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................\n", "에포크 6 .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................\n", "에포크 7 .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................\n", "에포크 8 .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................\n", "에포크 9 .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................\n", "에포크 10 .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................\n", "에포크 11 .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................\n", "에포크 12 .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................\n", "에포크 13 .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................\n", "에포크 14 .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................\n", "에포크 15 .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................\n", "에포크 16 .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................\n", "에포크 17 .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................\n", "에포크 18 .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................\n", "에포크 19 .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................\n" ] } ], "source": [ "rn = RecurrentNetwork(n_cells=32, batch_size=32, learning_rate=0.01)\n", "\n", "rn.fit(x_train_onehot, y_train, epochs=20, x_val=x_val_onehot, y_val=y_val)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "id": "SQ9BG1Le-i9y" }, "outputs": [], "source": [ "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 265 }, "id": "vSZHIi54-i9y", "outputId": "16c3f8e8-c8d7-41a7-a072-e92cf8734723" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light", "tags": [] }, "output_type": "display_data" } ], "source": [ "plt.plot(rn.losses)\n", "plt.plot(rn.val_losses)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "BcT_xsDg-i9y", "outputId": "3e8a4d1e-3995-4517-aebc-755eb050b045", "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "0.6816" ] }, "execution_count": 22, "metadata": { "tags": [] }, "output_type": "execute_result" } ], "source": [ "rn.score(x_val_onehot, y_val)" ] }, { "cell_type": "markdown", "metadata": { "id": "HnI5Gb0F-i9y" }, "source": [ "## 09-3 텐서플로로 순환 신경망을 만듭니다" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "id": "s6l_eILT-i9z" }, "outputs": [], "source": [ "from tensorflow.keras.models import Sequential\n", "from tensorflow.keras.layers import Dense, SimpleRNN" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "GymVpzWL-i9z", "outputId": "0f41021f-38e6-4b59-c279-c27cbf34d398" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"sequential\"\n", "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "simple_rnn (SimpleRNN) (None, 32) 4256 \n", "_________________________________________________________________\n", "dense (Dense) (None, 1) 33 \n", "=================================================================\n", "Total params: 4,289\n", "Trainable params: 4,289\n", "Non-trainable params: 0\n", "_________________________________________________________________\n" ] } ], "source": [ "model = Sequential()\n", "\n", "model.add(SimpleRNN(32, input_shape=(100, 100)))\n", "model.add(Dense(1, activation='sigmoid'))\n", "\n", "model.summary()" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "lJ4B6S7h-i9z", "outputId": "6ca0c342-326c-4a55-fed5-36211acd8bff" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/20\n", "625/625 [==============================] - 43s 64ms/step - loss: 0.6996 - accuracy: 0.5222 - val_loss: 0.6971 - val_accuracy: 0.5308\n", "Epoch 2/20\n", "625/625 [==============================] - 39s 63ms/step - loss: 0.6868 - accuracy: 0.5508 - val_loss: 0.6801 - val_accuracy: 0.5710\n", "Epoch 3/20\n", "625/625 [==============================] - 38s 62ms/step - loss: 0.6699 - accuracy: 0.5913 - val_loss: 0.6643 - val_accuracy: 0.6034\n", "Epoch 4/20\n", "625/625 [==============================] - 38s 61ms/step - loss: 0.6506 - accuracy: 0.6248 - val_loss: 0.6474 - val_accuracy: 0.6338\n", "Epoch 5/20\n", "625/625 [==============================] - 38s 61ms/step - loss: 0.6348 - accuracy: 0.6483 - val_loss: 0.6165 - val_accuracy: 0.6604\n", "Epoch 6/20\n", "625/625 [==============================] - 38s 62ms/step - loss: 0.6159 - accuracy: 0.6679 - val_loss: 0.6430 - val_accuracy: 0.6274\n", "Epoch 7/20\n", "625/625 [==============================] - 38s 61ms/step - loss: 0.6072 - accuracy: 0.6737 - val_loss: 0.6151 - val_accuracy: 0.6564\n", "Epoch 8/20\n", "625/625 [==============================] - 38s 61ms/step - loss: 0.5986 - accuracy: 0.6808 - val_loss: 0.6088 - val_accuracy: 0.6750\n", "Epoch 9/20\n", "625/625 [==============================] - 38s 61ms/step - loss: 0.5936 - accuracy: 0.6875 - val_loss: 0.6133 - val_accuracy: 0.6696\n", "Epoch 10/20\n", "625/625 [==============================] - 38s 61ms/step - loss: 0.5864 - accuracy: 0.6896 - val_loss: 0.5766 - val_accuracy: 0.6986\n", "Epoch 11/20\n", "625/625 [==============================] - 38s 61ms/step - loss: 0.5841 - accuracy: 0.6949 - val_loss: 0.5897 - val_accuracy: 0.6816\n", "Epoch 12/20\n", "625/625 [==============================] - 38s 61ms/step - loss: 0.5825 - accuracy: 0.6995 - val_loss: 0.5783 - val_accuracy: 0.6938\n", "Epoch 13/20\n", "625/625 [==============================] - 39s 62ms/step - loss: 0.5791 - accuracy: 0.6959 - val_loss: 0.6111 - val_accuracy: 0.6768\n", "Epoch 14/20\n", "625/625 [==============================] - 39s 62ms/step - loss: 0.5747 - accuracy: 0.7049 - val_loss: 0.5924 - val_accuracy: 0.6784\n", "Epoch 15/20\n", "625/625 [==============================] - 39s 62ms/step - loss: 0.5729 - accuracy: 0.7022 - val_loss: 0.5752 - val_accuracy: 0.7002\n", "Epoch 16/20\n", "625/625 [==============================] - 38s 62ms/step - loss: 0.5730 - accuracy: 0.7020 - val_loss: 0.5960 - val_accuracy: 0.6820\n", "Epoch 17/20\n", "625/625 [==============================] - 39s 62ms/step - loss: 0.5691 - accuracy: 0.7064 - val_loss: 0.6028 - val_accuracy: 0.6802\n", "Epoch 18/20\n", "625/625 [==============================] - 38s 61ms/step - loss: 0.5669 - accuracy: 0.7104 - val_loss: 0.5710 - val_accuracy: 0.7032\n", "Epoch 19/20\n", "625/625 [==============================] - 38s 61ms/step - loss: 0.5680 - accuracy: 0.7064 - val_loss: 0.5786 - val_accuracy: 0.6946\n", "Epoch 20/20\n", "625/625 [==============================] - 38s 61ms/step - loss: 0.5631 - accuracy: 0.7114 - val_loss: 0.5721 - val_accuracy: 0.6998\n" ] } ], "source": [ "model.compile(optimizer='sgd', loss='binary_crossentropy', metrics=['accuracy'])\n", "\n", "history = model.fit(x_train_onehot, y_train, epochs=20, batch_size=32, \n", " validation_data=(x_val_onehot, y_val))" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 265 }, "id": "P9JbIT0a-i9z", "outputId": "ab7b1baf-5cd3-49fe-c076-ca6f2f7ebbdf" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light", "tags": [] }, "output_type": "display_data" } ], "source": [ "plt.plot(history.history['loss'])\n", "plt.plot(history.history['val_loss'])\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 265 }, "id": "Ygpe5dJb-i9z", "outputId": "c3452118-007e-4891-dd1b-67e445ae1f8c", "scrolled": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light", "tags": [] }, "output_type": "display_data" } ], "source": [ "plt.plot(history.history['accuracy'])\n", "plt.plot(history.history['val_accuracy'])\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "B5tdYrHI-i9z", "outputId": "888c2ade-f5a4-4a06-d8f1-1c04c28c331d", "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.6998000144958496\n" ] } ], "source": [ "loss, accuracy = model.evaluate(x_val_onehot, y_val, verbose=0)\n", "print(accuracy)" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "id": "fuRof-82-i9z" }, "outputs": [], "source": [ "from tensorflow.keras.layers import Embedding" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "id": "cLIPDxtF-i90" }, "outputs": [], "source": [ "(x_train_all, y_train_all), (x_test, y_test) = imdb.load_data(skip_top=20, num_words=1000)\n", "\n", "for i in range(len(x_train_all)):\n", " x_train_all[i] = [w for w in x_train_all[i] if w > 2]\n", " \n", "x_train = x_train_all[random_index[:20000]]\n", "y_train = y_train_all[random_index[:20000]]\n", "x_val = x_train_all[random_index[20000:]]\n", "y_val = y_train_all[random_index[20000:]]" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "id": "UtFZeN3s-i90" }, "outputs": [], "source": [ "maxlen=100\n", "x_train_seq = sequence.pad_sequences(x_train, maxlen=maxlen)\n", "x_val_seq = sequence.pad_sequences(x_val, maxlen=maxlen)" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "RpikvyLJ-i90", "outputId": "1d7fab7d-be26-4392-b8ab-4f1ea04a33dc", "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"sequential_1\"\n", "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "embedding (Embedding) (None, None, 32) 32000 \n", "_________________________________________________________________\n", "simple_rnn_1 (SimpleRNN) (None, 8) 328 \n", "_________________________________________________________________\n", "dense_1 (Dense) (None, 1) 9 \n", "=================================================================\n", "Total params: 32,337\n", "Trainable params: 32,337\n", "Non-trainable params: 0\n", "_________________________________________________________________\n" ] } ], "source": [ "model_ebd = Sequential()\n", "\n", "model_ebd.add(Embedding(1000, 32))\n", "model_ebd.add(SimpleRNN(8))\n", "model_ebd.add(Dense(1, activation='sigmoid'))\n", "\n", "model_ebd.summary()" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "MkxR6a5X-i90", "outputId": "f286ddc5-1782-43b1-ead6-2558fafc012f", "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/10\n", "625/625 [==============================] - 61s 95ms/step - loss: 0.5373 - accuracy: 0.7305 - val_loss: 0.4704 - val_accuracy: 0.7860\n", "Epoch 2/10\n", "625/625 [==============================] - 58s 93ms/step - loss: 0.4016 - accuracy: 0.8282 - val_loss: 0.4096 - val_accuracy: 0.8234\n", "Epoch 3/10\n", "625/625 [==============================] - 58s 93ms/step - loss: 0.3492 - accuracy: 0.8560 - val_loss: 0.3966 - val_accuracy: 0.8322\n", "Epoch 4/10\n", "625/625 [==============================] - 58s 92ms/step - loss: 0.3245 - accuracy: 0.8676 - val_loss: 0.4025 - val_accuracy: 0.8290\n", "Epoch 5/10\n", "625/625 [==============================] - 58s 93ms/step - loss: 0.3012 - accuracy: 0.8783 - val_loss: 0.4075 - val_accuracy: 0.8208\n", "Epoch 6/10\n", "625/625 [==============================] - 58s 92ms/step - loss: 0.2806 - accuracy: 0.8874 - val_loss: 0.4429 - val_accuracy: 0.8240\n", "Epoch 7/10\n", "625/625 [==============================] - 57s 92ms/step - loss: 0.2685 - accuracy: 0.8913 - val_loss: 0.4307 - val_accuracy: 0.8166\n", "Epoch 8/10\n", "625/625 [==============================] - 57s 92ms/step - loss: 0.2562 - accuracy: 0.8992 - val_loss: 0.4336 - val_accuracy: 0.8266\n", "Epoch 9/10\n", "625/625 [==============================] - 58s 92ms/step - loss: 0.2397 - accuracy: 0.9056 - val_loss: 0.4497 - val_accuracy: 0.8070\n", "Epoch 10/10\n", "625/625 [==============================] - 56s 90ms/step - loss: 0.2461 - accuracy: 0.9032 - val_loss: 0.4627 - val_accuracy: 0.8222\n" ] } ], "source": [ "model_ebd.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])\n", "\n", "history = model_ebd.fit(x_train_seq, y_train, epochs=10, batch_size=32, \n", " validation_data=(x_val_seq, y_val))" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 268 }, "id": "InKiA_9L-i90", "outputId": "99096b90-119a-4e02-a3c2-2eb52d7cdaaa" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light", "tags": [] }, "output_type": "display_data" } ], "source": [ "plt.plot(history.history['loss'])\n", "plt.plot(history.history['val_loss'])\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 265 }, "id": "IQakah7b-i90", "outputId": "d693e23b-e500-4f95-8bb4-1891fe693a0b", "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light", "tags": [] }, "output_type": "display_data" } ], "source": [ "plt.plot(history.history['accuracy'])\n", "plt.plot(history.history['val_accuracy'])\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "duoWIPWg-i90", "outputId": "0e630de9-5b34-4a94-b46b-7bf7ca116d45", "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.8222000002861023\n" ] } ], "source": [ "loss, accuracy = model_ebd.evaluate(x_val_seq, y_val, verbose=0)\n", "print(accuracy)" ] }, { "cell_type": "markdown", "metadata": { "id": "yRDb5Pzw-i91" }, "source": [ "## 09-4 LSTM 순환 신경망으로 텍스트를 분류합니다" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "id": "5YwrVAbu-i91" }, "outputs": [], "source": [ "from tensorflow.keras.layers import LSTM" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "tWIahIdr-i91", "outputId": "1791320d-5c37-4399-9119-e624e2c7e4ef" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"sequential_2\"\n", "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "embedding_1 (Embedding) (None, None, 32) 32000 \n", "_________________________________________________________________\n", "lstm (LSTM) (None, 8) 1312 \n", "_________________________________________________________________\n", "dense_2 (Dense) (None, 1) 9 \n", "=================================================================\n", "Total params: 33,321\n", "Trainable params: 33,321\n", "Non-trainable params: 0\n", "_________________________________________________________________\n" ] } ], "source": [ "model_lstm = Sequential()\n", "\n", "model_lstm.add(Embedding(1000, 32))\n", "model_lstm.add(LSTM(8))\n", "model_lstm.add(Dense(1, activation='sigmoid'))\n", "\n", "model_lstm.summary()" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "nXPEIoK0-i91", "outputId": "5804c736-3fbf-46c0-93ef-ca2e591cebe7", "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/10\n", "625/625 [==============================] - 19s 24ms/step - loss: 0.4649 - accuracy: 0.7789 - val_loss: 0.3846 - val_accuracy: 0.8302\n", "Epoch 2/10\n", "625/625 [==============================] - 14s 23ms/step - loss: 0.3422 - accuracy: 0.8553 - val_loss: 0.3633 - val_accuracy: 0.8410\n", "Epoch 3/10\n", "625/625 [==============================] - 14s 23ms/step - loss: 0.3174 - accuracy: 0.8649 - val_loss: 0.3667 - val_accuracy: 0.8438\n", "Epoch 4/10\n", "625/625 [==============================] - 14s 23ms/step - loss: 0.2994 - accuracy: 0.8744 - val_loss: 0.3676 - val_accuracy: 0.8362\n", "Epoch 5/10\n", "625/625 [==============================] - 15s 23ms/step - loss: 0.2858 - accuracy: 0.8778 - val_loss: 0.3697 - val_accuracy: 0.8416\n", "Epoch 6/10\n", "625/625 [==============================] - 15s 23ms/step - loss: 0.2717 - accuracy: 0.8858 - val_loss: 0.4014 - val_accuracy: 0.8434\n", "Epoch 7/10\n", "625/625 [==============================] - 14s 23ms/step - loss: 0.2584 - accuracy: 0.8924 - val_loss: 0.3867 - val_accuracy: 0.8402\n", "Epoch 8/10\n", "625/625 [==============================] - 14s 23ms/step - loss: 0.2463 - accuracy: 0.8967 - val_loss: 0.3921 - val_accuracy: 0.8356\n", "Epoch 9/10\n", "625/625 [==============================] - 14s 23ms/step - loss: 0.2337 - accuracy: 0.9011 - val_loss: 0.4145 - val_accuracy: 0.8392\n", "Epoch 10/10\n", "625/625 [==============================] - 14s 23ms/step - loss: 0.2232 - accuracy: 0.9099 - val_loss: 0.4468 - val_accuracy: 0.8372\n" ] } ], "source": [ "model_lstm.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])\n", "\n", "history = model_lstm.fit(x_train_seq, y_train, epochs=10, batch_size=32, \n", " validation_data=(x_val_seq, y_val))" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 265 }, "id": "eWY0F36b-i91", "outputId": "d7494b7f-2049-4b89-95eb-8d32ff25b2bc" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light", "tags": [] }, "output_type": "display_data" } ], "source": [ "plt.plot(history.history['loss'])\n", "plt.plot(history.history['val_loss'])\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 265 }, "id": "kTtN2yJ3-i91", "outputId": "34500d77-3753-4ddd-c74f-0d774c7bb162", "scrolled": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light", "tags": [] }, "output_type": "display_data" } ], "source": [ "plt.plot(history.history['accuracy'])\n", "plt.plot(history.history['val_accuracy'])\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "ey31ydRE-i91", "outputId": "412a1497-e166-493a-f9ad-407f6ae09f7f", "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.8371999859809875\n" ] } ], "source": [ "loss, accuracy = model_lstm.evaluate(x_val_seq, y_val, verbose=0)\n", "print(accuracy)" ] } ], "metadata": { "accelerator": "GPU", "colab": { "name": "Ch09.ipynb", "provenance": [] }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 1 }