codingeverybody / codingyahac

https://coding.yah.ac
291 stars 50 forks source link

액티베이션 함수 설정 문의 #1135

Open Sup90 opened 3 years ago

Sup90 commented 3 years ago

안녕하세요 강의 잘 듣고 있습니다. 데이터 과학의 Tensorflow (python) 듣는 도중 네번째 딥러닝 - 신경망의 완성:히든레이어 강의에서

H = tf.keras.layers.Dense(8, activation="swish")(X) H = tf.keras.layers.Dense(8, activation="swish")(H) H = tf.keras.layers.Dense(8, activation="swish")(H) Y = tf.keras.layers.Dense(3, activation='softmax')(H)

위 부분에서 예측할때랑 히든레이어 만들때랑 다른 activation함수를 써야하나요??

paullabkorea commented 3 years ago

지금 사용하신 것이 히든레이어를 3개 둔 것입니다.

아마도 위에 X가 생략되어 있는 듯 하고요.

맨 마지막만 수정해주시면 됩니다.

아래와 같은 형식으로 사용합니다.

import tensorflow as tf

#모델 준비
X = tf.keras.layers.Input(shape=[2]) # 독립변수의 col
H = tf.keras.layers.Dense(5, activation='swish')(X) # 노드의 수는 천천히 늘려감! (2 ~ 5)
H = tf.keras.layers.Dense(5, activation='swish')(H) # 천천히 늘려감! (2 ~ 5)
H = tf.keras.layers.Dense(5, activation='swish')(H) # 천천히 늘려감! (2 ~ 5)
H = tf.keras.layers.Dense(5, activation='swish')(H) # 천천히 늘려감! (2 ~ 5)
H = tf.keras.layers.Dense(5, activation='swish')(H) # 천천히 늘려감! (2 ~ 5)
Y = tf.keras.layers.Dense(1)(H) # 종속변수의 col
model = tf.keras.models.Model(X, Y)
model.compile(loss='mse') # MSE(Mean squared error)
RayleighKim commented 3 years ago

히든레이어안의 activation 함수와, 아웃풋레이어 ( '예측할 때' 라고 언급하신 부분으로 추측중입니다.)안의 activation 함수는 그 역할이 다른 경우가 흔합니다.

역할이 다르다면, 그 역할에 적절한 activation을 골라서 사용해야 하지요.

softmax 는 일반적으로, 여러 클래스를 분류하는 모델의 아웃풋레이어에 사용하기 적합합니다.