머신러닝야학-Tensorflow (python) 핵심요약-4

신경망의 완성: 히든레이어

히든레이어의 구성

퍼셉트론을 깊게 연결한 딥러닝 신경망을 만드는 방법? 히든레이어!
기존의 퍼셉트론을 여러개 연결하여, 층(Layer)을 늘려 연결해준다.

예제에선 총 506개의 관측치를 인풋레이어의 13개 노드에 담고, 이를 히든레이어의 총 5개의 노드로 연결 시켰다.
그리고 히든레이어의 5개의 관측치를 softmax로 분류하여 최종 output layer의 1개 값을 예측하는 모델인 것이다.
즉, 노드들의 가중치를 분석할 때, 활성화함수를 여러개 사용함으로써, Accuracy를 올리고, Loss를 줄일 수 있다.

Swish 활성화 함수를 통해 히든 레이어

Swish 활성화함수

Swish ? 최근에 발표된 성능이 좋은 활성화함수 중 하나.
특징 : ReLU를 대체하기 위해 구글이 고안한 함수. 시그모이드 함수에 X를 곱한 아주 간단한 형태를 보이지만, 깊은 레이어를 학습시킬 때 ReLU보다 더 뛰어난 성능을 보임.

최종 예제 코드

1
2
3
4
5
6
7
8
9
X = tf.keras.layers.Input(shape=[4])
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)
# 이런 식으로 Layer를 더욱 층층이 쌓으면 좀 더 똑똑한 모델이 된다.
model = tf.keras.models.Model(X, Y)
model.compile(loss='categorical_crossentropy',
metrics='accuracy')

출처


생활코딩 Deep Learning Tensorflow (python) 강의

https://opentutorials.org/course/4570

생활코딩의 딥러닝 교육컨텐츠는 CCL 라이선스 BY를 따르고 있습니다.

댓글