Lab Assignment 3 Deep Learning 1 1
Intro 2
TensorFlow 기계학습과 딥러닝을 위해 구글에서 만든 오픈소스 라이브러리 데이터 플로우 그래프를 통한 풍부한 표현력 코드 수정 없이 CPU/GPU 모드로 동작 아이디어 테스트에서 서비스 단계까지 이용 가능 계산 구조와 목표 함수만 정의하면 자동으로 미분 계산을 처리 Python/C++를 지원하며, SWIG(C/C++ 의 코드를 다른 언어에서 사용 가능하도록 만들어주는 프로그램)를 통해 다양한 언어 지원 가능 3
Jupyter Python의 통합 개발환경 대화형 컴퓨팅으로 분석 프로그래밍에 적합함 운영체제의 쉘 프로그램과 통합됨(ex, terminal) 웹 기반의 대화형 노트북 지원으로 수식, 표, 그림 등 표현 가능 가볍고 빠른 병렬컴퓨팅 엔진 이용 코딩의 문서화, 테스트까지 한 화면에 가능 4
Docker 2013년에 등장한 새로운 컨테이너 기반 가상화 도구로써, 계층화된 파일시스템(AUFS, BTRFS 등)을 사용해 가상화된 컨테이너의 변경사항을 모두 추적하고 관리한다. 이를 통해 컨테이너의 특정 상태를 항상 보존해두고, 필요할 때 언제 어디서나 실행할 수 있다. 즉, 앞서 설명한 Linux 기반에 설치된 TensorFlow나 Jupyter를 사용자가 일일이 설치할 필요 없이 Linux 기반에 TensorFlow와 Jupyter가 설치된 컨테이너를 불러옴으로써 간단하게 이용 가능 5
Docker 컨테이너 Windows(또는 Max os, Ubuntu etc..) 환경에서Docker를 통해 컨테이너에 포함된 Ubuntu, Jupyter, TensorFlow가 설치된 환경을 이용할 수 있다. 6
Example1 Deep Learning with “Tensorflow” 7
Example1-1 : Tensorflow install with Docker Docker (https://www.docker.com/) for Window 8/8.1 or newest 2013년에 등장한 새로운 컨테이너 기반 가상화 도구로써, 계층화된 파일시스템(AUFS, BTRFS 등)을 사용해 가상화된 컨테이너의 변경사항을 모두 추적하고 관리한다. 이를 통해 컨테이너의 특정 상태를 항상 보존해두고, 필요할 때 언제 어디서나 실행할 수 있다. 다운로드 링크 : https://www.docker.com/products/docker-toolbox http://docs.docker.com/windows/started/ 를 참고하여 Docker를 설치한다. 8
Example1-1 : Tensorflow install with Docker 윈도우 8 이상에서 Docker를 설치 후 Docker Quickstart Terminal를 실행하면 아래와 같은 창이 뜨고, IP가 제대로 할당되어 네트워크가 연결됨을 확인한다. 9
Example1-1 : Tensorflow install with Docker 다음 명령어를 실행한다. Docker run –p 8888:8888 –p 6006:6006 b.gcr.io/tensorflow/tensorflow Docker 재 시작시 아래 명령어 수행. Docker stop $(docker ps –a –q) 브라우저를 통해 앞의 ip:8888로 접속 Ex)http://192.168.99.100:8888/ 10
Example1-1 : Tensorflow install with Docker 접속 화면 11
Example1-2 : Tensorflow - Pipeline 구조 Tensorflow 요약 𝑤𝑥+𝑏 𝑤 𝑏 데이터 입력 Feeding Tensorflow 함수 변수 결과 실행 입력 Model 생성 12
Example1-2 : Tensorflow - Constant 구조 설정 Tensorflow 구조 실행 13
Example1-2 : Tensorflow – Data Feed 구조 설정 Tensorflow 구조 실행 데이터 입력 Feeding 14
Example1-2 : Tensorflow Example 각 셀을 선택하고 상단의 실행버튼 또는 Ctrl+Enter를 통해 단계별로 수행해본다. 1_hello_tensorflow.ipynb 2_getting_started.ipynb 3_mnist_from_scratch.ipynb (2, 3은 로딩속도 조금 있음) 15
Example2 NN & DNN with iris dataset 16
Example2 : Intro Iris dataset http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.names 위 그림과 같이 Iris의 세 종인 Iris-setosa, Iris-versicolor, Iris-virginica에 대해 각각의 의 꽃받침의 길이, 너비, 꽃잎의 길이, 너비 네 개의 정보가 저장되어 있다. 위 네 개의 정보를 바탕으로 Iris의 종을 구분해 본다. 17
Example2 : Intro Example code 업로드 18
Example2 : NN with iris 데이터 받기 (example2-*.ipynb 실행 후 첫 번째 셀 실행) 데이터 전처리 Data shuffling Split training data N tr and test data N te Iris feature N×4 matrix Iris label N×3 matrix (ex. setosa = [1, 0, 0], versicolor= [0, 1, 0], Iris-virginica = [0, 0, 1] 또는 19
Example2 : NN with iris 데이터 전처리 Data shuffling Split training data N tr and test data N te Iris feature N×4 matrix Iris label N×3 matrix (ex. setosa = [1, 0, 0], versicolor= [0, 1, 0], Iris-virginica = [0, 0, 1] 20
Example2 : NN with iris 모델 구조 Backpropagation Iris feature = 4 Iris label = 3 현재 상태에서 오차 계산 입력 개수를 모르므로 None 모델 구조 구축 모델 테스트 모델 값 저장 21 Backpropagation
Exercise2 : DNN with iris Example2의 NN는 한 개의 층으로 구성되어 있다. 이를 수정하여 두 개의 층을 가지는 Multilayer NN을 구현하고 Iris 데이터로 테스트해 본다. (함수 명, 변수 이름, 구조 등은 자유롭게 변형 가능.) (아래 그림은 예시일 뿐 iris 데이터는 4개의 input 3개의 output을 가진다.) 22
Exercise2 : DNN with iris 힌트 네트워크의 변수 조정 Layer 추가 추가된 layer의 모델 값 저장할 변수 추가 23
Example3 Deep Learning Algorithms with MNIST 24
Example3 : Deep Learning Example 터미널 실행 25
Example3 : Deep Learning Example 아래 명령어 실행 apt-get update apt-get upgrade apt-get install git TensorFlow-Example 설치 git clone https://github.com/aymericdamien/TensorFlow-Examples.git 26
Example3 : Deep Learning Example 폴더가 생성됨을 확인 27
Example3 : Intro MNIST dataset http://yann.lecun.com/exdb/mnist/ 0부터 9까지의 숫자를 손으로 쓴 이미지 10000개의 테스트 셋과 60000개의 학습 데이터 셋으로 분류되어 있다. MNIST dataset 가져오기 28
Example3 : Intro /TensorFlow-Examples/ Notebooks/ 3_NeuralNetworks 폴더의 autoencoder.ipynb convolutional_network.ipynb recurrent_networks.ipynb 세 개의 파일을 실행해보고 모델의 의미를 파악한다. 29
Example3-1 : Autoencoder 모델 구조 AE의 특성에 맞게 네트워크 구성 AE의 모델 구성 AE의 예측값은 자기 자신 30
Example3-2 : Convolutional NN 모델 구조 Conv Filter Size Convolution Filter 28 X 28 1st pooling(size 2) = 14 X 14 2nd pooling(size 2) = 7 X 7 Pooling Filter Pooling Size 31
Example3-3 : Recurrent NN 28개씩 28회에 대한 연속적인 데이터로 변환 모델 구조 28 X 28 이미지를 28개씩 28회에 대한 연속적인 데이터로 가정 TensorFlow에 존재하는 RNN 구조를 바탕으로 모델 구성 32
Summary Exercise 요약 (해야 할 일) 22p, 23p의 Exercise 수행 Iris Data를 사용하여 한 개의 Layer가 아닌 두 개의 Layer를 가지는 네트워크를 구현하여 실험해 본다. 위의 수행 내역과 실습해본 딥 러닝의 알고리즘(CNN, RNN, Autoencodr)의 개념을 간단하게 5~6줄(분량 제한 없음) 요약 설명해 본다. Data Mining 2016 Fall 33
Submission 제출물: 각 Exercise 에 대한 보고서 제출 기한: 2016년 12 월 7 일 수업시간 전까지 제출 방법 Softcopy(보고서 파일): 조교에게 e-mail로 제출 ( lheadjh@naver.com ) dm2016_hw3_학번_이름.zip 보고서 Email 제목 : dm2016_hw3_학번_이름 Hardcopy(보고서 출력물): 수업시간 전 교탁 위에 제출 기타 질문 사항은 위 조교 e-mail로 문의 바랍니다. Data Mining 2016 Fall 34