Deep Learning Into Advance - 1. Image, ConvNetHyojun Kim
[본 자료는 AB180 사내 스터디의 일환으로 제작되었습니다.]
딥러닝에 대한 기초적인 이해 및 적용 예시를 알아보고, 인사이트를 공유하기 위해 만들었습니다. 첫번째로 딥러닝이 이미지 프로세싱에 적용된 방식 및, Convolutional Neural Network (ConvNet)의 기초에 대해 다루었습니다.
* 본 스터디 자료는 Stanford 강좌인 CS231n (http://cs231n.stanford.edu)의 내용을 참고했습니다.
사용자 인증 시 고민하게 되는 비밀번호 암호화와 데이터 암호화 도구에 대해 순수 웹 결제 플랫폼을 지향하는 시럽페이에 반영된 One Password Protocol (by Mozilla)과 JOSE(by Web Payment Group in W3C) 기술에 대해 간략하게 설명합니다.
AlphaGo: Mastering the Game of Go with Deep Neural Networks and Tree SearchKarel Ha
the presentation of the article "Mastering the game of Go with deep neural networks and tree search" given at the Optimization Seminar 2015/2016
Notes:
- All URLs are clickable.
- All citations are clickable (when hovered over the "year" part of "[author year]").
- To download without a SlideShare account, use https://www.dropbox.com/s/p4rnlhoewbedkjg/AlphaGo.pdf?dl=0
- The corresponding leaflet is available at http://www.slideshare.net/KarelHa1/leaflet-for-the-talk-on-alphago
- The source code is available at https://github.com/mathemage/AlphaGo-presentation
한국 표준(?) 자바셋(Java 1.6+Spring 3.x+MyBatis)과 Monolithic 아키텍처를 사용하고 있었던 제 조직 내에서 기술적 변화를 이끌어가는 것에 관련된 내용입니다.
변화를 유도하기 위해서 어떻게 해야 하는지가 핵심이며,
Architecture, Frontend, Backend, 방법론/프로세스의 영역을 각각의 단계로 나누어서 Phase1을 수행한 것과 Phase2를 수행 중인 내용에 대해서도 다룹니다.
Phase1
- Architecture : Frontend / Backend 명시적 분리
- Frontend : Angular.js, Grunt, Bower 도입
- Backend : Java 1.7/Spring4, ORM 도입
- 방법론/프로세스 : Scrum, Git
Phase2
- Architecture : Micro-Service Architecture(MSA)
- Frontend : Content Router, E2E Test
- Backend : Polyglot, Multi-Framework
- 방법론/프로세스 : Scrum+JIRA, Git Branch Policy, Pair Programming, Code Workshop
자세한 내용은 https://www.youtube.com/watch?v=oPT9hHXrEpo 을 참조하세요.
AlphaGo가 어떤 원리로 구현되었으며, 어떻게 강력한 기력을 확보하게 되었는지를 설명드립니다. 이 자료를 이해하기 위해서 인공지능과 전산과학에 기초적인 지식이 필요할 수 있습니다.
KGC 2014 가볍고 유연하게 데이터 분석하기 : 쿠키런 사례 중심 , 데브시스터즈Minwoo Kim
1년 7개월 장수 모바일 게임 쿠키런. 많은 유저, 하루에도 쏟아지는 많은 로그. Time To Market 단축이 핵심 역량 중 하나가 되는 모바일 게임 시장. 자주 빠르게 변경되는 스팩, 로그도 마찬가지로 자주 빠르게 변경되는 스키마. 이런 현실속에서 게임 개발과 운영, 데이터 분석까지 병행 하기 위해서 가볍고 유연한 아키텍처로 적당히 빠르게 데이터 분석을 하는 쿠키런 서버팀 사례를 소개합니다.
Imagination-Augmented Agents for Deep Reinforcement Learning성재 최
I will introduce a paper about I2A architecture made by deepmind. That is about Imagination-Augmented Agents for Deep Reinforcement Learning
This slide were presented at Deep Learning Study group in DAVIAN LAB.
Paper link: https://arxiv.org/abs/1707.06203
19. Training 과정
From AlphaGo Nature paper
(SL : Supervised Learning)
끝까지 둬봄
어느 길로 가볼지
결정
누가 이길지 판단
Value net.의
학습데이터 생성
: 각 모델의 역할
(RL : Reinforcement Learning)
Self Play
21. Rollout policy
• 끝까지 둬봐서 누가 이길지 판단에 사용됨
• 다음 수를 어디 둘지 확률로 표시됨
• 끝까지 둬보려면 속도가 빨라야함
• 최근 2수 근처 정보만 입력하는 모델 사용
• 학습 데이터 : 인간의 기보 5만판
• 1 CPU 에서 초당 1000판 시뮬레이션 가능
• 24% 정확도 (사람이 둔 수에 대해)
From AlphaGo Nature paper
22. SL policy network
• 어떤 수를 생각해볼지 결정하는 데 사용됨
• 다음 수가 어디일지 확률로 출력됨
• 사용한 모델 : Convolutional Neural Network
• 영상 분야에 주로 사용되는 딥러닝 모델
• 인간의 기보 16만판 학습
• 입력 데이터의 형태
• 현재 판의 raw 상태 (각 위치에 흑백이 있는지)
• 수동으로 추가한 특성 (축 여부, 최근 수순 등)
• 57% 정확도 (사람이 둔 수에 대해)
From AlphaGo Nature paper
23. RL policy network
• Value net.의 학습데이터 생성에 사용됨
• SL Policy net.과 동일 형태의 모델
• Self-Play를 통해 학습
• 승자의 수는 장려 / 패자의 수는 억제
• 128만 판 학습
Self Play
24. SL vs RL
둘이 대결하면? RL 승률 > 80%
SL policy net. RL policy net.
입력 현재 판의 상태
출력 다음 수에 대한 확률
뭘 학습했나 사람이라면 어디 두었을까 어디 두어야 이길 확률이 높을까
어디다 쓰나 어떤 수를 생각해볼지 결정 Value net의 학습 데이터 생성
Self Play
25. Value network
• 현재 판의 승리 확률을 예측하는 데 사용
• SL/RL Policy net.와 유사한 딥러닝 모델
• 승리 확률이 [-1, 1] 사이 값으로 출력됨
• 학습 데이터의 형태
• 입력 - N수 째의 상황, 출력 - 승/패
• 인간의 기보는 부적절
• Self-play로 학습 데이터 생성
• 승패 예측 오차율 : 0.23 in MSE
From AlphaGo Nature paper
26. AlphaGo 알고리즘 요약
• MCTS Framework 에서
• 어느 길로 가볼지 : SL Policy network (사실은 다른 요소도 함께 고려하지만 생략)
• 그 길이 좋은 길인지 : Rollout policy + Value network
• 승리 확률을 최대화하는 수를 선택함 (사실은 가장 많이 방문한 노드를 선택하지만 생략)
• 몇 집을 이기느냐에는 관심이 없음
27. AlphaGo의 약점은?
• 사람이 두는 수를 학습한 SL Policy Network의 약점
• 현재 판 상태로만 유불리를 판단하는 Value Network의 약점
• 최근 2수 근처만 입력으로 받는 Rollout Policy의 약점
• 잘 떠오르지 않는 묘수가 필요한 장면 (복잡한 싸움)
• 현재 상태만으로는 판단이 힘든 상황 (초반, 복잡한 싸움)
• 멀리 떨어진 곳을 연달아 둬야하는 상황 (초반, 패)
28. 불리할 때의 대처
• 사람이라면 어떤 수를 생각하나
• 최대한 따라붙어서 후일을 도모할 수 있는 수
• 서로 어려워지는 수
• AlphaGo는 어떤 수를 생각하나
• 서로 그럴듯하게 둘 때, 승리확률이 높은 수