A.I. vs Machine Learning vs Deep Learning
General A . I.
A.I. (Artificial Intelligence)
• 1956년 미국 다트머스 회의에서 처음으로
인공지능 이라는 개념이 등장
• General A. I.
인간과 같이 감각을 느끼고 사고력을
가지는 인공지능
• Narrow A. I.
현재의 기술수준으로 가능한 수준
이미지 분류, 얼굴 인식등과 같은 작업들에
대해서 인간 이상의 능력
Machine Learning
• 인공지능을 구현하는 구체적 방법
• 데이터 분석을 통한 학습 및 예측
• 의사 결정 트리 학습, 클러스터링,
귀납 논리 프로그래밍, 강화학습
• 의사 결정 기준을 코딩하지 않고,
학습에 사용되는 데이터를 통해서
자가학습을 하는 것이 목표
• 전반적인 과정을 코딩하는 작업이
많다는 한계점이 존재
Machine Learning
• 인간의 뇌를 기반으로 만들어진
인공신경망(Artificial Neural
network)에서 발전한 인공지능 방식
• 뇌의 뉴런과 유사한 방식을 이용,
정보 입출력 계층(layer)를 통해
학습을 하는 방식
• 학습을 통해서 예측을 하기 때문에
방대한 데이터가 필요
- 병렬 연산에 최적화된 GPU의 도입
Demystifying how neural nets work
Deep Reinforcement Learning
Automated Machine Learning(AutoML)
Matlab and C++
Python Library
Numpy gensim keras tensorflow
Keras
더욱 쉽게 코딩하기 위해 만들어진
라이브러리
다양한
Neural Network
모델 지원
일부 모델은
Tensorflow안에
포함되어있음.
Tensorflow
• 구글 사내에서만 사용되던 라이브러리
• 디버깅, 버전관리 등을 위해 오픈소스화
• 딥러닝 프레임워크 중 가장 활성화
• Python 기반에 C++코드 작성
MNIST
• 손으로 쓴 숫자들로 이루어진 데이터베이스
• 28 * 28 픽셀의 흑백 그림
• 60000개의 트레이닝 이미지
• 10000개의 테스트 이미지
Deep Neural Network
Deep Neural Network
INPUT
OUTPUT
2*3
arrows
Input Data(A)
2 * 1 Vector
Output Data (B)
3 * 1 Vector
Arrow Matrix (W)
3 * 2 Random Matrix
B = W*A
∗
∗
∗
1 2
3 4
1
2
3
4
Tensorflow - parameters
tf.device = 연산 장치 선택
tf.one_hot = one hot encoding
tf.placeholder = 입력 및 출력 데이터 할당되는 공간 생성
tf.squeeze = size가 1인 dimension 삭제
tf.Variable =
학습할 때 변화가 존재하는
변수들
tf.Constant =
학습할 때 변화가 존재하지
않는 변수들
tf.random_normal =
정규분포
Deep Neural Network
INPUT
OUTPUT
2*3
arrows
Back propagation
= prediction data
= target data
Error function
	 	
Update
	 	
= learning rate
One hot encoding
구분하는 작업을 위해 모든 변수들을 0과 1로 구성된 벡터로 표현하는 방식
MNIST의 경우 0~9까지 총 10개의 변수가 존재
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0 2 5 9
Tensorflow - functions
tf.nn.relu = 활성화 함수(relu)
tf.matmul = 행렬 곱
tf.nn.softmax_cross_entropy_with_logits =
softmax를 이용한 에러값
tf.train.~Optimizer = update 방식
tf.argmax = 최대값을 가지는 벡터위치
Tensorflow - functions
1
0
0
0
0
0
0
0
0
0
softmax
90
1
0
2
0
0
0
5
1
1
0.9
0.01
0
0.02
0
0
0
0.05
0.01
0.01
predicted y real y
Activation Function
Relu
10
‐0.5
1
0
10
0
1
0
Tensorflow - train
parmeter를 초기화 및 설정
sess.run, ~.eval =
변수 값을 계산하는 과정
Convolution Neural Network
Convolution Layer
Convolution :
이미지의 부분적인 특성을 뽑아내는 과정
Padding :
convolution 레이어의 출력 데이터가
줄어드는 것을 방지하는 방법
Pooling Layer
Pooling Layer : 계산된 행렬의 특징들 중 핵심만 뽑아내는 방식
• Max Pooling
filter 내의 값 중
가장 큰 값을 추출
• Average Pooling
filter 내의 값의
평균을 추출
• 데이터를 줄여
연산량을 감소
• 데이터 소실이
발생하기에
overfitting을 줄임
Dropout
CNN Keras version
INPUT
OUTPUT
reservoir
Recurrent
Neural
Network
Reservoir computing
2*6
arrows
6*6 6*3
readout
system prediction
system prediction
블로그 주소
https://coredottoday.github.io/

CoreDot TechSeminar 2018 - Session4 Park Eonyong