딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016Taehoon Kim
발표 영상 : https://goo.gl/jrKrvf
데모 영상 : https://youtu.be/exXD6wJLJ6s
Deep Q-Network, Double Q-learning, Dueling Network 등의 기술을 소개하며, hyperparameter, debugging, ensemble 등의 엔지니어링으로 성능을 끌어 올린 과정을 공유합니다.
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016Taehoon Kim
발표 영상 : https://goo.gl/jrKrvf
데모 영상 : https://youtu.be/exXD6wJLJ6s
Deep Q-Network, Double Q-learning, Dueling Network 등의 기술을 소개하며, hyperparameter, debugging, ensemble 등의 엔지니어링으로 성능을 끌어 올린 과정을 공유합니다.
알파고의 작동 원리를 설명한 슬라이드입니다.
English version: http://www.slideshare.net/ShaneSeungwhanMoon/how-alphago-works
- 비전공자 분들을 위한 티저: 바둑 인공지능은 과연 어떻게 만들까요? 딥러닝 딥러닝 하는데 그게 뭘까요? 바둑 인공지능은 또 어디에 쓰일 수 있을까요?
- 전공자 분들을 위한 티저: 알파고의 main components는 재밌게도 CNN (Convolutional Neural Network), 그리고 30년 전부터 유행하던 Reinforcement learning framework와 MCTS (Monte Carlo Tree Search) 정도입니다. 새로울 게 없는 재료들이지만 적절히 활용하는 방법이 신선하네요.
Deep learning study 1. this slide includes basic mathematical theorems for deep learning, such as Bayes's theorem, Bayesian inference, information theorem.
산포된 데이터를 정합하는 직선을 찾는 것으로 이해해도 무방합니다. 주어진 데이터를 이용해 기울기와 절편을 구하는 방법입니다.
먼저 행렬연산을 통해 구하는 방법을 설명합니다. 그리고 퍼셉트론에 사용된 것과 같은 방법을 다시 설명하므로 선택적으로 듣기 바랍니다.
설명된 예제에 대한 C 언어 코드를 제공합니다. Tensorlow 코드는 정합 과정을 시각화하여 보여줍니다.
모두를 위한 Deep Reinforcement Learning 강의를 요약정리
http://hunkim.github.io/ml/
실습에 사용된 코드
https://github.com/freepsw/tensorflow_examples/tree/master/20.RL_by_SungKim
2016년 4월 9일
microsoft 세미나 발표자료입니다.
발표는 PPT 로 할거고 애니메이션등 약간의 내용을 추가해서 발표할 예정입니다.
알파고관련된 내용만있는 축약본은 아래링크에 있습니다.
http://www.slideshare.net/redrebel/20160409-ms-ml
Slides based on "Introduction to Machine Learning with Python" by Andreas Muller and Sarah Guido for Hongdae Machine Learning Study(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)
홍대 머신 러닝 스터디(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)의 "파이썬 라이브러리를 활용한 머신러닝"(옮긴이 박해선) 슬라이드 자료.
알파고의 작동 원리를 설명한 슬라이드입니다.
English version: http://www.slideshare.net/ShaneSeungwhanMoon/how-alphago-works
- 비전공자 분들을 위한 티저: 바둑 인공지능은 과연 어떻게 만들까요? 딥러닝 딥러닝 하는데 그게 뭘까요? 바둑 인공지능은 또 어디에 쓰일 수 있을까요?
- 전공자 분들을 위한 티저: 알파고의 main components는 재밌게도 CNN (Convolutional Neural Network), 그리고 30년 전부터 유행하던 Reinforcement learning framework와 MCTS (Monte Carlo Tree Search) 정도입니다. 새로울 게 없는 재료들이지만 적절히 활용하는 방법이 신선하네요.
Deep learning study 1. this slide includes basic mathematical theorems for deep learning, such as Bayes's theorem, Bayesian inference, information theorem.
산포된 데이터를 정합하는 직선을 찾는 것으로 이해해도 무방합니다. 주어진 데이터를 이용해 기울기와 절편을 구하는 방법입니다.
먼저 행렬연산을 통해 구하는 방법을 설명합니다. 그리고 퍼셉트론에 사용된 것과 같은 방법을 다시 설명하므로 선택적으로 듣기 바랍니다.
설명된 예제에 대한 C 언어 코드를 제공합니다. Tensorlow 코드는 정합 과정을 시각화하여 보여줍니다.
모두를 위한 Deep Reinforcement Learning 강의를 요약정리
http://hunkim.github.io/ml/
실습에 사용된 코드
https://github.com/freepsw/tensorflow_examples/tree/master/20.RL_by_SungKim
2016년 4월 9일
microsoft 세미나 발표자료입니다.
발표는 PPT 로 할거고 애니메이션등 약간의 내용을 추가해서 발표할 예정입니다.
알파고관련된 내용만있는 축약본은 아래링크에 있습니다.
http://www.slideshare.net/redrebel/20160409-ms-ml
Slides based on "Introduction to Machine Learning with Python" by Andreas Muller and Sarah Guido for Hongdae Machine Learning Study(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)
홍대 머신 러닝 스터디(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)의 "파이썬 라이브러리를 활용한 머신러닝"(옮긴이 박해선) 슬라이드 자료.
인공지능 변호사 개발 1편 - Ai lawyer 개발을 위한 시도
(법령해석 문서의 분류편)
Word2Vec을 이용한 법령해석 문서의 자동분류 시도
(ai lawyer, artificial intelligence, gensim, law, nlp, nltk, word2vec, 데이터분석, 머신러닝, 인공지능, 인공지능 변호사)
코드로 이해하는 Back_propagation(cs231n)SANG WON PARK
여러 샘플들을 참고하다 보니, tensorflow를 사용하지 않는 경우에는 직접 gradient를 계산하여 back propagation을 하도록 구현한 코드가 많다. 내가 직접 구현할 필요는 없더라도, 좀 더 명확하게 이해할 필요는 있을 것 같아서 cn231n note에서 제공하는 코드와 설명을 정리.
http://blog.naver.com/freepsw/220928184473
http://cs231n.github.io/neural-networks-case-study/ 참고
데이터를 작게 생성하여, 직접 코드와 생성된 데이터를 확인하면서 좀 더 직관적으로 이해하는 과정으로 정리하다보니, 코드보다 설명이 더 많다... 아직도 명확하지는 않지만 나름대로 정리는 되었다.
Slides based on "Introduction to Machine Learning with Python" by Andreas Muller and Sarah Guido for Hongdae Machine Learning Study(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)
홍대 머신 러닝 스터디(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)의 "파이썬 라이브러리를 활용한 머신러닝"(옮긴이 박해선) 슬라이드 자료.
6.algorithm chains and piplines(epoch#2)Haesun Park
Slides based on "Introduction to Machine Learning with Python" by Andreas Muller and Sarah Guido for Hongdae Machine Learning Study(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)
홍대 머신 러닝 스터디(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)의 "파이썬 라이브러리를 활용한 머신러닝"(옮긴이 박해선) 슬라이드 자료.
5.model evaluation and improvement(epoch#2) 2Haesun Park
Slides based on "Introduction to Machine Learning with Python" by Andreas Muller and Sarah Guido for Hongdae Machine Learning Study(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)
홍대 머신 러닝 스터디(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)의 "파이썬 라이브러리를 활용한 머신러닝"(옮긴이 박해선) 슬라이드 자료.
5.model evaluation and improvement(epoch#2) 1Haesun Park
Slides based on "Introduction to Machine Learning with Python" by Andreas Muller and Sarah Guido for Hongdae Machine Learning Study(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)
홍대 머신 러닝 스터디(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)의 "파이썬 라이브러리를 활용한 머신러닝"(옮긴이 박해선) 슬라이드 자료.
4.representing data and engineering features(epoch#2)Haesun Park
Slides based on "Introduction to Machine Learning with Python" by Andreas Muller and Sarah Guido for Hongdae Machine Learning Study(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)
홍대 머신 러닝 스터디(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)의 "파이썬 라이브러리를 활용한 머신러닝"(옮긴이 박해선) 슬라이드 자료.
Slides based on "Introduction to Machine Learning with Python" by Andreas Muller and Sarah Guido for Hongdae Machine Learning Study(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)
홍대 머신 러닝 스터디(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)의 "파이썬 라이브러리를 활용한 머신러닝"(옮긴이 박해선) 슬라이드 자료.
Slides based on "Introduction to Machine Learning with Python" by Andreas Muller and Sarah Guido for Hongdae Machine Learning Study(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)
홍대 머신 러닝 스터디(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)의 "파이썬 라이브러리를 활용한 머신러닝"(옮긴이 박해선) 슬라이드 자료.
Slides based on "Introduction to Machine Learning with Python" by Andreas Muller and Sarah Guido for Hongdae Machine Learning Study(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)
홍대 머신 러닝 스터디(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)의 "파이썬 라이브러리를 활용한 머신러닝"(옮긴이 박해선) 슬라이드 자료.
Slides based on "Introduction to Machine Learning with Python" by Andreas Muller and Sarah Guido for Hongdae Machine Learning Study(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)
홍대 머신 러닝 스터디(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)의 "파이썬 라이브러리를 활용한 머신러닝"(옮긴이 박해선) 슬라이드 자료.
3. “머신 러닝 또는 기계 학습은 인공 지능의 한 분야로, 컴
퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하
는 분야를 말한다.” - 위키피디아
“Field of study that gives computers the ability to learn
without being explicitly programmed.” - Arthur Samuel,
1959
머신러닝이란
24. 사이킷런의 내장 데이터
load_boston() : 주택가격
load_iris() : 붓꽃
load_diabetes() : 당뇨병
load_digits() : 손글씨숫자
load_linnerud() : 운동
25. 당뇨병 데이터
나이(Age), 성별(Sex), 체질량(BMI), 혈압(BP), 혈액검사 데이터 6가지(S1~S6)
1년 뒤의 당뇨병 악화 지수
당뇨병 환자를 추적한 442개의 데이터셋
26. 데이터 로드
$ ipython
...
In [1]: %pylab
In [2]: from sklearn import datasets
In [3]: diabetes = datasets.load_diabetes()
In [4]: print(diabetes.data.shape, diabetes.target.shape)
Out [5]: (442, 10) (442, )
27. $ ipython
...
In [1]: %pylab
In [2]: from sklearn import datasets
In [3]: diabetes = datasets.load_diabetes()
In [4]: print(diabetes.data.shape, diabetes.target.shape)
Out [5]: (442, 10) (442, )
데이터 로드
넘파이, 맷플롯립 임포트
사이킷런의 데이터 패키지 임포트
데이터 로드
넘파이 변수
442개의 행
10개의 열
442개의 타겟
(병의 악화도)
43. SingleNeuron
In [1]: n1 = SingleNeuron()
In [2]: n1.set_params(5, 1) # w, b 를 5, 1 로 셋팅
In [3]: print(n1.forpass(3)) # x 에 3 을 입력
16
In [4]: n1.set_params(6, 1) # w, b 를 6, 1 로 셋팅
In [5]: print(n1.forpass(3)) # x 에 3 을 입력
19
45. w 에 대한 ŷ 의 변화율
In [1]: n1 = SingleNeuron()
In [2]: n1.set_params(5, 1) # w, b 를 5, 1 로 셋팅
In [3]: print(n1.forpass(3)) # x 에 3 을 입력
16
In [4]: n1.set_params(6, 1) # w, b 를 6, 1 로 셋팅
In [5]: print(n1.forpass(3)) # x 에 3 을 입력
19
47. x 에 대한 ŷ 의 변화율
In [1]: n1 = SingleNeuron()
In [2]: n1.set_params(5, 1) # w, b 를 5, 1 로 셋팅
In [3]: print(n1.forpass(3)) # x 에 3 을 입력
16
In [4]: n1.set_params(5, 1) # w, b 를 5, 1 로 셋팅
In [5]: print(n1.forpass(4)) # x 에 4 을 입력
21
49. b 에 대한 ŷ 의 변화율
In [1]: n1 = SingleNeuron()
In [2]: n1.set_params(5, 1) # w, b 를 5, 1 로 셋팅
In [3]: print(n1.forpass(3)) # x 에 3 을 입력
16
In [4]: n1.set_params(5, 2) # w, b 를 5, 2 로 셋팅
In [5]: print(n1.forpass(3)) # x 에 3 을 입력
17
59. 업데이트 부호가 의미하는 것
Neuron
ŷ
w
x
b
*
+
y - ŷ
+ (y – ŷ) * x * 0.1
+ (y – ŷ) * 1 * 0.1
(y – ŷ) > 0 : 출력이 모자람
if x > 0: w 를 증가시킴
else : w 를 감소시킴
(y – ŷ) < 0 : 출력이 넘침
if x > 0: w 를 감소시킴
else : w 를 증가시킴
y: diabetes.target
74. batch, mini-batch
SGDRegressor(Stochastic Gradient Descent): 확률적 경사 하강법
훈련 데이터를 하나씩 사용하여 반복 학습
SingleNeuron(Batch Gradient Descent): 훈련 데이터 전체를 사용하
여 반복 학습
Mini-Batch Gradient Descent: 훈련 데이터를 10~20개씩 묶음으로 나
누어 반복 학습