⚙️ Deep Learning
📌 FNN 네트워크 설계 요소
- 입력
- 출력
- 은닉 계층
- 네트워크 크기
- 네트워크 깊이(계층 수)
- 네트워크 폭(계층별 뉴런 수)
📌 FNN 분류 문제
- Binary Classification
- 개념 : 이진 분류
- 출력에서의 활성 함수 : 0 ~ 1 사이의 값으로 변환해주는 Sigmoid 함수
- Multi Classification
- 개념 : 다중 분류
- 출력에서의 활성 함수 : 여러 개의 클래스에 할당한 확률의 합이 1이 되도록 해주는 Softmax 함수
📌 FNN 회귀 문제
📌 FNN 구성 요소
- Input Layer : 입력 데이터를 벡터 형태로 받아들여 다음 레이어로 전달한다.
- Activation Function : 다양한 종류가 있으며, 초기에는 속도가 느리고 기울기 소실 문제가 발생할 수 있는 비선형성 sigmoid 계열을 사용하다 딥러닝 이후로는 속도가 빠른 선형성 ReLU 계열을 사용한다.
- Network Depth : Layer 갯수
- Network Width : 계층에 들어 있는 뉴런 갯수
⚙️ 실습
📌 간단한 DNN 실습
import tensorflow as tf
fashion_mnist = tf.keras.datasets.fashion_mnist
(train_X, train_y), (test_X, test_y) = fashion_mnist.load_data()
train_X = train_X / 255.0
test_X = test_X / 255.0
model = tf.keras.Sequential(
[
tf.keras.layers.Flatten(input_shape = (28, 28)),
tf.keras.layers.Dense(units = 128, activation = "relu"),
tf.keras.layers.Dense(units = 10, activation = "softmax")
]
)
model.compile(
optimizer = tf.keras.optimizers.Adam(),
loss = "categorical_crossentropy",
metrics = ["accuracy"]
)
history = model.fit(
train_X,
tf.keras.utils.to_categorical(train_y, num_classes=10),
epochs = 100,
batch_size = 256,
validation_split = 0.25
)
y_pred = model.predict(test_X)