Upgrade to Pro — share decks privately, control downloads, hide ads and more …

소설 쓰는 딥 러닝 - PyCon Korea 2018

소설 쓰는 딥 러닝 - PyCon Korea 2018

Build an A.I. which generates novels.

https://www.pycon.kr/2018/program/28

Dreamgonfly

August 18, 2018
Tweet

Transcript

  1. PRESENTER 조용래 / dreamgonfly django, flask, pandas, scikit-learn, gensim, tensorflow,

    pytorch, … #파이썬 #머신러닝 #딥러닝 #자연어처리
  2. (좋은) 소설이란? 맞춤법 지키기 문법 지키기 문맥 이어가기 새로운 이야기

    재미 감동 교훈 인생의 진리 삶, 우주, 그리고 모든 것에 대한 답변
  3. (좋은) 소설이란? 맞춤법 지키기 문법 지키기 문맥 이어가기 새로운 이야기

    재미 감동 교훈 인생의 진리 삶, 우주, 그리고 모든 것에 대한 답변
  4. 예) 가시었겠다 = 가- + -시- + -었- + -겠-

    + -다 CHALLENGES - 한국어의 특성 교착어 여러 형태소가 이어져서 한 단어를 이루는 언어 (go) (높임) (과거) (추측) (평서/종결) https://ratsgo.github.io/korean%20linguistics/2017/04/04/langtype
  5. CHALLENGES - 장기 의존성 버려진 섬마다 꽃이 피었다. 구름처럼 부풀어

    오른 섬들은 바다에 결박된 사슬을 풀고 어두워지는 수평선 너머로 흘러가는 듯싶었다. 꽃피는 숲에 저녁 노을이 비치어,
  6. 구름처럼 부풀어 오른 섬들은 바다에 결박된 사슬을 풀고 꽃피는 숲에

    저녁 노을이 비치어, CHALLENGES - 장기 의존성 어두워지는 수평선 너머로 흘러가는 듯싶었다. 버려진 섬마다 꽃이 피었다.
  7. 구름처럼 부풀어 오른 섬들은 바다에 결박된 사슬을 풀고 꽃피는 숲에

    저녁 노을이 비치어, CHALLENGES - 장기 의존성 어두워지는 수평선 너머로 흘러가는 듯싶었다. 버려진 섬마다 꽃이 피었다.
  8. CHALLENGES - 학습 시간 데이터 양에 따라 n시간 ~ n일

    소요 여러가지 시도를 해 보기 어려움
  9. TOKENIZERS IN PYTHON KoNLPy soynlp PyCon 2014 (pycon.kr/2014/program/10) PyCon 2017

    (pycon.kr/2017/program/172) PyCon 신조어가 자주 등장하는 대량의 텍스트 데이터가 있을 때 신조어는 많이 없고 검증된 형태소 분석기가 필요할 때 Usage JVM, JPype1 등 설치 필요 순수 파이썬 패키지 Installation 데이터셋과 하이퍼파라미터에 따라 결과 차이 동일한 결과 제공 Performance 꼬꼬마, MeCab, twitter 등 이미 학습된 형태소 분석기를 Python으로 wrapping 자신이 가진 데이터셋으로 비지도학습 모델을 직접 학습시켜서 사용 How it works
  10. ATTENTION AS DICTIONARY a = { ‘흰색’ : ‘white’, ‘노란색’

    : ‘yellow’, ‘파란색’ : ’blue’ } a[‘노란색’] key value query
  11. ATTENTION AS DICTIONARY : : : a[ ] key value

    query Attention 가중 평균
  12. MULTI-HEAD ATTENTION 언제 떠올랐는지 모를 그믐달이 동녘 하늘에 비스듬히 걸려

    있었다 걸려 Attention 1 언제 떠올랐는지 모를 그믐달이 동녘 하늘에 비스듬히 걸려 있었다 걸려 Attention 2
  13. Positional Encoding Source Inputs N x N x Positional Encoding

    Output Probabilities 텍스트 -> 숫자
  14. Positional Encoding Source Inputs N x N x Positional Encoding

    Output Probabilities “버려진 섬마다 꽃이 피었다” 0.3 버려진 0.2 -0.1 -0.2 0.1 섬마다 0.5 -0.2 -0.3 -0.2 꽃이 0.3 0.2 0.4 0.1 피었다 -0.3 0.6 0.2
  15. Source Inputs N x N x Positional Encoding Output Probabilities

    버려진 섬마다 꽃이 피었다 버려진 섬마다 꽃이 피었다
  16. Positional Encoding Source Inputs N x N x Positional Encoding

    Output Probabilities Multi-Head Self-Attention
  17. Positional Encoding Source Inputs N x Positional Encoding Output Probabilities

    Feed Forward Network Layer Normalization Residual Connection
  18. Positional Encoding Inputs N x Positional Encoding Output Probabilities N

    x 버려진 섬마다 꽃이 피었다 Encoded Source
  19. Source N x N x Positional Encoding Positional Encoding Output

    Probabilities 지금까지 생성한 단어들 꽃피는 숲에 저녁 노을이 비치어 다음에 생성해야 하는 단어
  20. Source Inputs N x N x Positional Encoding Positional Encoding

    Output Probabilities (Encoding과 동일) 지금까지 생성한 단어들 이해하기
  21. Source Inputs N x N x Positional Encoding Positional Encoding

    Output Probabilities Attention to source Encoded Source
  22. Source Inputs N x N x Positional Encoding Positional Encoding

    Output Probabilities Encoded Source N번 반복한다
  23. Source Inputs N x N x Positional Encoding Positional Encoding

    Output Probabilities Encoded Source 다음 단어 예측
  24. TRANSFORMER 장점 Source 단어와 Output 사이 거리가 짧다 병렬 계산

    Attention으로 정보가 직접 연결 약 30배 학습 속도 개선 장기 의존성 학습 빠른 학습
  25. QUESTION ANSWERING TASK Sam walks into the kitchen. Sam picks

    up an apple. Sam walks into the bedroom. Sam drops the apple. Q. Where is the apple? A. Bedroom https://arxiv.org/pdf/1502.05698.pdf
  26. MEMORY NETWORK 장점 장기 의존성 학습 버려진 섬마다 꽃이 피었다.

    구름처럼 부풀어 오른 섬들은 바다에 결박된 사슬을 풀고 꽃피는 숲에 저녁 노을이 비치어, 단어가 아닌 문장을 임베딩하자 Memory
  27. BEAM SEARCH 꽃피는 섬마다 저녁 노을이 비치어 봄이 오면 꽃이

    피고 여러 개의 후보 문장을 끝까지 만들어 보고 그럴듯한 문장을 고른다 문법 지키기
  28. RANKING 여러 문장 중 지금까지 생성한 문장들과 다른 새로운 문장에

    높은 점수를 준다 예) 꽃피는 섬마다 꽃피는 섬마다 꽃피는 섬마다 새로운 이야기
  29. TENSORFLOW & PYTORCH TensorFlow PyTorch Static Graph Dynamic Graph Developed

    by Google Developed by Facebook Good for Optimization & Serving Good for Prototyping & Debugging
  30. PROCESS 유저가 첫 다섯 문장 입력 모델이 10개 후보 문장

    생성 유저가 후보 문장 중 한 문장 선택
  31. PROCESS 유저가 첫 다섯 문장 입력 모델이 10개 후보 문장

    생성 유저가 후보 문장 중 한 문장 선택 반복
  32. 아이작 아시모프 (Isaac Asimov) <아이, 로봇> 외 500권 이상 어니스트

    헤밍웨이 (Ernest Hemingway) <노인과 바다> <무기여 잘 있거라> 김 훈 <칼의 노래> <남한 산성> http://buendia78.blogspot.com/2012/07/blog-post_17.htm “꽃은 피었다"와 "꽃이 피었다"는 어떻게 다른가. 이것은 하늘과 땅의 차이가 있습니다.” "모든 초고는 쓰레기다. 나는 10만 단어 정도를 버렸다” http://mba.mk.co.kr/view.php?sc=51000010&cm=%B9%CC%B4%CF%C4%AE%B7%B3&year=2010&no=701056&relatedc “평범한 작가는 끊임없이 글을 바꾸고 결코 만족하지 못한다” https://qz.com/886038/isaac-asimov-wrote-almost-500-books-in-his-lifetime-these-are-the-6-ways-he