파이썬(Python) 으로 나만의 딥러닝 API 만들기 강좌 (Feat. AutoAI )

Please download to get full document.

View again

of 122
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
 5
 
  #Python #딥러닝 #API #ibmdeveloperday2019 여러분들의 성원에 보답하기 위해 IBM Developer Day에서 발표한 세션 자료를 공개합니다! 그 어느때 보다 발표자료를 요청한 분들이 많아 놀랐습니다~ 그럼 다음에 또 뵙겠습니다 :) Github https://github.com/yunho0130/devday_python_api 세션 영상 https://youtu.be/Z7bTfnuLXck
Share
Transcript
  • 1. Python으로 나만의 딥러닝 API만들기 — 맹윤호 IBM - Data & AI Technical Service Professional
  • 2. - 2 - Intro Data Analysis & Performance -- Machine Learning & Deep Learning -- Confusion Matrix -- F1 Measure -- K-fold -- Overfitting Machine Learning -- Classification -- Linear Regression -- Clustering Deep Learning -- ANN -- DNN -- CNN Contents Reinforcement Learning -- The multi-armed bandit -- The Contextual bandit Flask API with Keras & Tensorflow IBM AutoAI -- Watson Studio project -- AutoAI -- AI Model Deployment for API -- Notebook in Watson Studio Appendix
  • 3. Intro
  • 4. Introduction (맹윤호) - 4 - IBM 에서 SW엔지니어로, 연세대에서 박사과정중인 샐러던트. @yunho.m88Q&A ü 본 강연은 저자의 소속과 관계없이 Python과 딥러닝을 공부하는 한 개인으로서 작성된 글입니다. 본 강연의 내용, 입장, 예측은 저자의 소속을 대변하지 않습니다. ü 본 강연에서 다루는 Use case는 외부에 공개된 내용을 바탕으로 이루어져 있으며, 저자의 소속을 통해서만 공개될 수 있는 비공개 자료를 포함하고 있지 않음을 밝히는 바입니다.
  • 5. Session Goal - 5 - Content Goal : 데이터 분석 전반에 대해 알아보고, 이를 Python을 활용해서 API로 만들어 본다 Non Content Goal : 멀게만 느껴졌던 딥러닝과 API를 보다 친숙하게 Personal Goal (Calling) : 좋은 연구 성과를 낸 AI 연구조직들이 끝까지 살아남기를 바라는 마음
  • 6. Level of difficulty: Intermediate - 6 - 머신러닝, 딥러닝, 강화학습 기본 지식부터 API에 이르기까지 전반적인 내용을 아우르게 됩니다.
  • 7. Github Repository - 7 - https://github.com/yunho0130/devday_python_api
  • 8. AI, AI, AI - 8 - 소프트뱅크의 손정의 회장도 강력히 강조한 AI https://www.youtube.com/watch?v=nh1T8KeCBxY
  • 9. - 9 - So What? == Business Result (Product, Patent, Profit) != Academic Result (Paper, Impact Factor) Today Session
  • 10. Challenge to AI Organization - 10 - 연구자 중심으로 구성된 AI 조직들이 Market에서의 성과를 증명해야 하는 도전에 직면해 있습니다.
  • 11. Data Analysis & Performance
  • 12. Machine Learning의 구분 - 12 - 머신러닝이란, 데이터 모델을 구축하는 하나의 수단으로서 조정 가능한 모수(Parameter)를 통해 데이 터로부터 모델을 학습하는 방식을 말한다. [1] [1] VanderPlas, J. (2016). Python data science handbook: essential tools for working with data. " O'Reilly Media, Inc.". [2] https://kr.mathworks.com/help/stats/machine-learning-in-matlab.html ü 지도학습Supervised Learning: 데이터의 측정된 특징(Feature)과 데이터와 관련된 레이블(Label) 사 이의 관계를 모델링 하는 것이다. 대표적으로 분류(Classification)와 회귀(Regression)로 나뉜다. ü 비지도 학습Unsupvervised Learning: 레이블을 참조하지 않고 데이터 세트의 특징을 모델링 하는 것으로, 종종 데이터 세트가 스스로 말하게 하는 것이다. 대표적으로 군집화(Clustering)와 차원축 소(Deimensionality Reduction) 같은 작업을 포함한다.
  • 13. Machine Learning의 구분 - 13 - 지도학습(Supervised Learning)과 비지도학습(Unsupervised Learning)으로 나뉘는 머신러닝(Machine Learning)의 갈래 https://blog.westerndigital.com/machine-learning-pipeline-object-storage/supervised-learning-diagram/
  • 14. Machine Learning & Deep Learning - 14 - 머신러닝의경우, 아무리많은데이터를학습시키더라도정확도향상에한계가오는지점이있었음. ü 머신러닝은, 분석 결과가 직관적이고 해석이 용이하여 Action Plan 수립에 효과적 ü 딥러닝은, 머신러닝과는 달리 데이터의 양에 따른 성능 향상의 제한이 비교적 덜한편 Bakshi, A. (2017). What is Deep Learning? Getting Started With Deep Learning. Edureka.
  • 15. Confusion Matrix & F1-Measure - 15 - 정상이 99.95%이고 0.05%만 암에 걸린다고 했을 때, 모두를 정상인이라고 판단했을 때 정확도는? [1] Nature, 2016, https://goo.gl/mGK4W2 [2] 통계분석생존지침서 https://goo.gl/dsPIWk ü 단순히 정확도 만으로는 데이터 분석의 성능을 올바로 측정하기가 어렵다. ü 데이터 밸런싱을 맞추어야 통계학적으로 설명력Power가 세진다. precision = 정밀도. = Positive predictive value 양성 예측도. 예측한 p중 맞춘 p P = TP/(TP+FP) recall = 재현율=민감도 sensitivity. 실제 p중 맞 춘 p R = TP/(TP+FN) F-measure 2*P*R/(P+R) Negative predictive value 음성예측도. 예측한 n중 맞춘 n NPV = TN / (FN+TN) specificity 특이도. 실제n중 맞춘 n S = TN / (FP+TN) error rate 오분류율. 모든 경우의 수 중에 틀린 것 E = (FP+FN) / ALL ALL = TP+FP+TN+FN accuracy rate = 정분류율 = 정확도. 모든 경우의 수 중 에 맞은 것 A = (TP+TN) / ALL type I error p라고 예측했는데 실제는 n인 것. 예측이 잘못된 것. type II error n이라고 예측했는데 실제는 p인 것. 예측했어야 하는 것 •여기서 p가 타겟 예측한 것 실제 잘맞춘것 잘맞춘것 Data Sampling - 소수집단에 대한 Oversampling - 다수집단에 대한 Undersampling - Cost함수사용. e.g. Y가 소수집단일시, Y를 맞추면 +10점 틀리 면 –10점. N을 맞추면 +1점, 틀리면 –1점
  • 16. K-fold Test 와 Overfitting 과적합 - 16 - Training / Test set / Validation set 을 나누어, 훈련, 테스트, 검증의 과정을 K회 진행하여 성능을 도출[1] ü Sample 분화: Training Set 모델 만들 때 사용 / Validating Set 모델 조정하기 위해 사용 Test Set 모델 의 최종 평가 위해 사용[2] ü 충분한 교차검증을 거치지 않을경우, 훈련 데이터에만 최적화 되는 과적합Overfitting이 일어남 [1] Chingwa Univ http://www.cs.nthu.edu.tw/~shwu/courses/ml/labs/08_CV_Ensembling/08_CV_Ensembling.html [2] Penn Univ https://quantdev.ssri.psu.edu/tutorials/cross-validation-tutorial
  • 17. K-fold Test 와 Overfitting 과적합 - 17 - Training / Test set / Validation set 을 나누어, 훈련, 테스트, 검증의 과정을 K회 진행하여 성능을 도출[1] ü Sample 분화: Training Set 모델 만들 때 사용 / Validating Set 모델 조정하기 위해 사용 Test Set 모델 의 최종 평가 위해 사용[2] ü 충분한 교차검증을 거치지 않을경우, 훈련 데이터에만 최적화 되는 과적합Overfitting이 일어남 [1] Chingwa Univ http://www.cs.nthu.edu.tw/~shwu/courses/ml/labs/08_CV_Ensembling/08_CV_Ensembling.html [2] Penn Univ https://quantdev.ssri.psu.edu/tutorials/cross-validation-tutorial
  • 18. K-fold Test 와 Overfitting 과적합 - 18 - Training / Test set / Validation set 을 나누어, 훈련, 테스트, 검증의 과정을 K회 진행하여 성능을 도출 ü 충분한 K-fold 테스트를 거치지 않은 모델의 경우, 훈련 데이터에 너무 최적화 되는 Overfitting(과적 합) 현상이 일어남[3] [1] Chingwa Univ http://www.cs.nthu.edu.tw/~shwu/courses/ml/labs/08_CV_Ensembling/08_CV_Ensembling.html [2] Penn Univ https://quantdev.ssri.psu.edu/tutorials/cross-validation-tutorial [3] Sigmoidal ML c https://sigmoidal.io/
  • 19. F1-Measure Code - 19 - ü sklearn이라는 Package를 사용하여 쉽게 구할 수 있음. (f1_score_sklearn.ipynb 참조) https://scikit-learn.org/stable/modules/model_evaluation.html#precision-recall-f-measure-metrics
  • 20. K-fold Test Code - 20 - ü sklearn이라는 Package를 사용하여 쉽게 구할 수 있음. (f1_score_sklearn.ipynb 참조) ü K로 나누어 떨어지지 않는 경우, 각 Fold의 사이즈가 달라질 수 있음에 주의 https://machinelearningmastery.com/k-fold-cross-validation/
  • 21. Machine Learning
  • 22. 분류 Classification - 22 - 분류Classification는 레이블이 이산형 범주일 때, 데이터를 구분하는 방식이다. ü 다음과 같은 데이터가 있다고 하자. x, y를 Feature로 갖고, 파란색과 빨간색을 label로 같는 데이터 셋이다. ~/MachineLearning/06_00_Figure_Code.ipynb VanderPlas, J. (2016). Python data science handbook: essential tools for working with data. " O'Reilly Media, Inc.".
  • 23. 분류 Classification - 23 - 분류Classification는 레이블이 이산형 범주일 때, 데이터를 구분하는 방식이다. ü 간단하게 하나의 직선을 그려서, 파란색과 빨간색을 분류할 수 있다. 이제 새로운 데이터 셋을 예 측해보자. ~/MachineLearning/06_00_Figure_Code.ipynb VanderPlas, J. (2016). Python data science handbook: essential tools for working with data. " O'Reilly Media, Inc.".
  • 24. 분류 Classification - 24 - 레이블이 없는 데이터에 학습시킨 모델을 적용시켜 레이블을 생성할 수 있다. 이를 예측이라 한다. ~/MachineLearning/06_00_Figure_Code.ipynb VanderPlas, J. (2016). Python data science handbook: essential tools for working with data. " O'Reilly Media, Inc.".
  • 25. 선형회귀 Linear Regression - 25 - 회귀Regression은 분류와는 달리, 레이블Label이 연속형인 숫자인 경우를 의미한다. ü 아래의 데이터를 살펴보면, 레이블Label의 색상이 이전과는 다르게 다채로운 색상으로 구성되어 있는 것을 확인할 수 있다. VanderPlas, J. (2016). Python data science handbook: essential tools for working with data. " O'Reilly Media, Inc.". ~/MachineLearning/06_00_Figure_Code.ipynb
  • 26. 선형회귀 Linear Regression - 26 - 레이블이 여러개이므로, 선을 하나만 그을 수 없기 때문에, 선의 집합인 평면으로 나누어보자. VanderPlas, J. (2016). Python data science handbook: essential tools for working with data. " O'Reilly Media, Inc.". ~/MachineLearning/06_00_Figure_Code.ipynb
  • 27. 선형회귀 Linear Regression - 27 - 점들의 집합을 가로지르는 평면을 모델으로 데이터를 잘 구분할 수 있다고 할 수 있다. VanderPlas, J. (2016). Python data science handbook: essential tools for working with data. " O'Reilly Media, Inc.". ~/MachineLearning/06_00_Figure_Code.ipynb
  • 28. 선형회귀 Linear Regression - 28 - 결과적으로, 2차원 평면으로 옮겨오면 마치 이미지 필터처럼 각 데이터들을 구분하게 된다. VanderPlas, J. (2016). Python data science handbook: essential tools for working with data. " O'Reilly Media, Inc.". ~/MachineLearning/06_00_Figure_Code.ipynb
  • 29. 선형회귀 Linear Regression - 29 - 결과적으로, 2차원 평면으로 옮겨오면 마치 이미지 필터처럼 각 데이터들을 구분하게 된다. VanderPlas, J. (2016). Python data science handbook: essential tools for working with data. " O'Reilly Media, Inc.". ~/MachineLearning/06_00_Figure_Code.ipynb
  • 30. 선형회귀 Linear Regression - 30 - 해당 필터를 다음의 새로운 데이터에 적용해 볼 수 있다. VanderPlas, J. (2016). Python data science handbook: essential tools for working with data. " O'Reilly Media, Inc.". ~/MachineLearning/06_00_Figure_Code.ipynb
  • 31. Clustering: Searching for Islands of Simplicity - 31 - 군집 탐지 알고리즘(Clustering Algorithms)은 레코드들의 집단들(groups of records)을 찾아주는 것 ü 자동 군집 탐지는 비지도 데이터 마이닝(undirect data mining) 기법의 일환으로, 데이터로 부 터 어떠한 목표 변수(target variable) 없이 패턴을 찾아냄. ü Hard Clustering : 각 레코드를 하나의 클러스터에 할당 (assign each record to a single cluster) e.g. K-mean clustering ü Sorft Clustering : 각 레코드를 여러개의 클러스터에 연관시킴. ü 비록 군집 탐지 알고리즘이 비지도 기법이지만, 비즈니스의 목적에 따라 지도 활동(directed activity)이 추가되는 경우가 있음. 마케팅 분야에서 CRM의 일환으로 Clustering을 고객 Segmentation에 활용. CEG(2015), Anna University, Text clustering Gordon S. Linoff. Data Mining Techniques, 3rd Edition, 2011
  • 32. Tracking Campaigns by Cluster-Based Segments - 32 - 고객 캠페인을 진행할 경우 클러스터 기반 고객 분류를 통해 성과를 추적하거나 개선할 수 있음. ü 일반적으로 타겟 변수가 확실하면 Decision Tree 같은 기법들이 더 나은 결과를 도출할 수 있음. ü Warning : It is not usually a good idea for business people to select a data mining technique. Business people should concentrate on properly defining the business problem and let a data mining expert decide how best to attack it. ü 실패한 마케팅 캠페인 중에서도 고객 segment에 따라 효과를 실제로 본 집단도 있을 수 있고, 추후 segment별 캠페인 진행을 실시하여 순차적으로 효과를 향상 시킬 수 있을 것임. ü Tip : Lurking inside failed marketing campaigns may be customer segments where the campaign actually worked. Finding these segments canpowerfully improve subsequent campaigns. ü e.g. Tenure in the current subscription period / Number of previous subscriptions, prior to the current one / Total tenure over all subscriptions/ Original acquisition channel, etc Gordon S. Linoff. Data Mining Techniques, 3rd Edition, 2011
  • 33. The K-Means Clustering Algorithm - 33 - 데이터 점들의 서로에 대한 유사성을 기초로한 고정된 수(K)의 군집들을 찾는 것(MacQueen, 1967) ü 이해를 돕기위해 두 원소로 이루어진 벡터(x1, x2)로 표현 되었으나 실제로는 n개의 원소. ü 1) 임의로 K개의 데이터 포인트들을 시드로 선택 (임의의 K개의 레코드 선택) ü 2) 각 레코드들을 가장 가까운 시드에 배정 (군집 사이의 경계를 찾음) Figure 13.1 Three data points have been chosen as cluster seeds. Figure 13.2 The initial clusters are formed by assigning each data point to the closest seed. Gordon S. Linoff. Data Mining Techniques, 3rd Edition, 2011
  • 34. The K-Means Clustering Algorithm - 34 - 데이터 점들의 서로에 대한 유사성을 기초로한 고정된 수(K)의 군집들을 찾는 것(MacQueen, 1967) Figure 13.4 The k-means algorithm terminates when no records are reassigned following the latest relocation of the centroids. Figure 13.3 In the update step, the cluster centroid is calculated as the average value of the cluster members. ü 3) 군집들의 중심점을 찾음. (초기 시드들에 비해 중심점이 군집들을 더 잘설명함. 중심점을 찾 는 방법은 단순이 군집의 모든 레코드에 대해 각 차원의 평균값을 취하는 것) Gordon S. Linoff. Data Mining Techniques, 3rd Edition, 2011
  • 35. Pros and Con of K-Mean Clustering - 35 - Pros : 공간 복잡도 측면에서 다른 군집화 알고리즘에 비해 시간복잡도 측면에서 빠른 속도를 보인다. ü 일반적인 군집화 알고리즘은 O(n2) 혹은 O(nlogn)임에 비해 K-mean의 경우 O(n) Cons : 초기 군집 숫자를 정해주어야 한다는 점, 데이터 분포의 특성에 따라 군집하기 어려운 데이터도 있음 ü Non Globular Shape (Tan, 2004) - 데이터 분포의 특성으로 인한 한계 ü Overcoming K-means limitations (Tan, 2004) - 초기 군집 숫자를 정해주어야 하는데서 오는 한계 Tan,Steinbach, Kumar (2004) Introduction to Data Mining
  • 36. K-Mean Clustering Example using Python - 36 - K-Mean 클러스터링을 위한 데이터 생성 ~/MachineLearning/05_11_K_Means.ipynb
  • 37. K-Mean Clustering Example using Python - 37 - sklearn에서 Kmean을 불러온뒤, 클러스터 숫자를 지정해주고, 모델 생성fit 뒤, 예측하는 간단한 코드 ~/MachineLearning/05_11_K_Means.ipynb
  • 38. Deep Learning
  • 39. ANN(Artificial Neural Network, 인공신경망) - 39 - 인공신경망ANN은뉴런에서착안하여무수히많은수학적연산을통해원하는결과를도출하는방법 Kwon(2014), Artificial Neural Network, https://slidesplayer.org/slide/11237813/ 와쿠이 요시유키, 와쿠이 사다미(2018), 한빛미디어, 처음 배우는 딥러닝 수학 http://gihyo.jp/book/2017/978-4-7741-8814-0/support#supportDownload ü 뉴런에 신호가 입력되고, 신경세포체가 신호를 합한 뒤, 신호의 값이 임곗값(Threshold) 보다 작을 때는 무시하고, 클 때는 반응하여 옆 뉴런에 신호를 전달한다.
  • 40. ANN(Artificial Neural Network, 인공신경망) - 40 - 인공신경망ANN은뉴런에서착안하여무수히많은수학적연산을통해원하는결과를도출하는방법 와쿠이 요시유키, 와쿠이 사다미(2018), 한빛미디어, 처음 배우는 딥러닝 수학 http://gihyo.jp/book/2017/978-4-7741-8814-0/support#supportDownload ü 미분이 불가능한 지점이 존재하는 실제 뉴런의 활성화 함수 대신, 미분이 가능한 시그모이드 함 수를 사용
  • 41. 인공신경망의 수학적 이해 - 41 - 인공신경망은결국에는수많은행렬연산과곱셈, 미분의연속이다. 와쿠이 요시유키, 와쿠이 사다미(2018), 한빛미디어, 처음 배우는 딥러닝 수학 http://gihyo.jp/book/2017/978-4-7741-8814-0/support#supportDownload Image Processing and Neural Networks Intuition: Part 2 https://datascienceintuition.wordpress.com/tag/python ü 임계값을 인공신경망에서는 편향bias이라고 한다. ü 각 입력에 대한 가중치까지 고려하면 아래의 수식이 유도되고, 이러한 가중 입력은 두 벡터의 내 적으로 나타낼 수 있다.
  • 42. 인공신경망의 수학적 이해 - 42 - 인공신경망은결국에는수많은행렬연산과곱셈, 미분의연속이다. ü 2차원과 3차원 공간의 벡터Vector를 N차원으로 확장하여 일반화 한 것이 텐서Tensor이다. 벡터 계산을 단순화 하기 위해 동일한 성질의 벡터들을 행렬로 표기한 것이다. TensorVector
  • 43. 인공신경망의 수학적 이해 - 43 - 인공신경망은결국에는수많은행렬연산과곱셈, 미분의연속이다. ü 입력층에서는 원하는 데이터들을 벡터화 하여 입력하고 은닉층에서는 수많은 뉴런들의 조합과 가중치에 따라 미분 계산을 하여 최종적으로 출력층에서 결과로의 판단을 진행한다.
  • 44. 인공신경망의 수학적 이해 - 44 - 인공신경망은결국에는수많은행렬연산과곱셈, 미분의연속이다. ü 학습을 진행할 때, 인공신경망에 의해 제대로 예측이 이루어지지 않았을 때의 오차의 합이 최소 화 하는 방향으로 모델이 생성된다. ü 이 때, 가장 일반적으로 사용되는 것이 경사하강법으로, 접선의 기울기가 최소가 되는 지점을 찾 는 것을 목표로 한다. 이 때에 미분이 사용된다. 경사하강법 Gradient Descent미분
  • 45. 인공신경망의 수학적 이해 - 45 - 인공신경망은결국에는수많은행렬연산과곱셈, 미분의연속이다. https://kr.mathworks.com/help/gads/example-finding-global-or-multiple-local-minima.html ü 경사하강법 역시, 다차원에 대해 이루어질 수 있다. 변수가 여러개 있을 때, 어떤 변수를 미분할 지 명시하는 것을 편미분Partial Derivative라 한다. ü 이 과정에서 Learning Rate을 적절한 값으로 설정하지 않으면 Local Minima에 빠지거나 연산이 너 무 늦어질 가능성이 높다. 경사하강법 Gradient Descent
  • 46. 인공신경망의 수학적 이해 - 46 - 인공신경망은결국에는수많은행렬연산과곱셈, 미분의연속이다. ü 출력값이 기대값보다 얼마나 벗어났는지를 측정하는 손실함수Cost Function로 산출된 손실 점수 에 의해 가중치 값을 조금씩 조정하면서 신경망은 정교해진다. ü 이러한 수정 과정을 Optimizer가 담당하는데, 이 과정을 역전파Backpropagation라 한다. 역전파는 최종 손실값에서 부터 각 파라미터가 기여한 정도를 계산하기 위해 미적분의 연쇄 법칙Chain Rule을 사용하여 최상위 층에서 부터 하위층까지 거꾸로 계산됩니다. Chollet, F. (2017). Deep learning with python. Manning Publications Co..
  • 47. 인공신경망의 수학적 이해 - 47 - 인공신경망은결국에는수많은행렬연산과곱셈, 미분의연속이다. 와쿠이 요시유키, 와쿠이 사다미(2018), 한빛미디어, 처음 배우는 딥러닝 수학 http://gihyo.jp/book/2017/978-4-7741-8814-0/support#supportDownload
  • 48. 인공신경망의 수학적 이해 - 48 - 인공신경망ANN은뉴런에서착안하여무수히많은수학적연산을통해원하는결과를도출하는방법 와쿠이 요시유키, 와쿠이 사다미(2018), 한빛미디어, 처음 배우는 딥러닝 수학 http://gihyo.jp/book/2017/978-4-7741-8814-0/support#supportDownload ü 와쿠이 요시유키(2018)는 수학적 이해를 위해, 엑셀로 간단한 숫자 인식 알고리즘을 구현하였다.
  • 49. 인공신경망의 수학적 이해 - 49 - 인공신경망ANN은뉴런에서착안하여무수히많은수학적연산을통해원하는결과를도출하는방법 와쿠이 요시유키, 와쿠이 사다미(2018), 한빛미디어, 처음 배우는 딥러닝 수학 http://gihyo.jp/book/2017/978-4-7741-8814-0/support#supportDownload ü 와쿠이 요시유키(2018)는 수학적 이해를 위해, 엑셀로 간단한 숫자 인식 알고리즘을 구현하였다.
  • 50. 인공신경망의 수학적 이해 - 50 - 인공신경망ANN은뉴런에서착안하여무수히많은수학적연산을통해원하는결과를도출하는방법 와쿠이 요시유키, 와쿠이 사다미(2018), 한빛미디어, 처음 배우는 딥러닝 수학 http://gihyo.jp/book/2017/978-4-7741-8814-0/support#supportDownload ü 와쿠이 요시유키(2018)는 수학적 이해를 위해, 엑셀로 간단한 숫자 인식 알고리즘을 구현하였다.
  • 51. Deep Learning의 정의 - 51 - 머신러닝의알고리즘중에서인공신경망을활용하는분석을통칭해서딥러닝으로분류 ü ANN의 은닉 계층의 레이어를 두 개 이상 구현하는 경우를 심층신경망(Deep Neural Network, DN N)이라고 불렀는데, 이를 줄여서 딥러닝(Deep Learning)으로 부르기 시작
  • 52. Tensorflow - 52 - Tensorflow는대표적으로딥러닝에서많이사용되는오픈소스프레임워크
  • 53. Keras - 53 - 케라스는딥러닝모델을간편하게만들고훈련시킬수있는파이썬을위한딥러닝프레임워크 ü 케라스는 Tensorflow를 백엔드로 사용하여 거의 모든 딥러닝 모델에 사용될 수 있다. ü 동일한 코드로 CPU와 GPU에서 사용가능 ü MIT라이센스로, 상업적인 프로젝트에도 사용가능 Chollet, F. (2017). Deep learning with python. Manning Publications Co..
  • 54. Keras - 54 - 케라스는딥러닝모델을간편하게만들고훈련시킬수있는파이썬을위한딥러닝프레임워크 ü Tensorflow 2.0의 표준 API로 Keras가 지정되었음. Chollet, F. (2017). Deep learning with python. Manning Publications Co..
  • 55. ANN(Artificial Neural Network, 인공신경망) with MNIST - 55 - 인공신경망ANN은뉴런에서착안하여무수히많은수학적연산을통해원하는결과를도출하는방법 Chollet, F. (2017). Deep learning with python. Manning Publications Co.. ü MNIST는 흑백으로 쓰여진 손글씨 이미지로, 각 이미지가 어떤 숫자인지 레이블링이 되어 있음.
  • 56. ANN(Artificial Neural Network, 인공신경망) with MNIST - 56 - 인공신경망ANN은뉴런에서착안하여무수히많은수학적연산을통해원하는결과를도출하는방법 Chollet, F. (2017). Deep learning with python. Manning Publications Co.. ü 네트워크 레이어를 활성함수 옵션을 지정해 주며 쌓고, 옵티마이저와 Loss function을 지정해준뒤, 평가 지표를 지정한다. ü 이 후, 트레이닝, 테스트 이미지의 input 데이터의 벡터화를 진행하고, 숫자형 변수를 범주형으로 전환한다.
  • 57. ANN(Artificial Neural Network, 인공신경망) with MNIST - 57 - 인공신경망ANN은뉴런에서착안하여무수히많은수학적연산을통해원하는결과를도출하는방법 Chollet, F. (2017). Deep learning with python. Manning Publications Co.. ü 미니배치Minibatch: 모든 경우의 수를 계산하여 최적값을 찾는 것Full Batch이 아닌, 작은 양의 데 이터를 분절하여 최적값을 찾아나가는 방식 ü (샘플 60,000개 / 128 배치 사이즈) * 5번 반복epoch = 2,345번의 그래디언트 업데이트
  • 58. ANN(Artificial Neural Network, 인공신경망) - 58 - 신경망모델구현을위한데이터전처리하기 Chollet, F. (2017). Deep learning with python. Manning Publications Co.. “A CHARMINGLY NORMAL DISTRIBUTION:” ADVENTURES WITH MYSTERY DATA http://juliemelton.com/2008/07/30/a-charmingly-normal-distribution-adventures-with-mystery-data/ ü 신경망에서 모든 입력과 목표 변수는 부동 소수점 데이터float로 이루어진 텐서여야 함. 입력 데 이터를 텐서로 변경하는 것을 데이터 벡터화(Data Vectorization)이라 함 ü 원-핫 인코딩One-hot Encoding은, 해당하는 정보는 1로 나머지 정보는 0으로 표기하는 방법으로, 영향이 없는 정보에 대해서는 0을 대입하여 행렬 곱셈 연산 등에서 빠른 연산 속도가 이루어지 도록 한다. ü 각 입력 데이터의 범위가 다르거나, 크기가 다를 경우, 네트워크 학습이 어려우므로, 정규화 Normalization를 실시해야 한다. 일반적으로 평균이 0이고 표준편차가 1이 되는 0과 1 사이의 값 으로 변환한다. One-hot Encoding
  • 59. ANN(Artificial Neural Network, 인공신경망) - 59 - 인공신경망성능튜닝Performance Tuning 하기 Chollet, F. (2017). Deep learning with python. Manning Publications Co.. ü 100% 과적합 모델 구현: 머신러닝은 최적화와 일반화 사이의 줄다리기. 100% 정확도에 가까운 모델을 만들고, 그 이후에 일반화를 진행해야 함. 같은 데이터 사이즈에서 정확도를 높이기 위해 선, 층을 추가하고, 층의 크기를 키우고 더 많은 에포크 동안 훈련을 시켜야 함. ü 모델 규제와 하이퍼파라미터 튜닝 ü 드롭아웃Dropout 추가: 훈련하는 동안 무작위로 층의 일부 출력 특성을 제외 시킴. 신경망 모델에 융통성을 부여 ü 네트워크 크기 축소: 모델에 있는 학습 파라미터의 수Capacity를 줄이는 것. 또한 층을 추가 하거나 제거해서 다른 구조를 시도. ü 가중치 규제Weight Regularization: 가중치의 절대값에 비례하는 비용Cost을 추가하는 L1규 제와 가중치 제곱에 비례하는 비용Cost을 추가하는 L2규제가 있음. L2규제를 가중치 감쇠 Weight Decay라고도 함. ü 하이퍼 파라미터를 바꾸어 시도해 본다. (층의 유닛수나 옵티마이저의 학습률 등)
  • 60. CNN(Convolutional Neural Network, 합성곱신경망) - 60 - Convolution Filiter를사용하여인식률을높인인공신경망구조 ü MaxPooling은 해당 Convolution이라는 행렬 안에 있는 숫자중 가장 큰 숫자만 남기는 방법 Chollet, F. (2017). Deep learning with python. Manning Publications Co.. “A CHARMINGLY NORMAL DISTRIBUTION:” ADVENTURES WITH MYSTERY DATA NVidia (2018) Convolutional Neural Network (CNN) https://developer.nvidia.com/discover/convolutional-neural-network
  • 61. CNN(Convolutional Neural Network, 합성곱신경망) - 61 - Convolution Filiter를사용하여인식률을높인인공신경망구조 ü Conv2D와 MaxPooling2D 층의 출력은 (height, width, channels) 크기의 3D 텐서이기 때문에, 1D 텐 서로 펼쳐주는 작업Flatten()이 필요함. 이 후에 Dense 층 몇 개를 추가함 Chollet, F. (2017). Deep learning with python. Manning Publications Co..
  • 62. CNN(Convolutional Neural Network, 합성곱신경망) - 62 - Convolution Filiter를사용하여인식률을높인인공신경망구조 ü 99.1%로 ANN만을 활용한 경우보다 성능 향상이 비약적으로 높아진 것을 알 수 있음. Chollet, F. (2017). Deep learning with python. Manning Publications Co..
  • 63. 그 외에 알아볼 만한 딥러닝 분석 기법 - 63 - 딥러닝은레이어를어떻게쌓고연결하는지, 그리고각네트워크를어떤방식으로사용하는지등에따라여러가 지방법들이나오고있고, 발전되고있음 ü GAN(Generative Advalsarial Network): 딥러 닝의 경찰과 도둑 버전. Fake 신경망을 추 가하여 서로 경쟁하여 좋은 성능을 내게 하는 방법. ü AE(Autoencoder, 오토인코더): 음성합성 등 에 특화된 딥러닝 네크워크 ü RNN(Recurrent Neural Network, 순환신경 망): 시계열 데이터에 과거 데이터에 대한 기억 유닛을 추가하여 예측력을 높인 모 델. LSTM(Long Short Term Memory)과 GRU(Gated Recurrent Unit)가 있다. ü DNN(Deep Neural Network, 심층신경망): 히든레이어를 2개 이상 사용한 인공신경 망 모델
  • 64. Deep Learning - 64 - https://youtu.be/3JQ3hYko51Y
  • 65. Reinforcement Learning
  • 66. Reinforcement Learning - 66 - 강화학습이란, 주어진 환경(Environment)에서 에이전트(Agent)의 행동(Action)을 통해 그 결과로 보상 (Reward)을 받아 모델(Model)을 학습해가는 과정을 말한다. ü 학습 데이터를 사람이 쌓을 필요가 없다는 점에서 보다 많은 상황에서 응용되고 있음. (물론 환경에 대한 정보나 공식, 상호작용 등에 대한 전제 등은 사람의 몫) ü 학습 과정에서 끊임없이 보상을 받아 조정해 나가는 과정이 필연적이므로, 시뮬레이터가 있어서 실 험을 반복하기 용이한 환경에 사용 https://gym.openai.com/
  • 67. The Multi-armed bandit - 67 - 아무런 정보가 주어지지 않은 상태에서 여러개의 슬롯 머신 중 가장 많은 보상을 주는 기계를 찾아가 는 강화학습 (Reinforcement Learning) 모델 ü 강화학습을 이해하기에 가장 좋은 기법 ü 게임의 횟수를 반복하여 가장 많은 보상을 받은 기계를 답으로 선정 ü 중간 중간에 기계의 보상 설정 값이 변화하는 상황 발생 (Contextual)
  • 68. The Multi-armed bandit - 68 - 초기에 주어진 업무량에 따른 생산성 최적 지점을 찾는 데이터 ü 기본적으로 남은 업무와 끝난 업무간에는 아래와 같은 그래프를 확인할 수 있음.
  • 69. The Multi-armed bandi
  • Related Search
    We Need Your Support
    Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

    Thanks to everyone for your continued support.

    No, Thanks
    SAVE OUR EARTH

    We need your sign to support Project to invent "SMART AND CONTROLLABLE REFLECTIVE BALLOONS" to cover the Sun and Save Our Earth.

    More details...

    Sign Now!

    We are very appreciated for your Prompt Action!

    x