더북(TheBook)

(책에는 없지만) summary() 메서드의 출력에서 모델이 세 개의 층을 가진 것을 확인할 수 있습니다. 즉, 코드 3-1에 있는 모델보다 층이 한 개 더 많습니다. 또한, 파라미터 개수가 크게 늘었습니다. 두 개의 층을 가진 모델은 701개였는데, 3,251개로 늘었습니다. 두 번째 은닉층이 포함되었기 때문에 2,550개 가중치 파라미터가 추가되었습니다. 이 층의 커널 크기는 [50, 50]이고7 편향의 크기는 [50]입니다.

여러 번 모델 훈련을 반복하면 세 개의 층을 가진 네트워크의 최종 테스트 세트(즉, 평가) MSE는 대략 10.8~13.4 사이입니다. 이는 3,280~3,660달러 정도의 예측 오류에 해당합니다. 두 개의 층을 가진 네트워크의 경우(3,700~3,900달러)보다 낫습니다. 따라서 비선형 은닉층8을 추가하여 모델의 용량을 높임으로써 예측 정확도를 다시 향상시켰습니다.

 

비선형 함수를 사용하지 않고 층을 쌓는 실수 피하기

보스턴 주택 모델을 향상시키는 데 비선형 함수의 중요성을 확인하는 다른 방법은 모델에서 이 함수를 제거해 보는 것입니다. 코드 3-3은 시그모이드 활성화 함수를 설정한 라인을 주석 처리한 것만 빼고는 코드 3-1과 같습니다. 사용자 지정 활성화 함수를 제거하면 이 층은 기본 선형 활성화 함수를 사용합니다. 층의 개수와 가중치 파라미터를 포함해 모델의 다른 요소는 바꾸지 않습니다.

 

코드 3-3 비선형 활성화 함수가 없는 두 개의 층을 가진 신경망

export function multiLayerPerceptronRegressionModel1Hidden() {
  const model = tf.sequential();
  model.add(tf.layers.dense({
    inputShape: [bostonData.numFeatures],
    units: 50,
    // activation: 'sigmoid', ------ 비선형 활성화 함수 삭제
    kernelInitializer: 'leCunNormal'
  }));
  model.add(tf.layers.dense({units: 1}));

  model.summary();
  return model;
};
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.