카테고리 없음

파이선 코딩 초보자를 위한 Scikit PyTorch 머신러닝

coding art 2020. 2. 21. 21:18
728x90

2019년 상반기에 블로그에 포스팅했던 내용을 모아 교보문고에서 POD(개인) 출판 되었습니다.

엄청나게 빠른 인공지능의 세계를 엿보시기 바랍니다.




머리말

 

201812월 말에 파이선 코딩 초보자를 위한 텐서플로우OpenCV 머신 러닝을 출간한지 불과 반 년 만에 다시 후속 작을 출간하게 되었다. 그만큼 머신러닝이란 주제가 그만큼 강한 거의 마력 수준의 매력을 느낄 수 있는 분야가 아닌가 싶다. 이번 작에 실린 내용들은 거의 매일 단위로 일기처럼 작성한 게재한 블로그 내용을 아무런 가감 없이 그대로 신속하게 편집하였다.

 

한편 이미지 Classification 머신 러닝이 2012년 이 후 급격한 발전을 보였는데 단지 저성능의 사무용 PC만을 사용하는 입장에서 GPU 가 장착된 컴퓨터의 구입 필요성을 느꼈으나 개인이 구입할 수 있는 가격 수준을 훨씬 상회하여 넘기 어려운 장애라고 생각했었다. 하지만 최근에 구글에서 제공하는 GPU Colabo 클라우드 컴퓨팅 무료서비스에 힘입어 PyTorch에서 제공하는 Transfer Learning 내용 전체를 아주 짧은 시간 내에 파악할 수 있었던 것은 어떻게 보면 행운이었다고도 보인다.

 

지금 서문을 쓰는 이 시점에서도 AI혁명이 얼마나 빠른 속도로 진행되고 있는지 측정은 불가능하다. 기술적 특이점이 올지도 모른다고 예언 되어 있는 2045년이 아직 많이 남아 있지만 이미 20122016년 사이에 두 개의 거대한 벽을 AI 가 넘어가는 것을 목격 했다. 하나가 바로 이 세돌 기사와 딥마인드의 대결일 것이다. 두 번째가 바로 이미지 Classification 능력이다. 1998LeCUNCNN 그리고 LeNet 이후로 2012AlexNet 인식률 5060%에서 시작하여, 2016ResNet 인식율 96% 즉 인간의 95%를 넘는 선에 이미 도달한 사건이다. 그뿐만이 아니라 본서의 PyTorch 예제 편에서도 다루지만 개인들까지도 이러한 발전 결과의 공유가 가능한 시대가 되었다. 남은 것은 컴퓨팅 연산 속도의 비약적인 상승과 지속적인 알고리듬의 혁명이 남아 있는 듯하다.

 

이 세돌 기사를 가볍게 이긴 딥마인드의 열풍이 아주 거세어 머신러닝이 이미 엄청나게 발전해버린 것이 아닌가 하는 착각도 들었으나 요모조모 따져 보니 꼭 그런 것만도 아니라는 생각이 들기도 한다. 특히 최근에 구글 Colabo GPU 컴퓨팅에 의해 체험해본 최신의 이미지 Classification Transfer Learning 분야도 연산 속도가 엄청 빨라지긴 했으나 이들 기술이 차량의 자율주행에 충분한 성능으로 적용되려면 이미지 하나를 인식할 수 있는 연산 시간이 지금의 100초대에서 1000배 정도 빨라져 0.1초대를 끓어야 가능해질 것으로 전망한다. 무어의 법칙을 따르는 하드웨어의 성능 개선은 18개월에 2배 정도에 불과하므로 앞으로 10년 남짓 기간 동안에 적어도 머신 러닝 알고리듬 분야의 대혁신이 여러 번 일어나야 지금 우리가 상상하면서도 상상이 안되는 미래 사회에 접어 들 것으로 전망된다.

 

이번에 출간하는 ScikitPyTorch 머신러닝은 그 내용에 있어서 1권에 해당하는 파이선 코딩 초보자를 위한 텐서플로우OpenCV 머신러닝과 관련하여 일부 주제들에서는 연속성이 이어지고 있다. 1권에서 다루었던 볼츠만 확률 분포와 Softmax 명령의 정식화와 관련하여 일부 통계학적 특성을 찾아내어 추가하였다. CNN에서 컨볼류션 디지털 필터에 대한 보다 완전한 이해를 바탕으로 구글 Colabo GPU 컴퓨팅에 힘입어 PyTorch 튜토리알 예제의 Transfer Learning을 충분히 쉽게 소화할 수 있었다. 코드 전체를 다 작성할 수 있다는 의미가 아니라 오픈소스를 사용해서 직접 사용자 이미지 데이타를 준비하여 학습을 시킬 수 있는 정도일 것이다.

 

그밖에도 머신러닝 연구가들의 도전이 필요한 분야가 꽤 많은 듯하다. 예를 들면 Sentiment Analysis Chatbot 분야라든지 그리고 상당히 파워풀한 결과를 보여주는 RNN 분야를 들 수 있을 것이다.

 

파이선 코딩 초보자를 위한 ScikitPyTorch머신러닝목차


1Scikit-learn 머신 러닝

1-0 Scikit-learn 라이브러리 지원 Iris flowers 예제 16

1-1 퍼셉트론 파이선 코드 알고리듬 검토-I 22

1-2 퍼셉트론 파이선 코드 알고리듬 검토-II: 퍼셉트론 파이선 알고리듬 요약 28

1-3 퍼셉트론 파이선 코드 알고리듬 재검토-III: Adaptive Linear Neuron (ADALINE)에 의한 Linear Regression 머신 러닝의 시작 30

∙∙∙

2Softmax 확률분포

2-1 머신 러닝 Softmax와 볼츠만 확률분포와의 Analogy-I 86

2-2 머신 러닝 Softmax와 볼츠만 확률분포와의 Analogy-II 87

2-3 Softmax와 볼츠만 확률분포와의 Analogy-III: 볼츠만 확률분포와 머신러닝의 차이점 91

∙∙∙

3Miscellenous 머신러닝 Topics

3-1 Application of Statistical Softmax To TensorFlow Iris flower data classification 124

3-2 Covariance 항을 포함한 Softmax MNIST 적용 126

3-3 Covariance 항을 포함한 Softmax ClassifierXOR 로직 적용 128

∙∙∙

4Sentiment Analysis

4-1 Sentiment 코딩 연습을 위한 Imdb 다운로드 149

4-2 IMDB 데이터 Preprocessing을 위한 PyPrind 라이브러리 모듈 설치 152

4-3 CSV 데이터 변환 결과 확인 156

∙∙∙

5-1장 확률이론 매트릭스 계산법 Markov Chain 엔트로피 계산법

5-0 Bayesian Rule 과 기초 확률론 177

5-1 Iris flower data 텍스트 파일 엑셀 처리기법 180

5-2 엑셀 매트릭스 연산: MINVERSE MMULT 185

5-3 엑셀 매트릭스의 행렬식(Determinant) 계산과 Adjoint Matrix 188

∙∙∙

5-2Linear Discriminant Analysis

5-15 머신러닝의 초창기로 돌아가 보자: Fisher 교수의 Linear Discriminant Analysis 기법: I 220

5-16 머신러닝의 초창기로 돌아가 보자: Fisher 교수의 Linear Discriminant Analysis 기법: II 224

5-17 머신러닝의 초창기로 돌아가 보자: Fisher 교수의 Linear Discriminant Analysis 기법:III 수치계산 사례 228

∙∙∙

6Recurrent Neural Network(RNN)

6-1 Recurrent Neural Network의 출발점 Hopfield Network 265

6-2 언어 처리를 위한 RNN Network 구성 267

6-3 Hopfield Network의 기원을 찾아서 271

∙∙∙

7-1PyTorch, CIFAR-10, 구글 GPU Colabo 예제

7-1 Anaconda3 PyTorch install on Wondows 7 326

7-2 윈도우즈 10에서 Anaconda3 PyTorch를 설치하자 329

7-3 PyTorch 튜토리알 사이트의 CIFAR-10 PyTorch 예제 334

∙∙∙

7-2PyTorch Image Classification, Transfer Learning

7-13 PyTorch의 정체와 사용법 튜토리얼 소개 366

7-14 PyTorch의 정체와 자동미분 알고리듬(Automatic Differentiation) 370

7-15 PyTorch Data Loading and Processing 373

∙∙∙

8장 텐서플로우 Keras

8-1 초보자를 위한 텐서플로우 코딩 예제 425

8-2 초보자를 위한 텐서플로우 array structures 코딩 예제 428

8-3 Low level TensorFlow API 선형회귀 모델 431

∙∙∙