본문 바로가기

전체 글36

8장 8.1 어텐션의 구조 8.2어텐션을 갖춘 seq2seq 구현 8.3 어텐션 평가 8.4 어텐션에 관한 남은 이야기 8.5 어텐션 응용 8.6 정리 우리는 2개의 RNN을 연결하여 하나의 시계열 데이터를 다른 시계열 데이터로 변환한 모델인 seq2seq를 배웠다. 이번 장에서는 seq2seq의 가능성과 RNN의 가능성을 한 걸음 더 깊이 탐험한다. 8.1 어텐션의 구조 seq2seq를 더 강력하게 하는 어텐션 메커니즘이라는 아이디어를 소개한다. 이는 필요한 정보에만 주목할 수 있게 해주며 seq2seq가 안고 있던 문제를 해결하게 도와준다. 1) seq2seq의 문제점 seq2seq에서는 Encoder가 시계열 데이터를 인코딩한다. 그리고 인코딩된 정보를 Decoder에 전달한다. 이때 Encoder의 출.. 2023. 8. 28.
7장 7.1 언어 모델을 사용한 문장 생성 7.2 seq2seq 7.3 seq2seq 구현 7.4 seq2seq 개선 7.5 seq2seq를 이용하는 애플리케이션 7.6 정리 이번 장에서는 언어 모델을 사용해 '문장 생성'을 수행한다. 구체적으로는 말뭉치를 사용해 학습한 언어 모델을 이용하여 새로운 문장을 만들어낸다. 또한 seq2seq라는 새로운 구조의 신경망을 다룬다. Seq2Seq는 인공 신경망을 사용하여 입력 시퀀스를 다른 형태의 출력 시퀀스로 변환하는 모델 구조를 말한다. 7.1 언어 모델을 사용한 문장 생성 1) RNN을 사용한 문장 생성의 순서 앞장에서 구현한 모델의 신경망 구성이다. 언어 모델에게 문장을 생성시키는 순서를 알아보자 "you say goodbye and I say hello"라는 .. 2023. 8. 21.
6장 6.1 RNN의 문제점 6.2 기울기 소실과 LSTM 6.3 LSTM 구현 6.4 LSTM을 사용한 언어 모델 6.5 RNNLM 추가 개선 6.6 정리 5장에서 본 RNN은 장기 의존 관계를 잘 학습할 수 없다. 이번 장에서는 RNN을 대신하는 계층으로써 LSTM과 GRU와 같은 게이트가 추가된 RNN을 소개한다. 6.1 RNN의 문제점 BPTT에서 기울기 소실 혹은 기울기 폭발이 일어나기 때문에 RNN은 장기 의존 관계를 잘 학습하지 못한다. 1) RNN 복습 RNN은 순환 경로를 가지고 있다. RNN 계층은 시계열 데이터인 x_t를 입력하면 h_t를 출력한다. 이 h_t는 RNN 계층의 은닉 상태라고 하여 과거 정보를 저장한다. RNN의 특징은 바로 이전 시각의 은닉 상태를 이용한다는 점이다. 2) .. 2023. 8. 14.
5장 5.1 확률과 언어 모델 5.2 RNN이란 5.3 RNN 구현 5.4 시계열 데이터 처리 계층 구현 5.5 RNNLM 학습과 평가 5.6 정리 지금까지 살펴본 신경망은 피드포워드라는 유형의 신경망. 피드포워드란 흐름이 단방향인 신경망이다. 피드포워드 신경망은 구성이 단순하여 구조를 이해하기 쉽고 많은 문제에 응용이 가능하다. 그러나 피드포워드 신경망은 시계열 데이터의 성질을 충분히 학습할 수 없다. => 순환신경망 RNN 등장 5.1 확률과 언어 모델 1) word2vec을 확률 관점에서 바라보다. 지금까지는 맥락을 항상 좌우 대칭으로 생각해왔다. 맥락을 왼쪽 윈도우만 고려보자 이 경우 CBOW 모델이 출력할 확률이다. CBOW모델이 다루는 손실 함수이다. (교차 엔트로피 오차에 의해 유도한 결과) 2).. 2023. 8. 13.
4장 4.1 word2vec 개선 4.2 word2vec 개선_2 4.3 개선판 word2vec 학습 4.4 word2vec 남은 주제 4.5 정리 CBOW모델은 말뭉치에 포함된 어휘 수가 많아지면 계산량도 커진다. word2vec의 속도개선을 위해 3장의 단순한 word2vec에 Embedding라는 새로운 계층 도입 / 네거티브 샘플링이라는 새로운 손실 함수 도입. 4.1 word2vec 개선 앞 장의 CBOW모델은 단어 2개를 맥락으로 사용해 이를 바탕으로 하나의 단어(타깃)를 추측한다. 이때 입력 측 가중치(Win)와의 행렬 곱으로 은닉층이 계산되고 다시 출력 측 가중치(Wout)와의 행렬 곱으로 각 단어의 점수를 구한다. 이 점수에 소프르맥스 함수를 적용해 각 단어의 출현 확률을 얻고 이 확률을 정답.. 2023. 8. 7.
3장 3.1 추론 기반 기법과 신경망 3.2 단순한 word2vec 3.3 학습 데이터 준비 3.4 CBOW 모델 구현 3.5 word2vec 보충 3.1 추론 기반 기법과 신경망 단어를 벡터로 표현하는 방법: 통계 기반 기법 & 추론 기반 기법 1) 통계 기반 기법의 문제점 대규모 말뭉치를 다룰 때 문제 발생 거대 행렬에 SVD를 적용하는 일은 불가능 함. (SVD = 특이값 분해) 통계 기반 기법은 말뭉치 전체의 통계(동시발생행렬과 PPMI 등)를 이용해 단 1회의 처리(SVD 등)만에 단어의 분산 표현을 얻는다. 추론 기반 기법에서는 미니배치로 학습하는 것이 일반적이다. 통계 기반 기법: 학습 데이터 한꺼번에 처리(배치학습). 추론 기반 기법: 학습 데이터의 일부를 사용해 순차적으로 학습(미니배치 학습).. 2023. 7. 20.
2장 자연어와 단어의 분산 표현 2.1 자연어 처리란 2.2 시소러스 2.3 통계 기반 기법 2.4 통계 기반 기법 개선하기 2.1 자연어 처리란 자연어: 사람들이 평소에 쓰는 말 자연어 처리: 컴퓨터가 사람 말을 이해하도록 하는 것 자연어 처리 예시 : 검색 엔진, 기계 번역, 질의응답 시스템, 문장 자동 요약, 감정 분석 등 자연어는 같은 의미의 문장도 여러 방법으로 표현할 수 있으며 중의적 속성도 있기 때문에 의미나 형태가 유연하게 바뀐다. 이러한 속성 때문에 컴퓨터에게 자연어를 이해시키는 작업이 힘들다. 말의 의미는 단어로 구성된다. 따라서 자연어를 컴퓨터에게 이해시키기 위하여 컴퓨터에게 단어를 이해시키는 작업이 중요하다. 이를 위한 3가지 방법이 있다. - 시소러스를 활용한 기법 - 통계 기반 기법 .. 2023. 7. 17.
회귀 vs 분류 개념과 알고리즘 종류 지도 학습의 종류에는 회귀(Regression)와 분류(Classification)가 있다. 이 둘은 비슷한 개념이지만 서로 다른 종류의 출력값을 내놓는 모델을 학습하는 데에 차이가 있다. 우리가 사용하는 데이터는 이산적인 값이나 연속적인 값을 갖는 데이터이다. 이산적인 값은 값이 연속적으로 분포하지 않는 데이터이다. (유무 데이터, 상표명, 상품 종류 등) 이 외는 모두 연속적인 값을 갖는다고 한다. (확률 데이터, 나이와 주거지를 바탕으로 소득 예측 등) 분류는 미리 정의된 여러 클래스 레이블 중 하나를 예측한다. 입력 값들이 출력 값의 클래스에 얼마나 정확도를 보이는가를 파악하고 가장 정확도가 높은 클래스로 분류한다. 회귀는 그래프에 마구잡이로 분포하는 값을 평균제곱오차 등을 이용해 분포하는 값들을.. 2023. 7. 13.
CNN(Convolutional neural network)_개념 CNN은 이미지를 분류하기 위해 개발된 네트워크이다. 이미지는 픽셀로 되어있는데 픽셀의 색을 컴퓨터가 이해할 수 있도록 숫자로 변경을 한 후 신경망을 통해 계산을 한다. 딥러닝 이전의 머신러닝을 활용한 이미지 분류 순서는 먼저 이미지의 특징을 찾는다. 이미지의 특징을 찾은 후에 분류를 진행한다.(의사결정나무 랜덤 포레스트, K 근접이웃...) 딥러닝은 여러 신경망을 넣어보고 결과값을 판단한다. 감으로 layer를 쌓아서 계산을 해보니 머신러닝보다 빠르게 학습이 가능하고 정확도 또한 높기 때문에 딥러닝을 사용하는 것이다. 딥러닝은 자체적으로 역전파 방식을 활용하여 계산 시스템이 업데이트되기 때문에 좀 더 쉽게 모델을 만들 수 있다. CNN은 Convloution layer와 Pooling layer의 조합.. 2023. 6. 30.
8장 8.1 더 깊게 8.2 딥러닝의 초기 역사 8.3 더 빠르게(딥러닝 고속화) 8.4 딥러닝의 활용 8.5 딥러닝의 미래 8.6 정리 8.1 더 깊게 1) 더 깊은 신경망으로 신경망 특징 층이 깊어질수록 채널 수가 늘어난다. 3*3의 작은 필터를 사용한 합성곱 계층(Conv) 활성화 함수는 ReLU 풀링 계층 추가해 중간 데이터의 공간 크기를 줄여나감 완전연결 계층 뒤에 드롭 아웃 계층 사용 - 완전 연결 신경망이란, 인접하는 계층의 모든 뉴런과 결합되어 있는 신경망을 말한다. 입력 데이터와 가중치가 1대 1로 대응하는 것을 완전 연결(Fully-Connected)이라고 하며, 행렬의 내적(Affine)으로 표현된다. 가중치 매개변수 갱신(Adam을 사용해 최적화) 가중치 초기값: 'He' 초기값 (ReL.. 2023. 6. 29.