디지털 너구리 : 게임, IT 정보 및 다양한 지식 공유드립니다.

안녕하세요. 이번 포스팅에서는 본격적으로 텐서플로우 딥러닝 구현에 어떻게 학습을 시키는지 기본 개념에 대해서 알아보겠습니다.

 

 

 

 

 

 

 


# Linear Regression Hypothesis

 

훈련 과정을 가장 잘 나타내는 직선을 찾는 과정을 말한다. 가설로  세우는 함수는 다음과 같다

(1) Linear Regression Cost Function

 

Cost Function은 가설이 실제 값과 얼마나 다른지를 보여준다.

 

또한 Cost Function은 예측 값과 실제 값의 평균이다. 음수 결과를 피하거나 오류를 더 눈에 띄게하려면 제곱을 하면 된다

 

 

 

(2) gradient descent algorithm

 

Cost Function을 최소화 하는 알고리즘을 말합니다. 비용을 최소화 하기 위해 W와 b 값을 찾습니다. 

 

이를 텐서플로우 라이브러리를 활용하면 다음과 같습니다.

 

cost = tf.reduce_mean(tf.square(hypothesis - y))

optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01)

train = optimizer.minimize(cost)

 

 

 

# 텐서플로우 기본 학습 과정

 

이 구조를 이해하는 것이 중요합니다. 대부분의 딥 러닝 모델은 다음과 같은 구조를 가지고 있기 때문입니다.

 

처음에 학습을 위한 가설을 세우고 이에 따른 비교 함수 Cost Function 함수를 세운 뒤 Cost(오차)를 최소한으로 합니다.

 

가설, Cost Function, 최소화 하는 방법들은 매우 다양합니다.

 

 

 

 

# Logistic Regression Classification

 

가설 함수의 결과 값이 1과 0 사이일 경우 직선으로 표현할 수 없습니다. 따라서 시그모이드 함수를 통해 나타냅니다.

 

그래프 형태는 위의 그림과 같습니다.

 

일반적인 회귀 분석은 Wx + b 의 형태로 가설 함수가 표현되었습니다. 하지만 로지스틱 회귀 분석에는 시그모이드 함수로 표현됩니다.

 

Wx+b를 시그모이드 형태로 대입하여 가설함수를 나타냅니다.

 

텐서플로우 라이브러리 기능 중 하나인 sigmoid 함수를 통해 표현할 수 있습니다.

 

 

로지스틱 회귀 분석의 Cost Function은 이와 같습니다. 가설 함수 부분에 그대로 대입하면 됩니다. Cost 값을 최소화 하는 방법은 가설 함수가 시그모이드 형태이기에 log로 형태를 바꿔주면 됩니다.

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band