일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리눅스
- 펌웨어
- 3분 딥러닝
- Interrupt
- Network layer
- GPIO
- Router
- Class Activation Map
- function call
- file descriptors
- Transport layer
- RDT
- 디바이스 드라이버
- LED 제어
- 인터럽트
- Generalized forward
- 밑바닥부터 시작하는 딥러닝
- Linux
- 모두를 위한 딥러닝
- 텐서플로우
- TensorFlow
- 신경망
- demultiplexing
- 딥러닝
- Switch
- 모두를 위한 딥러닝]
- 운영체제
- 신경망 첫걸음
- LED
- 스위치
- Today
- Total
건조젤리의 저장소
12-1. RNN 본문
김성훈 교수님의 강의내용을 정리한 내용입니다.
출처 : http://hunkim.github.io/ml/
하나의 단어로는 문맥을 파악할 수 없다.
이전 단어와의 조합을 통해 우리는 문장이 의미하는 바를 알 수 있다.
연속적인 데이터들의 의미를 파악하기 위해 기존의 NN/CNN 구조를 사용하는 것은 어려운 일이다.
따라서 이전의 연산 결과가 현재의 연산 결과에 영향을 미치는 신경망 구조를 만들게 되었는데,
이를 RNN 이라고 한다.
RNN의 구조는 위의 그림과 같이 풀어서 나타낼 수 있다.
연속적인 데이터들이 입력으로 들어가게 되고, 현재의 입력값에 대한 출력이 과거의 연산값에 영향을 받는 구조이다.
위의 그림은 RNN의 연산식을 나타낸 것이다.
현재의 입력값과 과거의 상태가 현재의 상태에 영향을 미치는 것을 알 수 있다.
계산 과정에서 쓰이는 fw(함수)와 파라미터들은 매 time step 마다 동일하다.
상세 계산 과정과 활성화 함수를 확인해보자.
가중치(W)는 총 3가지 종류가 존재함을 알 수 있다.
3가지의 가중치는 전체 cell에서 동일한 값이다.
이제 RNN의 예시 모델을 살펴보자.
"hello"라는 단어를 학습시켜 'h'를 입력으로 넣을 경우 그 다음의 문자인 'e'가 출력되게 할 수 있다.
ex) 네이버 연관 검색어
각 문자들을 one-hot 인코딩을 통해 변환하고 이를 입력값으로 설정하게 된다.
현재 상태를 구하기 위해 이전값과 현재 입력값을 이용해 구하는데,
첫번째 입력일 경우 이전값이 존재하지 않으므로 h_t-1값을 0으로 설정한다고 한다.
이러한 계산 과정을 반복하여 진행한다.
마지막으로 W_hy를 상태값에 곱하여 y를 뽑아내게 된다.
y값에 softmax함수를 적용하고 최대값을 예측값으로 설정하여 Cost값과 정확도를 계산할 수 있다.
RNN을 이용하여 위와 같은 Application을 만들 수 있다.
다양한 RNN 구조이다.
- one to one: 기본 RNN 구조
- one to many: ex) 이미지 설명 (이미지를 통해 문장을 만들어냄)
- many to one: ex) 감정 분석 (문장을 통해 감정을 분석)
- many to many 1: ex) 자동 번역 (문장을 다른 언어로 번역)
- many to many 2: ex) 비디오를 프레임 단위로 설명
더 깊은 구조의 RNN을 설계할 수 있다.
RNN 고급 모델의 종류
- Long Short Term Memory(LSTM)
- GRU by Cho et al. 2014
'공부 기록 > 모두를 위한 딥러닝 (Basic)' 카테고리의 다른 글
12-3. Tensorflow를 이용한 RNN 예제 실습 (0) | 2019.11.13 |
---|---|
12-2. Tensorflow를 이용한 RNN 기초 실습 (0) | 2019.11.13 |
11-4. Tensorflow를 이용한 CNN의 구현 (0) | 2019.11.12 |
11-3. CNN case study (0) | 2019.11.12 |
11-2. CNN introduction: Max pooling and others (0) | 2019.11.12 |