혼공 ML+DL #18

myeong·2022년 10월 13일
0

ML+DL

목록 보기
16/23

📌 심층 신경망 (DNN)

  • Deep Neural Network
  • 이미지, 텍스트 같이 비정형화된 데이터 -> 표현학습
  • 입력층 -> 은닉층 (여러개) -> 출력층
  • 다중분류 : softmax / 이진분류 : sigmoid


📍 렐루 함수

  • relu == max(0, z) : z<=0 이면 0, z>0 이면 z 와 동일 -> 학습 효과적
  • Flatten 층 : 2차원 배열 -> 1차원으로 펼쳐줌 (전처리)
  • summary() : 모델 정보 출력
from tensorflow import keras

(train_input, train_target), (test_input, test_target) = keras.datasets.fashion_mnist.load_data()

from sklearn.model_selection import train_test_split

train_scaled = train_input / 255.0

train_scaled, val_scaled, train_target, val_target = train_test_split(
    train_scaled, train_target, test_size=0.2, random_state=42
)

model = keras.Sequential()
model.add(keras.layers.Flatten(input_shape=(28, 28)))
model.add(keras.layers.Dense(100, activation='relu'))
model.add(keras.layers.Dense(10, activation='softmax'))

model.summary()

  • Param : 각 층에 있는 모델 파라미터의 갯수 (w, b)
    dense : 가중치(입력784 x 은닉100) + 절편(은닉100) = 78500개
    dense_1 : 가중치(은닉100 x 출력10) + 절편(출력10) = 1010개

  • 학습
model.compile(loss='sparse_categorical_crossentropy', metrics='accuracy')

model.fit(train_scaled, train_target, epochs=5)
model.evaluate(val_scaled, val_target)

[0.3633687198162079, 0.8764166831970215]


📍 옵티마이저

  • loss function 의 최솟값을 찾는 최적화 알고리즘
  • sgd 사용
model.compile(optimizer='sgd' ,loss='sparse_categorical_crossentropy', metrics='accuracy')

model.fit(train_scaled, train_target, epochs=5)
model.evaluate(val_scaled, val_target)

  • adam 사용
model.compile(optimizer='adam' ,loss='sparse_categorical_crossentropy', metrics='accuracy')

model.fit(train_scaled, train_target, epochs=5)
model.evaluate(val_scaled, val_target)



🔗 혼공 MLDL-18

0개의 댓글