일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- REACTJS
- Regular expression
- spring cloud
- upgrade
- nodejs
- Chunk
- MySQL
- mysql 5.5
- update
- eslint
- migration
- current_date
- npm
- log4j2
- JavaScript
- expire_logs_days
- git
- REACT
- Node
- spring
- Webpack
- 퀵소트
- Spring Batch
- regex
- Effective Java
- java
- Express
- 정규표현식
- Effective Java 3/e
- log_bin
- Today
- Total
내 세상
케라스 창시자에게 배우는 딥러닝 > 8장 생성 모델을 위한 딥러닝 본문
인공 지능이 사람의 지능을 어떤 다른 것으로 대체하지 않는다. 인공 지능은 우리 생활과 일에 지능을 더한다. 이 지능은 다른 종류의 지능이다.
AI는 Artificial Intelligence가 아니라 Augmented Intelligence이다.
LSTM으로 텍스트 생성하기
생성 RNN의 간단한 역사
- 1997년 LSTM 알고리즘 개발
시퀀스 데이터를 어떻게 생성할까?
- 이전 토큰을 입력으로 사용해서 시퀀스의 다음 1개 또는 몇 개의 토큰을 RNN 또는 CNN으로 예측하는 것
- language model
- 이전 토큰들이 주어졌을 때 다음 토큰의 확률을 모델링할 수 있는 네트워크
- 언어의 통계적 구조인 잠재 공간을 탐색함.
- 시퀀스 생성 프로세스
1. language model 훈련하고 나면 해당 model에서 sampling을 할 수 있음. 즉 새로운 시퀀스를 생성함.
2. 초기 텍스트 문자열(conditioning data, 조건 데이터)를 주입하고 새로운 글자나 단어를 생성함.
3. 생성된 출력은 다시 입력 데이터로 추가되어 이 과정을 반복함.
4. 이런 반복 과정을 통해 모델이 훈련한 데이터 구조가 반영된 임의의 길이를 가진 시퀀스를 생성함.
- LSTM (Long Short-Term Memory models)
- 글자 수준의 신경망 언어 모델(character-level neural language model)
- 텍스트 말뭉치(corpus)에서 N개의 글자로 이루어진 문자열을 추출하여 주입하고 N+1번째 글자를 예측하도록 훈련함.
- 모델의 출력은 출력 가능한 모든 글자에 해당하는 소프트맥스 값. 즉, 다음 글자의 확률 분포.
샘플링 전략의 중요성
- 텍스트를 생성할 때 다음 글자를 선택하는 방법이 아주 중요함.
- 탐욕적 샘플링 (Greedy Sampling)
- 반복적이고 예상 가능한 문자열을 만들기 때문에 논리적인 언어처럼 보이지 않음.
- 확률적 샘플링 (Stochastic Sampling)
- M/L에서 stochastic 이란 뜻은 random하다는 의미
- 다음 글자의 확률 분포에서 샘플링하는 과정에 무작위성을 주입하는 방법
'Technical > ML&DL' 카테고리의 다른 글
[Deep Learning] Precision과 Recall, Detection의 정확도(accuracy) (0) | 2019.02.15 |
---|---|
[Deep Learning] EAST text detector (0) | 2019.02.15 |
[Tensorflow] resnet50 config file error 해결 방법 (0) | 2019.02.13 |
케라스 창시자에게 배우는 딥러닝 > 2장 신경망의 수학적 구성 요소 (0) | 2019.02.08 |