(그림 3-3의 아래처럼) 비선형 활성화 함수가 네트워크의 용량을 높여 주므로 신경망에 은닉층을 더 추가하면 보스턴 주택 문제에 더 잘 맞는 모델을 얻을 수 있지 않을까요? index.js에 있는 multiLayerPerceptronRegressionModel2Hidden() 함수가 바로 그것입니다. 이 함수는 신경망 회귀 모델 훈련 (은닉층 두 개) 버튼에 연결되어 있습니다. (보스턴 주택 예제의 index.js에서 가져온) 다음 코드를 확인해 보죠.
코드 3-2 보스턴 주택 문제를 위해 세 개의 층을 가진 신경망 정의하기
export function multiLayerPerceptronRegressionModel2Hidden() {
const model = tf.sequential();
첫 번째 은닉층을 추가합니다.
model.add(tf.layers.dense({ inputShape: [bostonData.numFeatures], units: 50, activation: 'sigmoid', kernelInitializer: 'leCunNormal' }));
두 번째 은닉층을 추가합니다.
model.add(tf.layers.dense({ units: 50, activation: 'sigmoid', kernelInitializer: 'leCunNormal' }));/
model.add(tf.layers.dense({units: 1}));
model.summary(); ------ 모델 구조를 텍스트로 출력합니다.
return model;
};