순차 데이터(sequential data)
- 텍스트나 시계열 데이터(time series data)와 같이 순서에 의미가 있는 데이터
- 예) 글, 대화, 일자별 날씨, 일자별 판매 실적
* 완전 연결 신경망이나 합성곱 신경망처럼 입력 데이터의 흐름이 앞으로만 전달되는 신경망은 피드포워드 신경망(feedforward neural network, FFNN)이라 부름
순환 신경망(recurrent neural network, RNN)
- 인공 신경망의 한 종류로, 순차 데이터를 처리하기 위해 고안된 순환층을 1개 이상 사용한 신경망
- 이전 샘플에 대한 정보를 가지고 있고, 이 샘플을 처리하는 한 단계를 타임스탭(timestep)이라 부름
- 타임스탭은 층을 거칠수록 순환되는 정보가 희미해짐
- 순환 신경망에선 층을 셀(cell)이라 부름
- 순환 신경망에선 셀의 출력을 은닉상태(hidden state)라고 부름
- 은닉층의 활성화함수는 일반적으로 하이퍼볼릭 탄젠트(hyperbolic tangent)함수 tanh가 많이 사용됨
말뭉치(corpus)
- 자연어 처리에서 사용하는 텍스트 데이터의 모음, 훈련 데이터셋
토큰(token)
- 텍스트에서 공백으로 구분되는 문자열
- 일반적인 영어 문장은 모두 소문자로 바꾸고 구둣점을 삭제한 다음 공백을 기준으로 분리
- 한국어는 형태소 분석이 필요함
- 하나의 토큰이 하나의 타임스탭에 해당한다고 볼 수 있음
원-핫 인코딩(one-hot encoding)
- 어떤 클래스에 해당하는 원소만 1이고 나머지는 모두 0인 벡터
- 정수로 변환된 토큰을 원-핫 인코딩으로 변환하려면 어휘 사전 크기의 벡터가 만들어짐
- 훈련 데이터가 커질수록 입력 데이터가 엄청 커짐
단어 임베딩(word embedding)
- 정수로 변환된 토큰을 비교적 작은 크기의 실수 밀집 벡터로 변환
- 메모리를 효율적으로 사용하고 단어 사이의 관계를 표현할 수 있기 때문에 자연어 처리에서 좋은 성능 발휘
핵심 패키지와 함수
TensorFlow
pad_sequences()
- 시퀀스 길이를 맞추기 위해 패딩을 추가
- (샘플 개수, 타임스탭 개수) 크기의 2차원 배열
- maxlen 매개변수로 원하는 시퀀스 길이를 조정, 이 값보다 긴 시퀀스는 잘리고 짧은 시퀀스는 패딩
- padding 매개변수는 패딩을 추가할 위치 지정 기본값 'pre'는 시퀀스 앞을 패딩, 'post'는 시퀀스 뒤를 패딩
- truncating 매개변수는 긴 시퀀스에서 잘라버릴 위치를 지정 기본값 'pre'는 앞을 잘라내고 'post'는 뒤를 잘라냄
to_categorical()
- 정수 시퀀스를 원-핫 인코딩으로 변환
- 토큰을 원-핫 인코딩 하거나 타깃값을 원-핫 인코딩할 때 사용
- num_classes 매개변수에서 클래스 개수를 지정할 수 있음. 지정하지 않으면 자동
SimpleRNN
- 케라스의 기본 순환층 클래스
- 첫 번째 매개변수에 뉴런의 개수 지정
- activation 매개변수에서 활성화 함수 지정. 기본값 하이퍼볼릭 탄젠트 'tanh'
- dropout 매개변수에서 입력에 대한 드롭아웃 비율 지정
- return_sequences 매개변수에서 모든 타임스탭의 은닉상태를 출력할지 결정. 기본 값 False
Embedding
- 단어 임베딩을 위한 클래스
- 첫 번째 매개밴수에서 어휘 사전의 크기 지정
- 두 번째 매개변수에서 Embedding 층이 출력할 밀집 벡터의 크기 지정
- input_length 매개변수에서 입력 시퀀스의 길이 지정. Embedding층 바로 뒤에 Flatten이나 Dense클래스가 올 때 필수
참고
http://www.yes24.com/Product/Goods/96024871
혼자 공부하는 머신러닝+딥러닝 - YES24
- 혼자 해도 충분하다! 1:1 과외하듯 배우는 인공지능 자습서 이 책은 수식과 이론으로 중무장한 머신러닝, 딥러닝 책에 지친 ‘독학하는 입문자’가 ‘꼭 필요한 내용을 제대로’ 학습할 수 있
www.yes24.com
'AI > 머신러닝&딥러닝' 카테고리의 다른 글
feature (0) | 2022.06.20 |
---|---|
EDA: Exploratory Data Analysis (0) | 2022.05.31 |
진짜 나를 위한 딥러닝 #합성곱 신경망 (0) | 2022.02.07 |
진짜 나를 위한 딥러닝 #신경망 모델 훈련 (0) | 2022.02.04 |
진짜 나를 위한 딥러닝 #심층 신경망 (0) | 2022.02.03 |