LSTM 단위 대 세포 이해


32

나는 한동안 LSTM을 공부하고있다. 모든 것이 어떻게 작동하는지 높은 수준에서 이해합니다. 그러나 Tensorflow를 사용하여 구현하려고하면 BasicLSTMCell많은 단위 (즉 num_units) 매개 변수가 필요 하다는 것을 알았습니다 .

에서 LSTMs의 매우 철저한 설명, 내가 한 것을 수집 한 LSTM 장치는 다음 중 하나입니다

LSTM 유닛

실제로 GRU 단위입니다.

그 매개 변수 가정 num_units의는 BasicLSTMCell우리가 레이어에 서로 후크하는 방법이 많이 언급된다.

이 질문에서 "셀"이란 무엇입니까? "셀 (cell)"은 정상적인 피드 포워드 신경망의 계층과 동등합니까?


나는 여전히 혼란스러워 colah.github.io/posts/2015-08-Understanding-LSTMs 를 읽고 있었고 그것을 잘 알고 있습니다. 해당 용어와 관련하여 셀이라는 용어가 어떻게 적용됩니까? 기사의 LSTM 셀은 Tensorflow와 같은 벡터 인 것 같습니다.
피노키오

답변:


17

불행하게도 용어가 일치하지 않습니다. num_unitsTensorFlow에서 숨겨진 상태의 수, 즉 방정식에서 의 치수입니다 .h

또한 https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/api_docs/python/functions_and_classes/shard9/tf.nn.rnn_cell.RNNCell.md :

이 패키지의 셀 정의는 문헌에 사용 된 정의와 다릅니다. 문헌에서 cell은 단일 스칼라 출력을 가진 객체를 말합니다. 이 패키지의 정의는 이러한 단위의 수평 배열을 나타냅니다.

"LSTM 레이어"는 아마도 더 명백 할 것입니다. :

def lstm_layer(tparams, state_below, options, prefix='lstm', mask=None):
    nsteps = state_below.shape[0]
    if state_below.ndim == 3:
        n_samples = state_below.shape[1]
    else:
        n_samples = 1

    assert mask is not None
    […]

아, 그러면 "셀"은 num_unit상호 연결된 LSTM 셀의 수평 가로 배열입니다. 맞는 말이다. 그렇다면 표준 피드 포워드 네트워크의 숨겨진 계층과 유사합니까?

* LSTM 상태 단위

@rec 맞습니다
Franck Dernoncourt

1
예를 들어 @Sycorax는 신경망의 입력이 10 개의 시간 간격을 가진 시계열 인 경우 수평 차원에는 10 개의 요소가 있습니다.
Franck Dernoncourt

1
나는 여전히 혼란스러워 colah.github.io/posts/2015-08-Understanding-LSTMs 를 읽고 있었고 그것을 잘 알고 있습니다. 해당 용어와 관련하여 셀이라는 용어가 어떻게 적용됩니까? 기사의 LSTM 셀은 Tensorflow와 같은 벡터 인 것 같습니다.
피노키오

4

대부분의 LSTM / RNN 다이어그램은 숨겨진 셀만 표시하지만 해당 셀의 단위는 표시하지 않습니다. 따라서 혼란. 각 숨겨진 레이어에는 시간 단계 수만큼 숨겨진 셀이 있습니다. 또한 각 숨겨진 셀은 아래 다이어그램과 같이 여러 개의 숨겨진 단위로 구성됩니다. 따라서 RNN에서 숨겨진 계층 매트릭스의 차원은 (시간 단계 수, 숨겨진 단위 수)입니다.

여기에 이미지 설명을 입력하십시오


4

문제는 이 답변 에서 대답 한 것과 거의 동일하지만이 문제 를 설명하고 싶습니다. 그래서 오늘 seq2seq 모델 (@Franck Dernoncourt의 답변 덕분에)에서 약간 혼란 스럽습니다. 이 간단한 엔코더 다이어그램에서 :

여기에 이미지 설명을 입력하십시오

h나는


나는 num_units = n이 숫자를 믿는다
notilas

-1

내 의견으로는 셀은 숨겨진 노드와 같은 노드를 의미합니다. 숨겨진 노드라고도합니다. 멀티 레이어 LSTM 모델의 경우 셀 수는 time_steps * num_layers로 계산할 수 있으며 num_units는 time_steps와 같습니다


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.