CS Repository 88

[밑바닥부터 시작하는 딥러닝] seq2seq, Encoder-Decoder

본 내용은 밑바닥부터 시작하는 딥러닝 2도서를 참고하여 작성되었습니다. 밑바닥부터 시작하는 딥러닝 2 - 예스24직접 구현하면서 배우는 본격 딥러닝 입문서 이번에는 순환 신경망과 자연어 처리다! 이 책은 『밑바닥부터 시작하는 딥러닝』에서 다루지 못했던 순환 신경망(RNN)을 자연어 처리와 시계열 데www.yes24.com 그동안 RNN과 LSTM의 구조와 구현을 자세하게 살펴봤다.먼저, 이제 이것들을 이용해서 "문장 생성"을 구현해보자.그리고 이를 확장한 seq2seq를 다뤄보며, 인코더-디코더 구조와 그 원리를 이해해보도록 하자.언어 모델을 사용한 문장 생성RNN을 사용한 문장 생성의 순서앞장에서 LSTM계층을 이용하여 언어 모델을 구현했는데, 그 모델의 신경망 구성은 아래 그림처럼 생겼다.그럼 이제 ..

[밑바닥부터 시작하는 딥러닝] LSTM

본 내용은 밑바닥부터 시작하는 딥러닝 2도서를 참고하여 작성되었습니다. 밑바닥부터 시작하는 딥러닝 2 - 예스24직접 구현하면서 배우는 본격 딥러닝 입문서 이번에는 순환 신경망과 자연어 처리다! 이 책은 『밑바닥부터 시작하는 딥러닝』에서 다루지 못했던 순환 신경망(RNN)을 자연어 처리와 시계열 데www.yes24.com 망각은 더 나은 전진을 낫는다.- 니체 -RNN의 문제점RNN은 시계열 데이터의 장기 의존 관계를 학습하기 어렵다.BPTT에서 기울기 소실 혹은 기울기 폭발이 일어나기 때문이다. 이번 절에서는 앞장에서 배운 RNN을 복습하고, RNN이 장기기억을 처리하지 못하는 이유를 알아보자.RNN 복습RNN계층은 순환 경로를 갖고 있다.그리고 그 순환을 펼치면 다음과 같이 옆으로 길게 뻗은 신경망이..

MatMul 노드(행렬곱)의 역전파

MatMul 노드의 역전파는 그 결과를 보면 다소 비직관적이다.따라서 이 MatMul의 역전파에 대해 좀 더 자세히 알아보자. 일단 MatMul 노드의 계산 그래프부터 확인해보자.현재 우리에게 주어진 식은 아래와 같다.x = 1xD 행렬W = DxH 행렬y = 1xH 행렬그리고, L에 대하여 x의 i번째 원소에 대한 편미분은 다음과 같이 구한다.우리는 근데 y와 x 사이의 관계를 이미 알고있다.따라서 위 식은 이렇게 치환이 가능하다.위 식에 의하여, L에 대하여 x의 i번째 원소에 대한 편미분의 경우 행렬곱을 이용해서 구해짐을 알 수 있게 된다.그럼 이제 L에 대하여 가중치 W에 대한 편미분을 구할 차례이다.이번엔 미니 배치 처리를 고려해 x에는 N개의 데이터가 담겨 있다고 가정해보자.이를 계산 그래프로..

[밑바닥부터 시작하는 딥러닝] RNN

본 내용은 밑바닥부터 시작하는 딥러닝 2도서를 참고하여 작성되었습니다. 밑바닥부터 시작하는 딥러닝 2 - 예스24직접 구현하면서 배우는 본격 딥러닝 입문서 이번에는 순환 신경망과 자연어 처리다! 이 책은 『밑바닥부터 시작하는 딥러닝』에서 다루지 못했던 순환 신경망(RNN)을 자연어 처리와 시계열 데www.yes24.com 지금까지 살펴본 신경망은 피드 포워드(앞먹임) 신경망이라는 유형의 신경망이다.피드포워드란, 흐름이 단방향인 신경망을 의미한다. 하지만 피드포워드 신경망은 시계열 데이터를 다루기 어렵고, 시계열 데이터에는 RNN이 필요하다. 피드포워드가 시계열 데이터를 다루지 못하는 이유와 RNN이 시계열 데이터를 다룰 수 있는 이유를 알아보며 RNN을 학습해보자.확률과 언어 모델먼저 word2vec을 ..

[밑바닥부터 시작하는 딥러닝] word2vec

본 내용은 밑바닥부터 시작하는 딥러닝 2도서를 참고하여 작성되었습니다. 밑바닥부터 시작하는 딥러닝 2 - 예스24직접 구현하면서 배우는 본격 딥러닝 입문서 이번에는 순환 신경망과 자연어 처리다! 이 책은 『밑바닥부터 시작하는 딥러닝』에서 다루지 못했던 순환 신경망(RNN)을 자연어 처리와 시계열 데www.yes24.com 앞 장에 이어서 이번 장의 주제도 단어의 분산 표현이다. (우리는 단어를 수치화된 벡터로 표현하고 싶었다.)이번 장에서는 단순한 word2vec를 이용해, '추론 기반 기법'에 대해 알아보자. 참고로 이번 장에서 구현할 word2vec은 '단순한' word2vec이다. 이후 다음장에서 몇가지 개선을 통해 '진짜' word2vec을 구현할 것이다.추론 기반 기법과 신경망단어를 벡터로 표현..

[밑바닥부터 시작하는 딥러닝] 자연어와 단어의 분산 표현

본 내용은 밑바닥부터 시작하는 딥러닝 2 도서를 참고하여 작성되었습니다. 밑바닥부터 시작하는 딥러닝 2 - 예스24직접 구현하면서 배우는 본격 딥러닝 입문서 이번에는 순환 신경망과 자연어 처리다! 이 책은 『밑바닥부터 시작하는 딥러닝』에서 다루지 못했던 순환 신경망(RNN)을 자연어 처리와 시계열 데www.yes24.com 우리는 이번 장부터 RNN의 세계를 향해 밑바닥부터 차근차근 나아가 볼 것이다.이번 장에서는 그 첫 번째, 컴퓨터에게 우리가 사용하는 단어를 이해시키기 위한 방법을 이해해보자.자연어 처리란?우리가 평소에 쓰는 말을 "자연어" 라고 한다.그러므로 NLP(Natural Language Processing)란, '자연어를 처리하는 분야'이고, 알기 쉽게 풀어보면 '우리의 말을 컴퓨터에게 ..

[밑바닥부터 시작하는 딥러닝] 학습 관련 기술들

본 내용은 밑바닥부터 시작하는 딥러닝 1도서를 참고하여 작성되었습니다. 밑바닥부터 시작하는 딥러닝 1 - 예스24딥러닝 분야 부동의 베스트셀러!머리로 이해하고 손으로 익히는 가장 쉬운 딥러닝 입문서이 책은 딥러닝의 핵심 개념을 ‘밑바닥부터’ 구현해보며 기초를 한 걸음씩 탄탄하게 다질 수 있도록www.yes24.com 매개변수 갱신모험가 이야기어떠한 모험가가 지도와 눈을 가리고 산을 오른다고 상상해보자.모험가는 어떻게 길을 찾을까?발의 감각을 느끼며, 기울기가 산 정상을 향하는 방향을 찾을 것이다.참고) 해당 지점이 진짜 정상이 아니라 작은 언덕일수도 있다.확률적 경사 하강법(SGD)시작하기 전, SGD를 복습해보자.경사 하강법의 매개변수 갱신 기법은 SGD만 있는게 아니다.그러므로 이 SGD를 모듈화하여..

[밑바닥부터 시작하는 딥러닝] 역전파

사실 이번 장에서는 밑바닥부터 시작하는 딥러닝 1의 경우 계산 그래프를 이용해 설명을 진행한다.해당 방식의 경우 그래프 개념으로 이해하기 쉽게 설명되어 있지만, 기계적인 암기 방법이라 시간복잡도 개선에 대한 인사이트를 얻긴 쉽지 않았다.따라서 이번 장의 내용은 책의 내용이 아닌 수식으로 정리한 방식으로 설명을 진행한다.계산 그래프와 시각 자료를 이용한 설명이 필요하시다면, 해당 책을 구입하셔서 보시는 것을 추천드립니다. 책 내용도 좋습니다.기존 방식먼저 들어가기 전에, 기존 방식의 문제점을 파악해보자.식 정리모델이 갖고 있는 가중치의 집합을 θ라 하자.아래를 "특정 y에 대한 손실 함수"라고 하자.전체 우리가 최소화하고자 하는 전체 손실 함수(Cost function)은 다음과 같이 표현될 것이다.수식에..

[밑바닥부터 시작하는 딥러닝] 신경망 학습

본 내용은 밑바닥부터 시작하는 딥러닝 1도서를 참고하여 작성되었습니다. 밑바닥부터 시작하는 딥러닝 1 - 예스24딥러닝 분야 부동의 베스트셀러!머리로 이해하고 손으로 익히는 가장 쉬운 딥러닝 입문서이 책은 딥러닝의 핵심 개념을 ‘밑바닥부터’ 구현해보며 기초를 한 걸음씩 탄탄하게 다질 수 있도록www.yes24.com 본 글은 선형 회귀와 로지스틱 회귀를 배경 지식으로 작성되었습니다.만약 읽다가 이해가 되지 않는 부분이 있다면, 해당 글들을 읽어 주시기 바랍니다.이전 장에서 우리는 신경망을 이용한 "추론"을 학습했다.하지만 여전히, 2장에서 해결하지 못한 "학습"의 영역은 해결하지 못했고, 가중치를 우리가 직접 설정해주고 추론을 수행했다.이번 장에서는 학습의 핵심 키인 "손실함수"와 최적의 손실 함수를 탐..

[밑바닥부터 시작하는 딥러닝] 신경망

본 내용은 밑바닥부터 시작하는 딥러닝 1도서를 참고하여 작성되었습니다. 밑바닥부터 시작하는 딥러닝 1 - 예스24딥러닝 분야 부동의 베스트셀러!머리로 이해하고 손으로 익히는 가장 쉬운 딥러닝 입문서이 책은 딥러닝의 핵심 개념을 ‘밑바닥부터’ 구현해보며 기초를 한 걸음씩 탄탄하게 다질 수 있도록www.yes24.com 우리는 지난 시간, 퍼셉트론을 이용해 비선형의 영역까지 문제를 해결하는 성과를 이룰 수 있었다!하지만, 여전히 가중치를 설정하는 작업은 여전히 우리가 수동으로 해야만 했다.학습 과정도 스스로 학습할 수 있도록 할 수 있는 방법이 없을까? 신경망이 이 문제에 대한 해결의 실마리를 제공해준다.가중치 매개변수의 적절한 값을 데이터로부터 자동으로 학습하는 능력은 신경망의 중요한 성질이다.퍼셉트론에서..