PowerPoint 프레젠테이션

Similar documents
PowerPoint 프레젠테이션

딥러닝 첫걸음

Introduction to Deep learning

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

23_Time-Series-Prediction

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

PowerPoint 프레젠테이션

데이터 시각화

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

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

PowerPoint 프레젠테이션

기술통계

PowerPoint 프레젠테이션

Microsoft PowerPoint Predicates and Quantifiers.ppt

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

Microsoft Word - SAS_Data Manipulate.docx

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

슬라이드 1

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

확률 및 분포

<4E505F415AB1DBB7CEB9FABAF1C1EEC7C3B7A35FBEE0B0FC E687770>

2 / 27 목차 1. M-plus 소개 2. 중다회귀 3. 경로모형 4. 확인적요인분석 5. 구조방정식모형 6. 잠재성장모형 7. 교차지연자기회귀모형

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

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

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

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

1-1-basic-43p

G Power


15 홍보담당관 (언론홍보담당) 김병호 ( 金 秉 鎬 ) 16 (행정담당) 박찬해 ( 朴 鑽 海 ) 예산담당관 17 (복지행정담당) 이혁재 ( 李 赫 在 ) 18 (보육담당) 주사 이영임 ( 李 泳 任 ) 기동근무해제. 19 (장애인담당) 박노혁 ( 朴 魯 爀 ) 기동

<4D F736F F D20BDC3B0E8BFADBAD0BCAE20C1A B0AD5FBCF6C1A45FB0E8B7AEB0E6C1A6C7D E646F63>

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

untitled

Megazone-ML-v2

PowerPoint Presentation

강의10

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

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터

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

공공기관임금프리미엄추계 연구책임자정진호 ( 한국노동연구원선임연구위원 ) 연구원오호영 ( 한국직업능력개발원연구위원 ) 연구보조원강승복 ( 한국노동연구원책임연구원 ) 이연구는국회예산정책처의정책연구용역사업으로 수행된것으로서, 본연구에서제시된의견이나대안등은

Manufacturing6

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

Observational Determinism for Concurrent Program Security

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

(001~006)개념RPM3-2(부속)

Microsoft PowerPoint - ch07 - 포인터 pm0415

2002년 2학기 자료구조

2 : (Seungsoo Lee et al.: Generating a Reflectance Image from a Low-Light Image Using Convolutional Neural Network) (Regular Paper) 24 4, (JBE

설계란 무엇인가?

01 AI Definition 02 Deep Learning Theory - Linear Regression - Cost Function - Gradient Descendent - Logistic Regression - Activation Function - Conce

2015년 2월 12일 사랑의 동삭교육 제 호 (2월) 년 2월 12일 사랑의 동삭교육 제 호 (2월) 6 겨울이 되면 1-4 박지예 겨울이 되면 난 참 좋아. 겨울이 되면 귀여운 눈사람도 만들고 겨울이 되면 신나는 눈싸움도 하고 겨울이

1.1 how to use jupyter notebook Esc 키를누른후 h 키를누르면누르면 jupyter notebook 의 cheat sheet 가나온다. jupyter notebook 에는 Command Mode, Edit Mode, 총두가지모드가있다. 셀을클릭

fx-82EX_fx-85EX_fx-350EX

C# Programming Guide - Types

Resampling Methods

adfasdfasfdasfasfadf

목차 배열의개요 배열사용하기 다차원배열 배열을이용한문자열다루기 실무응용예제 C 2

T100MD+

PowerPoint Template

텀블러514

statistics

歯4차학술대회원고(장지연).PDF

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Jul.; 29(7),

NLTK 6: 텍스트 분류 학습 (` `%%%`#`&12_`__~~~ౡ氀猀攀)

Index

hlogin2

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi


<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

선형모형_LM.pdf

(JBE Vol. 23, No. 2, March 2018) (Special Paper) 23 2, (JBE Vol. 23, No. 2, March 2018) ISSN

Microsoft PowerPoint - chap_2_rep.ppt [호환 모드]

김기남_ATDC2016_160620_[키노트].key

chap 5: Trees

Microsoft PowerPoint - LA_ch6_1 [호환 모드]

제 4 장회귀분석


슬라이드 1

<BFACB1B831382D31365FBAF2B5A5C0CCC5CD20BAD0BCAEBFA120C0C7C7D120BFE4C0B2BBEAC1A420B9E6B9FD20BAF1B1B35F33C2F7BCF6C1A E687770>

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

CPX-E-EC_BES_C_ _ k1

Microsoft PowerPoint - 27.pptx

歯메뉴얼v2.04.doc

Page 2 of 6 Here are the rules for conjugating Whether (or not) and If when using a Descriptive Verb. The only difference here from Action Verbs is wh

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

슬라이드 1

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

RNN & NLP Application

hlogin7

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

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

Microsoft Word - CL5000,5500_KOR_UM_ _.doc

Gray level 변환 및 Arithmetic 연산을 사용한 영상 개선

표본재추출(resampling) 방법

Orcad Capture 9.x

금오공대 컴퓨터공학전공 강의자료

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

2 min 응용 말하기 01 I set my alarm for It goes off. 03 It doesn t go off. 04 I sleep in. 05 I make my bed. 06 I brush my teeth. 07 I take a shower.

Transcription:

[ 인공지능입문랩 ] SEOPT ( Study on the Elements Of Python and Tensorflow ) <-3 회차 >. ( 통계적이아니라시행착오적 ) 회귀분석 ( 지도학습 ) by Tensorflow - Tensorflow 를사용하는이유, 신경망구조 - youngdocseo@gmail.com

인공지능 데이터분석 When you re fundraising, its AI( 인공지능 ). When you re hiring, it s ML( 머신러닝 ). When you re implementing, it s linear regression( 회귀분석 ). - Baron Schwartz @xaprb AI is just an acronym for linear regression. https://towardsdatascience.com/no-machine-learning-is-not-just-glorifiedstatistics-6d39534e3 - Sean Gies @seangies

백讀이불여일打 import random Xdata = list() ydata = list() for num in range( 500 ) : temp = random.random() xdata.append( temp ) ydata.append( 0 + 3 * temp ) On your mark Get Set Go import tensorflow myb = tensorflow.variable( 0.5 ) myw = tensorflow.variable( 0.5 ) 3 myy = myb + myw * xdata 4 myloss = tensorflow.reduce_mean( ( myy ydata )** ) 5 mytrain = tensorflow.train.gradientdescentoptimizer( 0.5 ).minimize( myloss ) 6 myinit = tensorflow.global_variables_initializer() * 학습률 7 mysess = tensorflow.session() 8 mysess.run( myinit ) * 시작값 cf) tensorflow.zeros( [] ) cf) tensorflow.random_uniform( [], -.0,.0 ). 단, 0 은안됨. cf) tensorflow.square( myy ydata ) cf) 이코드의위치는 myw, myb 뒤쪽이기만하면됨 여기에도 print(mysess.run( myb ), mysess.run( myw ), mysess.run( myloss ) ) 를넣고실행해보면? for step in range( 00 ) : * 학습횟수 (epoch) 9 mysess.run( mytrain ) 0 print( mysess.run( myb ), mysess.run( myw ), mysess.run( myloss ) ) 3

변수 Python 함수 Tensorflow 3 myy = myb + myw * xdata xdata [ 500 ] myy [ 500 ] myb myw 찾고싶은값 Variable() On your mark ydata [ 500 ] myloss 4 배열의요소값들의평균 reduce_mean() 결국이기능때문에 Tensorflow 사용 0 run mytrain 9 run * 여러번 ( 학습과정 ) initialize myinit 8 run * 한번만 ( 초기값실행 ) 5 6 옵티마이저 train.gradientdesc entoptimizer(0.5). minimize() global_variables _initializer() Get Set mysess 7 Session() run() Go 4

상수변수함수 회귀모형 = 선형 ( 인간의추정 ) 독립변수 xdata myb + myw * xdata 입력데이터 ( 神이만든세계 ) 종속변수 ydata 실제값 (target/label) vs 회귀모형에의한값 myy 손실 / 오차 / 비용함수 Mean Squared Error 분류문제일경우에는 Cross Entropy 를많이사용 bias( 편향, 절편 ) weight( 가중치 ) 모형이계산한값 myb myw parameter / kernel / filter cf) hyper-parameter: 학습률, 학습횟수등 parameter( 그냥가중치라고도함 ) ( 기계의계산 ) 옵티마이저 GradientDescent Optimizer 손실 / 오차 / 비용점수 손실 / 오차 / 비용점수를최소화하도록 parameter( 가중치 + 편향 ) 를업데이트함 = 학습 / 지능 (parameter 는학습 / 지능의저장소 ) = 결국모형자체까지보다는모형의 parameter 값을찾는것일뿐일지도 5

[ Appendix ] 다중 회귀분석도가능 yy = 0 + 3 xx + 8 xx 비선형 회귀분석도가능 yy = 0 + 3 xx 6 xx + 8 xx 단, 코드3에서리스트값의제곱 (square) 처리는아래와같이 myy = myw * [ i** for i in xdata ] + myw * xdata + myw3 * x_data + myb 조절효과 회귀분석도가능 yy = 0 + 3xx xx 6 xx + 8 xx 승수찾기 도가능? yy = 0 + xx 3 ( 즉, 3 을찾는것 ) 6

[ Appendix ] 주의사항 가중치를업데이트하는경사하강법 (gradient descent) 의특성에의해 효과적인학습을위해 - 입출력값은 [ 참고 ] 데이터전처리고급버전백색화 (whitening) 주성분분석 (PCA) : 독립변수간상관성제거 정규화 (normalize: 0~) 혹은표준화 (standardize: 95% 로 -~) 할것 *xdata 값생성을 temp = random.random()* 혹은 *3 으로해보자. (Overshooting 문제 ) - 초기가중치의값을가급적 -~ 사이로하되 0으로하거나모든가중치의값이동일한값으로는설정하지말것 * 참고로가중치의수가많으면많을수록작은값으로시작할것 그래서가중치의초기값을 NN(0, ) 로설정하기도함. 노드수 7

회귀분석 with CSV, Test and Batch Size # 데이터생성 /import xdata = list() ydata = list() import csv file = open("data.csv") read = csv.reader(file) for row in read : xdata.append(float(row[0])) ydata.append(float(row[])) # tensorflow 로모델링 import tensorflow as tf # 데이터를훈련데이터와테스트데이터로나눔. 그리고 python list를 numpy array로변환한후 축으로설정. import numpy as np trainindex = 400 # 보통전체데이터의 80% trainxdata = np.array( xdata[:trainindex] ) trainxdata = np.reshape( trainxdata, ( trainindex, ) ) trainydata = np.array( ydata[:trainindex] ) trainydata = np.reshape( trainydata, ( trainindex, ) ) testxdata = np.array( xdata[trainindex:] ) testydata = np.array( ydata[trainindex:] ) myb = tf.variable( 0.5 ) myw = tf.variable( 0.5 ) 8

trainxdatabatch = tf.placeholder( tf.float3, [None, ] ) trainydatabatch = tf.placeholder( tf.float3, [None, ] ) myy = myb + myw * trainxdatabatch myloss = tf.reduce_mean( tf.square( myy - trainydatabatch ) ) mytrain = tf.train.gradientdescentoptimizer( 0. ).minimize( myloss ) myinit = tf.global_variables_initializer() *tensorflow.constant(): 계속고정된값 (data) mysess = tf.session() mysess.run( myinit ) tensorflow.variable(): 변화시키면서찾고자하는값 (parameter) tensorflow.placeholder(): 그때그때입력하고자하는값 (data batch) # 학습 np.random.seed() # for indentical random sequence for step in range( 00 ) : # Epoch 수 rand_index = np.random.choice(trainindex, 00) # Batch Size batchxdata = trainxdata[ rand_index ] *random selection cf) slice selection batchydata = trainydata[ rand_index ] mysess.run( mytrain, feed_dict={ trainxdatabatch: batchxdata, trainydatabatch: batchydata } ) print( mysess.run(myb), mysess.run(myw) ) Placeholder 사용구조 trainmyy = myb + myw * trainxdata trainloss = tf.reduce_mean( ( trainmyy - trainydata )** ) print(mysess.run(trainloss)) # 테스트 testmyy = myb + myw * testxdata testloss = tf.reduce_mean( ( testmyy - testydata )** ) print(mysess.run(testloss)) # import matplotlib.pyplot as plt # plt.plot(testxdata, testydata, 'ro') # plt.plot(testxdata, mysess.run(testmyy)) # plt.show() trainxdatabatch myy myloss placeholder trainydatabatch mysess.run( mytrain, feed_dict={ } 9

*Epoch은학습횟수를칭하기도하고전체 data의사용횟수를칭하기도함. Mini-Batch Data selection = slice일경우에는전체 data의사용횟수를칭하는편임. 즉 Epoch에다수의학습이이루어짐. (Batch size = total일때는동일함 ) 손실 ( 오차 ) 점수 [ Appendix ] 학습률, 학습횟수 (epoch), Batch Size 학습속도 *Batch Size = Total 이라고하여한번에학습을완료하는것은아니다. 어디까지나 반복적시행착오 이다. 즉, 동일한데이터일지라도반복하여사용하면추가학습이이루어진다. 학습안정성 ㅇ Batch Size : (SGD) vs Mini-Batch vs Total/Batch ㅇ Mini-Batch Data selection : random vs slice Batch Size : 회학습에사용하는데이터 (inputs, label) 수 학습률 ( 작을수록폭이좁음 ) ㅇ학습률 : 크게 vs 작게 학습횟수 (epoch) ㅇ학습률이작을수록 (!) Batch Size 가작을수록 (?) 학습횟수는많이 * 통계적회귀분석은 total data 를사용하여한번에최저지점으로간다. 가중치 0

회귀분석 with multiple inputs(independent variables) import random import numpy # 데이터생성 xdata = list() ydata = list() for num in range( 500 ) : temp = random.random() temp = random.random() temp3 = random.random() xdata.append( [temp, temp, temp3] ) ydata.append( 0 + 3 * temp 4 * temp + * temp3 ) import numpy as np ydata = np.reshape( ydata, [500,] ) # ydata (500,) 를 (500,) 로변환 # tensorflow 로모델링 import tensorflow as tf myb = tf.variable( 0.0 ) # bias 의초기값은보통 0.0 으로 ( 정수 0 은안됨 ) myw = tf.variable( tf.random.normal( [3, ], 0, ) ) # weight 의초기값은보통정규분포 ( 적절한표준편차공식있음 ) myy = tf.matmul( xdata, myw ) + myb # 회귀식 myloss = tf.reduce_mean( tf.square(myy - ydata) ) # 손실함수 mytrain = tf.train.gradientdescentoptimizer( 0.05 ).minimize( myloss ) # 옵티마이저 myinit = tf.global_variables_initializer() mysess = tf.session() mysess.run( myinit ) for step in range( 500 ) : mysess.run( mytrain ) #print( xdata[0], mysess.run( myw ), mysess.run( myb ), mysess.run( myy[0] ) ) print( mysess.run(myb), mysess.run(myw) )

[ Appendix ] 입력값및가중치의행렬표기방법과 tf.matmul for one data < 수학적방정식 > ww xx + ww xx + ww 3 xx 3 + bb = yy < 행렬표기법 > xx ww ww ww 3 xx + bb = yy matmul(ww 3, XX 3 ) + b = y xx 3 matmul(ww 3, XX 3 ) + b = y Why bb instead of [bb]? < 행렬표기법 : 더권장 > ww xx xx xx 3 ww ww 3 + bb = yy matmul(xx 3, WW 3 ) + b = y matmul(xx 3, WW 3 ) + b = y import numpy as np a = np.array( [,, 3 ] ) b = np.array( [ 4, 5, 6 ] ) c = np.array( [ [4], [5], [6]] ) print(np.matmul(a, b)) print(np.matmul(b, a)) print(np.matmul(a, c)) print(np.matmul(c, a)) # 오류

[ Appendix ] 입력값및가중치의행렬표기방법과 tf.matmul for many inputs(batch) < 수학적방정식 > ww xx + ww xx + ww 3 xx 3 + bb = yy ww xx + ww xx + ww 3 xx 3 + bb = yy < 행렬표기법 > xx xx ww ww ww 3 xx xx xx 3 xx 3 + bb = yy yy Why bb instead of [bb, bb]? matmul(ww 3, XX 3 ) + b = YY < 행렬표기법 : 더권장 > ww xx xx xx 3 ww + bb = yy xx xx xx 3 ww yy 3 Why bb instead of bb bb matmul(xx 3, WW 3 ) + bb = YY ii. ee. [ [bb], [bb] ]? import numpy as np w = np.array( [,, 3 ] ) x = np.array( [ [, 4 ], [, 5 ], [3, 6] ] ) print(np.matmul(w, x)) x = np.array( [ [,, 3 ], [ 4, 5, 6] ] ) w = np.array( [ [ ], [ ], [ 3 ] ] ) print(np.matmul(x, w)) 3

[Appendix 3 ] 입력값및가중치의행렬표기방법과 tf.matmul for many inputs(batch) with many outputs for next Hidden Layer < 수학적방정식 : many inputs(batch) 와 many outputs 구분및 W, B 형태이해중요 > ww xx + ww xx + ww 3 xx 3 + bb = yy ww xx + ww xx + ww 3 xx 3 + bb = yy ww xx + ww xx + ww 3 xx 3 + bb = yy ww xx + ww xx + ww 3 xx 3 + bb = yy case xx xx xx 3 xx xx xx 3 input 종류 XX bb mm WW mm nn + BB nn = YY bb nn bb : input batch/case/sample 개수 mm : input 종류개수 nn : output 종류개수 참고 < 행렬표기법 > xx xx ww ww ww 3 ww ww ww xx xx 3 xx 3 xx 3 < 행렬표기법: 더권장 > output 연결 ww ww ww ww yy + bb bb = yy ww 3 ww yy 3 yy input 연결 + bb = yy yy bb yy yy output 종류 case Why bb bb instead of bb bb bb bb? matmul(xx 3, WW 3 ) + BB = YY import numpy as np x = np.array( [ [,, 3 ], [ 4, 5, 6] ] ) w = np.array( [ [, ], [ 3, 4 ], [ 5, 6 ] ] ) b = np.array( [0, 0] ) b = np.array( [ [0, 0], [0, 0] ] ) print( np.matmul(x, w) ) print( np.matmul(x, w) + b ) print( np.matmul(x, w) + b ) 4

신경망구조 Input Data xx xx xx ii Kernel : HH bbbb = XX bbbb WW iimm + BB mm h h h mm * bb for batch size * is possible for bb * ii is given, mm is decision Hidden Layer h h h mm Activation Function (relu, sigmoid etc.) Optimizer Kernel : ZZ bbbb = HH bbbb WW mmmm + BB jj zz zz zz jj * bb for batch size * is possible for bb * jj is given. Output Layer zz zz zz jj Activation Function (sigmoid, softmax etc.) Output Data yy yy yy jj Loss Function (MSE, CrossEntropy etc.) 5

회귀분석 with hidden layer and activation function 이전 : No hidden layer> 선형분리가능문제 만해결 선형분리불가능문제 는해결안됨. Input xdata < 이번 : One hidden layer(with two units/nodes) and Activation Function(AF) > Input Xdata 선형분리불가능문제일명 XOR 문제 도해결가능. Xdata * mywto + mybto Xdata * mywto3 + mybto3 kernel kernel Xdata * myw + myb Hidden Layer myh AF myh myh3 3 AF myh3 3 은닉층의 AF 는주로 relu, sigmoid, tanh 사용. 분류 문제에서는출력층에도 AF 적용 ( 주로 sigmoid, softmax). 입력층에는 AF 미적용. kernel myh * mywto4 + myh3 * myw3to4 + myb3to4 Output myy ydata Output myy 4 ydata 6

import random xdata = list() ydata = list() for num in range( 500 ) : temp = random.random() xdata.append(temp) ydata.append( 3 * temp + 0 ) import tensorflow as tf mywto = tf.variable( tf.random.normal ( [], 0, ) ) mybto = tf.variable( 0.0 ) mywto3 = tf.variable( tf.random.normal ( [], 0, ) ) mybto3 = tf.variable( 0.0 ) mywto4 = tf.variable( tf.random.normal ( [], 0, ) ) myw3to4 = tf.variable( tf.random.normal ( [], 0, ) ) myb3to4 = tf.variable( 0.0 ) # - 3 * (temp 0.5)** + 0 으로해보면? * 여러번실행 : 가중치초기값의중요성!! 적합한초기값을찾는 ML 도발전하고있음 ex) 사전학습 ( 비지도 ) with e.g. AutoEncoder or RBM( 생성모델 ) cf) vanishing gradient 문제도해결해줌 myh = xdata * mywto + mybto # 회귀식H myh = tf.nn.sigmoid( myh ) # 활성화함수 (Activation Function) myh3 = xdata * mywto3 + mybto3 # 회귀식H3 myh3 = tf.nn.sigmoid( myh3 ) # 활성화함수 (Activation Function) myy = myh * mywto4 + myh3 * myw3to4 + myb3to4 cf) 선형들의선형결합은선형일뿐이다. AF 를모두주석처리해보자. AF 를모두 sigmoid -> relu 로변경해보자. myloss = tf.reduce_mean( (myy - ydata) ** ) # 손실함수 mytrain = tf.train.gradientdescentoptimizer( 0.0 ).minimize( myloss ) # 옵티마이저. 학습률 =0.0이면? myinit = tf.global_variables_initializer() mysess = tf.session() mysess.run( myinit ) for step in range( 0000 ) : mysess.run( mytrain ) print( mysess.run(myloss) ) # import matplotlib.pyplot as plt # plt.plot( xdata, ydata, 'ro ) # plt.plot( xdata, mysess.run(myy), bo ) # plt.show() 7

[Appendix] 앞의 - 3 * (temp 0.5)** + 0 예제 with AutoEncoder( 사전학습 ) *< 주의 > 아직개념적이해수준의실행코드 ( 확정필요 ) import random xdata = list() ydata = list() for num in range( 500 ) : temp = random.random() xdata.append(temp) ydata.append( -3 * (temp - 0.5)** + 0 ) import tensorflow as tf # AutoEncoder 를통한사전학습 mywto = tf.variable( tf.random.normal( [], 0, ) ) mybto = tf.variable( 0.0) mywto3 = tf.variable( tf.random.normal( [], 0, ) ) mybto3 = tf.variable( 0.0 ) mywto4 = tf.variable( tf.random.normal( [], 0, ) ) myw3to4 = tf.variable( tf.random.normal( [], 0, ) ) myb3to4 = tf.variable( 0.0 ) myh = xdata * mywto + mybto myh = tf.nn.sigmoid( myh ) myh3 = xdata * mywto3 + mybto3 myh3 = tf.nn.sigmoid( myh3 ) myy = myh * mywto4 + myh3 * myw3to4 + myb3to4 myloss = tf.reduce_mean((myy - xdata) ** ) # 정답이 xdata 그자체 mytrain = tf.train.gradientdescentoptimizer( 0.0 ).minimize( myloss ) myinit = tf.global_variables_initializer() mysess = tf.session() mysess.run( myinit ) for step in range( 0000 ) : mysess.run( mytrain ) # 본학습 # 사전학습된지식 ( 가중치 ) 초기값설정 mywto = tf.variable( mysess.run(mywto) ) mybto = tf.variable( mysess.run(mybto) ) mywto3 = tf.variable( mysess.run(mywto3) ) mybto3 = tf.variable( mysess.run(mybto3) ) mywto4 = tf.variable( mysess.run(mywto4) ) myw3to4 = tf.variable( mysess.run(myw3to4) ) myb3to4 = tf.variable( mysess.run(myb3to4) ) myh = xdata * mywto + mybto myh = tf.nn.sigmoid( myh ) myh3 = xdata * mywto3 + mybto3 myh3 = tf.nn.sigmoid( myh3 ) myy = myh * mywto4 + myh3 * myw3to4 + myb3to4 myloss = tf.reduce_mean((myy - ydata) ** ) # 정답이 ydata mytrain = tf.train.gradientdescentoptimizer( 0.0 ).minimize( myloss ) myinit = tf.global_variables_initializer() mysess = tf.session() mysess.run( myinit ) for step in range( 0000 ) : mysess.run( mytrain ) print( mysess.run(myloss) ) import matplotlib.pyplot as plt plt.plot(xdata, ydata, 'ro') plt.plot(xdata, mysess.run(myy), 'bo') plt.show() 8

< 과제 : 신경망 and Regression 종합 > Input( 독립변수 ) 값이 3개 000개의 data set. CSV 파일사용 : Train set 700개, Test set 300개 Batch Size 50 적용 One hidden layer(with two units/nodes) and Activation Function(Relu) 적용 커널설정은행렬을사용한 tf.matmul 적용 ( Hint: 앞에있는 Appendix 4_3 ) reduce_mean() 에 index 추가? Input X data X data Kernel Hidden AF AF X3 data Kernel Output myy ydata 9