관리 메뉴

ComputerVision Jack

[골빈해커 Chapter4 정리] 본문

DeepLearning/골빈해커 - Tensor Lib

[골빈해커 Chapter4 정리]

JackYoon 2020. 1. 14. 18:45
반응형

[개념정리]

04_기본 신경망 구현.ipynb
0.01MB

심층 신경망과 다층 신경망을 간단하게 구현한다.

인공 신경망은 뉴런의 동작 원리에 기초한다.

 

즉 입력값 X에 가중치(W)를 곱하고 편향(b)을 더한 뒤 활성화 함수(Sigmoid, ReLU 등)를 거쳐 결과값 y를 만들어 내는 것

Y = Sigmoid(X x W + b)

출력 = 활성화 함수( 입력 x 가중치 + 편향)

따라서 가중치와 편향을 찾아내는 것이 학습

Sigmoid

sigmoid 그래프

ReLU

Relu

tanh

tanh

분류 문제

패턴을 파악해 여러 종류로 구분하는 작업

 

One-hot-encoding(온핫 인코딩)

레이블 데이터 구성

데이터가 가질 수 있는 값들을 일렬로 나열한 배열을 만들고 표현하려는 값을 뜻하는 인덱스 원소만 1로 표기

나머지 원소는 모두 0으로 표기

[ 포유류, 조류, 기타] 인경우 포유류 일때 [1, 0, 0]

[Method 정리]

얕은 신경망으로 분류 문제 정의

tf.add(tf.matmul(X, W), b) = tf.matmul(X, W) + b : 행렬의 곱 연산. (곱 연산하는 이유 알기)

tf.nn.relu(레이어) : 활성 함수에 만들어놓은 레이어 넣기

tf.reduce_mean(-tf.reduce_sum(Y * tf.log(model), axis = 1) : 크로스 엔트로피 함수(손실 함수), axis는 축을 의미한다.

 

정확도가 66 퍼로 나온다.

깊은 신경망으로 분류 문제 정의

심층 신경망 구현

W1 = tf.Variable(tf.random_uniform([2, 10], -1., 1.)) : [2, 10] = [특징, 은닉층 뉴런수]

W2 = tf.Variable(tf.random_uniform([10, 3], -1., 1.)) : [10, 3] = [은닉층 뉴런수, 분류 수]

#tf.random_unifrom() : 균등 분포로부터 난수를 가져온다. (-1 최솟값, 1 최댓값 사이의 난수)

 

b1 = tf.Variable(tf.zeros([10]))

b2 = tf.Variable(tf.zeros([3]))

#tf. zeros(shape) : 모든 원소가 0인 shape을 가진 텐서를 생성한다.

 

L1 = tf.add(tf.matmul(X, W1), b1)

L1 = tf.nn.relu(L1)

 

model = tf.add(L1, W2), b2)

 

 

 

반응형

'DeepLearning > 골빈해커 - Tensor Lib' 카테고리의 다른 글

[골빈해커 Chapter8 정리]  (0) 2020.01.19
[골빈해커 Chapter7정리]  (0) 2020.01.17
[골빈해커 Chapter6 정리]  (0) 2020.01.16
[골빈해커 Chapter5 정리]  (0) 2020.01.15
[골빈해커 Chapter3 정리]  (0) 2020.01.13
Comments