조밀(Dense) 레이어

Python으로 시작하는 TensorFlow

Isaiah Hull

Visiting Associate Professor of Finance, BI Norwegian Business School

선형 회귀 모델

이 도식은 결혼 여부와 나이 두 가지 특성을 가진 회귀 모델을 보여줍니다. 목표는 신용카드 대출자의 연체 상태입니다.

Python으로 시작하는 TensorFlow

신경망이란?

이 도식은 결혼 여부와 나이 두 가지 입력 특성을 가진 신경망을 보여줍니다. 목표는 신용카드 대출자의 연체 상태입니다.

Python으로 시작하는 TensorFlow

신경망이란?

이 이미지는 10개 입력 특성, 3개 조밀(hidden) 레이어, 출력 레이어가 있는 더 복잡한 신경망을 보여줍니다.

  • Dense 레이어는 이전 레이어의 모든 노드에 가중치를 적용합니다.
Python으로 시작하는 TensorFlow

간단한 Dense 레이어

import tensorflow as tf
# 입력(특성) 정의
inputs = tf.constant([[1, 35]])
# 가중치 정의
weights = tf.Variable([[-0.05], [-0.01]])
# 바이어스 정의
bias = tf.Variable([0.5])
Python으로 시작하는 TensorFlow

간단한 Dense 레이어

# 입력(특성)에 가중치 곱하기
product = tf.matmul(inputs, weights)
# Dense 레이어 정의
dense = tf.keras.activations.sigmoid(product+bias)

이 도식은 두 개의 입력 노드를 받아 하나의 출력을 내는 dense 레이어를 보여줍니다.

Python으로 시작하는 TensorFlow

완전한 모델 정의

import tensorflow as tf
# 입력(특성) 레이어 정의
inputs = tf.constant(data, tf.float32)
# 첫 번째 dense 레이어 정의
dense1 = tf.keras.layers.Dense(10, activation='sigmoid')(inputs)
Python으로 시작하는 TensorFlow

완전한 모델 정의

# 두 번째 dense 레이어 정의
dense2 = tf.keras.layers.Dense(5, activation='sigmoid')(dense1)
# 출력(예측) 레이어 정의
outputs =  tf.keras.layers.Dense(1, activation='sigmoid')(dense2)

이 도식은 두 개의 입력 노드를 받아 하나의 출력을 내는 dense 레이어를 보여줍니다.

Python으로 시작하는 TensorFlow

고수준 vs. 저수준 접근

  • 고수준 접근
    • 고수준 API 연산
dense = keras.layers.Dense(10,\
 activation='sigmoid')
  • 저수준 접근
    • 선형대수 연산
prod = matmul(inputs, weights)
dense = keras.activations.sigmoid(prod)
Python으로 시작하는 TensorFlow

연습해 봅시다!

Python으로 시작하는 TensorFlow

Preparing Video For Download...