2017-05-08 3 views
0

Q : Tensorflow RNN이 Elman Network의 숨겨진 상태를 출력하도록 구현 되었습니까?
cells = tf.contrib.rnn.BasicRNNCell(4) 
outputs, state = tf.nn.dynamic_rnn(cell=cells, etc...) 


enter image description hereTensorflow RNN은 Elman 네트워크를 완벽하게 구현합니까?

enter image description here

나는 TF의 RNN 새로운 조용하고 출력의 의미 및 상태에 대한 궁금 하군요. stanford의 tensorflow 튜토리얼을 따르고 있지만 자세한 설명이 없어서 여기에서 묻습니다. 테스트 후 state은 시퀀스 계산 후 숨겨진 상태이고 outputs은 각 시간 단계 후 숨겨진 상태의 배열이라고 생각합니다.

그래서 나는 분명히하고 싶습니다. 출력 및 상태가 숨겨진 상태 벡터이므로 Elman 네트워크를 완벽하게 구현하려면 그림에서 V 행렬을 만들고 행렬 곱셈을 다시 수행해야합니다. 나 맞아?

+0

왜 RNNCell output_size 및 state_size 속성이 있습니까? 차이점은 무엇입니까 – amityaffliction

+0

바로 출력에 행렬 곱셈이 없습니다. BasicRNNCell 상태 크기 및 출력 크기는 동일합니다 (예 : LSTM 셀의 경우와 같이). –

답변

0

중간 상태와 출력의 출력이 무엇인지 묻고 싶습니다.

내가 이해 한 바로는 컨볼 루션/시퀀스 계산 후 상태가 중간 출력이되어 숨겨져 있기 때문에 이해가 올바른 방향입니다.

출력은 네트워크 모델을 구현하는 방법에 따라 다를 수 있지만 일반적으로 작동 (컨볼 루션, 시퀀스 계산 등)이 적용된 후 활성화 & 다운 샘플링/풀링이 적용된 배열입니다 해당 레이어에서 식별 가능한 기능에 집중할 수 있습니다. Colah의 블로그 (http://colah.github.io/posts/2015-08-Understanding-LSTMs/)에서

: 마지막으로

, 우리는 우리가 출력 할 건지 결정해야합니다. 이 출력은 셀 상태를 기반으로하지만 필터링 된 버전이됩니다. 먼저 우리가 출력 할 셀 상태의 부분을 결정하는 시그마 이드 레이어를 실행합니다. 그런 다음 tanhtanh를 통해 셀 상태를 설정하고 (값을 -1-1과 11 사이로 밀어 넣기 위해) 시그널 게이트의 출력을 곱하여 우리가 결정한 부분 만 출력합니다.

언어 모델 예제의 경우 주제를 보았 기 때문에 다음에 오는 경우에 대비하여 동사와 관련된 정보를 출력 할 수 있습니다. 예를 들어 피사체가 단수인지 복수인지를 출력 할 수 있으므로 다음에 오는 경우 동사가 어떤 형태로 결합되어야하는지 알 수 있습니다.

희망이 도움이됩니다. 감사합니다.

관련 문제