일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 가비아
- image
- deeplearning
- CBOW
- Selenium
- 셀레니움
- 밑바닥부터시작하는딥러닝
- word2vec
- MySQL
- 수동설치
- 밑바닥부터시작하는딥러닝2
- Lamp
- AndroidStudio를활용한안드로이드프로그래밍
- 딥러닝
- jupyter
- 크롤링
- 컴파일설치
- 생활코딩
- 한빛아카데미
- 머신러닝
- 소스설치
- 논문리뷰
- 한빛미디어
- Crawling
- aws
- Apache
- 프로그램새내기를위한자바언어프로그래밍
- 예제중심HTML&자바스크립트&CSS
- attention
- 비지도학습
- Today
- Total
목록밑바닥부터시작하는딥러닝2 (9)
안녕, 세상!
(1) RNN 구현 구현해야 할 신경망은 가로 방향으로 성장한 신경망입니다. 이 가로 방향으로 성장하는 신경망을 '하나의 계층'으로 구현하면 다음과 같습니다. 위의 그림과 같이 상하 방향의 입출력을 하나로 묶으면 하나의 계층으로 볼 수 있습니다. Time RNN 계층 내에서 한 단계의 작업을 수행하는 계층을 'RNN 계층'이라고 하고, T개 단계분의 작업을 한꺼번에 처리하는 계층을 'Time RNN 계층'이라고 합니다. (시계열 데이터를 한꺼번에 처리하는 계층 앞에는 'Time'이라는 표현을 붙이겠음) ① RNN 구현 미니 배치를 적용한 RNN의 식은 다음과 같습니다. 이를 바탕으로 작성한 RNN 클래스의 코드는 다음과 같습니다. class RNN: def __init__(self, Wx, Wh, b):..
지금까지 살펴본 신경망은 피드 포워드(feed forward)라는 유형의 신경망입니다. feed forward란 흐름이 단방향인 신경망을 말합니다. feed forward 신경망은 구성이 단순하여 많은 문제에 응용할 수 있지만 시계열 데이터를 잘 다루지 못한다는 단점이 있습니다. 단순한 시계열 데이터의 성질을 단방향 신경망에서는 충분히 학습할 수 없습니다. 그래서 순환 신경망(Recurrent Neural Network)이 등장하게 됩니다. (1) 확률과 언어 모델 이전의 CBOW 모델의 맥락은 타깃을 중심으로 좌우 대칭으로 생각해왔었습니다. 이번에는 맥락을 왼쪽 윈도우만으로 한정해보겠습니다. 왼쪽 두 단어만을 맥락으로 생각하면 출력 확률은 다음과 같습니다. 앞서 CBOW 모델의 학습으로 수행하는 일은 ..
직전 설명에서 기존 word2vec을 개선하였습니다. (1) CBOW 모델 구현 앞 장에서 단순한 SimpleCBOW 클래스를 개선할 것입니다. 개선점은 Embedding 계층과 Negative Sampling Loss 계층을 적용하는 것입니다. 개선된 CBOW 모델 클래스 코드는 다음과 같습니다. #import sys #sys.path.append('..') #from common.np import * # import numpy as np #from common.layers import Embedding #from ch04.negative_sampling_layer import NegativeSamplingLoss class CBOW: def __init__(self, vocab_size, hidden..
앞서 구현한 간단한 CBOW 모델은 말뭉치에 포함된 어휘 수가 많아지면 계산량도 커져서 시간이 너무 오래 걸립니다. 이를 위해 두 가지 개선을 합니다. 1. Embedding이라는 새로운 계층을 도입합니다. 2. 네거티브 샘플링이라는 새로운 손실 함수를 도입합니다. 이 두 가지 개선으로 진정한 word2vec을 구현할 수 있습니다. (1) word2vec 개선 1 앞에서 사용한 간단한 CBOW 모델을 이용하여 말뭉치에 어휘가 100만 개라고 가정한다면 입력층과 출력층에 각 100만 개의 뉴런들이 존재합니다. 이러한 많은 뉴런 때문에 중간 계산에 많은 시간이 소요됩니다. 구체적으로 다음 두 부분에서 병목현상이 발생합니다. 1. 입력층의 원핫 표현과 가중치 행렬 W(in)의 곱 2. 은닉층과 가중치 행렬 W..