[aivle school]RNN 기초

서정윤·2022년 10월 6일
0

에이블스쿨

목록 보기
11/12
post-thumbnail

RNN,,, 전에 배우고 다 잊고있었는데 간만에 수업들으면서 다시 복습했다!

RNN이란?

RNN이란 Recurrent Neural Network로 순환 신경망이라는 뜻이다
기존 feed forward모델은 시계열 데이터를 잘 다룰 수 없다.
즉, 시계열 데이터의 패턴을 파악할 수 없다는 얘기다

RNN에서는 위 문제를 순환구조를 통해 해결한다.
hidden node가 방향을 가진 edge로 연결되어 순환구조를 이루고있다.

RNN은 음성, 텍스트 등 순차적으로 등장하는 데이터 처리에 적합하다

RNN 활용방안

Image/Video Captioning, Sentiment Classification, Machine Translation, POS Tagging, Language Modeling, Image/Music generation, Conversation Modeling, Speecg Recognition 등

RNN 구조


RNN은 위의 그림처럼 이전 노드의 output값을 사용해 과거 정보를 기억하고, 새로운 input x를 통해 업데이트를 진행한다.

input값으로 이전 노드의 결과값, x 두 가지가 들어오는데
이 두가지에 각각 다른 가중치를 곱하여 활성화 함수 tanh를 적용한 값이 이 노드의 output이 된다


RNN은 텍스트 데이터의 긍부정 평가 등 분류 문제에 활용될 수 있다


hidden layer의 계산 수식은 다음과 같다.
새로운 입력 Xt는 단어벡터고, d는 단어벡터의 차원을 나타낸다.
Dh는 hidden state의 크기이다

tanh


하이퍼볼릭 탄젠트 함수는 시그모이드와 달리 출력값이 (-1, 1)사이다.
임의의 실수 입력값을 절대값 1 미만으로 변환하여 값의 범위를 제한하는 블로킹 효과가 있다.

시그모이드 함수보다 출력값의 범위가 넓기 때문에 변화폭이 커서 기울기 소멸(Graidient Vanishing)현상이 더 적게 일어나고 빠르게 수렴한다

POS Tagging


Pos Tagging 이란 문장이 주어졌을 때 각 단어의 품사를 예측하는것이다.
같은 단어라도 문장 내 순서에 따라 품사가 달라질 수 있기 때문에 단어간의 순서 가 중요하다

위 그림은 문장의 품사를 예측하는 모델이다.
문장을 끊어서 RNN모델의 output이 softmax함수를 통해 각 품사별 확률값을 도출한다

위의 모델을 일반화시킨 그림이다
target이 예측 대상, pred가 예측값인데 이 둘의 오차를 줄이는 방향으로 학습을 진행여 최적의 Whh , Wxh , b값을 찾는다
각 단어가 hidden state의 input으로 들어가고, 이전 hidden node에서 넘어온 가중치와 input을 h로 만드는 가중치를 모두 고려한다.
이전 hidden node의 output*가중치hh + 새로운 input x*가중치xh + b
값을 계산하여 tanh 함수를 거친 output을 softmax함수를 거쳐 각 품사의 확률값을 예측한다.

Sentiment Classification

RNN을 감성분석에 적용할 경우, 각 x값에 문장을 구성하는 단어가 주어지고, 이전의 정보를 기억하고 있는 마지막 hidden node의 output 값을 통해 긍부정의 확률값을 계산한다.

RNN의 한계

RNN은 위 그림처럼 back propagation을 통해 가중치와 bias값을 변경하며 오차를 최소화하는 방식으로 학습한다.
오차 역전파를 적용하는 동안 깊이가 너무 깊어지면 계속 미분을 하기 때문에 기울기가 0에 가까워지는 문제가 발행한다. (Vanishing Gradient Problem)

0개의 댓글