CodeOnWeb
Log in

Neural Network 02

오 태호 2018/10/19, 23:45

Contents

AI PM 강의 (49)

Python 환경 만들기 Python 기초 실습 Python 기초 요약 Python 활용 실습 Python 활용 요약 Linear Regression 01 Linear Regression 02 Linear Regression 03 Linear Regression 04 Linear Regression 05 Linear Regression 06 Linear Regression 요약 Logistic Regression 01 Logistic Regression 02 Logistic Regression 03 Logistic Regression 04 Logistic Regression 05 Logistic Regression 요약 추천 시스템 실습 - 내용 기반 추천 추천 시스템 실습 - 협업 필터링1 추천 시스템 실습 - 협업 필터링2 TMDB API키 만들기 추천 시스템 요약 ML 방법론 및 결과 해석 실습 - 데이터셋 나누기 ML 방법론 및 결과 해석 실습 - Skewed Classes ML 방법론 및 결과 해석 실습 - Precision/Recall ML 방법론 및 결과 해석 실습 - Down/Up Sampling ML 방법론 및 결과 해석 요약 Neural Network 01 Neural Network 02 Neural Network 03 Neural Network 04 Neural Network 요약 Convolutional Neural Network 01 Convolutional Neural Network 02 Convolutional Neural Network 03 Convolutional Neural Network 04 Convolutional Neural Network 05 Convolutional Neural Network 06 Convolutional Neural Network 요약 ML as a Service (MLaaS)

AI PM 강의 V1

MNIST 필기체 숫자 인식을 Multi-layer Neural Network으로 구현해 봅니다.

  • 필요한 package들을 import합니다.

  • random seed를 설정합니다.

  • 필기체 숫자 data를 얻어오는 함수를 정의합니다.

  • 필기체 숫자 image를 그림으로 그려주는 함수를 정의합니다.

  • 필기체 숫자 data를 읽어옵니다.

  • 필기체 숫자 data의 내용을 살펴봅니다.

  • 필기체 숫자 image, 필기체 숫자 종류를 넣어줄 placeholder를 x_input, y_input에 저장합니다.
    • $ x\_input= \begin{pmatrix} x_1^{(1)} & x_2^{(1)} & \cdots & x_{784}^{(1)} \\ x_1^{(2)} & x_2^{(2)} & \cdots & x_{784}^{(2)} \\ \vdots & \vdots & \ddots & \vdots \\ x_1^{(m)} & x_2^{(m)} & \cdots & x_{784}^{(m)} \end{pmatrix} $
    • $ y\_input= \begin{pmatrix} y_{(0)}^{(1)} & y_{(1)}^{(1)} & \cdots & y_{(9)}^{(1)} \\ y_{(0)}^{(2)} & y_{(1)}^{(2)} & \cdots & y_{(9)}^{(2)} \\ \vdots & \vdots & \ddots & \vdots \\ y_{(0)}^{(m)} & y_{(1)}^{(m)} & \cdots & y_{(9)}^{(m)} \\ \end{pmatrix} $

  • 계산도중에 사용할 variable을 만들어서 weight_1_var, bias_1_var, weight_2_var, bias_2_var에 저장합니다.
    • weight에 사용할 variable은 적당한 표준편차를 가지는 정규분포에서 random하게 뽑아서 초기화합니다.
    • Multi-layer Neural Network에서는 weight에 사용할 variable을 random하게 초기화하지 않으면 Gradient Descent로 학습이 진행되지 않습니다.

  • 필기체 숫자 종류를 추정하는 계산과정을 정의합니다.
    • Neuron이 784 : 500 : 10 으로 구성되어 있는 Neural Network입니다.

  • cost의 계산과정을 정의합니다.

  • cost를 최소화시키는 operation을 AdamOptimizer으로 정의하여 train_step에 저장합니다.

  • x_input, y_input, weight_1_var, bias_1_var, weight_2_var, bias_2_var, fc_1, relu_1, logit, y_output, cross_entropy, cost_output, train_step을 print로 출력해 봅니다. 모두 값이 보이지 않는 알아보기 힘든 결과가 출력됩니다.

  • Tensorflow Session을 open합니다.

  • step, cost, mini_batch, max_epoch를 초기화합니다.

  • Gradient Descent를 사용하여 cost가 가장 작아지는 weight, bias들을 찾습니다.

  • x_test_data 필기체 숫자 test data를 사용하여 추정한 필기체 숫자의 종류를 y_pred에 저장합니다.

  • 필기체 숫자의 분류 정확도를 출력합니다.

  • 잘못 분류된 필기체 숫자에 대한 정보를 y_wrong_class에 저장합니다.

  • 잘못 분류된 필기체 숫자를 10개 그려봅니다.

  • 잘못 분류된 필기체 숫자 3개에서, 10가지 숫자 각각의 확률을 출력합니다.

  • Tensorflow Session을 close합니다.


94 reads
Previous Neural Network 01
Next Neural Network 03

Author

No discussion

Please log in to leave a comment

16.5.11608.20190404.allo
Report · Terms of Service · Privacy Policy
Lablup Inc. · Teheran-ro 145, Gangnam-gu, Seoul, Republic of Korea · 대표: 신정규 · 사업자번호: 864-88-00080 · +82 70-8200-2587

Decline Confirm

Close
Favorite Bookmark Discussion

Please copy the following address