티스토리 뷰
RNN 은 이전의 스테이트가 현재의 스테이트에 영향을 줄수있어야함.
시리즈의 데이터에 적합하다. 종종 위의 그림으로 표현한 것을 구글링 하면 많이 나오게 되는데.
실제로는 이런형태가 될것임. 위에것은 간략화된 버전. 그 이유는..
아래의 함수를 보면 알 수 있다.
사람들이 그림 하나로 표현하는 이유는 각 상태에서 쓰이는 함수 Fw가 모든 RNN에서 동일하기 때문에
가장 기본적인 RNN 은 바닐라 RNN (검색해보길)
일상생활에서 보이는 RNN 의 예로서
네이버검색창에 내가 평소에 관심 있어하는, 전동킥보드를 검색해보기로하였다.
이렇게 “전동” 두 글자만 입력했는데, 내가 찾고자 하는 전동 킥보드가 검색 추천으로 뜨는 것이 RNN이다. 오 똑똑해 똑똑해!
현재 글씨가 들어왔을 때 다음 글씨를 맞추는 것을 RNN 을 통해서 구현하는것이다
아 참. One Hot Encoding 이라는 방식을 사용해서 input 인 character 형을 쉽게 Vector 로 표현가능해짐.
\
가장 유명한 예제 hello 에 적용.
여기서 Why 의 차원에 따라서 출력 Yt 의 개수가 달라진다. (행렬 곱) 몇 개의 벡터가 돼야 하나 면, 출력이 글자로 나오기를 원하는 것이니 4개로 되게 하였다.
출력 결과에 SoftMax를 적용한다.
자! 그럼이제 훈련을 해봅시다.
Rnn 을 구성할때는 BasicRNNCell 이라는것을쓴다 인자로 rnn_size Basic 말고 LSTM,GLU 도 있음. 셀은 하나의 네모상자
여기서 별표 state 는 output의 state 며, 동그라미state 는 입력스테이트다, 고로 처음 시행 시 동그라미 State 에는 0 이 들어간다 (그전상태가 입력으로 없으니까). 나중에 더 많은 학습을 위해서 output 의 state 를 또다른 rnn 에 넣을 때 사용된다.
엄청난 일을 , tensorflow 의 한줄로 가능해진 것.
빨간 네모로 친 부분을 TimeStepSize라고 한다. 가진 데이터 x_data 를 time_step_size 으로 나누어서 split을 시킨다. X_split = tf.split(0,time_step_size,x_data)
각각의 셀은 앞에서 사이즈를 정해 두었다. 셀을 몇 개 만들 것인가는 여기서 입력형태로 주어진다.
Shape( 배치사이즈 , 몇 개 만들 것 인가) 4인이유는 단어가 4 개니까 . 배치사이즈는 샘플이 하나라서 1 .(이건 아직 잘 이해가 안됨)
여기서부터 조금 복잡하다
Sequence_loss_by_example 의 원하는 데이터 포맷에 맞춰 주는과정이다.
Logit 에는 output이 들어간다. (결과값)
1: -1 인 이유는 hello 중에서 target 이 “ello” 니까. 인덱스가 1부터 끝까지.
Logits= 예상된 값. Targets = 실제 나와야 할 값
Weight 는 모두 동일하게 tf.ones를 써서 1을줌
Sess.run(train_op) 앞서 만들어 둔 train_op 을 실행시킨다.
전체소스코드,
결과
다른 응용들
RNN 은 이전의 스테이트가 현재의 스테이트에 영향을 줄수있어야함.
시리즈의 데이터에 적합!
- Total
- Today
- Yesterday
- 공항현장구매
- 비행기조회안됨
- 비행기놓쳤을때
- 당일비행기표
- 비행기취소표
- 대한항공취소표
- 추석항공권
- 체크인부터탑승까지얼마나
- 비행기취소표 #비행기매진 #항공권예약 #비행기표구하기 #항공권구매 #비행기표 #비행기표싸게사는법 #항공사취소표 #공항대기표 #여행꿀팁
- 추석연휴비행기표
- 비행기매진
- 비행기도우미
- 취소표구하는방법
- 추석비행기표
- 취소표구하는법
- #비행기취소표 #비행기매진 #항공권예약 #비행기표구하기 #항공권구매 #비행기표없을때 #항공사취소표 #공항대기표 #여행꿀팁
- 비행기노쇼
- 2025년추석비행기표
- 비행기없음
- 공항현장발권
- 항공권매진
- 아시아나취소표
- 설날비행기표
- 비행기자리없을때
- 공항현장대기
- 아고다오버부킹
- 실시간보안검색대소요시간
- 취소표풀리는시간
- 비행기매진일때
- 공항대기표
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |