일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- PytestPluginManager
- python
- vfr video
- 달인막창
- addhooks
- JanusWebRTCGateway
- 티스토리챌린지
- preemption #
- taint
- 개성국밥
- Spring Batch
- JanusWebRTCServer
- mp4fpsmod
- tolerated
- 헥사고날아키텍처 #육각형아키텍처 #유스케이스
- JanusGateway
- terminal
- 자원부족
- 코루틴 빌더
- Value too long for column
- 겨울 부산
- 오블완
- VARCHAR (1)
- PersistenceContext
- 깡돼후
- pytest
- 코루틴 컨텍스트
- JanusWebRTC
- table not found
- kotlin
너와 나의 스토리
RNN(Recurrent Neural Network) 본문
출처: http://www.wildml.com/2015/09/recurrent-neural-networks-tutorial-part-1-introduction-to-rnns/
출처: https://aikorea.org/blog/rnn-tutorial-1/
출처: https://www.youtube.com/watch?v=-SHPG_KMUkQ&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=41
* Neural Network 먼저 이해하면 좋아요
NN/CNN은
RNN의 기본 아이디어
- 순차적인 정보를 처리한다
- 출력이 이전 계산에 의존하여 시퀀스의 모든 요소에 대해 동일한 작업을 수행 -> recurrent
ex) 문장에서 다음에 나올 단어를 추측하고 싶다면 이전에 나온 단어들을 아는 것이 도움이 된다.
RNN은
지금까지 계산된 것에 대한 정보를 포착하는 '메모리'를 가지고 있다.
이론상 RNN은 임의의 긴 시퀀스에서 정보를 이용할 수 있지만, 실제로는 몇 단계만 되돌아보는 것으로 제한된다.
위 다이어그램은 RNN이 전체 네트워크로 펼쳐진 것을 보인다. 즉, 네트워크를 전체 시퀀스에 대해 그려놓았다고 볼 수 있다. 예를 들어, 우리가 관심있는 시쿼스 정보가 5개의 단어로 이루어진 문장이라면, RNN 네트워크는 한 단어당 하나의 layer씩 (recurrent 연결이 없는, 또는 사이클이 없는) 5-layer 신경망 구조로 펼쳐질 것이다.
왼쪽 그림을 보면, 입력이 한 번 들어왔을 때 출력되는 state가 다음 입력에 영향을 미친다.
연산하는 함수는 모든 $x_{i}$에 대해 동일하기 때문에 왼쪽 처럼 하나로 그릴 수 있는 것이다.
RNNs이 할 수 있는 것
- 많은 자연어처리 문제에서 성공적으로 적용
RNN을 자연어처리 분야에 응용한 예시
1. 언어 모델링과 텍스트 생성
언어 모델: 주어진 문장에서 이전 단어들을 보고 다음 단어가 나올 확률을 계산해주는 모델
언어 모델에서 입력값은 단어들의 시퀀스이고, 출력은 추측된 단어들의 시퀀스이다.
2. 자동 번역(기계 번역)
입력이 단어들의 시퀀스라는 점에서 언어 모델링과 비슷하지만, 출력값이 다른 언어로 되어있는 단어들의 시퀀스라는 차이가 있다. 네트워크 상에서 보면, 입력값을 전부 다 받은 후에 네트워크 출력값을 내보낸다. (나라마다 어순이 다르니까)
3. 음성 인식
4. 이미지 캡션 생성
CNN과 RNN을 함께 사용한다면, 임의의 이미지를 텍스트로 설명해주는 시스템을 만드는 것 가능
RNN 학습
- BPTT 알고리즘 사용 - 블로그 참조
- 보통 Truncated-BPTT(Truncated-Backpropagation Through Time)를 많이 사용한다
Truncated BPTT: 현재 타임 스텝에서 일정시간 이전까지만(보통 5 time step) 본다
'Data Analysis > Machine learning' 카테고리의 다른 글
Data stream & Online Machine Learning (0) | 2019.07.16 |
---|---|
QRF(Quantile regression forest) (0) | 2019.07.15 |
ARIMA(autoregressive integrated moving average)란? (0) | 2019.07.11 |
Forecasting at Uber (0) | 2019.07.11 |
jupyter notebook [anaconda, tensorflow] (0) | 2019.07.05 |