티스토리 뷰

반응형

원본

 

 

  • 당신의 LSTM 모델의 입력 시퀀스 데이터를 준비하는 방법에 대해 이해하는 것이 어려울 수 있음.
  • 종종 LSTM 모델에 대해 입력층을 정의하는 방법에 대해 혼란이 있음.
  • 또한, 당신의 숫자의 1차원 또는 2차원 행렬일 수 있는 시퀀스 데이터를 LSTM layer에 필요한 3차원 형식으로 변환하는 방법에 대한 혼란도 있음.
  • 이 튜토리얼에서 당신은 LSTM 모델의 input layer를 정의하는 방법과 LSTM 모델에 대해 당신이 로드한 데이터를 재구성하는 방법을 발견할 것임.
  • 이 튜토리얼을 완료한 후에, 당신을 알 것임:
    1. LSTM 입력층을 정의하는 방법.
    2. LSTM 모델에 대해 1차원 시퀀스 데이터를 재구성하고, 입력층을 정의하는 방법.
    3. LSTM 모델의 여러 병렬 시리즈 데이터를 재구성하고, 입력층을 정의하는 방법.

 

튜토리얼 개요

  • 이 튜토리얼은 네 부분으로 나눠짐.
    1. LSTM 입력층.
    2. 단일 입력 샘플을 이용한 LSTM 예시.
    3. 다중 입력 특징(feature)들을 이용한 LSTM 예시.
    4. LSTM 입력 팁.

 

LSTM 입력층

  • LSTM 입력층은 네트워크의 첫 번째 은닉층에"input_shape" 매개변수가 명시됨.
  • 이 것은 초심자들 (beginnners) 에게 혼란을 야기할 수 있음.
  • 예를 들어, 아래의 하나의 은닉층과 하나의 밀집된 (dense) 결과층을 이용한 네트워크의 예시임.

  • 이 예시에서 LSTM 층은 입력의 모양을 명시해야함. 모든 LSTM층의 입력은 3차원일 것임.
  • 이 입력의 3차원은 다음과 같음:
    1. 샘플 : 한 개의 시퀀스는 한 개의 샘플임. 배치는 하나 또는 그 이상의 샘플들로 이루어져 있음.
    2. 타임 스텝 : 한 개의 타임 스텝은 샘플내 관측의 한 지점임.
    3. 특징 : 한 개의 특징은 한 개의 타임 스텝 관측임.
  • 이 것은 입력층이 모델에 적합시킬 때와 예측할 때 3차원 데이터 배열을 기대한다는 것을 의미함. 비록 배열의 구체적인 차원이 단일 값을 포함함 (하나의 샘플 또는 하나의 특징).
  • 당신의 LSTM 네트워크의 입력층을 정의할 때, 네트워크는 당신이 1개 또는 그 이상의 샘플들을 가지고 있을 것이라고 가정하고 당신이 타임 스텝의 수와 특징의 수를 명시하도록 요구함.
  • 당신은 "input_shape" 매개변수의 투플에 명시하여 이러한 것을 수행할 수 있음.
  • 예를 들어, 아래의 모델은 1개 또는 그 이상의 샘플들과 50개의 타임 스텝, 그리고 2개의 특징이 예상되는 입력층을 정의한 것임.

  • 이제 우리는 LSTM 입력층과 3차원 입력의 기대치를 정의하는 방법을 알게 됐으며, LSTM에 대한 데이터를 준비할 수 있는 몇 가지 예시들을 볼 것임.

 

단일 입력 샘플을 이용한 LSTM의 예시

  • 당신이 여러 개의 타임 스텝을 가진 하나의 시퀀스와 하나의 특징이 있는 사례를 고려해보겠음.
  • 예를 들어, 이 것은 10개의 값을 가진 한 시퀀스가 될 수 있음.

  • 우리는 Numpy 배열로 숫자들의 시퀀스를 정의할 수 있음.

  • 그런 다음, 우리는 이 1차원 배열을 각 타임 스텝마다 1개의 샘플, 10개의 타임 스텝, 1개의 특징을 가진 3차원 배열로 재구성하기 위해 Numpy 배열에 reshape() 함수를 사용할 수 있음.
  • 배열에서 호출될 때의 reshape() 함수는 배열의 새로운 모양을 정의하는 투플을 하나의 매개변수로 취함.
  • 우리는 어떤 숫자의 투플도 전달할 수 없음. reshape은 배열로 데이터를 균등하게 재조직해야함.

  • 일단 재구성되면, 우리는 배열의 새로운 모양을 출력할 수 있음.

  • 이 데이터는 이제 (10, 1) 의 "input_shape"을 가진 LSTM의 입력 (X) 로써 사용될 준비가 됐음.

 

다중 입력 특징들을 이용한 LSTM의 예시

  • 당신의 모델에 대한 입력으로 다중 병렬 시리즈를 가진 사례를 고려해보겠음.
  • 예를 들어, 이 것은 10개의 값을 가진 두 개의 병렬 시리즈가 될 수 있음.

  • 우리는 이러한 데이터를 2열 10행의 행렬로 정의할 수 있음.

  • 이 데이터는 10개의 타임 스텝과 2개의 특징을 가진 1개의 샘플로 구성될 수 있음.
  • 다음과 같이 3차원 배열로 재구성될 수 있음.

  • 이 데이터는 이제 (10, 2) 의 "input_shape"을 가진 LSTM의 입력 (X) 로써 사용될 준비가 됐음.

 

 

 

LSTM 입력에 대한 팁들

  • 이 구역에서는 LSTM에 대한 당신의 입력 데이터를 준비할 때 당신에게 도움을 줄 수 있는 몇 가지 팁들을 나열함.
    1. LSTM 입력층은 3차원이여야 함.
    2. 3차원 입력이 의미하는 것은 다음과 같음 : 샘플, 타임 스텝, 그리고 특징.
    3. LSTM 입력층은 첫 번째 은닉층의 "input_shape" 매개변수에 의해 정의됨.
    4. "input_shape" 매개변수는 타임 스텝과 특징의 수를 정의하는 두 개의 값을 가진 투플을 취함.
    5. 샘플의 수는 1개 또는 그 이상이 될 수 있음.
    6. Numpy 배열의 reshape() 함수는 당신의 1차원 또는 2차원 데이터를 3차원으로 재구성하는데 사용될 수 있음.
    7. reshape() 함수는 새로운 모양을 정의하는 매개변수로써 투플을 취함.

 

요약

  • 이 튜토리얼에서 당신은 LSTM에 대한 입력층을 정의하는 방법과 LSTM의 입력에 대한 당신의 시퀀스 데이터를 재구성하는 방법을 발견했음.
  • 구체적으로, 당신이 배운 것들은 다음과 같음 :
    1. LSTM 입력층을 정의하는 방법.
    2. LSTM 모델에 대한 1차원 시퀀스 데이터를 재구성하고 입력층을 정의하는 방법.
    3. LSTM 모델에 대한 다중 병렬 시리즈 데이터를 재구성하고 입력층을 정의하는 방법.

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
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 31
글 보관함