728x90
오토인코더
신경망의 한 종류로서 입력데이터를 코드라고 부르는 은닉층으로 인코딩하는 인코더와
인코딩된 code를 다시 디코딩하는 디코더로 구성
인코딩은 원래 데이터를 차원 축소하는 것, 디코딩은 차원 축소된 데이터를 다시 원래 데이터로 복원하는 것
AutoEncoder 구조
은닉층
은 은닉층에서의 활성화함수 - 가중치 행렬 W1, 편향 벡터 b1은 랜덤하게 초기화하고 역전파법으로 학습
출력층
- code 데이터에서 출력층으로 변환할 때 사용하는 가중치 행렬 W2, 편향 벡터 b2
AutoEncoder의 손실
AutoEncoder와 Gan의 차이
- GAN으로 생성한 사람 얼굴은 실제 같아 보이지만 세상에 존재하지 않는 사람의 얼굴 이미지를 생성
- AutoEncoder로 생성한 얼굴 이미지는 기존 데이터에서 존재하는 사람의 특징을 잘 살린 이미지
자연어 처리
자연어처리란 컴퓨터가 인간의 언어를 이해, 생성, 조작할 수 있도록 해주는 인공 지능(AI)의 한 분야
토큰: 문법적으로 가장 작은 단위
토큰화(tokenize): 전체 글을 토큰으로 나누는 것
워드카운트: 토큰화하여 어떤 토큰이 자주 사용되는지 세는 것
원핫 인코딩은 글이 길어질 수록 벡터의 길이가 함께 커지는 문제점이 있기 때문에
단어 임베딩 기법을 활용하면 인덱스 길이 상관없이 사용자가 지정한 벡터의 길이로 모든 단어 표현 가능
임베딩 원리
- 임베딩을 위한 행렬(weight)은 랜덤값으로 정함
- 행 row 개수는 임베딩할 단어의 개수
- 열 column 개수는 임베딩 벡터의 크기만큼 정하기(hyperparameter)
1x5(단어) 짜리 문장 * 5(단어) x 3(임베딩 벡터) = 1 x 3
seq2seq 모형
입력값으로 시퀀스를 받고 출력값도 시퀀스를 출력하는 모형
- 인풋 시퀀스와 아웃풋 시퀀스가 같은 경우 (인풋 시퀀스 길이 정보가 필수적)
- 인풋 시퀀스와 아웃풋 시퀀스의 길이가 다른 케이스 (타겟 예측을 위해 인풋 시퀀스 전체가 필요)
seq2seq는 개념적으로는 RNN + AutoEncoder
구조적으로는 두개의 RNN 모형을 합친 형태 (LSTM, GRU 자주 사용)
인코더
- 인코더는 입력 시퀀스를 읽는 역할
- 인코더 내부에는 1개의 타임 스텝마다 한 개의 LSTM 모형이 존재
- -> 여러개의 LSTM 모형 존재, 큰 차원의 벡터 입력 가능
- 인코더는 입력 시퀀스를 처리하고 은닉 state만 return (output X) : 는 context
- 하나의 압축된 벡터는 Context Vector가 됨
디코더
- 디코더는 은닉 벡터(context vector)를 초기벡터로 입력받아 출력 시퀀스를 출력
- 타깃 시퀀스의 한 시점 이전 문자가 주어질 때, 타깃 시퀀스의 바로 다음 문자를 예측하도록 학습
- teacher forcing: 디코더는 타깃 시퀀스를 같은 시퀀스로 변하게 학습되지만 1시점 미래로 offset함
seq2seq은 단어 기반 분석 방법과, 문자 단위로 분석하는 방법이 있음
반응형
'AI > Books' 카테고리의 다른 글
The Quest for Machine Learning - Chap1 피처 엔지니어링 2 (텍스트 표현 모델) (0) | 2024.03.04 |
---|---|
The Quest for Machine Learning - Chap1 피처 엔지니어링 1 (피처 정규화) (0) | 2024.02.01 |
선형대수와 통계학으로 배우는 머신러닝 - Chap12-1 딥러닝 (퍼셉트론 - GRU) (0) | 2023.12.25 |
선형대수와 통계학으로 배우는 머신러닝 - Chap11 비지도 학습 (0) | 2023.12.25 |
선형대수와 통계학으로 배우는 머신러닝 - Chap10 차원 축소 (0) | 2023.12.25 |