딥러닝 5

텍스트 전처리와 RNN을 활용한 스팸 메일 분류

안녕하세요! 오늘은 순환 신경망인 RNN을 활용하여 스팸 메일을 분류해보겠습니다. RNN 포스팅에서 알아봤듯이 스팸 메일 분류는 다 대 일 모델입니다. 단어 시퀀스를 입력받아 정상 메일인지 아닌지를 출력하는 것입니다. 데이터셋은 캐글의 "SMS Spam Collection Dataset"을 활용했습니다. https://www.kaggle.com/uciml/sms-spam-collection-dataset 순서 1. 데이터 파악 2. 데이터 전처리 3. RNN 모델 학습/예측/평가 1. 데이터 파악 #필요한 모듈 및 라이브러리 설치 import numpy as np import pandas as pd %matplotlib inline import matplotlib.pyplot as plt import u..

딥러닝 2021.08.24

LSTM(Long Short-Term Memory)과 GRU(Gate Recurrent Unit)

안녕하세요! 오늘은 바닐라 RNN의 장기 의존성 문제를 보완한 RNN 모델인 LSTM과 GRU에 대해 알아보겠습니다. 1. LSTM 1-1. 삭제 게이트 1-2. 입력 게이트 1-3. 셀 상태 (장기 상태) 1-4. 출력 게이트와 은닉 상태 (단기 상태) 2. GRU 1. LSTM LSTM은 은닉층의 메모리 셀에 삭제 게이트, 입력 게이트, 출력 게이트를 추가하여 필요하지 않은 기억은 지우고, 기억해야 할 정보를 저장합니다. LSTM은 바닐라 RNN에 비해 은닉 상태를 계산하는 식이 더 복잡해졌으며 셀 상태라는 값을 추가했습니다. 아래의 그림에서 t시점의 셀 상태를 C(t)로 표현하고 있습니다. LSTM은 RNN과 비교하여 긴 시퀀스의 입력을 처리하는데 뛰어납니다. LSTM의 전체적인 흐름은 다음과 같습..

딥러닝 2021.08.21

딥 러닝의 가장 기본적인 시퀀스 모델 RNN (Recurrent Neural Network)

안녕하세요! 오늘은 자연어 처리에서 많이 쓰이는 딥 러닝의 가장 기본적인 시퀀스 모델인 RNN에 대해 알아보겠습니다. 1. RNN이란? 2. RNN의 학습 3. 바닐라 RNN의 한계 1. RNN이란? RNN이란 Recurrent Neural Network의 약자로, 순환 신경망을 뜻합니다. RNN은 입력과 출력을 시퀀스 단위로 처리합니다. 시퀀스란 문장 같은 단어가 나열된 것을 뜻합니다. 이러한 시퀀스들을 처리하기 위해 고안된 모델을 시퀀스 모델이라 하며, 그중에서 RNN은 딥 러닝의 가장 기본적인 시퀀스 모델입니다. RNN의 은닉층에서 활성화 함수를 통해 결과를 내보내는 역할을 하는 노드를 셀이라고 합니다. 이 셀은 이전의 값을 기억하려고 하는 일종의 메모리 역할을 수해하므로 메모리 셀이라고 부릅니다...

딥러닝 2021.08.19

영상과 이미지 인식 분야에 탁월한 CNN (Convolutional Neural Network)

안녕하세요! 오늘은 딥러닝의 합성곱 신경망인 CNN에 대해서 알아보겠습니다. 1. CNN이란? 2. 합성곱 층 (Convolutional Layer) 3. 풀링 (pooling) 4. CNN의 전체 구조 및 과정 1. CNN이란? CNN이란 Convolutional Neural Network의 약자로, 기존의 Deep Neural Network에서 이미지나 영상과 같은 데이터를 처리할 때 생기는 문제점들을 보완한 방법입니다. 기존의 DNN은 고해상도의 이미지를 처리할 때 입력 뉴런의 수가 급격하게 증가하게 되고 파라미터의 수도 급격하게 늘어납니다. 그림을 보면 16x16 이미지를 기존의 DNN으로 학습할 경우 28326개의 파라미터를 학습해야 합니다. 또한, DNN의 경우 기본적으로 1차원 형태의 입력 ..

딥러닝 2021.08.16

기울기 소실과 폭주 (Gradient Vanishing & Exploding)

안녕하세요! 오늘은 기울기 소실과 폭주 문제에 대해 알아보겠습니다. 1. 기울기 소실과 폭주의 문제점과 발생 이유 2. 기울기 소실과 폭주를 완화하는 방법 2-1. 수렴하지 않는 활성화 함수 사용 2-2. 그래디언트 클리핑 (Gradient Clipping) 2-3. 가중치 초기화 2-4. 배치 정규화 1. 기울기 소실과 폭주의 문제점과 발생 이유 깊은 인공 신경망을 학습하다 보면 역전파 과정에서 초기 부분의 입력층으로 갈수록 기울기가 점차적으로 작아지는 현상이 발생할 수 있습니다. 이를 기울기 소실이라고 합니다. 반대의 경우로, 기울기가 점차 커지면서 가중치들이 비정상적으로 크게 업데이트 되기도 합니다. 이를 기울기 폭주라고 합니다. 이렇게 말로만 보면 잘 이해가 되지 않으니 그림을 보며 자세하게 알아..

딥러닝 2021.08.12