Artificial Intelligence: Assignment 5 Seung-Hoon Na December 15, Numpy: Tutorial 다음 자료를 참조하여 numpy기본을 공부하시오.

Similar documents
Artificial Intelligence: Assignment 6 Seung-Hoon Na December 15, Sarsa와 Q-learning Windy Gridworld Windy Gridworld의 원문은 다음 Sutton 교재의 연습문제

Probabilistic graphical models: Assignment 3 Seung-Hoon Na June 7, Gibbs sampler for Beta-Binomial Binomial및 beta분포는 다음과 같이 정의된다. k Bin(n, θ):

Vector Differential: 벡터 미분 Yonghee Lee October 17, 벡터미분의 표기 스칼라미분 벡터미분(Vector diffrential) 또는 행렬미분(Matrix differential)은 벡터와 행렬의 미분식에 대 한 표

Artificial Intelligence: Assignment 3 Seung-Hoon Na November 30, Sarsa와 Q-learning Windy Gridworld Windy gridworld는 (Sutton 교재 연습문제 6.5) 다음

딥러닝 첫걸음

1 경영학을 위한 수학 Final Exam 2015/12/12(토) 13:00-15:00 풀이과정을 모두 명시하시오. 정리를 사용할 경우 명시하시오. 1. (각 6점) 다음 적분을 구하시오 Z 1 4 Z 1 (x + 1) dx (a) 1 (x 1)4 dx 1 Solut

Data structure: Assignment 3 Seung-Hoon Na December 14, 2018 레드 블랙 트리 (Red-Black Tree) 1 본 절에서는 레드 블랙 트리를 2-3트리 또는 2-3-4트리 대한 동등한 자료구조로 보고, 두 가지 유형의 레

Data structure: Assignment 1 Seung-Hoon Na October 1, Assignment 1 Binary search 주어진 정렬된 입력 파일이 있다고 가정하자. 단, 파일내의 숫자는 공백으로 구 분, file내에 숫자들은

Lab - Gradient descent Copyright 2018 by Introduction [PDF 파일다운로드 ]() 이번랩은우리가강의를통해들은 Gradient descent 을활용하여 LinearRegression

슬라이드 1

Artificial Intelligence: Assignment 2 Seung-Hoon Na October 20, Map coloring 본 과제에서는 M N Grid world 지도상에서 각 region이 rectangle또는 polyomino유형으로 주

PowerPoint 프레젠테이션

Artificial Intelligence: Assignment 1 Seung-Hoon Na October 16, A* Algorithm 본 과제에서는 M N Grid world에서 장애물이 랜덤(random)하게 배치되고, 시작 지점에서 장애물을 피해 목

= ``...(2011), , (.)''

(define (domain blocksworld (:requirements :strips :typing (:types block (:predicates (on?x - block?y - block (ontable?x - block (clear?x - block (hol

소성해석

Introduction to Deep learning

Probability Overview Naive Bayes Classifier Director of TEAMLAB Sungchul Choi

Multi-pass Sieve를 이용한 한국어 상호참조해결 반-자동 태깅 도구

04 Çмú_±â¼ú±â»ç

1-1-basic-43p

다운로드된 lab_normal_equation.zip 파일을작업폴더로이동한후압축해제후작업하시길바랍니다. 압축해제하면폴더가 linux_mac 과 windows 로나눠져있습니다. 자신의 OS에맞는폴더로이동해서코드를수정해주시기바랍니다. linear_model.py 코드 구조

177

Sequences with Low Correlation

Microsoft PowerPoint - MDA 2008Fall Ch2 Matrix.pptx

PowerPoint 프레젠테이션

PowerPoint Presentation

텀블러514

PowerPoint Presentation

Microsoft Word - LectureNote.doc

비선형으로의 확장

23

Microsoft PowerPoint Predicates and Quantifiers.ppt

지능정보연구제 16 권제 1 호 2010 년 3 월 (pp.71~92),.,.,., Support Vector Machines,,., KOSPI200.,. * 지능정보연구제 16 권제 1 호 2010 년 3 월

PART

Part Part

£01¦4Àå-2

½ºÅ丮ÅÚ¸µ3_³»Áö

272*406OSAKAÃÖÁ¾-¼öÁ¤b64ٽÚ

Microsoft PowerPoint - LA_ch6_1 [호환 모드]

<B1B9BEEE412E687770>

¼Òâ¹Ý¹®Áý¿ø°í.hwp

(Microsoft PowerPoint - Ch21_NumAnalysis.ppt [\310\243\310\257 \270\360\265\345])

PowerPoint 프레젠테이션

JUNIT 실습및발표

Microsoft PowerPoint - m05_Equation1(Print) [호환 모드]

PowerPoint 프레젠테이션


OR MS와 응용-03장

선형모형_LM.pdf


3.2 함수의정의 Theorem 6 함수 f : X Y 와 Y W 인집합 W 에대하여 f : X W 는함수이다. Proof. f : X Y 가함수이므로 f X Y 이고, Y W 이므로 f X W 이므로 F0이만족된다. 함수의정의 F1, F2은 f : X Y 가함수이므로

Microsoft PowerPoint - IPYYUIHNPGFU

3 Gas Champion : MBB : IBM BCS PO : 2 BBc : : /45

완벽한개념정립 _ 행렬의참, 거짓 수학전문가 NAMU 선생 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할

Multi-pass Sieve를 이용한 한국어 상호참조해결 반-자동 태깅 도구

조사연구 권 호 연구논문 한국노동패널조사자료의분석을위한패널가중치산출및사용방안사례연구 A Case Study on Construction and Use of Longitudinal Weights for Korea Labor Income Panel Survey 2)3) a

MATLAB for C/C++ Programmers

Lecture12_Bayesian_Decision_Thoery

슬라이드 1

데이터 시각화

untitled

G Power


기술통계

슬라이드 1

adfasdfasfdasfasfadf

PowerPoint 프레젠테이션


표본재추출(resampling) 방법

An Effective Sentence-Extraction Technique Using Contextual Information and Statistical Approaches for Text Summarization

생존분석의 추정과 비교 : 보충자료 이용희 December 12, 2018 Contents 1 생존함수와 위험함수 생존함수와 위험함수 예제: 지수분포


nonpara6.PDF

1_12-53(김동희)_.hwp

커널 방법론

Overview Ensemble Model Director of TEAMLAB Sungchul Choi


예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

PowerPoint 프레젠테이션

statistics


<4D F736F F D20BDC3B0E8BFADBAD0BCAE20C1A B0AD5FBCF6C1A45FB0E8B7AEB0E6C1A6C7D E646F63>

김경재 안현철 지능정보연구제 17 권제 4 호 2011 년 12 월

dist=dat[:,2] # 기초통계량구하기 len(speed) # 데이터의개수 np.mean(speed) # 평균 np.var(speed) # 분산 np.std(speed) # 표준편차 np.max(speed) # 최대값 np.min(speed) # 최소값 np.me

장연립방정식을풀기위한반복법 12.1 선형시스템 : Gauss-Seidel 12.2 비선형시스템 12.1 선형시스템 : Gauss-Seidel (1/10) 반복법은초기근을가정한후에더좋은근의값을추정하는체계적인절차를이용한다. G-S 방법은선형대수방정

(Microsoft PowerPoint - Ch19_NumAnalysis.ppt [\310\243\310\257 \270\360\265\345])

시스템경영과 구조방정식모형분석

02 C h a p t e r Java

제 1 절 two way ANOVA 제1절 1 two way ANOVA 두 요인(factor)의 각 요인의 평균비교와 교호작용(interaction)을 검정하는 것을 이 원배치 분산분석(two way ANalysis Of VAriance; two way ANOVA)이라

Resampling Methods

작용소의 행렬표현과 그 응용

Japanese Olympiad in Informatics 05/06 Spring Training Camp/Qualifying Trial Contest Day, March 9 5, 06, Komaba/Yoyogi, Tokyo 단, Answer를 호출 할 때는, 다음의

Java ...


LIDAR와 영상 Data Fusion에 의한 건물 자동추출

Microsoft Word - SAS_Data Manipulate.docx

Lab-Numpyinanutshell Copyright 2018 document created by Introduction PDF 파일다운로드 오래기다리셨습니다. 드디어 Machin Learning 강의첫번째 Lab Assi

Transcription:

Artificial Intelligence: Assignment 5 Seung-Hoon Na December 15, 2018 1 Numpy: Tutorial 다음 자료를 참조하여 numpy기본을 공부하시오. https://docs.scipy.org/doc/numpy-1.15.0/user/quickstart.html https://www.machinelearningplus.com/python/ numpy-tutorial-part1-array-python-examples/ http://web.mit.edu/dvp/public/numpybook.pdf https://docs.scipy.org/doc/numpy-1.11.0/numpy-user-1.11.0.pdf 1.1 Numpy: dot, einsum 다음 numpy의 dot의 정의를 이해하고, 예제를 만들어 설명하시오. https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy. dot.html 다음 numpy의 einsum의 정의를 이해하고, 예제를 만들어 설명하시오. 또한 dot과의 관련도를 예를 들어 설명하시오. https://docs.scipy.org/doc/numpy/reference/generated/numpy.einsum. html 1.2 Numpy: quiz풀이 다음 퀴즈의 난이도 3단계의 문항 5개이상을 해결하시오. https://github.com/rougier/numpy-100 1.3 Numpy: 선형방정식 풀기 A가 정방행렬일때, 다음 선형방정식에서 해 x를 구하는 numpy코드 (linearsol.py) 를 작성하시오. (main에서는 코드에 대한 테스트도 포함) Ax b 역행렬을 구하는 함수는 다음을 참조하라. https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.linalg.inv.html A가 정방행렬이 아닌 일반행렬일때 (A Rm n ), Pseudo inverse를 이용하여 위의 선형방정식의 근사해 (least squares solution) x를 구하는 numpy코드 (leastsquaresol.py) 를 작성하시오. (main에서는 코드에 대한 테스트도 포함) 1

2 Linear regression Linear regression (선형회귀)는 D {(xi, yi )}가 학습데이터로 주어지고, 각각 의 target value는 실수값으로 주어질때 (i.e., yi R), 입력 x와 target value간의 관계를 다음과 같이 선형함수로 모델링하는 방법이다. f (x) wt x + b 여기서, w와 b는 파라미터이다. 최소제곱법 (least squares methods)는 파라미터 w와 b을 학습하기 위해 D 상의 선형함수의 Loss function(손실함수) J로 다음과 같이 square error의 합 (the sum of squares of the errors)을 사용한다. J X X 2 (f (xi ) yi ) i w T x i + b yi 2 (1) i 2.1 Linear regression을 위한 식 유도 식 1를 최소로 하는 w와 b를 구하기 위해 / w와 / b를 유도하시오. (행렬에 대한 미분공식을 이용하여 유도할 것) w v 최종 유도식에서, 가능할경우 minibatch또는 batch갯수만큼의 전체 데이터벡터 전체를 다음 정의에 따라 X와 y를 참조하여 단순화하시오. 2.2 X x1 xm y y1 ym T Linear regression학습을 위한 Stochastic Gradient Descent (SGD)Method Loss function J와 파라미터 θ가 주어질때, θ를 학습하기 위한 Gradient Descent Method를 위한 핵심 수식은 다음과 같다. θ θ η θ 여기서, η는 learning rate (학습율)이다. 앞서 유도한 / w와 / b를 이용하여 Linear regression학습을 위한 m개의 minibatch단위의 Stochastic Gradient Descent (SGD) Method 의 알고 리즘의 pseudo code를 기술하시오. 2

2.3 Linear regression학습을 위한 Stochastic Gradient Descent Method: Early stopping추가 Early stopping방식은 무엇인지 조사하고, 위의 SGD 알고리즘에 Early stopping추가한 pseudo code를 기술하시오. 아래외에 다른 문헌을 참고해도 좋음. https://deeplearning4j.org/docs/latest/deeplearning4j-nn-early-stopping https://scikit-learn.org/stable/auto examples/linear model/plot sgd early stopping.html https://page.mi.fu-berlin.de/prechelt/biblio/stop tricks1997.pdf 2.4 Linear regression학습을 위한 Stochastic Gradient Descent Method 구현 지금까지 유도한 early stopping을 사용한 minibatch-sgd 방법을 numpy패키 지를 이용하여 구현하시오 (linear regression.py코드 제출). 구현된 모듈을 테스트 하기 위해 다음과 같이 랜덤으로 생성된 데이터와 scikit 의 샘플 데이터 각각에 대하여 테스트해보시오. 2.4.1 랜덤 데이터 생성기 구현: Gaussian분포에 기반 다음 과정을 따르는 랜덤 데이터 생성기를 구현하시오 (gen random dataset.py 코드 제출). 1. true 파라미터 값의 랜덤 할당: 먼저 true 파라미터 w, b값을 랜덤하게 부여 한다 (생성단계에서는 알고 있지만, 학습단계에서는 모른다고 가정). [ R, R] 구간내 uniform분포를 따르도록 랜덤생성하여 이를 w, b의 값으로 할당한다 (R은 10정도가 적당하며, 다른 값으로 셋팅해도 된다). 다시 말해, 파라미 터 w Rd, b들을 random variables로 간주하고 다음을 따라 sampling을 수행한다. w U[ R, R]d b U[ R, R] 여기서, U[ R, R]d 는 d차원 hypercube공간 ([ R, R]d, d-cube)상에서 uniform distribution을 의미한다. 2. 데이터셋 생성: 총 N 개의 데이터 (training/dev/test set포함)를 D {(xi, yi )} 를 다음과 같이 생성한다. (N 은 1000개 이상) xi U[ R, R]d yi N wt xi + b, σ 2 여기서, w, b은 이전단계에서 랜덤하게 할당된 true파라미터 값들이며, N µ, σ 2 는 평균 µ, 분산 (variance) σ 2 인 Gaussian distribution을 의미한다. (σ αr 로 두고, α는 default로 0.1정도로 셋팅하자.) 3. 데이터셋 분리: 총 N 개의 데이터를 랜덤하게 85%를 학습데이터 (training set), 5%를 개발용데이터 (dev set), 10%를 평가용데이터 (test set)로 분리 한다. 4. 데이터셋 저장: 이렇게 얻은 데이터를 numpy로 변환하고 pickle등을 통해 별도 파일로 저장한다 (myrandomdataset.pkl 파일로 저장). 3

총 데이터갯수는 N 1000, 10000, 100000로 다양하게 설정하여, 다른 이름으로 저장하여 테스트 수행할 것. 2.4.2 scikit 샘플 예제: diabets D을 위해 scikit에서 linear regression을 위한 sample 예제인 diabets를 이용하라. import matplotlib.pyplot as plt import numpy as np from sklearn import datasets, linear_model from sklearn.metrics import mean_squared_error, r2_score # Load the diabetes dataset diabetes datasets.load_diabetes() 위는 diabetes를 loading하는 샘플 코드이다. scikit 전체 예제 코드는 다음을 참 조하라. https://scikit-learn.org/stable/auto examples/linear model/plot ols.html 2.4.3 Linear regression학습기 테스트 데이터셋 D를 위의 두가지 유형의 1) 랜덤 데이터 로컬 파일, 2) scikit 샘플 데 이터로부터 입력받아 training, dev, test sets각각을 numpy개체로 로딩한이후에 구현한 Stochastic Gradient Descent Method를 테스트하시오. 테스트시 요구사항은 다음과 같다. minibatch 크기 사용자 설정: m은 option으로 사용자가 설정하도록 하고, default로 10에서 100사이의 값을 택하여 사용하라. 매epoch마다 성능 출력: 주어진 데이터셋 전체 예제를 한번 학습할때 (1 epoch시)마다 training, dev, test상에서 mean squared error을 출력한다. 랜덤 데이터인 경우에 한해서, 파라미터 w와 b와 true값과 학습된 값들간의 squared error도 함께 출력하시오. Early stopping적용: early stopping을 적용하여, dev set상 성능 개선이 오랫동안 없는 경우 학습을 종료한다. 최대 epoch수 설정: 최대 epoch수를 사용자가 설정할 수 있도록 하고, default값으로 100을 사용한다. 3 Logistic regression 클래스 갯수가 K개인 다중 클래스 분류 (multi-class classification)상 데이터 샘플 x에 대한 Logistic regression식은 다음과 같다. o (x) sof tmax (Wx + b) 주어진 학습데이터 (x, k) (k는 정답클래스이며, k {1,, K})에 대한 negative log likelihood식은 다음과 같다 J yt log (o) 4

이때, y는 정답에 대한 one-hot encoding벡터로 다음과 같이 정의된다. T y [y1 yi yk ] 여기서, yi I(i k)이고 k는 정답클래스이다. 3.1 Logistic regression학습을 위한 식 유도 먼저, m개의 학습데이터셋 D : {(xi, yi ),, (xm, ym )} (yi 는 정답클래스, yi {1,, K})이 주어졌을 때 식 2을 전체셋 D에 대한 negative log-likelihood로 확장하시오. 파라미터 W와 b를 학습하기 위해 / W와 / b를 유도하시오. (행렬에 대한 미분공식을 이용하여 유도할 것) W b 3.2 Logistic regression학습을 위한 Early stopping을 이용한 SGD Method Linear regression에서처럼, Logistic regression학습을 위한 minibatch상에서의 early stopping을 이용한 SGD Method알고리즘을 유도하고, pseudo code를 작성하시오. 3.3 Logistic regression학습을 위한 Stochastic Gradient Descent Method 구현 지금까지 유도한 Logistic regression학습을 위한 early stopping을 사용한 minibatch-sgd 방법을 numpy패키지를 이용하여 구현하시오 (logistic regression.py 코드 제출). 구현된 모듈을 테스트 하기 위해 다음 scikit의 다음 샘플 데이터에 대하여 테스 트해보시오. (logistic regression mnist.py코드 제출) 1. MNIST: http://neupy.com/2016/11/12/mnist classification.html 테스트시 요구사항은 다음과 같다. minibatch 크기 사용자 설정: m은 option으로 사용자가 설정하도록 하고, default로 10에서 500사이의 값을 적절히 택하여 사용하라. 매epoch마다 성능 출력: 주어진 데이터셋 전체 예제를 한번 학습할때 (1 epoch시)마다 training, dev, test상에서 classification accuracy를 출력한 다. Early stopping적용: early stopping을 적용하여, dev set상 성능 개선이 오랫동안 없는 경우 학습을 종료한다. 최대 epoch수 설정: 최대 epoch수를 사용자가 설정할 수 있도록 하고, default값으로 100을 사용한다. 5

4 Multi-layer perceptron (MLP) 은닉층이 1개인 Multi-layer perceptron (MLP)는 입력벡터 x을 비선형 변환 한 은닉표상 h에 logistic regression을 적용한 것으로 다음 수식을 따른다 (강의자료 참고): h max(wx + b, 0) o sof tmax(uh + d) Logistic regression과 마찬가지로 loss function으로 다음과 같이 negative loglikelihood를 사용한다. J yt log (o) 여기서 y에 대한 정의는 logistic regression에서의 식 2과 같다. 4.1 MLP학습을 위한 backpropagation식 유도 Logistic regression과 마찬가지로 은닉층이 1개인 MLP학습을 위해 m개의 학습 데이터셋 D : {(xi, yi ),, (xm, ym )} (yi 는 정답클래스, yi {1,, K})이 주어졌다고 하자. 식 2을 전체셋 D에 대한 negative log-likelihood로 확장하시오. (logistic regression문제와 동일) 파라미터 W, U, b, d를 학습하기 위해 / W, / U, / b, / d 를 계 산하는 backpropagation 알고리즘을 유도하시오. 4.2 MLP학습을 위한 backpropagation식 일반화 MLP를 은닉층을 L개로 확장하였을때의 backpropagation 알고리즘을 일반화하 시오. 4.3 MLP학습을 위한 Early stopping을 이용한 SGD Method Logistic regression에서처럼, 은닉층 L개의 MLP학습을 위한 minibatch상에서의 early stopping을 이용한 SGD Method알고리즘의 pseudo code를 작성하시오. 4.4 MLP학습을 위한 Stochastic Gradient Descent Method 구현 지금까지 유도한 은닉층 L개의 MLP학습을 위한 early stopping에 기반한 minibatch SGD 방법을 numpy패키지를 이용하여 구현하시오 (MLP.py코드 제 출). 구현된 모듈을 테스트 하기 위해 다음 scikit의 다음 샘플 데이터에 대하여 테스 트해보시오. (MLP mnist.py코드 제출) 1. MNIST: http://neupy.com/2016/11/12/mnist classification.html 학습기의 요구사항은 다음과 같다. 최종 학습된 모델 저장: 최종학습된 모델 (파라미터)는 이후에 로딩될 수 있도록 별도의 모델 파일에 저장해야 한다. 6

학습된 모델 로딩 및 테스트: 학습된 모델 (파라미터)를 로딩하여, 별도 테스 트셋에서 MLP를 적용하여 분류를 수행할 수 있도록 해야 한다. mnist test set을 별도로 추출하여 테스트 필요 은닉층의 갯수 사용자 설정: 은닉층의 갯수 L은 사용자가 설정하도록 하고, default값은 1로 한다. 은닉층의 차원수 사용자 설정: 은닉층의 차원은 각 은닉층마다 별도로 설 정할 수 있도록 한다. 위의 은닉층 갯수와 합하여, 모든 은닉층의 차원수를 array로 입력 받으면 된다. 예를 들어, [100,50,30]은 은닉층의 수가 총 3 개이고, 1번째 은닉층의 차원은 100, 2번째는 50, 3번째는 30인 MLP이다. minibatch 크기의 사용자 설정: m은 option으로 사용자가 설정하도록 하 고, default로 10에서 500사이의 값을 적절히 택하여 사용하라. 매epoch마다 성능 출력: 주어진 데이터셋 전체 예제를 한번 학습할때 (1 epoch시)마다 training, dev, test상에서 classification accuracy를 출력한 다. Early stopping적용: early stopping을 적용하여, dev set상 성능 개선이 오랫동안 없는 경우 학습을 종료한다. 최대 epoch수 설정: 최대 epoch수를 사용자가 설정할 수 있도록 하고, default값으로 100을 사용한다. 특히 본 문항에서는 은닉층의 갯수를 늘릴때 성능 변화를 보는 것으로, 최종 학습 결과 다음을 비교하시오. 은닉층의 갯수 L 1, 2, 3, 4로 달리하였을 때 최종 학습된 모델의 test 셋에서의 classification accuracy비교. 5 제출 내용 및 평가 방식 코드는 python으로 본 과제 결과물로 필수적으로 제출해야 내용들은 다음과 같다. 코드 전체 테스트 결과: 각 내용별 테스트 코드 및 해당 로그 또는 출력 결과. 결과보고서: 구현 방법을 요약한 보고서. 본 과제의 평가항목 및 배점은 다음과 같다. 각 세부내용의 구현 정확성 및 완결성 (80점) 코드의 Readability 및 쳬계성 (10점) 결과 보고서의 구체성 및 완결성 (10점) 7