목차
3층 신경망이란
3층 신경망은 다층 퍼셉트론(MLP)이라고도 하며 입력 계층, 하나 이상의 숨겨진 계층 및 출력 계층의 3개 계층으로 구성된 일종의 인공 신경망입니다.
입력 레이어는 입력 데이터를 수신한 다음 숨겨진 레이어에서 처리합니다. 입력 레이어의 뉴런 수는 입력 데이터의 피처 수에 해당하며 숨겨진 레이어의 뉴런 수는 모델의 성능을 최적화하기 위해 조정될 수 있습니다. 활성화 함수는 숨겨진 레이어의 각 뉴런 출력에 적용되어 네트워크에 비선형성을 도입하는 데 도움이 됩니다.
출력 계층은 처리된 입력 데이터를 기반으로 최종 예측 또는 분류를 생성합니다. 출력 계층의 뉴런 수는 모델이 예측하려는 클래스 또는 출력의 수에 해당합니다. 출력 레이어에서 사용되는 활성화 함수는 태스크의 종류에 따라 달라지는데, 예를 들어 이진 분류에는 시그모이드 함수가 사용되고 다중 클래스 분류에는 소프트맥스 함수가 사용됩니다.
이 3계층 아키텍처는 예측 출력과 실제 출력 사이의 오류를 기반으로 네트워크의 가중치를 조정하는 역전파와 같은 지도 학습 방법을 사용하여 훈련할 수 있습니다. 네트워크는 오류가 최소화되거나 만족스러운 수준에 도달할 때까지 훈련됩니다.
이 아키텍처는 이미지 인식, 자연어 처리 및 음성 인식과 같은 광범위한 작업에 유용합니다.
3층 신경망 구현
다음은 인기 있는 라이브러리인 Keras를 사용하여 Python으로 구현된 3계층 신경망의 예입니다.
from keras.models import Sequential
from keras.layers import Dense
# create model
model = Sequential()
model.add(Dense(10, input_dim=8, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
# compile model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# fit model
model.fit(X, y, epochs=10, batch_size=32)
이 예에서 입력 차원은 8이고 첫 번째 숨겨진 계층에는 10개의 뉴런이 포함됩니다. 첫 번째 숨겨진 계층에서 사용되는 활성화 함수는 ReLU이고 출력 계층에서는 시그모이드입니다. 사용된 옵티마이저는 Adam이고 손실 함수는 이진 교차 엔트로피입니다. 이 모델은 배치 크기 32를 사용하여 10 epoch 동안 학습됩니다.
더 보기