Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

18,448 views

Published on

#Python #딥러닝 #API #ibmdeveloperday2019
여러분들의 성원에 보답하기 위해 IBM Developer Day에서 발표한 세션 자료를 공개합니다! 그 어느때 보다 발표자료를 요청한 분들이 많아 놀랐습니다~ 그럼 다음에 또 뵙겠습니다 :)
Github https://github.com/yunho0130/devday_python_api
세션 영상 https://youtu.be/Z7bTfnuLXck

Published in: Technology
  • Login to see the comments

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

  1. 1. Python으로 나만의 딥러닝 API만들기 — 맹윤호 IBM - Data & AI Technical Service Professional
  2. 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. 3. Intro
  4. 4. Introduction (맹윤호) - 4 - IBM 에서 SW엔지니어로, 연세대에서 박사과정중인 샐러던트. @yunho.m88Q&A ü 본 강연은 저자의 소속과 관계없이 Python과 딥러닝을 공부하는 한 개인으로서 작성된 글입니다. 본 강연의 내용, 입장, 예측은 저자의 소속을 대변하지 않습니다. ü 본 강연에서 다루는 Use case는 외부에 공개된 내용을 바탕으로 이루어져 있으며, 저자의 소속을 통해서만 공개될 수 있는 비공개 자료를 포함하고 있지 않음을 밝히는 바입니다.
  5. 5. Session Goal - 5 - Content Goal : 데이터 분석 전반에 대해 알아보고, 이를 Python을 활용해서 API로 만들어 본다 Non Content Goal : 멀게만 느껴졌던 딥러닝과 API를 보다 친숙하게 Personal Goal (Calling) : 좋은 연구 성과를 낸 AI 연구조직들이 끝까지 살아남기를 바라는 마음
  6. 6. Level of difficulty: Intermediate - 6 - 머신러닝, 딥러닝, 강화학습 기본 지식부터 API에 이르기까지 전반적인 내용을 아우르게 됩니다.
  7. 7. Github Repository - 7 - https://github.com/yunho0130/devday_python_api
  8. 8. AI, AI, AI - 8 - 소프트뱅크의 손정의 회장도 강력히 강조한 AI https://www.youtube.com/watch?v=nh1T8KeCBxY
  9. 9. - 9 - So What? == Business Result (Product, Patent, Profit) != Academic Result (Paper, Impact Factor) Today Session
  10. 10. Challenge to AI Organization - 10 - 연구자 중심으로 구성된 AI 조직들이 Market에서의 성과를 증명해야 하는 도전에 직면해 있습니다.
  11. 11. Data Analysis & Performance
  12. 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. 13. Machine Learning의 구분 - 13 - 지도학습(Supervised Learning)과 비지도학습(Unsupervised Learning)으로 나뉘는 머신러닝(Machine Learning)의 갈래 https://blog.westerndigital.com/machine-learning-pipeline-object-storage/supervised-learning-diagram/
  14. 14. Machine Learning & Deep Learning - 14 - 머신러닝의경우, 아무리많은데이터를학습시키더라도정확도향상에한계가오는지점이있었음. ü 머신러닝은, 분석 결과가 직관적이고 해석이 용이하여 Action Plan 수립에 효과적 ü 딥러닝은, 머신러닝과는 달리 데이터의 양에 따른 성능 향상의 제한이 비교적 덜한편 Bakshi, A. (2017). What is Deep Learning? Getting Started With Deep Learning. Edureka.
  15. 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. 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. 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. 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. 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. 20. K-fold Test Code - 20 - ü sklearn이라는 Package를 사용하여 쉽게 구할 수 있음. (f1_score_sklearn.ipynb 참조) ü K로 나누어 떨어지지 않는 경우, 각 Fold의 사이즈가 달라질 수 있음에 주의 https://machinelearningmastery.com/k-fold-cross-validation/
  21. 21. Machine Learning
  22. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 36. K-Mean Clustering Example using Python - 36 - K-Mean 클러스터링을 위한 데이터 생성 ~/MachineLearning/05_11_K_Means.ipynb
  37. 37. K-Mean Clustering Example using Python - 37 - sklearn에서 Kmean을 불러온뒤, 클러스터 숫자를 지정해주고, 모델 생성fit 뒤, 예측하는 간단한 코드 ~/MachineLearning/05_11_K_Means.ipynb
  38. 38. Deep Learning
  39. 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. 40. ANN(Artificial Neural Network, 인공신경망) - 40 - 인공신경망ANN은뉴런에서착안하여무수히많은수학적연산을통해원하는결과를도출하는방법 와쿠이 요시유키, 와쿠이 사다미(2018), 한빛미디어, 처음 배우는 딥러닝 수학 http://gihyo.jp/book/2017/978-4-7741-8814-0/support#supportDownload ü 미분이 불가능한 지점이 존재하는 실제 뉴런의 활성화 함수 대신, 미분이 가능한 시그모이드 함 수를 사용
  41. 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. 인공신경망의 수학적 이해 - 42 - 인공신경망은결국에는수많은행렬연산과곱셈, 미분의연속이다. ü 2차원과 3차원 공간의 벡터Vector를 N차원으로 확장하여 일반화 한 것이 텐서Tensor이다. 벡터 계산을 단순화 하기 위해 동일한 성질의 벡터들을 행렬로 표기한 것이다. TensorVector
  43. 43. 인공신경망의 수학적 이해 - 43 - 인공신경망은결국에는수많은행렬연산과곱셈, 미분의연속이다. ü 입력층에서는 원하는 데이터들을 벡터화 하여 입력하고 은닉층에서는 수많은 뉴런들의 조합과 가중치에 따라 미분 계산을 하여 최종적으로 출력층에서 결과로의 판단을 진행한다.
  44. 44. 인공신경망의 수학적 이해 - 44 - 인공신경망은결국에는수많은행렬연산과곱셈, 미분의연속이다. ü 학습을 진행할 때, 인공신경망에 의해 제대로 예측이 이루어지지 않았을 때의 오차의 합이 최소 화 하는 방향으로 모델이 생성된다. ü 이 때, 가장 일반적으로 사용되는 것이 경사하강법으로, 접선의 기울기가 최소가 되는 지점을 찾 는 것을 목표로 한다. 이 때에 미분이 사용된다. 경사하강법 Gradient Descent미분
  45. 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. 인공신경망의 수학적 이해 - 46 - 인공신경망은결국에는수많은행렬연산과곱셈, 미분의연속이다. ü 출력값이 기대값보다 얼마나 벗어났는지를 측정하는 손실함수Cost Function로 산출된 손실 점수 에 의해 가중치 값을 조금씩 조정하면서 신경망은 정교해진다. ü 이러한 수정 과정을 Optimizer가 담당하는데, 이 과정을 역전파Backpropagation라 한다. 역전파는 최종 손실값에서 부터 각 파라미터가 기여한 정도를 계산하기 위해 미적분의 연쇄 법칙Chain Rule을 사용하여 최상위 층에서 부터 하위층까지 거꾸로 계산됩니다. Chollet, F. (2017). Deep learning with python. Manning Publications Co..
  47. 47. 인공신경망의 수학적 이해 - 47 - 인공신경망은결국에는수많은행렬연산과곱셈, 미분의연속이다. 와쿠이 요시유키, 와쿠이 사다미(2018), 한빛미디어, 처음 배우는 딥러닝 수학 http://gihyo.jp/book/2017/978-4-7741-8814-0/support#supportDownload
  48. 48. 인공신경망의 수학적 이해 - 48 - 인공신경망ANN은뉴런에서착안하여무수히많은수학적연산을통해원하는결과를도출하는방법 와쿠이 요시유키, 와쿠이 사다미(2018), 한빛미디어, 처음 배우는 딥러닝 수학 http://gihyo.jp/book/2017/978-4-7741-8814-0/support#supportDownload ü 와쿠이 요시유키(2018)는 수학적 이해를 위해, 엑셀로 간단한 숫자 인식 알고리즘을 구현하였다.
  49. 49. 인공신경망의 수학적 이해 - 49 - 인공신경망ANN은뉴런에서착안하여무수히많은수학적연산을통해원하는결과를도출하는방법 와쿠이 요시유키, 와쿠이 사다미(2018), 한빛미디어, 처음 배우는 딥러닝 수학 http://gihyo.jp/book/2017/978-4-7741-8814-0/support#supportDownload ü 와쿠이 요시유키(2018)는 수학적 이해를 위해, 엑셀로 간단한 숫자 인식 알고리즘을 구현하였다.
  50. 50. 인공신경망의 수학적 이해 - 50 - 인공신경망ANN은뉴런에서착안하여무수히많은수학적연산을통해원하는결과를도출하는방법 와쿠이 요시유키, 와쿠이 사다미(2018), 한빛미디어, 처음 배우는 딥러닝 수학 http://gihyo.jp/book/2017/978-4-7741-8814-0/support#supportDownload ü 와쿠이 요시유키(2018)는 수학적 이해를 위해, 엑셀로 간단한 숫자 인식 알고리즘을 구현하였다.
  51. 51. Deep Learning의 정의 - 51 - 머신러닝의알고리즘중에서인공신경망을활용하는분석을통칭해서딥러닝으로분류 ü ANN의 은닉 계층의 레이어를 두 개 이상 구현하는 경우를 심층신경망(Deep Neural Network, DN N)이라고 불렀는데, 이를 줄여서 딥러닝(Deep Learning)으로 부르기 시작
  52. 52. Tensorflow - 52 - Tensorflow는대표적으로딥러닝에서많이사용되는오픈소스프레임워크
  53. 53. Keras - 53 - 케라스는딥러닝모델을간편하게만들고훈련시킬수있는파이썬을위한딥러닝프레임워크 ü 케라스는 Tensorflow를 백엔드로 사용하여 거의 모든 딥러닝 모델에 사용될 수 있다. ü 동일한 코드로 CPU와 GPU에서 사용가능 ü MIT라이센스로, 상업적인 프로젝트에도 사용가능 Chollet, F. (2017). Deep learning with python. Manning Publications Co..
  54. 54. Keras - 54 - 케라스는딥러닝모델을간편하게만들고훈련시킬수있는파이썬을위한딥러닝프레임워크 ü Tensorflow 2.0의 표준 API로 Keras가 지정되었음. Chollet, F. (2017). Deep learning with python. Manning Publications Co..
  55. 55. ANN(Artificial Neural Network, 인공신경망) with MNIST - 55 - 인공신경망ANN은뉴런에서착안하여무수히많은수학적연산을통해원하는결과를도출하는방법 Chollet, F. (2017). Deep learning with python. Manning Publications Co.. ü MNIST는 흑백으로 쓰여진 손글씨 이미지로, 각 이미지가 어떤 숫자인지 레이블링이 되어 있음.
  56. 56. ANN(Artificial Neural Network, 인공신경망) with MNIST - 56 - 인공신경망ANN은뉴런에서착안하여무수히많은수학적연산을통해원하는결과를도출하는방법 Chollet, F. (2017). Deep learning with python. Manning Publications Co.. ü 네트워크 레이어를 활성함수 옵션을 지정해 주며 쌓고, 옵티마이저와 Loss function을 지정해준뒤, 평가 지표를 지정한다. ü 이 후, 트레이닝, 테스트 이미지의 input 데이터의 벡터화를 진행하고, 숫자형 변수를 범주형으로 전환한다.
  57. 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. 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. 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. 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. 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. 62. CNN(Convolutional Neural Network, 합성곱신경망) - 62 - Convolution Filiter를사용하여인식률을높인인공신경망구조 ü 99.1%로 ANN만을 활용한 경우보다 성능 향상이 비약적으로 높아진 것을 알 수 있음. Chollet, F. (2017). Deep learning with python. Manning Publications Co..
  63. 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. 64. Deep Learning - 64 - https://youtu.be/3JQ3hYko51Y
  65. 65. Reinforcement Learning
  66. 66. Reinforcement Learning - 66 - 강화학습이란, 주어진 환경(Environment)에서 에이전트(Agent)의 행동(Action)을 통해 그 결과로 보상 (Reward)을 받아 모델(Model)을 학습해가는 과정을 말한다. ü 학습 데이터를 사람이 쌓을 필요가 없다는 점에서 보다 많은 상황에서 응용되고 있음. (물론 환경에 대한 정보나 공식, 상호작용 등에 대한 전제 등은 사람의 몫) ü 학습 과정에서 끊임없이 보상을 받아 조정해 나가는 과정이 필연적이므로, 시뮬레이터가 있어서 실 험을 반복하기 용이한 환경에 사용 https://gym.openai.com/
  67. 67. The Multi-armed bandit - 67 - 아무런 정보가 주어지지 않은 상태에서 여러개의 슬롯 머신 중 가장 많은 보상을 주는 기계를 찾아가 는 강화학습 (Reinforcement Learning) 모델 ü 강화학습을 이해하기에 가장 좋은 기법 ü 게임의 횟수를 반복하여 가장 많은 보상을 받은 기계를 답으로 선정 ü 중간 중간에 기계의 보상 설정 값이 변화하는 상황 발생 (Contextual)
  68. 68. The Multi-armed bandit - 68 - 초기에 주어진 업무량에 따른 생산성 최적 지점을 찾는 데이터 ü 기본적으로 남은 업무와 끝난 업무간에는 아래와 같은 그래프를 확인할 수 있음.
  69. 69. The Multi-armed bandit - 69 - 잔여 업무의 감소정도를 그래프로 나타내면 아래와 같음. 간단한 선형 모델로 간단하게 구분이 가능하 지만, 시간 경과에 따라 비선형적인 움직임을 보인다면 각 기간마다 다른 우위를 보일 것임
  70. 70. The Multi-armed bandit - 70 - 잔여 업무의 감소정도를 그래프로 나타내면 아래와 같음. 간단한 선형 모델로 간단하게 구분이 가능하 지만, 시간 경과에 따라 비선형적인 움직임을 보인다면 각 기간마다 다른 우위를 보일 것임
  71. 71. The Multi-armed bandit - 71 - 데이터의 형태를 파악하고, 해당 데이터를 경과 기간에 따른 완료 업무를 Return해주는 함수를 작성
  72. 72. The Multi-armed bandit - 72 - 데이터의 형태를 파악하고, 해당 데이터를 경과 기간에 따른 완료 업무를 Return해주는 함수를 작성
  73. 73. The Multi-armed bandit - 73 - Training the Agent
  74. 74. The Multi-armed bandit - 74 - Training the Agent : 3번 밴딧이 가장 값이 높으므로 정답
  75. 75. The Contextual Bandits - 75 - 초기 업무가 80, 100, 120일 때 완료되는 Task가 ‘각 시점별’ 어느쪽이 많은지를 알아보자
  76. 76. The Contextual Bandits - 76 - 각각의 밴딧의 상태값을 3가지로 변경하기 위해 25, 50, 75일의 업무완료 값을 할당함
  77. 77. The Contextual Bandits - 77 - reward를 맞으면 +1 틀리면 -1로 했을 때 잘 동작하지 않았는데 틀렸을 때 -3을 주니 비교적 잘 동작함
  78. 78. The Contextual Bandits - 78 - Training the Agent
  79. 79. The Contextual Bandits - 79 - 때때로 첫 번째 항목의 경우 3이 아니라 1번을 정답으로 뽑았는데, 실제 값을 보면 8%이하의 근소한 차이라 랜덤 확률이 10%이기 때문에 확률적 오차로 생각할 수 있음.
  80. 80. Flask API with Deep Learning Model
  81. 81. API 란? - 81 - API는 애플리케이션 소프트웨어를 구축하고 통합하기 위한 정의 및 프로토콜 세트로, 애플리케이션 프로그래밍 인터페이스(Application Programming Interface)를 나타냅니다. (Redhat, 2019) ü API를 사용하면 구현 방식을 알지 못해도 제품 또는 서비스가 서로 커뮤니케이션할 수 있으며 애 플리케이션 개발을 간소화하여 시간과 비용을 절약할 수 있습니다. (Redhat, 2019) ü 이 중 RESTful API의 경우 URI를 통해 Resoruce의 위치를 Method를 통해 의도를 전달하는 방식으 로 각기 다른 Endpoint에 따라 요청을 처리한다. 반면, GraphQL의 경우 하나의 Endpoint에 클라이 언트가 다양한 방식으로 요청하여 처리한다. https://phpenthusiast.com/blog/what-is-rest-api
  82. 82. Flask API - 82 - URI를 통해 Resoruce의 위치를 Method를 통해 의도를 전달하는 방식 ü 간단한 코드와 실행 명령만으로도 API 제작 가능.
  83. 83. Flask API - 83 - URI를 통해 Resoruce의 위치를 Method를 통해 의도를 전달하는 방식 ü 함수에 Annotation만 잘 넣어줘도 잘 작동하는 API가 생성됨. 물론, 인증이나 보안, 확장성 등 어려 가지 추가 요건을 반영하기 시작하면 복잡해지지만, API를 만드는 기본 원리는 이와 같음 ü 데이터 분석가나 딥러닝 연구자가 웹 프로그래밍에 대해 막연히 가지고 있던 두려움이 조금은 사라졌기를...
  84. 84. Status Code - 84 - URL과 Verb로 요청을 하면 status codes 와 message payloads로 응답을 준다. ü 우리가 만든 API에도 상태 코드를 함께 Return해 주어야 한다. - 1xx: Informational Messages 정보응답 100 continue - 2xx: Successful 200 OK: 성공 201 Created: 요청 성공 & 새로운 리소스 생성 202 Accepted: 요청 수락. 비동기 처리에 활용. 204 No Content: 메시지 본문이 없음. - 3xx: Redirection 리다이렉션 304 Not Modified 305 Use Proxy: 프록시 사용 - 4xx: Client Error 400 Bad Request 401 Unauthorized: 권한없음. 로그인/인증이 필요. 403 Forbidden: 금지됨. 리소스 권한이 없다. 404 Not Found 413 Payload Too Large 414 URI Too Long 415 Unsupported Media Type 429 Too Many Requests - 5xx: Server Error 서버오류 500 Internal Server Error 502 Bad Gateway 503 Service Unavailable 504 Gateway Timeout
  85. 85. JSON, YAML, XML - 85 - JSON은 key: value로 구성된 자바스크립트의 객체표현에서 따온 일종의 데이터 구조
  86. 86. Flask API with Keras & Tensorflow - 86 - 보스턴 집 값 예측 모형
  87. 87. Flask API with Keras & Tensorflow - 87 - 보스턴 집 값 예측 모형 ü model.save를 통해 트레이닝 시킨 모델은 Flask API에서 불러오도록 설정
  88. 88. Flask API with Keras & Tensorflow - 88 - 저장된 모델은 app.py 와 같은 경로에 놓아줍니다. ü 모델은 이렇게 생겼습니다.
  89. 89. Flask API with Keras & Tensorflow - 89 - Flask에서 응답을 적절한 데이터 형식으로 처리한 뒤, curl command를 이용해 호출합니다. ü 이전 모델과 같은 결과가 나오는 것이 확인되면 잘 동작하고 있는 것입니다.
  90. 90. Video Demo - 90 - https://youtu.be/Z7bTfnuLXck?t=1883
  91. 91. Pickle for saving machine learning model (sk learn) Picking이란, 메모리에 올라가 있는 Data 그 자체를 dump, load를 통해 외부에 저장하고 사용하는 것 - 91 - ü io_pickle.py https://www.safaribooksonline.com/library/view/head-first-python/9781449397524/ch04.html
  92. 92. Tensorflow Server - 92 - Tensorflow 모델을 API로 만드는 작업을 Model Serving이라고 하고, 직접 웹서버를 올리는 방법 외에 도 Docker나 Kubernetes 등을 활용한 방법도 찾아볼 수 있다. ü https://github.com/tensorflow/serving
  93. 93. Tensorflow Server - 93 - Tensorflow 모델을 API로 만드는 작업을 Model Serving이라고 하고, 직접 웹서버를 올리는 방법 외에 도 Docker나 Kubernetes 등을 활용한 방법도 찾아볼 수 있다.
  94. 94. IBM AutoAI
  95. 95. Level of difficulty: Easy - 95 - 딥러닝도 어떻게 하면 순하게 할 수 있을까?
  96. 96. AutoAI - 96 - 손쉽게 나만의 모델을 만들고 테스트 해본 뒤, 이를 Deployment 까지 해볼 수 있는 서비스 https://www.ibm.com/cloud/watson-studio/autoai#
  97. 97. AutoAI vs AutoML - 97 - 전통적인 AutoML에 비해 모델 생성 부터 Serving까지 One Stop으로 진행 가능 https://www.ibm.com/cloud/watson-studio/autoai#
  98. 98. AutoAI with Watson Machine Learning - 98 - Lite 무료 계정으로도 GPU 사용 가능한 환경에서 나만의 모델을 만들 수 있음 https://www.ibm.com/cloud/watson-studio/autoai# ü 무료 사용량 이후에는 과금 가능성이 있으므로 주의
  99. 99. AutoAI - 99 - [Create a project] ⇒ [Create an empty project] ⇒ [Add Project] ⇒ [AutoAI Experiment] https://www.ibm.com/cloud/watson-studio/autoai#
  100. 100. AutoAI - 100 - [Create a project] ⇒ [Create an empty project] ⇒ [Add Project] ⇒ [AutoAI Experiment] https://www.ibm.com/cloud/watson-studio/autoai#
  101. 101. AutoAI - 101 - Sample Banking Marketing 데이터를 Load ü 분석 하고 싶은 데이터를 업로드 한 뒤, 변수들을 Loading 하고, 해당 데이터의 Type을 지정 ü 예측하고자 하는 목표변수 Target Variable를 지정해 준 뒤, 분석 시작 Run Experiment
  102. 102. AutoAI - 102 - 다양한 분석 방법을 자동으로 선별하여 가장 높은 정확도를 보이는 모델을 선택할 수 있음 https://www.ibm.com/cloud/watson-studio/autoai#
  103. 103. AutoAI - 103 - 분석이 완료된 모델의 경우, 모델 평가 항목에서 ROC Curve, F1-Measure 등의 성능 지표 확인 https://www.ibm.com/cloud/watson-studio/autoai#
  104. 104. AutoAI - 104 - 분석이 완료된 모델의 경우, 모델 평가 항목에서 ROC Curve, F1-Measure 등의 성능 지표 확인 ü Feature Importance에서 중요도 순으로 변수를 볼 수 있어서 구체적인 Action Plan 수립이 가능
  105. 105. AutoAI for API - 105 - [Save as Model] => [Add Deployment] => [Web Service] https://www.ibm.com/cloud/watson-studio/autoai# ü 생성한 모델을 직접 API로 Deployment 진행
  106. 106. AutoAI for API - 106 - [Save as Model] => [Add Deployment] => [Web Service] ü 생성된 API는 Overview에서 인증 정보Credential 를 확인할 수 있으며, Code Snippets 확인과 Test 진행 가능
  107. 107. IBM Watson Machine Learning API Doc - 107 - 생성된 API에 대한 상세 문서는 아래의 링크에서 확인가능 ü https://watson-ml-v4-api.mybluemix.net/#/Deployments/post_v4_deployments__deployment_id__predictions
  108. 108. Notebook in Watson Studio - 108 - AutoAI가 아니라 직접 모델을 만들고 싶지만, Cloud 상에서 모델 학습을 진행하고 싶을 때 https://cloud.ibm.com/catalog/services/powerai ü 직접 Jupyter Notebook을 IBM Cloud 환경에서 실행할 수 있습니다.
  109. 109. Watson Studio with community - 109 - 집단 지성의 힘 Cloud 상에서 진행한 분석 결과물들을 공유하고 확인해볼 수 있는 Community ü https://dataplatform.cloud.ibm.com/community
  110. 110. Watson Studio with community - 110 - Measure Watson Assistant Performance https://dataplatform.cloud.ibm.com/exchange/public/entry/view/133dfc4cd1480bbe4eaa78d3f635e568
  111. 111. GPGPU - 111 - 뇌 스캐너가 정밀하게 발달하면서 암진단을 위한 분석 시스템의 필요에 의해 GPGPU 개념이 처음으 로 등장함 Brain Scan & Cancer Analysis CPU-GPU clustering(2013)* ü With a state-of-the-art scanner ü 1.8TB uncompressed 4Kx4K-pixel image tiles ü Purpose High-throughput Analysis of Large Microscopy Image Datasets * Teodoro, George, et al. "High-throughput analysis of large microscopy image datasets on cpu-gpu cluster platforms." Parallel & Distributed Processing (IPDPS), 2013 IEEE 27th International Symposium on. IEEE, 2013.
  112. 112. GPGPU - 112 - Nvidia 그래픽 카드를 일반 연산 목적용으로 사용할 수 있도록 SW레벨에서 최적화 https://www.youtube.com/watch?v=-P28LKWTzrI
  113. 113. PowerAI - 113 - 보다 더 급하게 모델을 돌려야만 할 때, Nvidia GPU를 추가할 수 있습니다. https://cloud.ibm.com/catalog/services/powerai
  114. 114. PowerAI - 114 - 보다 더 급하게 모델을 돌려야만 할 때, Nvidia GPU를 추가할 수 있습니다. https://cloud.ibm.com/catalog/services/powerai
  115. 115. Tutorial with Watson Studio - 115 - https://www.ibm.com/support/knowledgecenter/DSXDOC/analyze-data/ml-mnist-tutorials.html
  116. 116. Appendix
  117. 117. Interactive Session - 117 - Taking Your AI Journey to Production – 내 머신러닝 모델은 어떻게 배포될까요? Track B 세잔 1&2룸
  118. 118. Garbage in, Garbage out - 118 - 분석이 자동화 된다 해도, 제대로된 가설을 수립하고 그에 맞는 데이터를 모으는 일은 사람의 몫 ü Figures don't lie, but liars do figure. 통계는 거짓말을 하지 않지만, 거짓말쟁이들은 통계를 쓸 수 있다. ü So many ways to construct patterns exist that any random set of data points reveals one if examined long enough. 데이터가 많고 오래되면 수많은 패턴이 생김 ü Learning things that aren’t true 사실이 아닌 것 학습. 이게 제일 문제. 복잡한 방법일수록 주의해야함 “Garbage in, Garbage out” ü Learning things that are true, but not useful. 사실이지만 유용하지 않은 것 학습 ü The challenge for data miners is to figure out which patterns are useful and which are not. 앞서 동전의 앞면이 5번 나와도 확률은 50:50이다. 데이터 분석가의 일은 예측력 있는 패턴과 없는 패턴을 구분 할 수 있어야 함.
  119. 119. AutoAI는 패턴을 찾아줄 수 있으나, 이를 인과관계로 해석하는 건 사람의 몫 - 119 - 상관성(Correlation)이인과성(Causality)으로인정받으려면다음의세가지조건을따라야한다. ü 첫째, 연속성(Contiguity)을 의미하는 원인과 결과의 공동변화. 둘째, 시간적 선후관계(Temporal Pre cedence). 셋째, 불변성(Constant Conjunction)을 보장하기 위한 외생변수의 제거. ü 쉽게 말하면 결과가 다른 조건의 개입이 없는 상태에서 원인과 결과로 여겨지는 것들이 반드시 유의하게 서로 관계를 만들어야 한다고 이해하면 된다. ü 미국의 NFL 경기에서 워싱턴 레드스킨이 우승하면 공화당이 당선된다는 데이터를 보고 우리는 인과성이 있다고 하지 않는다. ü 허나, 충분한 성능을 내는 ‘상관성(Correlation)’을 ‘인과성(Causality)’에 준하여 취급하며 의사결정을 내리는 데에 활용하기 시작했다. ü 알파고의 묘수를 이후에 복기하며 의미를 부여 하듯이, 약한 인과성의 연결고리는 실무에 도입 을 진행한 뒤에 현장에서 찾아 해석을 덧붙이는 경우도 종종 보이곤 했다.
  120. 120. Survivorship Bias (생존자 편향의 오류) - 120 - 때는 2차 세계대전, 당신은 전장에서 돌아온 전투기들의 외상을 분석하여 취약 부분을 보강하는 계획 을 담당했습니다. 어디에 장갑을 보강해야 할까요? http://www.andrewahn.co/silicon-valley/survivorship-bias/ ü AutoAI 가 목표변수인 붉은점의 패턴을 잡아낼 수 있으나 붉은점을 어떻게 정의하느냐 또한 사람의 몫
  121. 121. - 121 - A CHARMINGLY NORMAL DISTRIBUTION:” ADVENTURES WITH MYSTERY DATA Chollet, F. (2017). Deep learning with python. Manning Publications Co.. http://gihyo.jp/book/2017/978-4-7741-8814-0/support#supportDownload http://juliemelton.com/2008/07/30/a-charmingly-normal-distribution- adventures-with-mystery-data/ Kwon(2014), Artificial Neural Network, https://slidesplayer.org/slide/11237813/ Wiley.Data.Mining.Techniques.3rd.Edition.April.2011 송은우(2019), 깔끔한 파이썬 탄탄한 백엔드, 비제이퍼블릭(BJ퍼블릭) 아서 줄리아니(2019) 강화학습 첫걸음 : 텐서플로로 살펴보는 Q 러닝, MDP, DQN, A3C 강화학습 알고리즘, 한빛미디어 와쿠이 요시유키, 와쿠이 사다미(2018), 한빛미디어, 처음 배우는 딥러닝 수학 제이크 밴더플래스(2019) 파이썬 데이터 사이언스 핸드북 IPython, Jupyter, NumPy, Pandas, Matplotlib, Scikit-Learn 라이브러리를 활용한 데이터 과학과 머신러닝, 위키 북스 프랑소와 숄레(2018) 케라스 창시자에게 배우는 딥러닝, 길벗 References
  122. 122. - 122 - Thank you yunho.maeng.dc@gmail.com @yunho.m88 Q&A

×