golbin / TensorFlow-Tutorials

텐서플로우를 기초부터 응용까지 단계별로 연습할 수 있는 소스 코드를 제공합니다

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Chapter 4. 간단한 분류 모델 구현하기에 관한 질문.

imksh0707 opened this issue · comments

Chapter 4. Neural Network BasicClassification.py 문서를 열게 되면
아래와 같은 가중치 변수를 균일분포하중에 따른 난수생성을 통해 정의 하게 되어있습니다.

W = tf.Variable(tf.random_uniform([2, 3], -1., 1.))
b = tf.Variable(tf.zeros([3]))
L = tf.add(tf.matmul(X, W), b)
L = tf.nn.relu(L)
model = tf.nn.softmax(L)

질문1. 분포의 범위가 -1.0 에서 1.0 까지인데 (편항값 b가 0이므로) 음의 값을 가지는 가중치의 조합에 따라 ReLU에 들어가는 L의 값이 음수의 경우가 나타날 수 있고, 이 후 ReLU에 의해 출력되는 결과값(L)이 0이 되어버리는데 이 코드의 구현이 통계적으로 결과값에 어떤 의미를 가져다 주는지 궁금합니다.
(개인적인 생각으로는 균일분포의 범위를 0에서 1로 하는것이 확률적으로 일치도를 높여 줄수 있을 거 같은데 이해해 어려움이 따라 문의 드립니다.)

질문2. 왜 편항 b는 0으로 지정하였는지 궁금합니다.

질문3. Softmax의 설명을 돕기 위한 주석으로 아래와 같은 문구를 달아 주셨는데,
예시에서 -6.52라는 값이 존재하는데 사실 softmax이전에 relu에 의해 0이상의 값들로
변환될거 같은데 음수를 가질수 있는지 궁금합니다.

#softmax 함수는 다음처럼 결과값을 전체합이 1인 확률로 만들어주는 함수입니다.
#예) [8.04, 2.76, -6.52] -> [0.53 0.24 0.23]

질문4. 위의 예시를 가지고, 어떤 방식으로 저 확률들이 도출되는지 이해가 잘 되지 않습니다. ㅜ

이제 막 프로그래밍 세계에 입문하여, 많은 배움이 필요한 저입니다.
작가님의 책을 통해 많은 지식을 쌓고 있는 도중 첫번째 의문점에 도달하여
이렇게 문의글을 올리게 됩니다.
좋은 답변 부탁드리며, 기다리고 있겠습니다.

  • Raphael_SH