golbin / TensorFlow-Tutorials

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

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

Open imksh0707 opened 5 years ago

imksh0707 commented 5 years ago

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. 위의 예시를 가지고, 어떤 방식으로 저 확률들이 도출되는지 이해가 잘 되지 않습니다. ㅜ

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