RNN(순환신경망: Recurrent Neural Network)
- RNN이 기존 신경망과의 차이점: 결과값을 출력층 방향으로도 보내면서, 다시 은닉층 노드의 다음 계산의 입력으로 보내는 특징
- 다양한 길이의 입력 시퀀스를 처리할 수 있는 인공 신경망
- 가장 기본적인 순환 신경망은 바닐라 RNN이며, 기울기 소실의 문제점을 개선한 LSTM, GRU 모델도 존재
- RNN은 텍스트 분류나 기계 번역과 같은 다양한 자연어 처리에 대표적으로 사용되는 인공 신경망
로그변환 => 어느쪽에 치우쳐져있는지 상관없이 차이가 큰 값을 작게 만들어서 정규분포에 가깝게 만들어 줍니다.
제곱변환 => 유니폼한 데이터, 특징이 잘 구분되지 않을 때 차이를 만들어서 구분해서 보고자 할 때 효과가 있습니다.
Keras에는 세 개의 내장 RNN 레이어
* keras.layers.SimpleRNN: 이전 타임스텝의 출력이 다음 타임스텝으로 공급되는 완전히 연결된 RNN입니다.
* keras.layers.LSTM: Hochreiter 및 Schmidhuber(1997년)에 의해 처음 제안되었습니다.
* keras.layers.GRU: Cho 등(2014년)에 의해 처음 제안되었습니다.
Bidirectional LSTM이란?
입력 시퀀스를 양방향으로 처리하여 이전 상태와 다음 상태 모두에 대한 정보를 사용하는 LSTM의 변형. 모델은 입력 시퀀스의 앞부분과 뒷부분 모두에서 유용한 정보를 추출할 수 있습니다!
- 첫 번째 층은 Bidirectional 레이어로, 64개의 유닛을 가지는 LSTM 레이어를 감싸고 있습니다. 이 레이어는 입력 시퀀스를 양방향으로 처리하며, return_sequences=True 옵션을 통해 출력 시퀀스를 반환합니다.
- 두 번째 층은 다시 Bidirectional 레이어로, 32개의 유닛을 가지는 LSTM 레이어를 감싸고 있습니다. 이 레이어는 입력 시퀀스를 양방향으로 처리하며, 출력 시퀀스를 반환하지 않습니다.
- 마지막 층은 Dense 레이어로, 출력 노드가 하나인 회귀 모델을 만들기 위해 1을 지정했습니다.
모델을 작성할 때
1) API 사용해서 문제를 해결하는 방법을 찾아서 동작을 확인
2) API 내부 소스코드를 확인
3) 내부 소스코드를 보고 수식이나 다른 알고리즘을 이해하는 방법으로 학습하는 것을 추천합니다.
- 순환신경망의 층 구성방법
DNN : 입력층, 은닉층, 출력층으로 구성 , 입력층에서 입력을 받아 은닉층에서 가중치를 계산하고 활성화 함수를 통해 출력값을 계산하며, 출력층에서는 최종 결과를 출력합
CNN : 합성곱과 풀링 레이어로 구성, 입력 이미지를 작은 필터로 합성곱하여 특징 맵을 만들고, 이를 풀링하여 출력
RNN: 입력층, 은닉층, 출력층으로 구성, 은닉층이 다음 시점의 입력으로 전달되어 다음 출력을 계산
- 순환 신경망의 종류 RNN, LSTM, GRU, bidirectional(양뱡향)
- 층 구성 > 컴파일 > 학습 > 예측 > 값 복원(minmaxsclaing)
시퀀스 방식의 인코딩은 BOW(Bag of Words)나 TF-IDF(Term Frequency-Inverse Document Frequency)와는 다른 방식으로 텍스트를 표현합니다.
BOW는 문서 내 단어의 출현 빈도를 세서 단어의 빈도 정보를 벡터로 나타내는 방식입니다. 이러한 방식은 각 단어의 순서를 고려하지 않으므로 문맥 정보를 반영하지 못합니다.
TF-IDF는 BOW와 비슷하지만, 문서 내에서 자주 등장하는 단어의 가중치를 낮추고 드물게 등장하는 단어의 가중치를 높이는 방식입니다. 이러한 방식은 BOW보다는 문맥 정보를 고려할 수 있지만, 여전히 단어의 순서는 고려하지 않습니다.
시퀀스 방식의 인코딩은 문맥 정보를 반영할 수 있습니다. 예를 들어, 단어들의 시퀀스를 고려하여 문장이나 문서를 벡터로 나타낼 수 있습니다. 이러한 방식으로는 단어의 순서가 중요한 경우, 예를 들어 자연어 처리 분야에서 문장의 감성 분석이나 기계 번역 등에서 효과적인 성능을 보입니다. 따라서, BOW나 TF-IDF와 시퀀스 방식의 인코딩은 각각 장단점이 있으며, 어떤 방식을 사용할지는 문제의 특성과 목적에 따라 다를 수 있습니다.
'멋쟁이사자처럼 AI School 8기(fin) > TIL(Today I Learn)' 카테고리의 다른 글
[멋쟁이사자처럼 AI스쿨] TIL(23.4.25) 추천시스템 (0) | 2023.04.25 |
---|---|
[멋쟁이사자처럼 AI스쿨] TIL(23.4.24) 자연어처리, 트랜스포머 (0) | 2023.04.24 |
[멋쟁이사자처럼 AI스쿨] TIL(23.4.18) 전이학습 (0) | 2023.04.18 |
[멋쟁이사자처럼 AI스쿨] TIL(23.4.17) CNN (0) | 2023.04.17 |
[멋쟁이사자처럼 AI스쿨] TIL(23.4.12) 딥러닝3 (0) | 2023.04.12 |