신경망에서 샘플, 시간 단계 및 기능의 차이


17

LSTM 신경망에서 다음 블로그를 살펴보고 있습니다. http://machinelearningmastery.com/understanding-stateful-lstm-recurrent-neural-networks-python-keras/

저자는 LSTM의 다른 구성을 위해 입력 벡터 X를 [샘플, 시간 단계, 특징]으로 재구성합니다.

저자는 쓴다

실제로, 문자의 순서는 별개의 특징의 1 시간 단계가 아닌 하나의 특징의 시간 단계이다. 우리는 네트워크에 더 많은 맥락을 주었지만 예상했던 것보다 더 많은 순서는 없습니다

이것은 무엇을 의미 하는가?

답변:


16

관심있는 [샘플, 타임 스텝, 기능] 바로 아래에 있습니다.

X = numpy.reshape(dataX, (len(dataX), seq_length, 1))

샘플-이것은 len (dataX) 또는 보유한 데이터 포인트의 양입니다.

시간 단계-이는 반복 신경망을 실행하는 시간 단계와 같습니다. 네트워크의 메모리를 60 자로 설정하려면이 숫자는 60이어야합니다.

기능-이것은 모든 시간 단계에서 기능의 양입니다. 그림을 처리하는 경우 이것은 픽셀의 양입니다. 이 경우 시간 단계 당 1 개의 기능이있는 것 같습니다.


1
X = numpy.reshape (dataX, (len (dataX), 3, 1)) 및 X = numpy.reshape (dataX, (len (dataX), 1, 3))의 차이점을 설명 할 수 있습니까? lstm?
Vipul Jain

1
(len (dataX), 3, 1)은 3 회 반복에 대해 LSTM을 실행하여 모양 (1,)의 입력 벡터를 입력합니다. (len (dataX), 1, 3)은 1 회 반복 동안 LSTM을 실행합니다. 즉, 이전 반복에서 피드백을받을 수 없기 때문에 반복적 인 연결을하는 것도 무의미합니다. 이 경우 RNN의 입력 모양은 모양입니다 (3,)
Joonatan Samuel

"(len (dataX), 3, 1)은 3 회 반복을 위해 LSTM을 실행 합니다." epoch = 3과 동일합니까?
Vipul Jain

1
대략적인 번역의 한 시대는 데이터 세트의 모든 데이터 포인트에 대해 한 번 훈련했음을 의미합니다. 훈련하는 동안 len (dataX) 예제를 살펴본 결과 1 시대로 간주됩니다. 그러나 RNN은 데이터를 순차적으로 가져옵니다. 모든 교육 예제에서 여러 번 반복하여 데이터를 제공해야합니다. 예를 들어, "car"라는 단어가 있으며 매 반복마다 하나의 문자를 공급하고 계산을 완료 한 다음 다음 문자를 공급합니다. 단어 "car"처리를 완료하려면 전체 단어를 문자로 처리하기 위해 3 번의 반복이 필요합니다.
Joonatan Samuel

@JoonatanSamuel 안녕하세요, 많은 시간이 지났지 만 동일한 주제를 이해하는 데 많은 어려움을 겪고 있습니다. 귀하의 답변은 매우 명확하지만 여전히 약간 혼란 스럽습니다. 몇 달 동안 매월 매출을 설명하는 시계열이 있다고 가정합니다 (예 :). 예를 들어 len (data) = 3000, data.shape = (3000,1)이라고 가정하면 3000 개월이 기록됩니다. 다음 예측 : N 이전 관측치를 사용하여 다음 관측을 예측하려면 (다음 관측 만!) LSTM에 대한 입력 데이터의 모양은 무엇입니까? 예를 들어 우리가 사용하고 싶다면 t-n,..., t-2, t-1예측 t.
Euler_Salter

0

너무 늦었지만 만일의 경우에 대비하여; 샘플 개별 교육 사례를 참조 할 수있다. "batch_size"변수는 신경망에 보낸 샘플의 개수입니다. 즉, 신경망에 한 번에 몇 개의 서로 다른 예제를 제공합니까?

TimeSteps 는 시간의 틱입니다. 각 샘플의 시간은 얼마입니까? 예를 들어, 샘플은 128- 시간 단계를 포함 할 수 있으며, 여기서 각 시간 단계는 신호 처리를 위해 30 초의 초가 될 수 있습니다. 자연어 처리 (NLP)에서 시간 단계는 설정에 따라 문자, 단어 또는 문장과 연관 될 수 있습니다.

기능 은 단순히 각 시간 단계에서 공급하는 차원의 수입니다. 예를 들어 NLP에서 단어는 word2vec를 사용하여 300 개의 기능으로 표현 될 수 있습니다. 신호 처리의 경우 신호가 3D 인 척하십시오. 즉, 각 축의 가속도계 측정 값과 같은 X, Y 및 Z 신호가 있습니다. 즉, 각 샘플마다 시간 단계마다 3 개의 기능이 전송됩니다.

으로 기욤


0

예를 들어 내 대답은 : ""안녕하세요 xyz ","어떻게 지내세요 ","위대한 사람 ... "]

이 경우 "[샘플, 시간 단계, 기능]"은 다음을 의미합니다.

  • 샘플 : 목록에 3 개의 요소가 있으므로 3
  • 시간 단계 : 여기에서 max_length = 4 length ( "hello this is xyz") = 4; length ( "어떻게 지내세요") = 4; length ( "great man ...") = 2 (문장 부호 "."를 제거한 후). 이것이 시간 단계라고 말하는 이유는 첫 번째 요소에서 "hello this is xyz"==> t0 ( "hello"), t1 ( "this"), t2 ( "is") 및 t3 ( "xyz")입니다.
  • 특징 : 각 단어에 대한 포함 크기. 예 : "hello": 50D 배열, "this": 50D 배열 등
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.