SlideShare a Scribd company logo
빅데이터 ~ 머신(딥)러닝
실무로 배우는 빅데이터 기술
 Tensorflow - Autoencoder 사용
☆ 확장하기 – 13편 ☆
김강원
오토인코더(Autoencoder) 는?
입력값과 최대핚 유사핚 출력값을 생성하는 네트워크를 만들기 위핚
비지도학습 신경망
※ Autoencoder의 기본 개념과 기능들은 구글링을 통해 확인 하세요!
파일럿 프로젝트 확장 (1/2)
Tensorflow &
Autoencoder
책 338 페이지 중에서… (개정판)
Autoencoder로
비정상 스마트카 판별
파일럿 프로젝트 확장 (2/2)
확장편 실습
Tensorflow Autoencoder
(비정상 스마트카 판별)
 Jupyter Notebook 실행
윈도우 시작 메뉴 > Anaconda Prompt 실행
> Activate py35
> jupyter notebook
Step-1
 “12편 Python + Pandas 활용” 소스 파일 오픈 및 실행
Jupyter Home > 12.Python&Pandas 활용.ipynb > 열기
Cell 메뉴 > Run All
Step-2
 Training 및 Test 데이터 생성
Normal = df[df.result == 0]
Bad = df[df.result == 1]
X_train_normal = Normal.sample(frac=0.8)
X_test_bad = Bad.sample(frac=0.2)
X_train_normal = X_train_normal.drop(['result'], axis=1)
X_test_bad = X_test_bad.drop(['result'], axis=1)
inputX_train_normal = X_train_normal.as_matrix()
inputX_test_bad = X_test_bad.as_matrix()
Step-3
 Traning 파라미터 설정
learning_rate = 0.01
epoch_steps = 10
batch_size = 100
n_batch = inputX_train_normal.shape[0]
display_step = 1
Step-4
 Autoencoder 레이어수 설정
num_hidden_1 = 4
num_hidden_2 = 2
num_input = 5
Step-5
 오토인코더 Input/Weight/Biases 변수 정의
X = tf.placeholder("float", [None, num_input])
weights = {
'encoder_h1': tf.Variable(tf.random_normal([num_input, num_hidden_1])),
'encoder_h2': tf.Variable(tf.random_normal([num_hidden_1, num_hidden_2])),
'decoder_h1': tf.Variable(tf.random_normal([num_hidden_2, num_hidden_1])),
'decoder_h2': tf.Variable(tf.random_normal([num_hidden_1, num_input])),
}
biases = {
'encoder_b1': tf.Variable(tf.random_normal([num_hidden_1])),
'encoder_b2': tf.Variable(tf.random_normal([num_hidden_2])),
'decoder_b1': tf.Variable(tf.random_normal([num_hidden_1])),
'decoder_b2': tf.Variable(tf.random_normal([num_input])),
}
Step-6
 오토인코더/디코더 함수 정의
def encoder(x):
layer_1 = tf.nn.tanh(tf.add(tf.matmul(x, weights['encoder_h1']), biases['encoder_b1']))
layer_2 = tf.nn.tanh(tf.add(tf.matmul(layer_1, weights['encoder_h2']), biases['encoder_b2']))
return layer_2
def decoder(x):
layer_1 = tf.nn.tanh(tf.add(tf.matmul(x, weights['decoder_h1']), biases['decoder_b1']))
layer_2 = tf.nn.tanh(tf.add(tf.matmul(layer_1, weights['decoder_h2']), biases['decoder_b2']))
return layer_2
Step-7
 오토인코더 모델 생성
encoder_op = encoder(X)
decoder_op = decoder(encoder_op)
x_pred = decoder_op
x_true = X
Step-8
 변수 초기화 및 학습모델 저장 설정
init = tf.global_variables_initializer()
save_model = os.path.join("D:model", 'saved_autoencoder_model.ckpt')
saver = tf.train.Saver()
Step-10
 손실값 및 최적화 정의
loss = tf.reduce_mean(tf.pow(x_true - x_pred, 2))
optimizer = tf.train.AdamOptimizer(learning_rate).minimize(loss)
Step-9
 오토인코더 신경망 학습 및 모델 생성
with tf.Session() as sess:
sess.run(init)
for i in range(1, epoch_steps+1):
for batch in range(int(n_batch/batch_size)):
batch_x=inputX_train_normal[batch*batch_size : (1+batch)*batch_size]
_, l = sess.run([optimizer, loss], feed_dict={X: batch_x})
if i % display_step == 0 or i==1:
print('Epoch %i: Minibatch Loss: %f' % (i, l))
print('### AutoEncoder Training/Model 완료 ###')
save_path = saver.save(sess, save_model)
print("Model saved: %s" % save_path)
Step-11
 오토인코더 모델 테스트
save_model = os.path.join('D:model', 'saved_autoencoder_model.ckpt')
saver = tf.train.Saver()
with tf.Session() as sess:
saver.restore(sess, save_model)
idx1 = 10
result1 = sess.run(decoder_op, feed_dict={X: inputX_train_normal [[idx1]]})
print("### 정상 데이터 ###")
print("오토인코더 입력 값:", np.around(inputX_train_normal[[idx1]], decimals=2) , ",sum: %0.2f" %
np.sum(inputX_train_normal[idx1]))
print("오토인코더 출력 값:", np.around(result1.astype(float), decimals=2), ",sum: %0.2f" %
np.sum(result1[0]))
print("")
print("------------------------------------------------------------------------------------------")
print("")
idx2 = 20
result2 = sess.run(decoder_op, feed_dict={X: inputX_test_bad[[idx2]]})
print("### 비정상 데이터 ###")
print("오토인코더 입력 값:", np.around(inputX_test_bad[[idx2]],decimals=2)
, ",sum: %0.2f"% np.sum(inputX_test_bad[idx2]) )
print("오토인코더 출력 값:", np.around(result2.astype(float),decimals=2)
, ",sum: %0.2f"% np.sum(result2[0]))
Step-12
실무로 배우는 빅데이터 기술
확장하기 13편–Tensorflow Autoencoder
[ 강의자료 ]
 동 영 상: 유튜브 www.youtube.com
 실습문서: 슬라이드쉐어 www.slideshare.net

More Related Content

What's hot

[143] Modern C++ 무조건 써야 해?
[143] Modern C++ 무조건 써야 해?[143] Modern C++ 무조건 써야 해?
[143] Modern C++ 무조건 써야 해?
NAVER D2
 
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
Tae Young Lee
 
[Gpg2권]1.1 c++ 게임의 최적화
[Gpg2권]1.1 c++ 게임의 최적화[Gpg2권]1.1 c++ 게임의 최적화
[Gpg2권]1.1 c++ 게임의 최적화KyeongWon Koo
 
20150306 파이썬기초 IPython을이용한프로그래밍_이태영
20150306 파이썬기초 IPython을이용한프로그래밍_이태영20150306 파이썬기초 IPython을이용한프로그래밍_이태영
20150306 파이썬기초 IPython을이용한프로그래밍_이태영
Tae Young Lee
 
사물인터넷 노트7_사물인터넷과 영상처리
사물인터넷 노트7_사물인터넷과 영상처리사물인터넷 노트7_사물인터넷과 영상처리
사물인터넷 노트7_사물인터넷과 영상처리
Dong Hwa Jeong
 
이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스
이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스
이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스
Seunghwa Song
 
Java 어플리케이션 성능튜닝 Part2
Java 어플리케이션 성능튜닝 Part2Java 어플리케이션 성능튜닝 Part2
Java 어플리케이션 성능튜닝 Part2
상욱 송
 
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013사례를 통해 살펴보는 프로파일링과 최적화 NDC2013
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013Esun Kim
 
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
Young Hoo Kim
 
이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인
이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인
이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인
Seunghwa Song
 
Gcd ppt
Gcd pptGcd ppt
Gcd ppt
Sangon Lee
 
NO PARALLEL DML
NO PARALLEL DMLNO PARALLEL DML
NO PARALLEL DML
Kyung Sang Jang
 
[NDC 2016] 유니티, iOS에서 LINQ 사용하기
[NDC 2016] 유니티, iOS에서 LINQ 사용하기[NDC 2016] 유니티, iOS에서 LINQ 사용하기
[NDC 2016] 유니티, iOS에서 LINQ 사용하기
Daehee Kim
 

What's hot (13)

[143] Modern C++ 무조건 써야 해?
[143] Modern C++ 무조건 써야 해?[143] Modern C++ 무조건 써야 해?
[143] Modern C++ 무조건 써야 해?
 
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
 
[Gpg2권]1.1 c++ 게임의 최적화
[Gpg2권]1.1 c++ 게임의 최적화[Gpg2권]1.1 c++ 게임의 최적화
[Gpg2권]1.1 c++ 게임의 최적화
 
20150306 파이썬기초 IPython을이용한프로그래밍_이태영
20150306 파이썬기초 IPython을이용한프로그래밍_이태영20150306 파이썬기초 IPython을이용한프로그래밍_이태영
20150306 파이썬기초 IPython을이용한프로그래밍_이태영
 
사물인터넷 노트7_사물인터넷과 영상처리
사물인터넷 노트7_사물인터넷과 영상처리사물인터넷 노트7_사물인터넷과 영상처리
사물인터넷 노트7_사물인터넷과 영상처리
 
이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스
이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스
이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스
 
Java 어플리케이션 성능튜닝 Part2
Java 어플리케이션 성능튜닝 Part2Java 어플리케이션 성능튜닝 Part2
Java 어플리케이션 성능튜닝 Part2
 
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013사례를 통해 살펴보는 프로파일링과 최적화 NDC2013
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013
 
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
 
이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인
이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인
이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인
 
Gcd ppt
Gcd pptGcd ppt
Gcd ppt
 
NO PARALLEL DML
NO PARALLEL DMLNO PARALLEL DML
NO PARALLEL DML
 
[NDC 2016] 유니티, iOS에서 LINQ 사용하기
[NDC 2016] 유니티, iOS에서 LINQ 사용하기[NDC 2016] 유니티, iOS에서 LINQ 사용하기
[NDC 2016] 유니티, iOS에서 LINQ 사용하기
 

Similar to 13. Application - Tensorflow Autoencoder

Android+init+process
Android+init+processAndroid+init+process
Android+init+processHong Jae Kwon
 
Multi mechanize
Multi mechanizeMulti mechanize
Multi mechanize
SungMin OH
 
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
Ryan Park
 
온라인 게임에서 사례로 살펴보는 디버깅 in NDC10
온라인 게임에서 사례로 살펴보는 디버깅 in NDC10온라인 게임에서 사례로 살펴보는 디버깅 in NDC10
온라인 게임에서 사례로 살펴보는 디버깅 in NDC10
Ryan Park
 
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
chcbaram
 
[SWCON211] LectureCode_13_Matlab Practice.pptx
[SWCON211] LectureCode_13_Matlab Practice.pptx[SWCON211] LectureCode_13_Matlab Practice.pptx
[SWCON211] LectureCode_13_Matlab Practice.pptx
oreo329
 
Unity ml agent quick guide
Unity ml agent quick guideUnity ml agent quick guide
Unity ml agent quick guide
Kyoungman Lee
 
Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심흥배 최
 
코드 생성을 사용해 개발 속도 높이기 NDC2011
코드 생성을 사용해 개발 속도 높이기 NDC2011코드 생성을 사용해 개발 속도 높이기 NDC2011
코드 생성을 사용해 개발 속도 높이기 NDC2011Esun Kim
 
사운드처리_텀과제_이정근.pptx
사운드처리_텀과제_이정근.pptx사운드처리_텀과제_이정근.pptx
사운드처리_텀과제_이정근.pptx
tangtang1026
 
딥러닝계의 블루오션, Apache MXNet 공헌하기 - 윤석찬 (AWS 테크에반젤리스트) 오규삼 (삼성 SDS)
딥러닝계의 블루오션, Apache MXNet 공헌하기 - 윤석찬 (AWS 테크에반젤리스트) 오규삼 (삼성 SDS)딥러닝계의 블루오션, Apache MXNet 공헌하기 - 윤석찬 (AWS 테크에반젤리스트) 오규삼 (삼성 SDS)
딥러닝계의 블루오션, Apache MXNet 공헌하기 - 윤석찬 (AWS 테크에반젤리스트) 오규삼 (삼성 SDS)
Amazon Web Services Korea
 
AI 연구자를 위한 클린코드 - GDG DevFest Seoul 2019
AI 연구자를 위한 클린코드 - GDG DevFest Seoul 2019AI 연구자를 위한 클린코드 - GDG DevFest Seoul 2019
AI 연구자를 위한 클린코드 - GDG DevFest Seoul 2019
Kenneth Ceyer
 
Deview 2019 눈발자국
Deview 2019 눈발자국Deview 2019 눈발자국
Deview 2019 눈발자국
hanbeom Park
 
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [전진 4드론] : RAD(Reinforcement learning method for ...
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [전진 4드론] : RAD(Reinforcement learning method for ...제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [전진 4드론] : RAD(Reinforcement learning method for ...
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [전진 4드론] : RAD(Reinforcement learning method for ...
BOAZ Bigdata
 
KGC2010 - 낡은 코드에 단위테스트 넣기
KGC2010 - 낡은 코드에 단위테스트 넣기KGC2010 - 낡은 코드에 단위테스트 넣기
KGC2010 - 낡은 코드에 단위테스트 넣기
Ryan Park
 
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
khuhacker
 
IPython
IPythonIPython
IPython
Kyunghoon Kim
 
[2018] Java를 위한, Java에 의한 도구들
[2018] Java를 위한, Java에 의한 도구들[2018] Java를 위한, Java에 의한 도구들
[2018] Java를 위한, Java에 의한 도구들
NHN FORWARD
 
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
Jaeseung Ha
 
[신경망기초] 퍼셉트론구현
[신경망기초] 퍼셉트론구현[신경망기초] 퍼셉트론구현
[신경망기초] 퍼셉트론구현
jaypi Ko
 

Similar to 13. Application - Tensorflow Autoencoder (20)

Android+init+process
Android+init+processAndroid+init+process
Android+init+process
 
Multi mechanize
Multi mechanizeMulti mechanize
Multi mechanize
 
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
 
온라인 게임에서 사례로 살펴보는 디버깅 in NDC10
온라인 게임에서 사례로 살펴보는 디버깅 in NDC10온라인 게임에서 사례로 살펴보는 디버깅 in NDC10
온라인 게임에서 사례로 살펴보는 디버깅 in NDC10
 
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
컵드론 멀티콥터 펌웨어 분석 2015. 3.28.
 
[SWCON211] LectureCode_13_Matlab Practice.pptx
[SWCON211] LectureCode_13_Matlab Practice.pptx[SWCON211] LectureCode_13_Matlab Practice.pptx
[SWCON211] LectureCode_13_Matlab Practice.pptx
 
Unity ml agent quick guide
Unity ml agent quick guideUnity ml agent quick guide
Unity ml agent quick guide
 
Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심
 
코드 생성을 사용해 개발 속도 높이기 NDC2011
코드 생성을 사용해 개발 속도 높이기 NDC2011코드 생성을 사용해 개발 속도 높이기 NDC2011
코드 생성을 사용해 개발 속도 높이기 NDC2011
 
사운드처리_텀과제_이정근.pptx
사운드처리_텀과제_이정근.pptx사운드처리_텀과제_이정근.pptx
사운드처리_텀과제_이정근.pptx
 
딥러닝계의 블루오션, Apache MXNet 공헌하기 - 윤석찬 (AWS 테크에반젤리스트) 오규삼 (삼성 SDS)
딥러닝계의 블루오션, Apache MXNet 공헌하기 - 윤석찬 (AWS 테크에반젤리스트) 오규삼 (삼성 SDS)딥러닝계의 블루오션, Apache MXNet 공헌하기 - 윤석찬 (AWS 테크에반젤리스트) 오규삼 (삼성 SDS)
딥러닝계의 블루오션, Apache MXNet 공헌하기 - 윤석찬 (AWS 테크에반젤리스트) 오규삼 (삼성 SDS)
 
AI 연구자를 위한 클린코드 - GDG DevFest Seoul 2019
AI 연구자를 위한 클린코드 - GDG DevFest Seoul 2019AI 연구자를 위한 클린코드 - GDG DevFest Seoul 2019
AI 연구자를 위한 클린코드 - GDG DevFest Seoul 2019
 
Deview 2019 눈발자국
Deview 2019 눈발자국Deview 2019 눈발자국
Deview 2019 눈발자국
 
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [전진 4드론] : RAD(Reinforcement learning method for ...
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [전진 4드론] : RAD(Reinforcement learning method for ...제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [전진 4드론] : RAD(Reinforcement learning method for ...
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [전진 4드론] : RAD(Reinforcement learning method for ...
 
KGC2010 - 낡은 코드에 단위테스트 넣기
KGC2010 - 낡은 코드에 단위테스트 넣기KGC2010 - 낡은 코드에 단위테스트 넣기
KGC2010 - 낡은 코드에 단위테스트 넣기
 
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
 
IPython
IPythonIPython
IPython
 
[2018] Java를 위한, Java에 의한 도구들
[2018] Java를 위한, Java에 의한 도구들[2018] Java를 위한, Java에 의한 도구들
[2018] Java를 위한, Java에 의한 도구들
 
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
 
[신경망기초] 퍼셉트론구현
[신경망기초] 퍼셉트론구현[신경망기초] 퍼셉트론구현
[신경망기초] 퍼셉트론구현
 

More from merry7

18. Install - Spark Streaming Env.
18. Install - Spark Streaming Env.18. Install - Spark Streaming Env.
18. Install - Spark Streaming Env.
merry7
 
17. Application - Nutch + Solr
17. Application - Nutch + Solr17. Application - Nutch + Solr
17. Application - Nutch + Solr
merry7
 
16. Install - Nutch
16. Install - Nutch16. Install - Nutch
16. Install - Nutch
merry7
 
14. Install - Solr
14. Install - Solr14. Install - Solr
14. Install - Solr
merry7
 
11. Application - Phoenix
11. Application - Phoenix11. Application - Phoenix
11. Application - Phoenix
merry7
 
10. Install - Phoenix
10. Install - Phoenix10. Install - Phoenix
10. Install - Phoenix
merry7
 
9. Application - WebHDFS
9. Application - WebHDFS9. Application - WebHDFS
9. Application - WebHDFS
merry7
 
7. Application - Hive Bucket
7. Application - Hive Bucket7. Application - Hive Bucket
7. Application - Hive Bucket
merry7
 
6. Application - NiFi
6. Application - NiFi6. Application - NiFi
6. Application - NiFi
merry7
 
5. Install - NiFi
5. Install - NiFi5. Install - NiFi
5. Install - NiFi
merry7
 
4. Application - Oozie Fork
4. Application - Oozie Fork4. Application - Oozie Fork
4. Application - Oozie Fork
merry7
 
2. Application - Sqoop Import
2. Application - Sqoop Import2. Application - Sqoop Import
2. Application - Sqoop Import
merry7
 
1. Application - Pig
1. Application - Pig1. Application - Pig
1. Application - Pig
merry7
 

More from merry7 (13)

18. Install - Spark Streaming Env.
18. Install - Spark Streaming Env.18. Install - Spark Streaming Env.
18. Install - Spark Streaming Env.
 
17. Application - Nutch + Solr
17. Application - Nutch + Solr17. Application - Nutch + Solr
17. Application - Nutch + Solr
 
16. Install - Nutch
16. Install - Nutch16. Install - Nutch
16. Install - Nutch
 
14. Install - Solr
14. Install - Solr14. Install - Solr
14. Install - Solr
 
11. Application - Phoenix
11. Application - Phoenix11. Application - Phoenix
11. Application - Phoenix
 
10. Install - Phoenix
10. Install - Phoenix10. Install - Phoenix
10. Install - Phoenix
 
9. Application - WebHDFS
9. Application - WebHDFS9. Application - WebHDFS
9. Application - WebHDFS
 
7. Application - Hive Bucket
7. Application - Hive Bucket7. Application - Hive Bucket
7. Application - Hive Bucket
 
6. Application - NiFi
6. Application - NiFi6. Application - NiFi
6. Application - NiFi
 
5. Install - NiFi
5. Install - NiFi5. Install - NiFi
5. Install - NiFi
 
4. Application - Oozie Fork
4. Application - Oozie Fork4. Application - Oozie Fork
4. Application - Oozie Fork
 
2. Application - Sqoop Import
2. Application - Sqoop Import2. Application - Sqoop Import
2. Application - Sqoop Import
 
1. Application - Pig
1. Application - Pig1. Application - Pig
1. Application - Pig
 

13. Application - Tensorflow Autoencoder

  • 1. 빅데이터 ~ 머신(딥)러닝 실무로 배우는 빅데이터 기술  Tensorflow - Autoencoder 사용 ☆ 확장하기 – 13편 ☆ 김강원
  • 2. 오토인코더(Autoencoder) 는? 입력값과 최대핚 유사핚 출력값을 생성하는 네트워크를 만들기 위핚 비지도학습 신경망 ※ Autoencoder의 기본 개념과 기능들은 구글링을 통해 확인 하세요!
  • 3. 파일럿 프로젝트 확장 (1/2) Tensorflow & Autoencoder
  • 4. 책 338 페이지 중에서… (개정판) Autoencoder로 비정상 스마트카 판별 파일럿 프로젝트 확장 (2/2)
  • 6.  Jupyter Notebook 실행 윈도우 시작 메뉴 > Anaconda Prompt 실행 > Activate py35 > jupyter notebook Step-1  “12편 Python + Pandas 활용” 소스 파일 오픈 및 실행 Jupyter Home > 12.Python&Pandas 활용.ipynb > 열기 Cell 메뉴 > Run All Step-2  Training 및 Test 데이터 생성 Normal = df[df.result == 0] Bad = df[df.result == 1] X_train_normal = Normal.sample(frac=0.8) X_test_bad = Bad.sample(frac=0.2) X_train_normal = X_train_normal.drop(['result'], axis=1) X_test_bad = X_test_bad.drop(['result'], axis=1) inputX_train_normal = X_train_normal.as_matrix() inputX_test_bad = X_test_bad.as_matrix() Step-3
  • 7.  Traning 파라미터 설정 learning_rate = 0.01 epoch_steps = 10 batch_size = 100 n_batch = inputX_train_normal.shape[0] display_step = 1 Step-4  Autoencoder 레이어수 설정 num_hidden_1 = 4 num_hidden_2 = 2 num_input = 5 Step-5
  • 8.  오토인코더 Input/Weight/Biases 변수 정의 X = tf.placeholder("float", [None, num_input]) weights = { 'encoder_h1': tf.Variable(tf.random_normal([num_input, num_hidden_1])), 'encoder_h2': tf.Variable(tf.random_normal([num_hidden_1, num_hidden_2])), 'decoder_h1': tf.Variable(tf.random_normal([num_hidden_2, num_hidden_1])), 'decoder_h2': tf.Variable(tf.random_normal([num_hidden_1, num_input])), } biases = { 'encoder_b1': tf.Variable(tf.random_normal([num_hidden_1])), 'encoder_b2': tf.Variable(tf.random_normal([num_hidden_2])), 'decoder_b1': tf.Variable(tf.random_normal([num_hidden_1])), 'decoder_b2': tf.Variable(tf.random_normal([num_input])), } Step-6
  • 9.  오토인코더/디코더 함수 정의 def encoder(x): layer_1 = tf.nn.tanh(tf.add(tf.matmul(x, weights['encoder_h1']), biases['encoder_b1'])) layer_2 = tf.nn.tanh(tf.add(tf.matmul(layer_1, weights['encoder_h2']), biases['encoder_b2'])) return layer_2 def decoder(x): layer_1 = tf.nn.tanh(tf.add(tf.matmul(x, weights['decoder_h1']), biases['decoder_b1'])) layer_2 = tf.nn.tanh(tf.add(tf.matmul(layer_1, weights['decoder_h2']), biases['decoder_b2'])) return layer_2 Step-7  오토인코더 모델 생성 encoder_op = encoder(X) decoder_op = decoder(encoder_op) x_pred = decoder_op x_true = X Step-8
  • 10.  변수 초기화 및 학습모델 저장 설정 init = tf.global_variables_initializer() save_model = os.path.join("D:model", 'saved_autoencoder_model.ckpt') saver = tf.train.Saver() Step-10  손실값 및 최적화 정의 loss = tf.reduce_mean(tf.pow(x_true - x_pred, 2)) optimizer = tf.train.AdamOptimizer(learning_rate).minimize(loss) Step-9
  • 11.  오토인코더 신경망 학습 및 모델 생성 with tf.Session() as sess: sess.run(init) for i in range(1, epoch_steps+1): for batch in range(int(n_batch/batch_size)): batch_x=inputX_train_normal[batch*batch_size : (1+batch)*batch_size] _, l = sess.run([optimizer, loss], feed_dict={X: batch_x}) if i % display_step == 0 or i==1: print('Epoch %i: Minibatch Loss: %f' % (i, l)) print('### AutoEncoder Training/Model 완료 ###') save_path = saver.save(sess, save_model) print("Model saved: %s" % save_path) Step-11
  • 12.  오토인코더 모델 테스트 save_model = os.path.join('D:model', 'saved_autoencoder_model.ckpt') saver = tf.train.Saver() with tf.Session() as sess: saver.restore(sess, save_model) idx1 = 10 result1 = sess.run(decoder_op, feed_dict={X: inputX_train_normal [[idx1]]}) print("### 정상 데이터 ###") print("오토인코더 입력 값:", np.around(inputX_train_normal[[idx1]], decimals=2) , ",sum: %0.2f" % np.sum(inputX_train_normal[idx1])) print("오토인코더 출력 값:", np.around(result1.astype(float), decimals=2), ",sum: %0.2f" % np.sum(result1[0])) print("") print("------------------------------------------------------------------------------------------") print("") idx2 = 20 result2 = sess.run(decoder_op, feed_dict={X: inputX_test_bad[[idx2]]}) print("### 비정상 데이터 ###") print("오토인코더 입력 값:", np.around(inputX_test_bad[[idx2]],decimals=2) , ",sum: %0.2f"% np.sum(inputX_test_bad[idx2]) ) print("오토인코더 출력 값:", np.around(result2.astype(float),decimals=2) , ",sum: %0.2f"% np.sum(result2[0])) Step-12
  • 13. 실무로 배우는 빅데이터 기술 확장하기 13편–Tensorflow Autoencoder [ 강의자료 ]  동 영 상: 유튜브 www.youtube.com  실습문서: 슬라이드쉐어 www.slideshare.net