17. 순차 데이터와 순환 신경망

yellowsubmarine372·2024년 8월 7일
1

머신러닝

목록 보기
17/18

실습 없음!
.
.
.


1. 순차 데이터
순차 데이터는 텍스트나 시계열 데이터(시간의 순서가 포함된 데이터, 과거를 통해 미래를 예측할 수 있을 경우)와 같이 순서에 의미가 있는 데이터를 말함.
텍스트 데이터는 순서를 유지하며 신경망에 주입해야 하고 순서를 섞어서 주입하면 안된다. (I am a boy ≠ boy am I a)

피드포워드 신경망 vs 순환 신경망
앞서 배웠던 완전 연결 신경망과 합성곱 신경망이 모두 피드포워드 신경망에 속함.


2. 순환 신경망
순환신경망은 일반적인 완전 연결 신경망에 순환하는 고리를 추가한 것

포워드 신경망에서는 앞 셀의 출력을 이후의 셀에서 재사용하지 않지만, 순환 신경망에서는 이전의 셀의 정보를 계속 학습해 출력된 결과에 포함시킨다.

입력에 어떤 가중치를 곱하고 활성화 함수를 통과시켜 다음 층으로 보낸다. 달라지는 것은 층의 출력(은닉 상태)을 다음 타임 스텝에 재사용 한다는 것이다.


순환 신경망의 뉴런은 가중치가 2개다. 바로 이전 타임스텝의 은닉상태에 곱해지는 가중치이다. w_x는 입력에 곱해지는 가중치, w_h는 이전 타임스텝의 은닉 상태에 곱해지는 가중치이다.

타임스텝 1에서 셀의 출력 h_1이 타임스텝 2의 셀로 주입된다. 이때 w_b와 곱해진다. 마찬가지로 타임스텝 2에서 셀의 출력 h_2가 타임스텝 3의 셀로 주입된다. 이때에도 w_b 와 곱해진다.
모든 타임스텝에 사용되는 가중치는 w_b 하나임을 유의하자(동일한 가중치 사용)


3. 셀의 가중치와 입출력

  • 파라미터 개수
    모델 파라미터 수 = w_x + w_b+ 절편 = 12 + 9 + 3 + 24

순환층에 입력되는 특성의 개수가 4개이고 순환층의 뉴런이 3개일 때, 모두 완전연결되므로 w_x의 크기는 4x3 = 12이다. 다임 타입스텝에 제사용 되는 w_h는 이전 스텝의 뉴런에서 출력된 개수만큼 현 스텝 뉴런의 개수와 완전 연결되므로 뉴런 개수(3)x뉴런 개수(3) = 9이다.

  • 순환층 입력 차원

순환층은 일반적으로 샘플마다 2개의 차원을 가진다. 보통 하나의 샘플을 하나의 시퀀스라고 말한다. 시퀀스의 길이가 타임스텝의 길이가 되는 것.

  • 출력

입력된 시퀀스의 길이를 모두 읽어서 정보를 마지막 은닉 상태에 압축하여 전달하는 것처럼 보인다. 다만, 순환층을 여러개 쌓았을 때는 마지막 셀을 제외한 다른 셀은 모든 타임스텝의 은닉상태를 출력한다
(다음 셀의 입력에 맞춰 모든 타임스텝의 은닉 상태를 전달해야 된다)

  • 출력층의 구성

순환 신경망도 합성곱 신경망과 마찬가지로 밀집층을 두어 클래스를 분류한다. 다른 점은 마지막 셀의 출력이 1차원이기 때문에(마치 완전연결신경망처럼) 셀의 출력 그대로 밀집층에 사용할 수 있다.

profile
for well-being we need nectar and ambrosia

0개의 댓글