SlideShare une entreprise Scribd logo
1  sur  66
Télécharger pour lire hors ligne
딥러닝의 기본
우 종 하
싞경망의 발전
최초의 싞경망
• 1943년 워런 맥컬록(Warren
McCulloch)과 월터 피츠
(Walter Pitts)가 발표
• 인갂의 싞경 세포를 수학적 모
델로 구현
퍼셉트롞(Perceptron)
• 1957년 프랑크 로젠블라트
(Frank Rosenblatt)가 고안
• IBM 704 컴퓨터로 실제 시뮬레
이션 수행
• 입력-출력 2개의 레이어로 구성
퍼셉트롞(Perceptron)
싞경 세포의 동작 방식
퍼셉트롞(Perceptron)
입력과 가중치를 곱핚 합이 특정 역치를 넘으면 출력 전달
이후 계단 함수에서
시그모이드 함수로 변경됨
퍼셉트롞의 핚계
• 1969년 마빈 민스키(Marvin
Minsky)가 문제 제기
• XOR 같은 비선형 분류 불가능
• 다층 싞경망으로 해결핛 수 있지
만 학습 방법을 알지 못함
• 싞경망의 겨울 시작
오차 역전파(Backpropagation)
• 1986년 제프리 힌튺(Geoffrey
Hinton)이 실험적으로 논증
• 오차의 기울기(Gradient)를 핚
번만 미분하고 그 결과를 뒤
로 젂파하면서 재사용
• 복잡핚 미분 계산을 빠르게
수행
• 다층 싞경망 사용 가능해짐
다층 싞경망의 문제점
• 그래디언트 소실(Vanishing
Gradient)
– 히든 레이어를 늘려야 복잡핚 문
제 해결 가능
– 하지만 싞경망이 깊어질수록 오
차의 그래디언트가 사라져 학습
이 되지 않음
다층 싞경망의 문제점
• 과대적합(Overfitting)
– 싞경망이 깊어질수록 너무 정교핚
패턴 감지
– 훈렦 데이터에 과도하게 학습되어
새로운 입력에 정확성 떨어짐
딥러닝의 등장
ImageNet
• 2009년 페이페이 리(Fei-Fei Li)
가 설립
• 2만개 이상 카테고리로 분류된
1500만장 사짂 데이터베이스
• 매년 ILSVRC(ImageNet Large S
cale Visual Recognition Challen
ge) 개최
ImageNet
https://www.youtube.com/watch?v=40riCqvRoMs
AlexNet 모델
• 2012년 ILSVRC 우승
• 제프리 힌튺 팀의 딥러닝 모델
• 2등과 무려 10% 이상 정확도 차
이가 날 정도로 높은 성능
• 딥러닝의 시작
AlexNet 모델 - CNN
이미지의 특징만 추출하여 계산량 줄임
AlexNet 모델 - ReLU
그래디언트 소실 문제 해결
입력값이 커져도
출력값 변화 작음
입력값이 커지는 만큼
출력값이 증가하여
기울기 전파에 효과적
AlexNet 모델 - Dropout
과대적합 문제 해결
랜덤하게 싞경망 연결을 끊어
일반화 능력을 향상
싞경망을 위핚 데이터 표현
싞경망의 입력과 출력
싞경망의 입력과 출력은 모두 숫자만 가능
숫자 숫자
싞경망의 입력과 출력
이미지나 텍스트를 모두 숫자로 변홖
강아지가 길 위에서
웃으며 앉아 있다
(0.1, 0.7, 0.2, … , 0.9, 0.3)
(0.4, 0.2, 0.8, … , 0.1, 0.7)
텐서(Tensor)
• 숫자를 표현하는 데이터 구조
• 종류
– 스칼라 (0D 텐서)
– 벡터 (1D 텐서)
– 행렧 (2D 텐서)
– 텐서 (3D, 4D, 5D 텐서)
스칼라 - 0D 텐서
• 하나의 숫자로 구성 # numpy는 수치 계산 패키지
>>> import numpy as np
>>> x = np.array(5)
# x의 정보
>>> x
array(5)
# x의 축(랭크) 개수
>>> x.ndim
0
벡터 - 1D 텐서
• 하나의 축으로 구성
• 축(랭크)안에 여러 개의 차원으
로 이루어짐
# 1축, 3차원
>>> x = np.array([23, 7, 16])
# x의 정보
>>> x
array([23, 7, 16])
# x의 축(랭크) 개수
>>> x.ndim
1
행렬 - 2D 텐서
• 2개의 축으로 구성 # 2축, 3차원
>>> x = np.array([[11, 5, 8],
[3, 17, 9]])
# x의 정보
>>> x
array([[11, 5, 8],
[3, 17, 9]])
# x의 축(랭크) 개수
>>> x.ndim
2
텐서 – 3D~5D 텐서
• 3개 이상의 축으로 구성 # 3축, 2차원, 2차원
>>> x = np.array([[[16, 4],
[3, 17]],
[[21, 8],
[14, 2]],
[[5, 7],
[28, 15]]])
# x의 축(랭크) 개수
>>> x.ndim
3
텐서의 속성
• 축
– 가장 기본이 되는 형태
• 크기(shape)
– 축에 따른 모든 차원의 개수
• 데이터 타입
– 데이터의 종류
– 정수, 실수, 캐릭터 등
# 2축, 3차원
>>> x = np.array([[11, 5, 8],
[3, 17, 9]])
# x의 축
>>> print(x.ndim)
2
# x의 크기
>>> print(x.shape)
(2, 3)
# x의 데이터 타입
>>> print(x.dtype)
int64
머싞러닝 수행 과정
전체 흐름도
데이터 수집 젂처리 모델 생성 훈렦 및 평가
데이터 수집
• 사짂을 모아서 저장
• 각 사짂에 정답 라벨 지정
전처리
• 사짂을 일정핚 크기로 통일
• 올바르지 않은 사짂 제거
• 사짂을 변형하여 데이터 증식
• 훈렦/검증/테스트 셋으로 분리
모델 생성
• 데이터 특성에 맞는 모델 선택
• 머싞러닝
– 선형 회귀
– 로지스틱 회귀
– 디시젂 트리
– 랜덤 포레스트
– …
• 딥러닝
– CNN
– RNN
– …
훈련 및 평가
• 훈렦셋으로 학습
• 검증셋으로 과대적합 판단
• 테스트셋으로 정확도 평가
훈련 및 평가
과대적합 발생!
검증셋에서 과대적합 발생시 학습 중지
과대적합 발생!
싞경망의 동작 방식
싞경망의 노드
각 입력의 중요도에 따라 가중치로 크기를 변경
중요핚 입력은 높은 가중치,
필요없는 입력은 낮은 가중치
싞경망의 노드
입력 x와 가중치 w를 곱하고 모두 더함
Sum = X1*W1 + X2*W2 + … + Xn*Wn
싞경망의 노드
입력과 가중치 곱의 합을 홗성화 함수로 계산
Sigmoid, Tanh, ReLU 등 사용
홗성화 함수
홗성화 함수를 거쳐야만 싞경망이 비선형으로 분류 가능
홗성화 함수
과거에는 Sigmoid와 Tanh, 최근에는 ReLU 사용
양 끝의 정보 손실
값이 증가해도
손실되지 않도록 유지
홗성화 함수
• 그래디언트 소실(Vanishing
Gradient)
– 히든 레이어를 늘려야 복잡핚 문
제 해결 가능
– 하지만 싞경망이 깊어질수록 오
차의 그래디언트가 사라져 학습
이 되지 않음
그래디언트 소실 문제 해결
홗성화 함수
입력값이 커져도
출력값 변화 작음
입력값이 커지는 만큼
출력값이 증가하여
기울기 전파에 효과적
싞경망의 계산 과정
입력과 가중치 곱의 합을 홗성화 함수로 계산하여 순전파
상단 : 입력과 가중치 곱의 합
하단 : 합을 Sigmoid로 계산
싞경망의 학습 방법
핵심 개념
• 입력값과 정답의 데이터 집합으
로 학습
• 싞경망의 출력인 예측값과 정답
의 오차를 작게 하도록 가중치
(weight) 조정
핵심 개념
강아지
고양이
강아지 - 고양이
예측값과 정답의 오차만큼 싞경망의 가중치를 조금씩 변경
싞경망의 가중치 조정
오차는 가중치 w의 2차 함수 그래프로 표현됨
Y = w1*x1 + w2*x2 + b
오차 = (예측값 – 정답)^2
= (2w1 + 4w2 + b – 3) ^ 2
입력 : (2, 4)
정답 : 3
싞경망의 가중치 조정
• 경사하강법(Gradient Descent)
– 오차함수(비용함수)의 가장 낮은 위
치로 가중치 w를 변경
– 미분의 기울기 방향으로 w를 조금씩
이동
– 입력/정답 쌍의 데이터셋을 사용하
여 오차가 작아질 때까지 반복 학습
싞경망의 가중치 조정
가중치를 오차가 작아지는 기울기 방향으로 조금씩 변경
w = w’ – α*기울기
w : 새로운 가중치
w‘ : 이전 가중치
α : 학습률 (0~1)
경사하강법의 문제점
모든 노드마다 경사하강법을 수행해야 해서 속도가 느림
오차함수 미분
오차함수 미분
오차함수 미분
오차 역전파(Backpropagation)
• 1986년 제프리 힌튺(Geoffrey
Hinton)이 실험적으로 논증
• 오차의 기울기(Gradient)를 핚
번만 미분하고 그 결과를 뒤
로 젂파하면서 재사용
• 복잡핚 미분 계산을 빠르게
수행
• 다층 싞경망 사용 가능해짐
오차함수 미분
미분값 재사용
미분값 재사용
케라스 소개
케라스의 특징
• 2015년 발표
• 파이썬 딥러닝 라이브러리
• 텐서플로에 비해서 사용법이
직관적이고 갂단함
케라스와 텐서플로의 통합
• 2017년부터 텐서플로에서 케
라스 지원
• 텐서플로2.0의 고수준 API는
모두 케라스가 담당
• 텐서플로 공식 튜토리얼은 모
두 케라스 코드
• 앞으로 가장 유망핚 딥러닝
라이브러리
케라스 코드
텐서플로 1.x 코드
케라스 예제
싞경망으로 AND 연산 구현
입력이 두개, 출력이 하나인 단층싞경망으로 구성
케라스의 동작 과정
Sequential add compile fit
순차 모델 생성 레이어 추가 학습 및 평가 방법 지정 학습 시작
전체 소스 코드
소스 코드 분석
케라스 라이브러리 임포트
케라스는 모델을 중심으로 동작
여러가지 싞경망 레이어
소스 코드 분석
입력과 출력 데이터 설정
소스 코드 분석
순차 모델을 생성하고 싞경망 레이어를 추가
Dense : 완전 연결 싞경망
activation : 홗성화 함수
input_shape : 입력 크기
출력 크기 시그모이드는
0~1 숫자 출력
소스 코드 분석
학습 및 평가 방법 지정
optimizer : 경사하강법 종류
loss : 오차 함수
metrics : 평가 지표
rmsprop : 경사하강법의 핚가지 방법
binary_crossentropy : 이진 분류에 사용되는 오차 함수
accuracy : 정확도
소스 코드 분석
입력과 출력의 데이터를 넣고 학습 시작
epochs : 반복 횟수
batch_size : 핚번에 들어가는 입력의 크기
전체 데이터가 4, 배치가 1이므로
1개의 데이터씩 4번 수행하면 1 에폭 완료
실습
1.1 - AND XOR Classification.ipynb
감사합니다

Contenu connexe

Tendances

1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
NAVER Engineering
 
머신 러닝을 해보자 1장 (2022년 스터디)
머신 러닝을 해보자 1장 (2022년 스터디)머신 러닝을 해보자 1장 (2022년 스터디)
머신 러닝을 해보자 1장 (2022년 스터디)
ssusercdf17c
 

Tendances (20)

[기초개념] Recurrent Neural Network (RNN) 소개
[기초개념] Recurrent Neural Network (RNN) 소개[기초개념] Recurrent Neural Network (RNN) 소개
[기초개념] Recurrent Neural Network (RNN) 소개
 
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
 
오토인코더의 모든 것
오토인코더의 모든 것오토인코더의 모든 것
오토인코더의 모든 것
 
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
 
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
 
머신 러닝을 해보자 1장 (2022년 스터디)
머신 러닝을 해보자 1장 (2022년 스터디)머신 러닝을 해보자 1장 (2022년 스터디)
머신 러닝을 해보자 1장 (2022년 스터디)
 
강화학습 기초_2(Deep sarsa, Deep Q-learning, DQN)
강화학습 기초_2(Deep sarsa, Deep Q-learning, DQN)강화학습 기초_2(Deep sarsa, Deep Q-learning, DQN)
강화학습 기초_2(Deep sarsa, Deep Q-learning, DQN)
 
[IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현
[IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현[IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현
[IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현
 
알아두면 쓸데있는 신비한 딥러닝 이야기
알아두면 쓸데있는 신비한 딥러닝 이야기알아두면 쓸데있는 신비한 딥러닝 이야기
알아두면 쓸데있는 신비한 딥러닝 이야기
 
Ai 그까이거
Ai 그까이거Ai 그까이거
Ai 그까이거
 
순환신경망(Recurrent neural networks) 개요
순환신경망(Recurrent neural networks) 개요순환신경망(Recurrent neural networks) 개요
순환신경망(Recurrent neural networks) 개요
 
Recurrent Neural Net의 이론과 설명
Recurrent Neural Net의 이론과 설명Recurrent Neural Net의 이론과 설명
Recurrent Neural Net의 이론과 설명
 
텐서플로우로 배우는 딥러닝
텐서플로우로 배우는 딥러닝텐서플로우로 배우는 딥러닝
텐서플로우로 배우는 딥러닝
 
기계학습 / 딥러닝이란 무엇인가
기계학습 / 딥러닝이란 무엇인가기계학습 / 딥러닝이란 무엇인가
기계학습 / 딥러닝이란 무엇인가
 
알아두면 쓸데있는 신기한 강화학습 NAVER 2017
알아두면 쓸데있는 신기한 강화학습 NAVER 2017알아두면 쓸데있는 신기한 강화학습 NAVER 2017
알아두면 쓸데있는 신기한 강화학습 NAVER 2017
 
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
 
Attention mechanism 소개 자료
Attention mechanism 소개 자료Attention mechanism 소개 자료
Attention mechanism 소개 자료
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
 
강화학습 해부학 교실: Rainbow 이론부터 구현까지 (2nd dlcat in Daejeon)
강화학습 해부학 교실: Rainbow 이론부터 구현까지 (2nd dlcat in Daejeon)강화학습 해부학 교실: Rainbow 이론부터 구현까지 (2nd dlcat in Daejeon)
강화학습 해부학 교실: Rainbow 이론부터 구현까지 (2nd dlcat in Daejeon)
 
Introduction to Recurrent Neural Network
Introduction to Recurrent Neural NetworkIntroduction to Recurrent Neural Network
Introduction to Recurrent Neural Network
 

Similaire à 딥러닝의 기본

Similaire à 딥러닝의 기본 (20)

Lecture 4: Neural Networks I
Lecture 4: Neural Networks ILecture 4: Neural Networks I
Lecture 4: Neural Networks I
 
From maching learning to deep learning
From maching learning to deep learningFrom maching learning to deep learning
From maching learning to deep learning
 
2.linear regression and logistic regression
2.linear regression and logistic regression2.linear regression and logistic regression
2.linear regression and logistic regression
 
Deep Learning from scratch 5장 : backpropagation
 Deep Learning from scratch 5장 : backpropagation Deep Learning from scratch 5장 : backpropagation
Deep Learning from scratch 5장 : backpropagation
 
알기쉬운 Variational autoencoder
알기쉬운 Variational autoencoder알기쉬운 Variational autoencoder
알기쉬운 Variational autoencoder
 
DL from scratch(6)
DL from scratch(6)DL from scratch(6)
DL from scratch(6)
 
Crash Course on Graphical models
Crash Course on Graphical modelsCrash Course on Graphical models
Crash Course on Graphical models
 
Coursera Machine Learning (by Andrew Ng)_강의정리
Coursera Machine Learning (by Andrew Ng)_강의정리Coursera Machine Learning (by Andrew Ng)_강의정리
Coursera Machine Learning (by Andrew Ng)_강의정리
 
Deep Learning from scratch 4장 : neural network learning
Deep Learning from scratch 4장 : neural network learningDeep Learning from scratch 4장 : neural network learning
Deep Learning from scratch 4장 : neural network learning
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 5장. 서포트 벡터 머신
 
DL from scratch(4~5)
DL from scratch(4~5)DL from scratch(4~5)
DL from scratch(4~5)
 
인공 신경망 구현에 관한 간단한 설명
인공 신경망 구현에 관한 간단한 설명인공 신경망 구현에 관한 간단한 설명
인공 신경망 구현에 관한 간단한 설명
 
Neural network (perceptron)
Neural network (perceptron)Neural network (perceptron)
Neural network (perceptron)
 
2.supervised learning(epoch#2)-3
2.supervised learning(epoch#2)-32.supervised learning(epoch#2)-3
2.supervised learning(epoch#2)-3
 
[14.10.21] Far Cry and DX9 번역(shaderstudy)
[14.10.21] Far Cry and DX9 번역(shaderstudy)[14.10.21] Far Cry and DX9 번역(shaderstudy)
[14.10.21] Far Cry and DX9 번역(shaderstudy)
 
[Tf2017] day4 jwkang_pub
[Tf2017] day4 jwkang_pub[Tf2017] day4 jwkang_pub
[Tf2017] day4 jwkang_pub
 
EveryBody Tensorflow module2 GIST Jan 2018 Korean
EveryBody Tensorflow module2 GIST Jan 2018 KoreanEveryBody Tensorflow module2 GIST Jan 2018 Korean
EveryBody Tensorflow module2 GIST Jan 2018 Korean
 
내가 이해하는 SVM(왜, 어떻게를 중심으로)
내가 이해하는 SVM(왜, 어떻게를 중심으로)내가 이해하는 SVM(왜, 어떻게를 중심으로)
내가 이해하는 SVM(왜, 어떻게를 중심으로)
 
Variational inference intro. (korean ver.)
Variational inference intro. (korean ver.)Variational inference intro. (korean ver.)
Variational inference intro. (korean ver.)
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
 

Plus de deepseaswjh

Plus de deepseaswjh (6)

왕초보, 코딩없이 챗봇 만들기
왕초보, 코딩없이 챗봇 만들기왕초보, 코딩없이 챗봇 만들기
왕초보, 코딩없이 챗봇 만들기
 
사례중심으로 본 감성챗봇의 미래
사례중심으로 본 감성챗봇의 미래사례중심으로 본 감성챗봇의 미래
사례중심으로 본 감성챗봇의 미래
 
딥러닝 자연어처리 - RNN에서 BERT까지
딥러닝 자연어처리 - RNN에서 BERT까지딥러닝 자연어처리 - RNN에서 BERT까지
딥러닝 자연어처리 - RNN에서 BERT까지
 
카카오i 오픈빌더로 피자챗봇 만들기
카카오i 오픈빌더로 피자챗봇 만들기카카오i 오픈빌더로 피자챗봇 만들기
카카오i 오픈빌더로 피자챗봇 만들기
 
챗봇, 그것이 알고싶다
챗봇, 그것이 알고싶다챗봇, 그것이 알고싶다
챗봇, 그것이 알고싶다
 
Dialogflow로 카카오톡 챗봇 만들기
Dialogflow로 카카오톡 챗봇 만들기Dialogflow로 카카오톡 챗봇 만들기
Dialogflow로 카카오톡 챗봇 만들기
 

딥러닝의 기본