본문 바로가기
Programming/Deep learning

RNN 이 있습니다.

by OKOK 2018. 1. 18.

음성 인식이라던제 시퀀스 데이터가 입니다. 음성언어 자연어 이야기 하는 것이 이해하는 것인데, 이해하는 방법이 하나의 단어, 이것만 이해한다고 해서 전체 맥락을 이해하는 것이 아닙니다. 이전에 했던 단어들을 다 이 해한다음에 이해하는 것입니다. 이런것들이 바로 시퀀스 데이터가 되겠습니다. 기존에 있는 뉴럴 네트워크 컨볼루션 네트워크가 있으면 출력ㅇ으로 나타나는 간단한 형태이기 때문에 시리즈 형태의 이러한 형태의 불편했던 것입니다. 많은 사람들이 고민한 끝에 출력한 것이 이런형태의 네트워크가 되겠습니다. 시리즈 데이터를 이야기 할때 이전의 결과. ㅈ 


이렇게 있을 때 계산할 수 있겠죠. 와이라고 할꼐요 계산할 수가 있는데, 여기에 현재 스테이트가 다음것에 영향을 미친다 이런식으로 그림을 미치는데 구현하면 됩니다. 이런 입력이 있고, 와이라고 할떄때, 여기에 계산되었던 입력으로 어떤 상태스트이트라고 하는데, 그 다음것영향을 미칩니다. 이전의 연산들이 영향을 미칩니다. 시리즈에 적합한 모델이 되겠습니다. 엑스가 있으면 알엔엔이 있으면 스테이트가 이렇게 입력이 되는 그리고 각각 와이값을 이렇게 뽑아 낼 수가 있겠습니다. 그러면 이것을 어떻게 계산하는 것일까요.  어떤 함수를 연산처리한다는 것을 이해하면 됩니다. 알엔엔을 하나로 나타내는 이유는 무엇인가요. 주어진 어떤 이전의 스테이트와 현재 엑스값을 계산하는 펑션을 알엔엔 대해서 동일합니다. 오케이요. 펑션이 같기 때문에 전체가 하나와 같다해서 이렇게 표현하는 것입니다. 구체적으로 구체적으로 알아보도록 합시다. 기본적인 알엔엔의 연산 방법은 함수 구성은 어떻게 구성할 수 있을까요? 연산자는 바로 더블유 엑스 이것을 가지고 합니다, 입력이 2개이니까 에이치원 엑스티, 이것이 입력입니다. 원바이원 가각의 웨이트를 만들엊ㅂ니다. 이렇게 똑같은 형식입니다. 탠에이치 시그모드와 같은 형태입니다. 입력이 2개이니 이렇게 에이치 원과 엑스티 입력이죠. 그리고 각가긔 웨이트를 만들어줍니다. 각각의 웨이트를 만들어줍니다. 이것을 더하는 것입니다. 그런다음에 이것을 텐에이치 시그모드 함수와 같은 것을 마들어줍니다. 오케이요. 새로운 에이치. 그리고 와이는 또 새로운 웨이트와 곱해서 와이값을 나오게 됩니다. 다른 형태의 웨잇을 나타냅니다. 계산을 해줍니다. 오아이가 몇개의 값으로 나올 것인가 하는 것은 뉴럴 네트워크에서 더블유에서 형태의 따라 달려있습니다. 웨이트의 벡터의 사이즈에 따라서 다르겠습니다. 벡터의 결과가 몇개가 될 것 인지 정해져있습니다. 벡터 사이즈 모양에 따라서 정해지게 됩니다. 예제를 통해서 보도록 하겠습니다. 여기에서 3개의 웨이트가 있습니다. 엑스에이치 에이치 와이가 있습니다. 전체셀에 똑같은 것을 사용합니다. 웨이트는 똑같은 것으로 학습을 합니다. 오케이요. 캐릭터 자연어에 캐릭터를 주는 것입니다. 이렇게 입력으로 각각의 하나의 하나씩 타임시르즈로 생각합니다. 이렇게 입력을 했을때, 알엔엔으로 학습하고 싶은 것은 무엇인가 에이치라고 할떄, 그 다음에 오는 단어가 무엇인가요. 이입니다. 연관 검색어 있습니다. 예측해 줍니다. 마찬가지로 사용합니다. 각 글씨레벨에서 사용합니다. 이를 입력하면 헬로라고 하면, 이는 일이 옵니다. 오케이. 오가 옵니다. 출력이 되는 것입니다. 현재 글씨에서 올떄 그 다음 글씨가 무엇일까 할때 랭귀지 모델이라고 합니다. 이렇게 예측하는 시스템을 알엔엔으로 구현해보자 합니다. 이렇게 각각 입력을 벡터로 표현해야합니다. 엘엘을 벡터로 표현해야하는데요. 여기서 가장 쉬운 방법인 핫원 핫 인코딩이라고 부릅니다. 단어에 각각 이렇게 하는 것입니다. 벡터로 표현하게 해줍니다. 이렇게 원하는 방법은 캐릭터를 벡터로 변환해야 합니다. 멀티레이블 이라고 생각하면 됩니다. 이런식으로 보면 됩니다. 그렇게 해서 각각 자리에 1로 맵핑을 하였습니다. 이제 우리가 이것을 알엔엔 셀로 입력을 하면 됩니다. 이 값을 공식으로 첫번째의 경우에는 에이치티의 원에 0으로 둡니다. 


곱하고 곱해서 이런식으로 표현하게 됩니다. 어렴풋이 여기에 있는 값들을 보면 이게 사실은 어떻게 보면 영향을 미치는 것입니다. 이런 값들이 나오게 됩니다. 아하 다른 것들을 결과를 뽑아내서 이렇게 이렇게 하는 것이구나, 오케이 이렇게 이렇게 해서 글자가 나오기를 원합니다 글자로 4개중에 하나로 레이블이 정해지게 됩니다. 오케이요. 이것ㅇ르 가지고 소프트 맥스를 취하게 되면, 어떻게 되나요. 레이블이 되곘죠. 이자리가 2의 자리 였습니다. 원하는 녀석이 맞았던 것입니다. 오케이요. 여기 같은 경우에는 어떤가요 엘을 원했는데, 이자리인데 틀렸죠. 큰 것이기 때문에, 이것이 원하는 것이고, 실제로 이게 더 크게 나왔습니다. 에러라고 할 수 있습ㅂ니다. 잘 맞게 되었습니다. 오케이요. 이런 값을 이런 값들이 원하느 자리가 이자리였습니다. 코스트 함수를 어떻게 계산할 것인가 소프트 맥스 방법을 사용하여서 코스트 함수를 계산하게 됩니다. 쉽게 계산할 수 있습니다. 4개를 다 더해서 코스트를 평균내면 학습을 시킬 수가 있게 됩니다. 학습하게 되면 글자를 넣으면 이렇것을 거쳐서 다음 것은 예측을 할 수 있습니다. 랭귀지 모델 예측이 가능해집니다. 이런 형태의 RNN 인데 응용이 많습니다. 다음 단어, 시피치 인식할수 있습니다. 그리고 출력이 시퀀스한 것을 출력하기 때문에 새로운 시퀀스, 번역도 가능합니다. 그리고 봇을 만들 수 있습니다. 안녕하면 이것에 대해 대답할 수 있습니다.  문자를 나타내는 것도 가능합니다. 질문, 출력도 문자열 그리고 이미지 비디오를 캡셔닝 할 수 있게 도비니다. 알엔엔을 어떻게 활용하느냐에 따라 다릅니다. 


아하 여러가지로 할 수 있습니다. 이미지를 하나 주면 캡셔닝 나는 모자를 쓰고 있습니다. 시리즈 데이털 값을 뽑아낼 수 있습니다. 시퀀스 워드로 그리고 여러가지 입력을 넣어서 하나의 출력을 할 수 있습니다. 센티멘트, 기쁜 문장입니다. 하나의 출력 값을 받을 수 있습니다. 문자열로 매니 투 매니 입니다. 그리고 이런 것을 비디오 같은 경우에 프레임 여러개가 있습니다. 출력을 설명하는 것입니다. 이런 형태로 알엔엔도 다양하게 구성할 수 있습니다. 여러개의 레이어도 둘 수 있게 됩니다. 봅잡한 학습이 가능합니다. 바닐라 알엔엔 기본적인 것 입니다. 학습하는데 어려움이 있습니다. 극복하는 다른 형태의 다른 보델이 있습니다 롱쇼텀메모리입니다. 알엔엔 자체가 아니라 엘에스티엠, 지알유 2개중에 하나를 쓰게 됩니다. 


가장 활용도가 높은 알엔엔을 사용하게 됩니다. 많은 분들과 함께 개발중에 있습니다. 알엔엔은 기존의 뉴럴 넷과 다르게 셀로 연결된다는 것이 큰 다른 점입니다. 아웃풋이 입력으로 들어오는데 어떻게 구현할까. 실제 텐서플로우를 사용하게 되면 쉽게 구현이 가능합니다. 첫번째, 스텝이 셀이라는 것을 만듭니다. 어떤 형태의 셀을 만들 것인가. 셀에서 나가는 출력 사이즈를 정해줍니다. 얼마일까만 정해줍니다. 그러면 첫번째 셀을 만들었습니다. 그 다음에 셀을 만든것에 대해 입력값과 출력값을 뽑아내야 합니다. 텐서플로우 알엔엔을 사용하게 됩ㄴ다. 셀을 만들어 줍니다. 입력데이터를 만들어줍니다. 아웃풋 출력을 내고 아웃풋 스테이트 값을 냅니다. 직접 사용할 값은 많지 않고 이렇게 나눈 것이 많습니다. 셀을 생성시킨 것이 많고요. 구동하는 부분이 많음으로써 원하는 셀을 바꿀 수 있는 것입니다. 기본 알엔엔을 만들었는데, 어쩌고 저쩌고, 셀만 바꾸면 2가지로 나누어서 사용가능합니다. 그 다음에 기본적인 것은 이해하였습니다. 이제 다음 엑스데이터를 넣어주고 관찰해보도록 하겠습니다. 우선 어떤 입력을 넣을 것인가 문자열을 다룰 텐데, 이것을 다루기 가장 좋은 방법 벡터로 원핫 인코딩입니다. 원 핫 인코딩을 넣어주면 됩니다. 입력으로 줄 텐데요. 입력의 디멘션은 어떻게 될까요. 인풋 디멘션은 4가됩니다. 이런 데이터가 줄것입니다. 마지막 이부분만 4가됩니다. 아웃풋의 디멘션으 어떻게 될까요. 자 그 다음은 셀을 만들때, 히든 사이즈라는 것을 정해줍니다. 히든 사이즈를 무엇으로 정했는지에 따라서 출력으로 정해집니다. 2로 줍니다. 입력 데이터가 디멘션이 무엇인지 상관없이 이 출력의 값은 디멘션은 2개로 주겠다 이것입니다. 이런 형태의 값이 됩니다. 


입력을 단순하게 주고 출력이 어떻게 나오는지 보겠습니다. 셀을 넘겨주고 알엔엔이 어떻게 나오는지 살펴보도록 하겠습니다. 아웃풋을 이벨루에이션 하는 방법으로 출력해보도록 합니다. 우리가 예상한 것처럼 이 값이 의미하는 바가 무엇인가요.웨이트들, 이런 형태의 쉡이 나왔습니다. 이것입니다. 자 그럼 이제 마지막 것은 이해하였습니다. 인풋디멘션이고, 이것이 무엇일까요. 히든 사이즈 입니다. 2개의 사이즈가 있습니다. 알엔엔의 언폴드가 있습니다. 시리즈 데이터가 쭉 있습니다. 시퀀스 데이터가 있습니다. 시리즈 데이터가 있습니다. 한번에 몇 번 펼칠 것인가 이야기 입니다. 이것은 입력데이터의 모양에 따라 결정됩니다. 이런형태 1, 5, 4 의 어레이가 됩니다. 어레이를 넘겨주게 되면 알아서 이것을 펼쳐내고 시퀀스20이다 그럼 20 시퀀스가 7이다 이렇게 똑같은 5면 5 7이면 7 이런식으로 출력을 만들어줍니다. 역시 코드를 살펴보면, 숫자를 찾찾히 보면 우선 입력을 신경써서 만들어보도록 합니다. 핫 인코딩을 변수로 선언합니다. 


학습을 통해서 어떻게 출력이 나오는지 살펴보도록 하겠습니다. 오케이요. 하이헬로라는 것을 알엔엔에 훈련시켜보도록 하겠씁니다. 알엔엔에게, 그 다음 문자가 무엇일지 예측하는  학습시켜보도록 하겠습니다. 이 문제가 같은 에이치지만 이가 나와야 맞습니다. 이전에 있는 문자가 무엇인지를 알아야 값을 출력할 수 있는 것이 효과적입니다. 원핫 인코딩으로 바꿀 수 있습니다. 유일한 문자가 무엇인가요. 5개가 있습니다. 오케이요. 이것 보통 뭐 보캐벌리가 있습니다. 비오시가 있습니다. 유일한 문자열 입니다.


 숫자가 자유롭게 할 수 있으면 굉장히 자유롭게 사용이 가능합니다. 그럼 그림을 보도록 하겠습니다. 입력이 되고 출력이 도비니다. 정해야할 것이 있습니다. 입력디멘션이 얼마이고, 출력이 얼마인지, 배치가 얼마인지 정하면 됩니다. 입력에 값이 무엇인가요. 이것만 알면 쉽게 알엔엔을 구성해볼 수 있습니다. 알엔엔 사이즈입니다. 이 셀은 베이직 알엔엔을 쓸수도 있고 wldkfdb dpfdptmxldpadmf tkdydgkf tn dlTtmqslek. cnffurrkqt 5rk ehlqslek. 입력의 사이즈를 어떻게 만들어 낼 까요. 이전 입력의 디멘션은 5로 적고, 시퀀스 데이터로 하이 헬로우고, 시퀀스의 길이 6이 되었습니다. 데이터를 넣어주면 되는 것입니다. 출력이 얼마가 나오는지 예상가능합니다. 어레이로 주고, 이런형태를 입력으로 사용하도록 하겠습니다. 조금 더 일반화하기 위해서 엑스와 와이를 사이즈를 어떻게 할 것인가 하겠습니다. 히든 사이즈가 있습니다. 인풋 디멘션이 되겠습니다. 시퀀스 길이가 2번째가 되겠습니다. 크기가 되겠습니다. 


로스로 계산할 수 있어야 합니다. 시퀀스가 있으니, 이런 경우에 시퀀스들을 알고 있으니, 각각을 계산해서 평균을 낼 수 있습니다. 복잡해지는 문제가 있습니다. 시퀀스를 받아들입니다. 로지스트를 예측을 받아들입니다. 그리고요, 타겟하면 와이트루데이터 시퀀스로 배치시퀀스로 받게 됩니다. 웨잇은 모두가 1이라고 보면 됩니다. 이렇게 하면 계산이 되는데요. 실제로 어떻게 되는지 보도록 하겠습니다. 1, 1, 1 데이터가 있습니다. 원핫이 있습니다. 임의로 준것입니다. 1,0 , 1에 가깝게 예측한 것입니다. 그러면 예측값이 얼마나 좋을지를. 와이데이터를 타겟으로 주고, 로스는 0.59 가 나옵니다. 누가 더 좋은가요, 이 값이 더 낮아야 합니다. 1,1,1 로 주고 시퀀스로스를 이용해서 로짓 와이데이터를 줍니다. 그러면 결과를 출력해보면 예상했던 것처럼 0.5 0.3 으로 우리가 원하는 값이 실제에 레이블과 가까울 수록 로스가 낮아집니다. 원하는 형태의 로스이다. 어떠한 갓을 넣어야 하는지 봅니다. 오케이요. 학습을 진행해보도록 하겠습니다. 아웃풋을 로짓으로 사용할 것입니다. 평균낸 로스를 미니 마이즈 해주세요. 학습이 자동으로 이루어집니다. 시퀀스도 시퀀스 로스를 쓰면 됩니다. 알엔엔에서 나오는 값을 바로 로지스트에 넣으면 간단하게 하기 위해서 알엔엔에서 바로, 예측을 사용하게 됩니다. 일단은 간단하게 시퀀스 데이터를 시퀀스 데이터 이해하면 되겠습니다 .학습과정을 거치도록 하겠습니다. 세션을 열고, 이니셜라이즈를 하고, 트레인을 실행시키면 됩니다. 엑스 와이데이터를 실행시켜주면 됩니다. 로스가 얼마나 떨어지는지 보면 됩니다. 원핫, 아그맥스, 소프트 맥스 프ㄹ딕션하면 됩니다. 숫자가 됩니다. 숫자를 다시 캐릭터로 볼 수 있습니다. 이런 식으로 인덱스 딕셔너리에 숫자를 넣으면 해당되는 캐릭터가 나오겠습니다. 문자를 볼 수 있습니다. 예측한 값을 보겠습니다. 학습 과정을 출력 과정 입니다. 스텝 과정은 로스를 보면 1 가까이에서 떨어집니다. 여기서 부터 중요한 프리딕션에서 마음대로 실제 트루값입니다. 마음대로고, 해당되는 캐릭터르르 보면 자기마음대로 입니다. 시간이 지속되면 로스가 떨어지고 프리딕션이 원하는대로 되고 있고, 오케이. 정말 잘 예측하였습니다. 알엔엔이 성공적으루 우리가 원하는 문자를 예측했습니다.  


긴 것을 가지고 해보도록 하겠습니다. 많은 분들과 함께 개발중입니다. 알앤앤을 사용할때 원핫이라는 것, 문자에 대한 인덱스 그리고 해당되는 번호 이것을 다 메뉴얼하게 작업을 했습니다. 책 한권입력하기 어렵습니다. 그래서 이렇게 하지 않고 자동으로 해보자. 파이썬으로 해보자 입니다. 샘플 이프 유 원트 스트링으로 줍니다 필요한 데이터 들을 뽑아내면 좋겠죠. 인덱스 2 캐릭터 유니크한 것을 뽑아내고 인덱스로 준다. 오케이. 이것을 셋이라는 명령어를 주면 유니크한 리스트로 처리합니다 이 한줄 문장으로 수작업할 필요가 없어졌습니다. 캐릭터 주면 인덱스로 만들어주면 됩니다. 숫자와 해당되는 캐릭터로 만들면 됩니다. 이렇게 자동으로 만들었고요, 이 샘플 데이터의 인덱스는 무엇인가요 샘플 인덱스라고 합니다. 자동으로 가져옵니다. 한자씩 가져옵니다. 캐릭터 인덱스에서 숫자로 가져오면 됩니다. 오케이. 그런다음에 엑스, 와이데이터를 만들어야 하는데, 기존에 이어서,  원핫이라는 함수를 사용하면 됩니다. 엑스 값을 넘겨줄 것입니다. 몇개가 이 몇개일 것인가. 전 몇개로 만들어줄까 넘버 오브 클래시시 예를 들어 인덱스 캐릭터와 똑같을 것입니다. 유일한 것입니다. 100이 될 것 입니다. 원핫이될 것 입니다. 디멘션에 차이가 있습니다. 쉐입이 어떻게 변하는지 살펴보도록 하겠습니다. 하이퍼 파라미터들도 자동으로 뽑아낼 수 있습니다. 딕사이즈도 이것의 길이가 되겠습니다. 입력의 데이터 출력의 클래스 데이터가 되겠습니다. 셀을 만들때는 히든 사이즈를 주도록 합니다. 딕셔너리 사이즈와 같습니다. 그리고 텐서플로우로 알엔엔을 구동시키도록 합니다. 셀을 넘겨주고, 우리가 만들어낸 엑스원핫을 넘겨줍니다. 그런다음에 웨잇은 모두 1로 만들고 시퀀스 로스를 어하도록 하겠습니다. 로짓은 아웃풋을 만들어냅니다. 웨잇은 1로만들어져 있습니다. 로스를 아담을 쓰도록 합니다. 출력에 대해서 프리딕션이 있습니다. 트레인을 실행시킵니다. 오케이요. 예측을 해서 결과값을 출력해서 출력보도로가 하겠씁니다. 


히든 사이즈가 마찬가지이고 원하면 스무개 50개 정해주어도 됩니다. 배치 사이즈 개념이 들어갑니다. 배치가 항상 1이었으나, 배치 사이즈를 중간에 잘라도 되지만 과감하게 넣어보도록 합니다. 169가 되겠습니다. 자 기계적으로 할 수 있습니다. 시퀀스 렝스만큼 배치 사이즈 아무거나 될 수 있습니다. 나머지 과정은 똑같습니다. 실행시켜보도록 합니다. 잘 안됩니다. 길어져서 그런지 잘 안되는지 새악해보도록 합니다. 로짓부분에서 매끄럽지 않습니다. 그런부분 한번 이야기 해보도록 하겠습니다.  긴 문장을 시도해보았습니다. 알엔엔으로 보았을때 복잡한 형태를 보았는데 잘 안됩니다. 이런 형태로 만들어보았습니다. 파라미터를 자동으로 읽어보고, 그 이유중에 하나가 그 하나가 많은 데이터를 다루기에는 RNN 셀이 너무 작습니다. 기본적으로 딥러닝의 와이드와 딥하게 가게 됩니다. 이것을 쌓을 수 없을까 하는게 스택 알엔엔 2층 3층 원한다면 100층으로 쌓아도 좋습니다. 이전 코드와 같고 셀을 만들 때는 하나의 셀을 만들 것입니다. 알엔엔에 텐서플로우셀이라는 알엔엔 그대로 사양하지 않고, 소프트 맥스를 하나 붙여주도록 합니다 .생각해보도록 합니다. 소프트 맥스 붙여주는 방법이 있습니다. 알앤앤 각각 붙여도 좋습니다. 그대신 메모리를 많이 쓰겠습니다. 알앤엔을 보면 하나입니다. 하나인데, 언롤이 된 것 입니다. 굳이 이렇게 시퀀스를 100개에 맞게 만들어줄 필요가 없고, 한개로 만들어주면 됩니다. 이렇게 만들어놓은 데이터를 쭉 쌓아서 넣어주고 소프트 맥스를 펼쳐만 주면 됩니다. 알앤앤으로 시퀀스를 쓰면 이렇게만 이해하면 됩니다. 이렇게 나온 데이터를 소프트 맥스에 쉐임을 해주는 것입니다. 소프트 맥스를 디자인 하는 입장에서 한번더 리쉐임을 해준다. 웨잇을 디자인만 해주면 됩니다. 그것을 기계적으로 항상 이렇게 한다 기억하면 됩니다. 이엑스를 소프트 맥스에 맞게, 나머지를 맞게, 알아서 쌓아 리쉐임을 해주면 되는 것입니다. 됬습니다. 그런다음에 서프트 맥스를 그대로 출력할 것입니다. 아웃풋처럼 펼쳐 소프트 맥스에서 나온 아웃풋입니다. 이 아웃풋을 어떻게 펼칠 것인가. 넘버오브 클래스로 펼치면 됩니다. 이렇게 하면 데이터가 섞이지 않을까요? 섞이지 않고 잘 펼쳐집니다. 리 쉐임으로 할 수가 있습니다. 실제로 코드를 보게 되면 실제 알엔엔에서 나오는 아웃풋, 리쉐임을 하게 도비니다. 소프트 맥스를 이한 입력이 생겼습니다. 우에잇과 바이어스를 정해주면서, 알엔엔과 같게 만들어줍니다. 그런다음에 아웃풋을 어떻게 하면 될까요. 이제 아웃풋을 이제 여기에 있는 시퀀스로스에 넣어주면 됩니다. 자 아웃풋을 생각해보면 이 아웃풋 개티베이트 함수를 거치지 않았습니다. ㄱ곱하기만 한것입니다. 여기에 로지스트에 넣는 것이 맞습니다. 그대로 넣게 되면, 액티베이션 펑션, 트린 것. 그래서 소프트 맥스 레이러르 깔고 맥스레이어를 마지막 값은 로짓을 입력으로 넣습니다. 좋은 성능을 거둘 수가 있게 됩니다. 아웃풋이 나오면 화면에 출력하는 것입니다. 그대로 하면 출력해보도록 하겠ㅅ븐디ㅏ. 배치가 나오기 때문에 , 그러면 실행을 쭉 해보면 말이죠. 처음에는 아무말이나 막 나오다가 로스도 큽니다만 시간이 지날 수록 작은 값 엔 더 시 출력이 일어나비다. 오케이. 모든 학습이 끝나고 나면 각각 배치에 있는것 뿌려보도록 합니다. 


방금 본 학습할 수 있습니다. 웰  


dynamic rnn 을 사용하도록 하겠습니다. 우리가 알엔엔 시퀀스 데이터를 처리 할 수 있습니다. 시퀀스는 5면 5 7이면 7 이렇게 정해져 있습니다. 실전에서 데이터를 받다보면 정해지지 않을 때가 있습니다. 가변한다는 것입니다. 편하게 하기 위해서 문자열을 20개로 번역해? 알엔엔을 가변하는 시퀀스를 입력으로 받아 들여야 합니다. 헬로, 하이, 와이 어떤 경우는 이렇게 다른 값의 다른 길이를 줍니다. 패딩이라는 특별한 기호를 삽입합니다. 어떤 값들이 나옵니다. 어떤 값들은 로스 함수를 계산할 때 헷갈리게 할 수 있습니다. 결과가 좋지 않을 수 있습니다. 새로운 텐셔플로우는 문자열과 함께 배치와 문자열 또는 시퀀스의 길이를 알려줄래? 해서 5, 2, 3 이렇게 이야기를 해줍니다. 그러면 어떤 결과가 있는지요. 나머지는 출력값을 0으로 만들어서 로스가 헷갈리지 않도록 만드는 것입니다. 어떤 엑스 데이터가 있다고 가정합니다. 히든 사이즈는 2가 됩니다. 다이나믹 알엔엔이라는 것을 구동시킵니다. 셀 엑스 데이터를 만듭니다. 5,3,4 이렇게 줍니다. 줘보고 출력을 만들어보고, 세션을 출력이 나옵니다. 아웃풋입니다. 시퀀스를 5개를 모두가 오케이요. 값을 0으로 출력을 만들어 버립니다. 그래서 확실하게 없는 데이터의 값은 0으로 만들어서 로스가 잘 동작되도록 만들어줍니다. 굉장히 간단하게 키눠스 랭스를 주기만 하면 됩니다. 문자열 같은 것을 처리합니다. 마지막 타임 시리즈 데이터를 예측할 때 어떻게 하나요. 


타임 시리즈를 예측해보도록 하겠습니다.