활용장점 학습모델개발자관점및비지니스 Time-to-market Jaehoon Lee
목차 I. 머신러닝 à 개발자관점 기본개념 약간의수학 약간의데모 모델개발자들의작업 II. 모델개발자생산성과비교 No coding. Fast deployment 비즈니스영역 SageMaker 란? 마무리
머신러닝은수집 / 저장 / 처리 / 분석 / 배포 / 활용단계를거쳐프로덕션되어집니다. 기본개념 데이터생성 수집처리분석 저장 결과활용
기본개념 데이터엔지니어들의역할이주로수집 / 저장그리고처리일부분에해당되며, 데이터사이언티스트들의역할은처리일부분부터분석및예측을하는부분을담당합니다. 오늘은이중에서처리 / 분석부분에대해서개발자입장을알아볼예정입니다. 데이터생성 수집처리분석 저장 결과활용
모델개발자들의작업에는다음과같이 7 가지단계가있습니다. 기본개념
모델개발자들의작업에는다음과같이 7 가지단계가있습니다. 기본개념
Preparing Data 실생활예측에적용하기위해서는데이터의가공및분류가사전작업으로선행되어야합니다.
Preparing Data 실생활예측에적용하기위해서는데이터의가공및분류가사전작업으로선행되어야합니다.
Preparing Data 실생활예측에적용하기위해서는데이터의가공및분류가사전작업으로선행되어야합니다.
Preparing Data 데이터의수정뿐만아니라학습과검증그리고테스트를위한데이터분할작업도선행되어야합니다.
Preparing Data 실생활예측에적용하기위해서는데이터의가공및분류가사전작업으로선행되어야합니다.
모델개발자들의작업에는다음과같이 7 가지단계가있습니다. 기본개념
Choosing a Model - 머신러닝의종류 다음세가지머신러닝중오늘은지도학습분야의분류 (classification) 를이용한예측을간단한예로설명드릴예정입니다.
모델개발자들의작업에는다음과같이 7 가지단계가있습니다. 기본개념
Linear regression Training - 선형회귀
모든데이터는평균값으로회귀하는통계적경향이있습니다. Training - 선형회귀
일차원직선입니다. 이간단한수식이모든딥러닝 /AI 의기본이됩니다. Training - 약간의수학공식
일차원직선입니다. 이간단한수식이모든딥러닝 /AI 의기본이됩니다. 약간의수학공식
Cost Function ( 비용함수 ) 약간의수학공식
약간의수학공식 위의식은아래와같은 2 차방정식그래프가나옵니다. 이것을구하는목적은우리가찾고자하는 W(weight) 값을찾기위함이고 2 차곡선의각지점에서의기울기가 0 이되는순간의값이가장정확한값이되기때문입니다.
Cost function 데모... ^^ 약간의수학공식 def cost(w, X, Y, b): num = len(x) loss = 0 for i in range(num): hx = W * X[i] + b loss += (hx - Y[i])**2 return loss / num x = [1,2,3,4,5] y = [1,2,3,4,5] weights, costs = [], [] for i in range(-30,51): w = i / 10 b = 0 c = cost(w,x,y,b) weights.append(w) costs.append(c)
약간의수학공식 그래서위의 Cost 함수값을간단히미분하면아래의결과식이나오며원하는답인지아닌지를알기위해원래의값에서순간변화율을빼서원하는값을얻습니다.
GradientDescent 약간의수학공식
GradientDescent 약간의수학공식
GradientDescent 약간의수학공식
GradientDescent 데모... ^^ 약간의수학공식 def gradient_descent(w, X, Y, b): num1 = len(x) gd = 0 for i in range(num1): gd += (W*X[i] - Y[i]) * X[i] return gd / num1 x = [1,2,3,4,5] y = [1,2,3,4,5] w = 10 b = 0 grad = 0 for i in range(10): grad = gradient_descent(w,x,y,b) w = w - grad * 0.01 print(w) plt.plot((0, 5), (0, w)) plt.plot(x,y,'ro') plt.show()
GradientDescent 를이용한아주간단한예측모델데모... ^^ 약간의수학공식 def gradient_descent(x, y, W): grad = 0 for i in range(len(x)): grad += (W*x[i] - y[i]) * x[i] return grad / len(x) x = [1, 2, 3, 4, 5] y = [1, 2, 3, 4, 5] W = 100 for i in range(100): loss = cost(x, y, W) grad = gradient_descent(x, y, W) W -= grad*0.1 # early stop if loss < 1.0e-15: break print('{:2} : {:.6f} {:.15f}'.format(i, W, loss))
Deep Learning Framework 딥러닝프레이워크종류 F/W 주체플랫폼모바일언어인터페이스 OpenMP CUDA OpenCL 멀티 GPU 분산 Caffe Chainer CNTK DL4J Keras MXNet TensorFlow Theano Torch BAIR Preferred Networks Microsoft SkyMind François Chollet DMLC Google Université de Montréal Ronan, Clément, Koray, Soumith Linux, Mac - C++ Python, MATAB Linux - Python Python - Linux, Windows Crossplatform (JVM) Linux, Mac, Windows Linux, Mac, Windows, Javascript Linux, Mac, Windows Linux, Mac, Windows Linux, Mac, Windows Y Y Y - Y - Y Y - C++ Python, C++ Y Y - Y Y Android Java Java, Scala, Python - Python Python Android, ios Android, ios C++ C++, Python C++, Python, Julia, MATLAB, JavaScript, Go, R, Scala, Perl Python, C/C++, Java, Go - Python Python Android, ios C, Lua Lua Y 출처 : Comparison of deep learning software https://en.wikipedia.org/wiki/comparison_of_deep_learning_software#cite_note-29 Y Y(Theano) N(TF) Y N Y Y Y Y Y Y Y - Y - Y - Y Y - Y Y - Y Y Y Y (Spark) Not officiall y
Tensorflow 로예측모델작성데모... ^^ 약간의수학공식
구축모델선택 실생활예측에적용하기위해서는데이터의가공및분류가사전작업으로선행되어야합니다.
실생활에서가장많이사용되는알고리즘은로지스틱리그레션 ( 분류 ) 라고합니다. 구축모델선택
구축모델선택 로지스틱리그레션의핵심은 Linear 한숫자들을 0 ~ 1 사의값으로압축시켜주는 sigmoid 함수에있습니다.
0 과 1 사이의값이되어야하는 Sigmoid 에대한그래프는아래와같습니다. 구축모델선택
실생활에서가장많이사용되는알고리즘은로지스틱리그레션 ( 분류 ) 라고합니다. 구축모델선택
Iris data one-hot-encoding 데모... ^^ 붓꼿종류구별 ( 예측 ) 하기 데모
Iris data one-hot-encoding 데모... ^^ 붓꼿종류별데이터 데모
Iris data one-hot-encoding 데모... ^^ 데모
목차 I. 머신러닝 à 개발자관점 기본개념 약간의수학 약간의데모 모델개발자들의작업 II. 모델개발자생산성과비교 No coding. Fast deployment 비즈니스영역 SageMaker 란? 마무리
은이러한기본적인프로그래밍을하지않고도우리가실생활중예측하고자하는예측값을얻을수있게해줍니다. Amazon
모델개발생산성은?? 머신러닝모델개발생산성은.?
모델개발생산성은?? 머신러닝모델개발생산성은.?
데모... ^^
데모... ^^
데모... ^^
데모... ^^
데모... ^^
데모... ^^
데모... ^^
데모... ^^
데모... ^^
데모... ^^
직접코딩을하면아래 Optimization 중에자신의데이터및알고리즘에가장적합한것을골라랴합니다. 그러나 은이를자동으로도와줍니다. 경우에따라득이될수도있고해가될수도있지만초보자입장에서는매우유리한옵션입니다.
머신러닝모델이개발된후프로덕션까지의생산성은.? 모델개발생산성은?? SageMaker
AWS SageMaker High Level API 실제로알고리즘을개발하는데이타과학자가아니라, 머신러닝을활용만하는프랙티셔너입장이라면, 모델을개발하는것보다는있는모델을선택해서쉽게사용할수있는방법을찾으면된다. estimator = TensorFlow(entry_point='resnet_cifar_10.py', source_dir=source_dir, role=role, training_steps=1000, evaluation_steps=100, train_instance_count=2, train_instance_type='ml.c4.xlarge', base_job_name='tensorboard-example')estimator.fit(inputs, run_tensorboard_locally=true)
AWS SageMaker 가장최근까지일반적인모델개발자들은단일머신에서모델을학습시키며많은시간을소모하는경우가많았습니다. Until recently most of the machine learning is done on single computer (with lots of memory 1 00s of GBs) Most R/Python/Java libraries are single node based Now Big Data tools make it possible to run machine learning algorithms at massive scale distribu ted across a cluster
SageMaker 데모... ^^ AWS SageMaker
AWS SageMaker Jupyter Notebook 만들기.. ( 인스턴스타입선택가능 / CuDA framework 및각종딥러닝 framework 설치불필요 )
Jupyter Notebook 는작은 t2 급인스턴스에만들어사용하는것이유리합니다. AWS SageMaker
Jupyter Notebook 만들기.. AWS SageMaker
학습시 (Training) 인스턴스모델갯수및종류를따로지정할수있습니다. AWS SageMaker
Jupyter Notebook 을이요하여모델개발후모델학습단계 AWS SageMaker
외부에서만들어진모델도쉽게 import.. AWS SageMaker
외부에서만들어진모델도쉽게 import.. AWS SageMaker
EndPoint 생성.. AWS SageMaker
Deploy 를위한 Endpoint 생성.. AWS SageMaker
대쉬보드를이용하여한눈에모니터링가능 AWS SageMaker
Q & A