본문 바로가기

Lecture AI

(24)
1. 텍스트 데이터 다루기 시계열 또는 일반적인 시퀀스 데이터를 처리할 수 있는 딥러닝 모델을 살펴보겠습니다. 시퀀스 데이터를 처리하는 기본적인 딥러닝 모델은 순환 신경망(enn)과 1D 컨브넷(1D convnet) 두 가지입니다. 1. 테스트 데이터 다루기 텍스트는 가장 흔한 시퀀스 형태의 데이터입니다. 텍스트는 단어의 시퀀스나 문자의 시퀀스로 이해할 수 있습니다. 다른 모든 신경망과 마찬가지로 텍스트 원본을 입력으로 사용하지 못합니다. 딥러닝 모델은 수치형 텐서만 다룰 수 있습니다. 텍스트를 수치형 텐서로 변환하는 과정을 텍스트 벡터화라고 합니다. 다음과 같은 방법이 있습니다. 텍스트를 단어로 나누고 각 단어를 하나의 벡터를 변환합니다. 텍스트를 문자로 나누고 각 문자를 하나의 벡터로 변환합니다. 텍스트에서 단어나 문자의 n-..
4. 주택 가격 예측 : 신경망 회귀 문제 구현하기 보스턴 주택 가격 본 장에서는 연속적인 값을 예측하는 회귀에 대해 알아보겠습니다. 데이터 준비 상이한 스케일을 가진 값을 신경망에 주입하면 문제가 됩니다. 네트워크가 이런 다양한 데이터에 자동으로 맞추려고 할 수 있지만 이는 확실히 학습을더 어렵게 만듭니다. 이런 데이터를 다룰때 대표적인 방법은 특성별로 정규화를 하는 것입니다. 입력 데이터에 있는 각 특성에 대해서 특성의 평균을 빼고 표준 편차로 나눕니다. 특성의 중앙이 0근처에 맞추어지고 표준 편차가 1이 됩니다. from keras.datasets import boston_housing (train_data, train_targets), (test_data, test_targets) = boston_housing.load_data() mean = train_data...
3. 뉴스 기사 분류 : 다중 분류 문제 뉴스를 통해 상호 배타적인 토픽으로 분류하는 신경망을 만들어 보겠습니다. 클래스가 많기 때문에 이 문제는 다중 분류예 예입니다. 각 데이터 포인트가 정확히 하나의 범주로 분류되기 때문에 좀 더 정확히 말하면 단일 레이블 다중 분류문제입니다. 각 데이터 포인트가 여러 개의 범주에 속할 수 있다면 이것은 다중 레이블 다중 분류 문제가 됩니다. 전체적인 진행은 IMDB(https://nicola-ml.tistory.com/125?category=873773)와 유사합니다. #로이터 데이터셋 로드하기 from keras.datasets import reuters (train_data, train_labels), (test_data, test_labels) = reuters.load_data(num_words=1..
2. 신경망을 이용한 IMDB 영화 리뷰 분류: 이진 분류 예제 인터넷 영화 데이터베이스로부터 리뷰를 분류하는 내용에 대해 실습을 해보겠습니다. IMDB 데이터셋을 이용해 보겠습니다. 유사한 내용의 Posting은 아래와 같은니 참고바랍니다. RNN 실전실습 : 시퀀스 모델링을 위한 다층 RNN구현 : IMDB 영화리뷰 구현 다음은 다대일(Many-to-Once)구조로 감성 분석을 위한 다층 RNN을 구현해 보겠습니다. 1.데이터준비 import pyprind import pandas as pd from string import punctuation import re import numpy as np df = pd.r.. nicola-ml.tistory.com IMDB 데이터셋 로드하기 from keras.datasets import imdb (train_data, ..
1. 신경망의 구조에 대한 이해 신경망 훈련에는 아래의 요소들이 관련되어 있습니다. 네트워크(또는 모델)를 구성하는 층 입력 데이터와 그에 상응하는 타깃 학습에 사용할 피드백 신호를 정의하는 손실 함수 학습 진행 방식을 결정하는 옵티마이저 연속된 층으로 구성된 네트워크가 입력 데이터를 예측으로 매핑합니다. 손실 함수는 예측과 타깃을 비교하여 네트워크의 예측이 기댓값에 얼마나 잘 맞는지를 측정하는 손실 값을 만듭니다. 옵티마이저는 손실 값을 사용하여 네트워크 가중치를 업데이트합니다. 3.1.1 층: 딥러닝의 구성 단위 신경망의 핵심적인 데이터 구조는 층입니다. 층은 하나 이상의 텐서를 입력으로 받아 하나 이상의 텐서를 출력하는 데이터 처리 모듈입니다. 어떤 종류의 층은 상태가 없지만 대부분의 경우 가중치라는 층의 상태를 가집니다. 가중치..
3. 다중 입력 모델 / 다중 출력 모델 함수형 API는 다중 입력 모델을 만드는 데 사용할 수 있습니다. 일반적으로 이런 모델은 서로 다른 입력 가지를 합치기 위해 여러 텐서를 연결할 수 있는 층을 사용합니다. 텐서를 더하거나 이어 붙이는 식입니다. 관련한 keras함수는 keras.layers.add, keras.layers.concatenate 등입니다. 전형적인 질문-응답 모델은 2개의 입력을 가집니다. 하나는 자연어 질문이고, 또 하나는 답변에 필요한 정보가 담겨 있는 텍스트입니다. 그러면 모델은 답을 출력해야 합니다. 가장 간단한 구조는 미리 정의한 어휘 사전에서 소프트맥스 함수를 통해 한 단어로 된 답을 출력하는 것입니다. 1. 다중 입력 모델 1. 2개의 입력을 가진 질문-응답 모델의 함수형 API구현하기 from keras.mo..
2. 함수형 API 소개 함수형 API에서는 직접 텐서들의 입출력을 다룹니다. 간단한 내용으로 함수형 API의 절차를 보겠습니다. from keras.models import Sequential, Model from keras import layers from keras import Input input_tensor = Input(shape=(64,)) x = layers.Dense(32, activation='relu')(input_tensor) x = layers.Dense(32, activation='relu')(x) output_tensor = layers.Dense(10, activation='softmax')(x) model = Model(input_tensor, output_tensor) model.summary()..
1. Sequential 모델을 넘어서는 케라스의 함수형 API Sequential 모델은 네트워크 입력과 출력이 하나라고 가정합니다. 하지만 일부 네트워크는 개별 입력이 여러 개 필요하거나 출력이 여러 개 필요합니다. 층을 차례대로 쌓지 않고 층 사이를 연결하여 그래프처럼 만드는 네트워크도 있습니다. 만약 세 모델을 동시에 사용한다면 간단하게는 3개의 모델을 따로 훈련하고 각 예측을 가중 평균(weighted average)하는 것입니다. 각 모델에서 추출한 정보가 중복된다면 이 방식은 최적이 아닐 것입니다. 가능한 모든 종류의 입력 데이터를 동시에 사용해서 정확한 하나의 모델을 학습하는 것이 더 나은 방법입니다. 더불어 최근에 개발된 많은 신경망 구조는 선형적이지 않은 네트워크 토폴로지(topology)가 필요합니다. 비순환 유향 그래프 같은 네트워크 구조입니다...