본문 바로가기
IT 둘러보기

딥러닝 - 역사와 이론적 기초

by 날고싶은커피향 2023. 11. 13.

1. 딥러닝 역사와 이론적 기초
2. 딥러닝 역사와 이론적 기초 2017 (주)오토마타 류형수
3. 이 노트의 특징 수학적 표기는 가급적 지양 수포자를 위한 해설 Breaking stone 용어 중심 설명 "소프트웨어 개발자 관점에서 바라본 딥러닝" ...을 지향합니다
4. 딥 러닝?
5. 이전의 연구들 프로그래밍으로 풀수 없는 문제들
6. 프로그래밍으로 풀려면 if() then { } else if() then { } else if() then { } else if() then { } else if() then { } else if() then { } else if() then { …. 가능한 모든 경우에 대비 그래도 예외 상황은 생긴다
7. 이전의 연구들 프로그램으로 풀수 없는 문제들 통계 확률 퍼지 머신러닝
8. WEIGHT
9. 퍼셉트론 1957년 Frank Rosenblatt
10. 퍼셉트론 x1, x2 : 입력 input w1, w2: 가중치 weight y: 출력 output
11. 퍼셉트론 x1 : 비가 온다 x2 : 여친이 만나자고 한다 w1: 비를 좋아하는 정도 w2: 여친을 좋아하는 정도 y: 외출한다/안한다
12. 퍼셉트론 x1 : 비가 온다 = 1 x2 : 여친이 만나자고 한다 = 1 w1: 비를 좋아하는 정도 = -5 w2: 여친을 좋아하는 정도 = 6 y: 1x-5+1x6 = 1 : 외출한다
13. 퍼셉트론 Activation function
14. 퍼셉트론 인간두뇌와 유사한 기작
15. 퍼셉트론 y 가 얼마일때 외출하는가? 1이면? 10이면? 0이면? -1.5면? 0.3이면?
16. 퍼셉트론 x1 : 비가 온다 = 1 x2 : 여친이 만나자고 한다 = 1 w1: 비를 좋아하는 정도 = -5 w2: 여친을 좋아하는 정도 = 6 y: 1x-5+1x6 = 1 : 외출한다 난 태생적으로 비가 싫어 : -2 y: 1x-5+1x6 - 2 = -1 : 외출안함
17. 퍼셉트론 Y = X1W1 + X2W2 Y = X1W1 + X2W2 + B Bias Y = X1W1 + X2W2 + B = 1 or 0 (Activation)
18. 퍼셉트론 Y = X1W1 + X2W2 + B = 1 or 0 (Activation) 언젠가 어디선가 본듯한 모습인데?
19. 퍼셉트론 Y = X1W1 + X2W2 + B (= 1 or 0 (Activation)) W1X1 + W2X2 + (B-Y) = 0 ... ax + by + c = 0 (y=ax+b)
20. 퍼셉트론
21. 퍼셉트론 결국 직선 그리는 거였어 ...
22. 퍼셉트론 W1X1+W2X2+B X1 X2 B W1 W2 Y
23. 퍼셉트론 Linear Classifier
24. 퍼셉트론 즉 한개의 퍼셉트론의 가중치와 바이어스를 조절하여 선형분류가 가능 => 선형회귀분석 => SVM
25. 퍼셉트론 Logic gate
26. 퍼셉트론 잠깐만요! XOR는요?
27. 퍼셉트론 …...
28. 퍼셉트론 …...
29. 퍼셉트론 1969 minsky and papert 퍼셉트론이 XOR연산을 할 수 없음을 증명함 "인공지능 연구의 1차 빙하기를 알리는 서막" 그러나 희망은 보였다
30. 다층 퍼셉트론 1969 minsky and papert "다층퍼셉트론(Multi Layer Perceptron MLP)으로 XOR연산이 가능!" 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 0 1 1 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 0 AND -> NAND & OR = XOR 0 0 0 0 1 1 1 1 1 1 1 0
31. 다층 퍼셉트론 OR AND NOT OR X1 X2 Y1
32. Neural Network전형적인 형태인 MLP
33. 다층 퍼셉트론 다층퍼셉트론으로 더 많은 문제를 해결할 수 있게 되었으나 여전히 남은 문제들 비선형 분류의 어려움 다층으로 쌓아올린 퍼셉트론의 학습방법 부재 ....... 빙하기 돌입
34. 다층 퍼셉트론 Perceptrons (1969) by Marvin Minsky, founder of the MIT AI Lab We need to use MLP, multilayer perceptrons (multilayer neural nets) No one on earth had found a viable way to train MLPs good enough to learn such simple functions.
35. Back Propagation 1974 1982 paul werbos 1986 geoffrey hinton
36. Back Propagation MLP의 계산값과 실제 값의 오차를 이용해서 가중치를 조정한다 오, 대단해요! 어떻게?
37. Back Propagation MLP의 계산값과 실제 값의 오차를 이용해서 가중치를 조정한다 오, 대단해요! 어떻게? 모든 가중치를 다 입력해보고 제일 결과가 좋은 가중치를 선택한다
38. Back Propagation MLP의 계산값과 실제 값의 오차를 이용해서 가중치를 조정한다 오, 대단해요! 어떻게? 모든 가중치를 다 입력해보고 제일 결과가 좋은 가중치를 선택한다 Brute force 기법
39. Back Propagation MLP의 계산값과 실제 값의 오차를 이용해서 가중치를 조정한다 오, 대단해요! 어떻게? 랜덤하게 때려넣고 우연히 좋은 값을 찾는다
40. Back Propagation MLP의 계산값과 실제 값의 오차를 이용해서 가중치를 조정한다 오, 대단해요! 어떻게? 랜덤하게 때려넣고 우연히 좋은 값을 찾는다 Monte Carlo 기법
41. Back Propagation MLP의 계산값과 실제 값의 오차를 이용해서 가중치를 조정한다 어떻게? 각각의 가중치들이 결과에 얼마나 영향을 주었는가를 계산한다 각각의 가중치는 어떤 기울기를 가지고 있는가?
42. Back Propagation 오차 함수(비용함수 Cost function) power(Y-H,2)
43. Back Propagation MLP의 계산값과 실제 값의 오차를 이용해서 가중치를 조정한다 어떻게? 각각의 가중치들이 결과에 얼마나 영향을 주었는가를 계산한다 각각의 가중치는 어떤 기울기를 가지고 있는가? 오차를 가중치로 미분한다 가중치가 여럿 있는 경우 각각의 가중치에 대해 편미분한다
44. Back Propagation 그래도 알아두면 좋은 용어들 체인 룰, 델타
45. Back Propagation 미분 ... 가능한가요?
46. Back Propagation 미분 가능한 Activation function(Squashing function) 필요
47. Back Propagation Sigmoid - ∞ ~ ∞ 을 0과 1로 변환시킨다(Activation) 미분하기도 편하다(연산량이 적다)
48. Back Propagation 한 줄 요약해주세요! 결과와 목표치의 오차를 가중치로 미분해서 음의기울기 방향으로 가중치를 변경한 다
49. Back Propagation ......
50. Back Propagation 결과 네트워크의 출력: Hypothesis = H = sigmoid(W1X1 + W2X2 + b)
51. Back Propagation 목표치 원하는 답, 정답, 기대값, 레이블 오차, Cost 목표치 - 출력
52. Back Propagation Learning (학습)이란? Cost 를 줄이는 과정 어떻게? 가중치를 변경하여서 … 어떻게? Cost 를 가중치에 대해 미분해서 기울기(Gradient)를 얻고...
53. Back Propagation 어떻게 Cost 를 줄일 것인가? 앞이 안 보이는 산속에서 땅으로 내려가려면? 주위를 보고 낮은 걸음으로 한 걸음 간다 이를 반복하면 점점 더 낮은 곳으로 내려올 수 있다.
54. Back Propagation 이상적인 Cost 함수 그러나 현실은 이상과 다르다
55. Back Propagation Graient Descent (경사하강법 GD) 목표값은 모르지만 현재 기울기를 알고 있을때 최적값을 찾아나가는 과정
56. Back Propagation Gradient descent의 함정 Local minima (이 골짝이 아닌게벼...)
57. Back Propagation Local minima에 갇히지 않으려면 1. 잘 설계된 Cost 함수 2. GD 외의 최적화 기법 (SGD, ADAM, Adagrad, NAG …) 3. Random Learning rate
58. Back Propagation 그러면 가중치를 얼마나 바꿔야 할까? Learning Rate 너무 크면? 발산(Divergence)의 우려 너무 작으면? 국지적 최저점(Local minima)에 갖힐 우려 경험이 필요
59. Back Propagation
60. Back Propagation "이로써 신경망 학습이 가능해졌다" The world has gave back peace again They lived happily ever and after
61. Back Propagation but … 새로운 적의 출현
62. Why deep learning? 은닉층의 수가 많을 수록 더 복잡한 문제를 해결할 수 있어서 hidden layer 의 수를 늘린 것을 deep neural network DNN 이라고 한다. (반대의 경우는 shallow neural network) 따라서 DNN 을 학습시키는 것을 딥러닝이라고 한다
63. Why deep? 왜 은닉층의 수가 많을 수록 더 복잡한 문제를 해결할 수 있는가? 각 층을 지나면서 층의 출력이 다음 층의 입력이 되고 더 추상화된 데이터의 Feature 를 학습하게 된다고 한다. 전통적으로 데이터 Feature 는 통계나 데이터 전문가들에 의해 잘 선택되어 모델링 에 사용되었으나 이러한 DNN 의 feature extraction 능력 때문에 신경망이 좋은 결 과를 낸다고 한다.
64. 그렇다면 .... 오빠, 달려!
65. 그랬더니 ... Backpropagation이 안되는 현상 발생
66. …...
67. Vanishing Gradient 너무 깊은 신경망에서 Backpropagation 이 진행될 수록 미분값이 0에 가까와지는 현상 “경사가 없어졌어! 우린 길을 잃었다!” 두세개 정도밖에는 네트워크 층을 쌓아올릴 수 없음
68. Vanishing Gradient 너무 깊은 신경망에서 Backpropagation 이 진행될 수록 미분값이 0에 가까와지는 현상 “이 문제는 20년간 해결되지 못했다”
69. Vanishing Gradient 너무 깊은 신경망에서 Backpropagation 이 진행될 수록 미분값이 0에 가까와지는 현상 “이 문제는 20년간 해결되지 못했다” “또 다시 엄습한 인공지능 제 2의 빙하기”
70. Vanishing Gradient 너무 깊은 신경망에서 Backpropagation 이 진행될 수록 미분값이 0에 가까와지는 현상 “이 문제는 20년간 해결되지 못했다” “또 다시 엄습한 인공지능 제 2의 빙하기” 인공지능 연구 영구됐 = 영구기관 특허처럼 논문 접수 자체를 거부
71. Hinton again
72. Hinton 왈... “우리가 Activation 함수를 잘못 사용한 것 같아”
73. Hinton 왈... “우리가 Activation 함수를 잘못 사용한 것 같아” 문제는 Sigmoid 였다 … Sigmoid 특성상 미분을 거듭할 수록 급격히 0에 가까와짐 새로운 대안이 필요
74. ReLU
75. TANH
76. Maxout
77. results Sigmoid 보다 좋은 결과들을 보여줌
78. 20년간의 긴 잠 끝에 연구자들의 끊임 없는 문제 해결 노력으로 다시 인공지능 연구가 활발해짐 Hinton 같은 기여자들의 공헌이 크고 그의 제자 등이 주축인 딥마인드는 마침내 알파고를 개발 4차산업의 도래를 알림
79. 인공지능 부흥의 요인 1. 알고리즘의 개선 MLP Backpropagation Vanishing gradient solution
80. 인공지능 부흥의 요인 2.하드웨어의 개선 문자인식 학습에 최신 진 공관 컴퓨터로 얼마 걸리 겠소? 어디보자 ... 105년 11개 월 20일 4시간 50분 45초 가 필요하겠군요
81. 인공지능 부흥의 요인 특히나 GPU사용으로 획기적인 학습시간 개선 Vector, Matrix 연산에 드는 시간 대폭적인 감소
82. 하지만 뭐니뭐니 해도 “Big Data” 적은데이터로 아무리 열심히 학습해도 오버피팅(과적합) 만 발생 모든것이 데이터화되어가는 현대가 인공지능 연구의 온상 IBM 회장 "데이터는 제 21세기의 천연 자원이다"
83. 하지만 뭐니뭐니 해도 Big Data 없는 딥러닝은 생각할 수 없다 10개의 숫자 학습용 사진 - 5만5천장 딥페이스 - 얼굴사진 400만장 구글의 고양이 사진 인식 - 900만장 바꾸어 말하자면… “인공지능 강자가 되려면 알고리즘 연구하려 하지 말고 데이터를 어떻게 확보할 것 인지를 고민해라”
84. Neural Network 의 종류 FFN CNN RNN Hopfield RBM …. 정말 다양하다
85. FFN (Feed Forward Network) 지금까지 언급한 대표적 네트워크 전방향으로 계산한다고 해서 이런 이름이 붙여졌다
86. CNN (Convolutional Neurla Network) 데이터의 합성곱을 반복하여 Feature 를 추출하고 학습하는 네트워크 이미지 인식에 많이 사용 (MNIST 99%)
87. CNN (Convolutional Neurla Network) 데이터의 합성곱을 반복하여 Feature 를 추출하고 학습하는 네트워크 이미지 인식에 많이 사용 (MNIST 99%)
88. RNN (Recurrent Neural Network) 1회의 데이터가 아니라 과거의 데이터도 학습에 이용 순서를 가지는 정보(sequence), 즉 언어, 음성, 동영상 모델링에 많이 쓰임 이 모델도 vanishing gradient 문제가 있어서 lstm(long-short term memory), gru 등 으로 개량
89. RNN (Recurrent Neural Network) LSTM
90. Wavenet Deep mind wave 를 컨볼루션하여 TTS, 음성인식 등에 이용
91. RBM (Restricted Boltzman Machines) 비지도 학습(Unsupervised Learning) 모델 입력층에서 전달된 데이터로 재구성한 데이터를 다시 입력층으로 전달하여 코스트 를 계산하고 줄여가는 학습 Auto encoder
92. Hopfield network 비지도 학습(Unsupervised Learning) 모델 모든 노드가 서로에게 연결된 형태 노이즈를 복원하는 능력이 탁월
93. SOM (Self Oraganization Map) 비지도 학습(Unsupervised Learning) 모델 Winner takes it all 방식의 학습을 통해서 데이터간 클러스터링을 수행
94. RL (Reinforcement Learning) 비지도 학습(Unsupervised Learning) 모델 보상을 극대화려는 쪽으로 학습
95. Network Modeling Frameworks Tensorflow 구글에서 개발한 인공지능 프레임워크 C, Python 지원 [Theano, Cafe, Keras, CNTK]
96. Network Modeling Frameworks Tensorboard, matplotlib
97. Network Modeling Frameworks H2O, DL4j : Pure java Torch : Lua ConvnetJS, Synaptic, brain : Javascript
98. Tiny deep learning code import numpy as np X = np.array([ [0,0,1], [0,1,1], [1,0,1], [1,1,1,] ]) y = np.array([[0,1,1,0]]).T syn0 = 2*np.random.random((3,4)) -1 syn1 = 2*np.random.random((4,1)) -1 for j in range(60000): l1 = 1 / (1+np.exp(-(np.dot(X, syn0)))) l2 = 1 / (1+np.exp(-(np.dot(l1, syn1)))) l2_delta = (y - l2)*(l2*(1-l2)) l1_delta = l2_delta.dot(syn1.T) * (l1*(1-l1)) syn1 += l1.T.dot(l2_delta) syn0 += X.T.dot(l1_delta)
99. 추천강좌 모두를 위한 딥러닝 https://hunkim.github.io/ml/
100. Questions?

반응형