일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 상호작용디자인
- 통계기반자연어처리
- HashMap
- 체험디자인
- R 워드클라우드
- 자언어처리모델
- selfattention
- deeplearning용어
- 마르코프 체인
- r word2vec
- 어탠션
- R 키워드 가중치
- StringBuffer vs StringBuilder
- 도날드노만
- deeplearning개념
- 딥러닝개념
- R에서의 wordcloud
- wordVector
- StringJoiner
- R dataframe
- R에서의 워드클라우드
- 딥러닝용어
- 언어모델
- 자연어처리
- RNN Attention
- self-attention
- word2vec
- R TF-IDF
- WordCloud R
- 마르코프
- Today
- Total
클로이의 데이터 여행기
비전공자가 이해한 'RNN' 본문
이번 포스팅에서는 'RNN'에 대해서 설명하고자 합니다.
RNN은 앞서 설명드린 '마코프체인' 모델을 인공신경망 구조로 변환한 것이라 볼 수 있는데요.
(※ 마코프 체인 관련 포스팅 : https://data-traveler.tistory.com/37 )
1. RNN이란?
- 순서성을 기반으로 다음값을 예측하는 인공신경망의 한 종류
- 시계열 데이터 분석에 적합하여, 자연어 처리에 널리 쓰임
: 다음 character, word, sentence를 예측
2. RNN 예시
그렇다면 RNN이 어떤 방식으로 순서를 학습하고, 또 다음을 예측하는지 살펴보겠습니다.
1) RNN 구조
① Input Layer : 현재의 값
② Hidden Layer : 다음을 예측하기 위해 이전 값의 특성을 담는 곳
③ Output Layer : 현재를 기반으로 예측된 다음의 값
2) RNN 목적
: 현재 단계의 input을 기준으로 다음 단계의 input을 잘 예측하는 것
(*현재 단계의 output과 다음단계의 intput이 일치할 때 학습이 잘 되었다고 판단할 수 있음)
아래의 [그림1]은 'APPLE'을 RNN을 통해 학습하는 과정입니다.
첫 번째 단계에서 input으로 'A'가 들어오면 output으로 'P'를 예측합니다.
두 번째 단계에서는 input으로 'P'가 들어오고 output으로 'P'를 예측하는데요. 이 때, 이전에 학습했던 input 'A'의 특성이 hidden layer에 담기게 됩니다.
세 번째 단계에서는 input으로 'P'가 들어오고 output으로 'L'를 예측하는데요. 이번에는 이전에 학습했던 'A'와 'P'의 특성이 hidden layer에 담기게 됩니다.
이렇게 Hidden Layer을 통해 순서성을 학습하게 되고, 최종적으로 RNN 네트워크의 아웃풋은 모든 character(A,P,P,L,E)가 고려된 'context vector'가 나오게 됩니다.
3. RNN 한계
- sequence가 길수록 의미가 희석
: 긴 sequence에 대한 정보함축 어려움
- 중요하지 않은 character, word, sentencer가 모두 학습에 영향
이상입니다.
이 포스팅은 Tacademy의 '자연어 언어모델 BERT'를 수강하고 작성되었습니다.
비전공자 관점에서 이해한 만큼만 작성되었으니 부족하더라도 너른 이해 부탁드립니다.
읽어주셔서 감사합니다'◡'
'자연어처리' 카테고리의 다른 글
비전공자가 이해한 'Attention' (0) | 2019.12.05 |
---|---|
비전공자가 이해한 '마코프 체인(Markov Chain)' (1) | 2019.11.26 |