[인공지능] Pytorch로 MLP 구현하기(이론)

뽕칠이·2024년 7월 8일

MLP

MLP는 입력층, 은닉층, 출력층으로 구성된다. 모든 계층은 선형 계층으로 이루어진다.

역전파

순전파는 입력층 -> 은닉층 -> 출력층 방향으로 이동하면서 각 입력에 대한 가중치와 곱하고, 합하여 다음 계층의 시그모이드 함수에 입력값이 된다.

역전파는 출력층 -> 은닉층 -> 입력층 방향으로 이동하면서 가중치를 업데이트한다. 가중치는 경사하강법을 통해 오차가 최소화되는 방향으로 업데이트하고, 미분의 연쇄법칙을 통해 값을 계산한다.

MLP 예시

model = nn.Sequential(
          nn.Linear(2, 10, bias=True), # input_layer = 2, hidden_layer1 = 10
          nn.Sigmoid(),
          nn.Linear(10, 10, bias=True), # hidden_layer1 = 10, hidden_layer2 = 10
          nn.Sigmoid(),
          nn.Linear(10, 10, bias=True), # hidden_layer2 = 10, hidden_layer3 = 10
          nn.Sigmoid(),
          nn.Linear(10, 1, bias=True), # hidden_layer3 = 10, output_layer = 1
          nn.Sigmoid()
          )
          
criterion = torch.nn.BCELoss().to(device)
optimizer = torch.optim.SGD(model.parameters(), lr=1)

경사하강법을 사용하므로 역전파를 사용하는 MLP 모델이다.

0개의 댓글