인공지능, 기계학습 그리고 딥러닝 관련 자료입니다
내용 참고 하시기 바랍니다 .
1. 인공지능, 기계학습 그리고 딥러닝 Dec 26, 2016 이진원 / Seoul National University
2. 2 살펴볼 것들… • 인공지능이란 무엇인가? • 기계학습은 어떻게 할까? • 딥러닝은 무엇이고 왜 필요한가? • Convolutional Neural Network • 유명한 CNN들(ILSVRC winners) • Tensorflow를 이용한 CNN 구현방법 • CNN 응용 사례
3. 3 자세히 다루지 않는 것들 • 어려운 수학 • Unsupervised Learning • Reinforcement Learning • RNN 계열의 딥러닝 알고리즘
4. 인공지능과 기계학습
5. 5 Nicolaus Copernicus(1473-1543)
6. 6 • 왜 사람들은 처음에 천동설부터 생각했을까? • 왜 사람은 만물의 영장인가? • 지능은 사람만 가질 수 있는가? 우리는 세상의 중심?
7. 7 1, 2, 3, 4차 산업혁명 Steam Engine Electricity, Automobile PC, Internet Artificial Intelligence 사람의 육체노동을 대체 사람의 지적노동을 대체? 1 2 3 4
8. 8 인공지능, 기계학습, 딥러닝 Credit : Nvidia blog
9. 9 인공지능(Artificial Intelligence) • 1956년 다트머스 회의에서 처음 사용 • From Wikipedia: Artificial intelligence (AI) is intelligence exhibited by machines. In computer science, an ideal "intelligent" machine is a flexible rational agent that perceives its environment and takes actions that maximize its chance of success at some goal AI Translation: 인공 지능 (AI)은 기계가 나타내는 지능입니다. 컴퓨터 과학 에서 이상적인 "지능형"기계는 환경을 인식하고 목표 달 성의 기회를 극대화하는 유연하고 합리적인 에이전트입니다.
10. 10 쉬운 것과 어려운 것 • 여우와 두루미 • 사람과 컴퓨터?
11. 11 컴퓨터에게 쉬운 것과 어려운 것 • 컴퓨터가 잘하는 것은 명확하게 정의된 일, 즉 알고리즘에 대한 수행이다. • 사람이 진화과정에서 자연스럽게 터득한 것들이 컴퓨터에 게는 어렵다. • 언어의 해상도가 인식의 해상도보다 낮기 때문이다 vs Easy Hard
12. 12 규칙 기반 학습의 부작용(?)
13. 13 어떻게 학습할 것인가? Credit : MBC 기계 인간의 탄생
14. 14 기계학습(Machine Learning) • 기계학습(Machine Learning) Machine learning is the subfield of computer science that "gives computers the ability to learn without being explicitly programmed“ 기계 학습은 "컴퓨터에 명시적으로 프로그래밍하지 않고 학습 할 수 있는 능력을 부여하는“ 컴퓨터 과학의 하위 분야입니다. Computer inputs program outputs Computer inputs outputs program 일반적인 programming 기계학습 기계가 program을 직접 작성!
15. 15 Quiz • □와 △에 들어갈 정수는? 3 x □ + 2 x △ = 1 1 x □ + 4 x △ = -3 5 x □ + 5 x △ = 0 8 x □ + 3 x △ = 5 • □ = 1, △ = -1 • (3, 2), (1, 4), (5, 5), (8, 3) 은 input data, 1, -3, 0, 5 는 label 이다 • □와 △를 weight라고 하며 이 weight 값을 기계가 스스로 학습을 통해 찾아내도록 하는 것이 기계학습이 하는 일
16. 16 기계학습의 종류 • Supervised Learning(지도학습) Input 과 labels을 이용한 학습 분류(classification), 회귀(regression) • Unsupervised Learning(비지도학습) Input만을 이용한 학습 군집화(clustering), 압축(compression) • Reinforcement Learning(강화학습) Label 대신 reward가 주어짐 Action selection, policy learning
17. 17 Reinforcement Learning https://youtu.be/Q70ulPJW3Gk https://youtu.be/SuoouILpjDo
18. 18 뉴런과 사람의 학습 이전 뉴런과 연결 다음 뉴런으로 전달 수상돌기 축삭돌기 시각 신경 청각 신경 침샘 분비 강 함 약 함 강 함 학습 파블로프의 개 실험
19. 19 Perceptron(Artificial Neural Network) 𝑦 = 𝑓(𝐰𝐱 + b) 𝒘 = [𝑤1 𝑤2 𝑤3 … 𝑤 𝑛] 𝒙 = [𝑥1 𝑥2 𝑥3 … 𝑥 𝑛] 𝑇 𝑦𝑓 𝑏 <Perceptron> sigmoid activation function 𝑓 𝑥 = 1 1 + 𝑒−𝑥
20. 20 Example of ANN(logical AND) 0 1 1 ℎ 𝑥 = 0 ℎ 𝑥 =1 𝑥1 𝑥2 학습이란 이러한 weight 값(-30, 20, 20)을 기계 스스로 찾을 수 있도록 해주는 과정!
21. 21 아파트 가격 예측(Regression) • 아파트 가격을 예측하는 프로그램을 작성해보자 평수(평) 층수(층) 가장 가까운 지하철 역까지의 거리(km) 해당 지역의 1인당 소득 평균(천만원) 평수 층수 지하철 역까지의 거리 (km) 해당지역 1인당 소득 (천만원) 아파트가격 (천만원) 34 15 1 4 72 32 4 5 3.3 60 18 9 2 2.5 34 42 3 2.5 5 100 21 10 1.5 3 42
22. 22 일반적인 방법 • 기존의 data와 경험을 바탕으로 한 정보 평수는 클수록 비싸다 층수는 높은 층이 낮은 층보다 비싸다 지하철 역까지의 거리는 가까울수록 비싸다 그 지역의 소득수준이 높을수록 비싸다 • 위 정보들 간의 중요도에 따라 가중치를 주어서 최종 가격 을 추론한다 평수가 가장 중요함 층 수는 평수에 비해서 덜 중요함 지하철 역까지의 거리는 중요하지만 거리값이 작을수록 가격이 비 싸짐 그 지역의 소득수준은 아파트 가격 결정에 가장 덜 중요함 등 • 예) 평수 x 2 + 층수 x 0.3 + 지하철 역까지 거리 x (-1) + 소득 수준 x 0.1 = 아파트 가격(천만원)
23. 23 기계학습을 이용하는 방법 • 기존의 data를 이용하여 각 항목별로 □,△,○,☆에 들어갈 값을 기계 스스로 학습하게 한다. 평수 x □ + 층수 x △ + 지하철 역까지 거리 x ○ + 소득수준 x ☆ = 아파트 가격(천만원) • 어떻게? 맨 처음 □,△,○,☆ 값을 random으로 정한 후 실제 가격과 비교하여 그 (차이값)2의 평균 계산한다 □,△,○,☆를 모두 1로 했을 경우, (실제가격 – 추론가격)2 의 평균 = 287.524 이제 □,△,○,☆를 기계 스스로 조금씩 조정하여 (차이값)2의 평균이 0 이 되게 할 수 있다면, 프로그램이 완성된다 평수 층수 지하철 역까지의 거리 (km) 해당지역 1인당 소득 (천만원) 아파트가격 (천만원) 추론한 아파트 가격 (천만원) 34 15 1 4 72 54 32 4 5 3.3 60 44.3 18 9 2 2.5 34 31.5 42 3 2.5 5 100 52.5 21 10 1.5 3 42 35.5
24. 24 Multi Layer Perceptron(MLP) • 아파트 가격 결정에 소득수준이 높은 지역에서는 낮은 지역보다 지하철 역까지의 거리가 덜 중요하다면? • 아파트 가격을 우선 여러가지로 예측하고 그 예측한 값들을 다시 잘 조합하여 더 잘 예측해보자(regression) • 선을 잘 긋고 input 공간을 잘 왜곡하고 합하는 과정을 반복해서 데이터들을 잘 구분해보자(classification) • 이렇게 perceptron을 여러층으로 쌓으면 더 복잡한 문제를 풀 수 있다 • Linear fitting과 Non-linear transform의 반복
25. 딥러닝(Deep Learning)
26. 26 딥러닝(Deep Learning) • 딥러닝은 deep neural network를 통하여 학습하는 것을 의미함 • Hidden layer의 수 <= 1 shallow network • Hidden layer의 수 >= 2 deep network • 이렇게 많은 weight 값들을 어떻게 학습시킬 것인가??
27. 27 Back Propagation • 학습과정 : back propagation of error Output layer에서 error(cost)를 계산 Error의 미분값을 back propagation 미분값에 𝛼를 곱한 만큼 w를 보정(학습!) 𝛼는 learning rate를 의미함 gradient descent
28. 28 딥러닝을 어렵게 하는 것들 • Vanishing gradient problem • Overfitting problem • Get stuck in local minima
29. 29 Vanishing Gradient Problem • Gradient 값이 뒤로 전달될 수록 점점 작아짐 • Sigmoid 사용으로 인하여(미분값의 최대 : ¼) 아래쪽 layer는 학습이 이루어지지 않음
30. 30 Overfitting Problem • Data가 많지 않은 경우에 발생할 수 있음 • 학습한 data에만 최적화되어서, 학습하지 않은 data(test data)에 대한 추론 성능이 악화되는 현상
31. 31 Local Minima • 어디서 시작하느냐에 따라서 잘못하면 local minima에 빠 질 위험이 존재
32. 32 어떻게 해결할까? • Vanishing gradient problem Sigmoid 말고 ReLU를 쓰자 • Overfitting problem Regularization method를 쓰자(예 : dropout) • Get stuck in local minima Local minima에 빠져도 괜찮다
33. 33 ReLU : Rectified Linear Unit • ReLU를 activation function으로 사용 sparse activation • ReLU는 미분값이 0 아니면 1 vanishing gradient 해결
34. 34 ReLU의 의미 • Piece-wise linear tiling : locally linear mapping
35. 35 Dropout(Regularization Method) • 각 학습 단계마다, 특정 확률로(예 : 50%) random하게 hidden layer에 있는 unit들을 없애고 학습하는 방법 • Ensemble 개념을 적용 여러 개의 model을 사용하여 평균값을 쓰면 하나의 model을 쓰 는 경우보다 좋음 하나의 model로 비슷한 효과를 낼 수 있는 방법
36. 36 Local Minima에 대하여 • minimum이라고 하는 것은 현재 차원에서 이동할 수 있는 모든 방향으로의 gradient 값이 증가 하는 방향이어야 하는데 이런 경 우는 확률적으로 희박함 • DNN과 같은 고차원 구조에서는 대부분은 local minima가 아니라 saddle point일 가능성이 높음 • 만약 실제 local minima가 존재 한다면 그것은 global minimum 과 거의 차이가 없을 가능성이 높음(neural network의 대칭성) saddle point
37. Convolutional Neural Network
38. 38 Convolutional Neural Network • 이미지 인식에 가장 널리 사용됨 • 일반적으로 convolution layer, pooling layer, fully- connected layer로 구성 • Parameter(weight) sharing • Convolution과 pooling layer는 feature를 추출하고 fully- connected layer는 어떤 class에 속하는지 판단하는 역할 을 수행 Picture Credit : The Data Science blog
39. 39 CNN의 동작원리 • 이미지를 작은 tile로 나 누고, 작은 network를 통 해 tile에서 특정 feature 를 추출(예: 귀) • Newtork가 다음 tile로 이 동하면서 같은 방법으로 feature를 추출(동일한 weight 사용) • 다른 feature(예: 눈)를 추 출하는 network를 추가 로 만들고 위와 같은 방 법으로 tile을 하나씩 network에 적용 • 추출된 모든 feature들을 잘 조합하여 최종적으로 이미지를 판단
40. 40 Convolution 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 4 3 4 2 4 3 2 3 4 = convolution 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 4 =convolution filter feature map Input or feature map filter feature map Input or feature map • Convolution 연산 : 같은 위치에 있는 숫자끼리 곱한 후 모 두 더함 1x1 + 1x0 + 1x1 + 0x0 + 1x1 + 1x0 + 0x1 + 0x0 + 1x1 = 4 • Filter가 옆으로 이동 후 같은 연산 수행 • 옆으로 모두 이동한 이후에는 아래로 이동 후 같은 연산 수행
41. 41 Convolution Credit : Leonardo’s gitbook
42. 42 Feature Extractor Credit : Adit Deshpande’s blog
43. 43 Feature Extractor Credit : Adit Deshpande’s blog
44. 44 Convolution (Multi Channel, Many Filters) 1 1 1 1 0 1 1 1 1 0 0 0 0 1 1 0 1 1 1 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 -1 0 0 0 1 0 0 0 -1 0 -1 0 -1 1 -1 0 -1 0 1 0 1 0 1 0 1 0 1 -1 0 -1 0 1 0 0 0 -1 0 -1 0 -1 1 0 0 -1 0 1 0 1 0 -1 0 1 0 1 1 -1 1 0 -1 -1 3 1 0 3 0 1 -2 0 2 0 2 3 = convolution Input channel : 3 Output channel : 2# of filters : 2
45. 45 Convolution (Multi Channel, Many Filters) 1 1 1 1 0 1 1 1 1 0 0 0 0 1 1 0 1 1 1 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 -1 0 0 0 1 0 0 0 -1 0 -1 0 -1 1 -1 0 -1 0 1 0 1 0 1 0 1 0 1 3 0 1 -2 0 2 0 2 3 1 -1 1 0 -1 -1 3 1 0 -1 0 -1 0 1 0 -1 0 -1 0 1 0 -1 -1 0 0 1 0 1 0 1 0 -1 0 1 0 1 Input channel : 3 Output channel : 2 # of filters : 2 convolution convolution convolution convolution convolution convolution
46. 46 Visualization of a Convolution Layer Picture Credit : fundamentals of deep learning by Nikhil
47. 47 ReLU 3 0 1 -2 0 2 0 2 3 1 -1 1 0 -1 -1 3 1 0 𝑓 3 0 1 0 0 2 0 2 3 𝑓 1 0 1 0 0 0 3 1 0 ReLU ReLU
48. 48 Pooling Layer • Max pooling을 많이 사용함
49. 49 2x2 Max Pooling with Stride=1 3 0 1 0 0 2 0 2 3 1 0 1 0 0 0 3 1 0 3 2 2 3 1 1 3 1 max pooling max pooling
50. 50 Fully-Connected Layer 3 2 2 3 1 1 3 1 3 2 2 3 1 1 3 1 2 1 softmax 0.8 0.2 Cat Dog
51. 51 Convolutional Neural Network • 하위 layer에서는 선, 곡선, 색과 같은 feature들을 추출, 상 위 layer로 갈수록 점점 추상화된 feature 생성
52. 52 Large Scale Image Classification • ImageNet Over 15 • ImageNet Over 15 million labeled high- resolution images Roughly 22,000 categories Collected from the web Labeled by human labelers using Amazon’s Mechanical Turk crowd- sourcing tool • ImageNet Large-Scale Visual Recognition Challenge (ILSVRC) Uses a subset of ImageNet 1,000 categories 1.2 million training images 50,000 validation images 150,000 test images Report two error rates: Top-1 and top-5
53. 53 ImageNet Classification Results <2012 Result> • Krizhevsky et al. – 16.4% error(top-5) • Next best (non-convnet) – 26.2% error <2013 Result> • All rankers use deep learning(Convnet) Revolution of Depth! AlexNet
54. 54 AlexNet(2012 winner) • 7 hidden layers, 650,000 neurons, 60M parameters • 2대의 GPU로 1주일간 학습진행 “ImageNet Classification with Deep Convolutional Neural Networks “
55. 55 AlexNet Result “ImageNet Classification with Deep Convolutional Neural Networks “
56. 56 GoogLeNet(2014 winner) • Inception modul을 반복하여 사용 • 1x1 convolution을 사용하여 channel 수를 조절 • Fully connected layer 대신 global average pooling 사용 • 5M parameters, 1.5B operations/evaluation Inception module “Going Deeper With Convolutions”
57. 57 VGG(2nd place in 2014) • 3x3 filter만 반복해서 사용 • Why?? Convolution filter를 stack하면 더 큰 receptive field를 가질 수 있음 2개의 3x3 filter = 5x5 filter 3개의 3x3 filter = 7x7 filter Parameter수는 큰 filter 사용하는 경우에 비하여 감소 regularization 효과 “Very Deep Convolutional Networks for Large-Scale Image Recognition”
58. 58 Inception-v3 • Factorization of filters “Rethinking the Inception Architecture for Computer Vision”
59. 59 Residual Net(2015 winner) • Revolution of Depth “Deep Residual Learning for Image Recognition”
60. 60 ResNet • Layer수가 많을수록 항상 좋을까? • 56개의 layer를 사용하는 경우가 20개의 layer를 사용하는 경우에 비해 training error가 더 큰 결과가 나옴 “Deep Residual Learning for Image Recognition”
61. 61 ResNet • 더 deep한 model은 training error가 더 낮아야 함 Shallow model의 parameter를 deeper model에 copy Extra layers가 identity function의 역할 만 해도 동일한 결과가 나올 수 있음 • Deep한 model은 optimization이 쉽 지 않다는 것을 발견(identity도 힘들 다) A shallower model (18 layers) A deeper model (34 layers) “Deep Residual Learning for Image Recognition”
62. 62 Deep Residual Learning • Identity는 그대로 상위 layer로 전달하고, 나머지 부분만 학습 “Deep Residual Learning for Image Recognition”
63. 63 ResNet Result • ImageNet experiments “Deep Residual Learning for Image Recognition”
64. 64 Inception-ResNet • Inception + ResNet “Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning”
65. 65 ILSVRC 2016 Result
66. 66 Tensorflow를 이용한 구현 • Tensorflow Google에서 개발, 2015년 11월에 open source로 공개된 딥러닝 framework Python기반, computational graph를 이용(theano와 비슷함) CPU, GPU, multi-GPU를 모두 지원 https://tensorflow.org
67. 67 Tensorflow 동작 개념 • 어떤 구슬을 넣을 것인지 : variable, placeholder 선언 a = tf.placeholder(“float”) • 못의 개수, 위치를 선정 : network 설 계 y = tf.mul(a, b) • Insert coin : session 생성 sess = tf.Session() • 구슬을 넣음 : network 실행 sess.run(y, feed_dict={a: 3, b: 3}
68. 68 Global Average Pooling Class Activation Map • Global average pooling을 사용하면, parameter 수를 획기 적으로 줄일 수 있음(CNN parameter의 대부분은 fc layer 에 있음) • Class activation map을 이용하여, 컴퓨터가 각 class를 어 떻게 판단했는지 확인, 해당 class의 대략적 위치도 찾을 수 있음 “Learning Deep Features for Discriminative Localization”
69. 69 Fully Connected Layer 3 2 2 3 1 1 3 1 3 2 2 3 1 1 3 1 2 1 softmax 0.8 0.2 Cat Dog
70. 70 Global Average Pooling 3 2 2 3 1 1 3 1 2.5 1.5 2 1 softmax 0.8 0.2 Cat Dog average average
71. 71 PPMI Dataset • http://ai.stanford.edu/~bangpeng/ppmi.html
72. CNN 응용사례
73. 73 Detection “SSD: Single Shot MultiBox Detector
74. 74 Segmentation “Learning Deconvolution Network for Semantic Segmentation
75. 75 Super Resolution “Deeply-Recursive Convolutional Network for Image Super-Resolution”
76. 76 Texture Synthesis “Texture Synthesis Using Convolutional Neural Networks”
77. 77 Artistic Style Transfer “Image Style Transfer Using Convolutional Neural Networks”
78. 78 Image Captioning
79. 79 Visual QnA Q: What is the boy holding? DPPnet: surfboard DPPnet: bat Q: What is the animal doing? DPPnet: resting (relaxing) DPPnet: swimming (fishing) “Image Question Answering using Convolutional Neural Network with Dynamic Parameter Prediction”
80. 80 Generative Adversarial Network “StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks ”
81. 81 Autonomous Driving
82. 결론
83. 83 Summary & Conclusion • 지능의 핵심은 학습이고, 기계학습은 사람의 학습과정을 모방하여 만들어졌다 • 기계학습(딥러닝)은 기계가 스스로 프로그램을 만들어내는 과정이다 • 기계학습(딥러닝)을 이용하면, 비슷한 유형의 문제의 경우 새로 network를 만들지 않고 data만 바꿔주면 그에 맞는 학습이 진행되어 문제를 풀 수 있다는 장점이 있다 • 딥러닝의 발달로 인하여 수많은 분야에서 딥러닝을 활용 하여 놀라운 성과를 얻어내고 있다 • 딥러닝을 이용하면 전문지식을 갖추지 않아도 그와 관련 된 많은 문제들을 해결할 수 있다
84. 84 인공지능, 딥러닝은 만능? • 동유럽국가 몬테네그로의 수도는 어 디인가? • 바둑판을 1줄씩 늘려서 20x20으로 만 들고 지금 당장 이세돌과 알파고가 대 결한다면? • 의료 data를 분석하여, 수명을 예측해 봅시다 평생 한번도 담배를 안피운 사람 현재 흡연을 하고 있는 사람 과거에 흡연을 했다가 끊은 사람 • 인공지능은 인류의 지능 향상에 도움 이 되는가? • 인공지능의 능력이 커질수록 법적, 도 덕적 문제에 대한 해결이 필요
85. 85 QnA Thank You jwlee@capp.snu.ac.kr
'정보공유' 카테고리의 다른 글
[정보] 4차 산업혁명 (0) | 2018.04.03 |
---|---|
[정보] [스마트스터디] 재택근무 잘 하고 있어요 (0) | 2018.04.03 |
[정보] 개발자가 설명하는 블록체인 세미나 (0) | 2018.04.03 |
[정보] 블록체인 개요 (0) | 2018.03.30 |
[정보] 딥러닝 - 역사와 이론적 기초 (0) | 2018.03.29 |
[정보] 4차산업혁명 (0) | 2018.03.27 |
[정보] 인공지능을 위한 뇌과학 (1) | 2018.03.27 |
[정보] 파이썬으로 익히는 딥러닝 (0) | 2018.03.27 |