본문 바로가기

반응형

딥러닝

(31)
RNN-딥러닝을 이용한 문서 분류 (1) 10.1 왜 RNN일까? 10.1.1 RNN의 이해 RNN(Recurrent Neural NEtworks): 순환 신경망, 시계열 데이터를 다루기 위한 모형 시계열 데이터: 어떤 변수의 값이 시간에 따라 변화하는 것 시계열 모형에서는 입력으로 일정 기간의 연속된 값을 사용 10.1.2 RNN이 문서 분류에 적합한 이유 사람이 문맥을 이해하는 것이 순차적으로 들으면서 이해하는 형태 RNN은 앞에서부터 순차적으로 미치는 영향을 계속 축적하는 모형임 RNN은 구조상 문맥을 파악하기에 좋은 모형 RNN은 딥러닝의 대표적인 문제인 경사소실 문제가 심각 개념적으로 보았을 때 RNN은 문맥의 파악을 잘 반영하며 텍스트 마이닝에 딥러닝을 적용하는 의미 깊은 출발점이 됨 10.1.3 RNN의 문서 분류 적용방향 각 단어..
인공신경망과 딥러닝의 이해 9.1 인공신경망의 이해 9.1.1 인공신경망의 구조와 구성요소 인공신경망은 인간의 뇌를 본따서 ㅁ나들어짐 뇌의 뉴런들은 수상돌기를 통해 다른 뉴런들로부터 입력신호를 받아들이고 변환과정을 수행한 후에 축삭돌기를 이용해 다른 뉴런에 전달 인공신경망에서는 노드가 뉴런과 같은 역할을 함 여러 노드에서 값을 받아 가중합을 계산하고 활성화 함수를 적용해서 값을 변환한 후 다음 노드로 전달 9.1.2 인공신경망에서의 학습 학습: 주어진 학습 데이터를 이용해 올바른 가중치를 찾아가는, 조정하는 과정 인공신경망은 입력값들에 대해 목표 출력값 혹은 실제 출력값을 매칭시킨 학습자료를 이용해서, 주어진 입력값에 대해 매칭되는 출력값을 예측할 수 있도록 가중치를 조정하는 지도학습 사용 9.1.3 손실함수의 이해 손실 함수: ..
딥러닝 (3) 8-8 합성곱 신경망(CNN: Convolution Neural Network) 딥러닝 모델 중 가장 기본이 되는 다층 퍼셉트론 모델로 이미지의 인식, 예측 등에 활용 영상 인식 분야에서 가장 많이 사용 합성곱 신경망의 특징 여러개의 완전 연결 계층과 활성화 함수를 사용하는 대신, 합성곱 계층(Convolution Layer)과 풀링 계층(Pooling Layer)을 활성화 함수의 앞과 뒤에 배치하는 형태 이미지 배열 표현의 문제점 이미지 데이터를 1차원의 데이터로 펼쳐 입력층에 넣어야 함 원데이터가 갖는 형상, 공간적 구조가 무시됨 모델의 이미지 인식 성능을 저하시키는 요인으로 이미지 데이터는 공간 구조를 고려하는 조작이 필요 합성곱 계층의 계산 원리 완전 연결 계층이 이미지 데이터가 갖는 공간적 구조..
딥러닝 (2) 8-4 제한 볼츠만 머신과 심층 신뢰 신경망 다층 퍼셉트로넹서 역전파 작업을 수행할 때 3개 층 이상이 되면 기울기 소실 문제(Vanishing Gradient Problem)가 발생해 입력값이 출력값에 영향을 미치지 못함 이는 모델 초기의 Weight에 대한 설정이 미숙하기 때문에 나타나는 문제 모델의 변숫값을 초기화하기 위한 방안으로 제한 볼츠만 머신(RBM: Restricted Boltzmann Machine) 제시 제한 볼츠만 머신은 2개 층으로 구성 제한 볼츠만 머신을 여러 층으로 쌓은 형태가 심층 볼츠만 머신 심층 신뢰 신경망(DBN: Deep Belief Network): 제한 볼츠만 머신을 이용한 다층화 8-5 오토인코더 입출력층의 뉴런 수가 동일하며, 1개의 숨어 있는 계층(Hidden ..
딥러닝 (1) 8-1 신경망의 개념 및 다층화 신경망 인간 두뇌의 생리적 활동을 모방하는 계산적 모델을 통해 인공지능을 구현하려는 시도 1943년 제안된 맥컬룩-피츠(McCulloch-Pitts)모델이 신경 세포의 과정을 수학적 모델로 만든 것 중 가장 널리 알려져 있음 맥컬룩-피츠 모델의 가설 인공 신경 세포는 활성화되거나 활성화되지 않은 2가지 상태를 가짐 어떤 인공 신경 세포를 작동하게 하려면 2개 이상의 고정된 수의 시냅스가 일정한 시간 내에 활성화되어야 함 신경 시스템 내에서 유일하게 의미 있는 시간 지연은 시냅스 지연 억제적인 시냅스는 그 시각의 뉴런 활성화를 절대적으로 방지 신경망의 구조는 시간에 따라 변하지 않음 퍼셉트론 1958년 프랭크 로젠블랏이 제안한 신경망 모델 인공 신경 세포의 구조를 확장해 네..
9장 텍스트 분류 - 순환신경망 (5) 9-4 LSTM 순환 신경망으로 텍스트 분류 - LSTM 타임 스텝이 멀리 떨어진 영단어 사이의 관계를 파악하기 위함 1997년 호크라이터와 슈미트후버가 고안한 것으로, 그레이디언트 소실(vanishing gradient) 문제를 극복하여 긴 시퀀스를 성공적으로 모델링하게 됨 셀의 구조 - 텐서플로로 LSTM 순환 신경망 만들기 1. LSTM 순환 신경망 만들기 from tensorflow.keras.layers import LSTM model_lstm = Sequential() model_lstm.add(Embedding(1000, 32)) model_lstm.add(LSTM(8)) model_lstm.add(Dense(1, activation='sigmoid')) model_lstm.summary()..
9장 텍스트 분류 - 순환신경망 (4) 9-3 텐서플로로 순환 신경망 만들기 - SimpleRNN 클래스로 순환 신경망 만들기 1. 순환 신경망에 필요한 클래스 임포트 from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, SimpleRNN 2. 모델 만들기 model = Sequential() model.add(SimpleRNN(32, input_shape=(100, 100))) model.add(Dense(1, activation='sigmoid')) model.summary() """ Model: "sequential" ________________________________________________________________..
9장 텍스트 분류 - 순환신경망 (3) - 순환 신경망 클래스 구현하기 1. init() 메서드 수정 import tensorflow as tf def __init__(self, n_cells=10, batch_size=32, learning_rate=0.1): self.n_cells = n_cells # 셀 개수 self.batch_size = batch_size # 배치 크기 self.w1h = None # 은닉 상태에 대한 가중치 self.w1x = None # 입력에 대한 가중치 self.b1 = None # 순환층의 절편 self.w2 = None # 출력층의 가중치 self.b2 = None # 출력층의 절편 self.h = None # 순환층의 활성화 출력 self.losses = [] # 훈련 손실 self.val_losses ..
9장 텍스트 분류 - 순환신경망 (2) 9-2 순환 신경망 만들고 텍스트 분류 - 훈련 세트와 검증 세트 준비 IMDB 데이터 세트(인터넷 영화 데이터베이스(Internet Movie Database)에서 수집한 영화 리뷰 데이터) 훈련 세트 25,000개, 테스트 세트 25,000개 (훈련 세트에서 5,000개 분리하여 검증 세트로 사용) 1. 텐서플로에서 IMDB 데이터 세트 불러오기 import numpy as np from tensorflow.keras.datasets import imdb (x_train_all, y_train_all), (x_test, y_test) = imdb.load_data(skip_top=20, num_words=100) ##출력 Downloading data from https://storage.google..
9장 텍스트 분류 - 순환신경망 (1) 9-1 순차 데이터와 순환 신경망 - 순차 데이터 시계열(time series) 데이터 : 일정 시간 간격으로 배치된 데이터 순차 데이터(sequential data) : 시계열 데이터와 같이 샘플에 순서가 있는 데이터 타임 스텝(time step) : 모델에서 순차 데이터를 처리하는 각 단계 완전 연결 신경망에 순차 데이터가 주입되는 모습 - 순환 신경망 뉴런의 출력이 순환되는 신경망 은닉층의 출력이 다시 은닉층의 입력으로 사용 됨 순환 신경망에서 층이나 뉴런을 셀(cell)이라고 함 각 뉴런마다 순환 구조를 표현하기 번거로워 셀 하나에 순환 구조 나타냄 순환 신경망에서는 셀의 출력을 은닉 상태(hidden state)라고 함 - 순환 신경망의 역방향 계산 가중치 W2에 대한 손실 함수의 도함수 구하기..

반응형