아래의 대화형 연습을 통해 신경망의 작동 원리를 더 자세히 살펴보겠습니다. 먼저, 매개변수와 하이퍼파라미터의 변화가 신경망의 예측에 어떤 영향을 미치는지 확인합니다. 그런 다음, 학습한 내용을 바탕으로 비선형 데이터에 적합한 신경망을 훈련시켜 봅니다.
연습문제 1
다음 위젯은 다음과 같은 구성으로 신경망을 설정합니다.
- 입력 레이어는
0.00 , 0.00 , 0.00 값을 포함하는 3개의 뉴런으로 구성됩니다. - 은닉층은 뉴런 4개로 구성됩니다.
- 뉴런 1개를 가진 출력층
- ReLU 활성화 함수가 모든 은닉층 노드와 출력 노드에 적용됩니다.
네트워크 초기 설정을 검토하십시오(참고: 아직 ▶️ 또는 >| 버튼을 클릭 하지 마십시오 ). 그런 다음 위젯 아래의 작업을 완료하십시오.
과제 1
신경망 모델의 세 가지 입력 특징 값은 모두 0.00 입니다. 네트워크의 각 노드를 클릭하여 모든 초기화 값을 확인하세요. 재생( ▶️ ) 버튼을 누르기 전에 다음 질문에 답하세요.
어떤 결과값이 나올 거라고 생각하시나요? 양수, 음수, 아니면 0?
양수 출력값
양의 출력값을 선택하셨습니다. 아래 지침에 따라 입력 데이터에 대한 추론을 수행하고 선택이 맞는지 확인하십시오.
음의 출력값
음수 출력값을 선택하셨습니다. 아래 지침에 따라 입력 데이터에 대한 추론을 수행하고 선택이 맞는지 확인하십시오.
출력값 0
출력값으로 0을 선택하셨습니다. 아래 지침에 따라 입력 데이터에 대한 추론을 수행하고 선택이 맞는지 확인하십시오.
이제 네트워크 위에 있는 재생(▶️) 버튼을 클릭하고 은닉층과 출력 노드의 값이 모두 채워지는 것을 확인하세요. 위에서 내린 답이 맞았나요?
설명을 보려면 여기를 클릭하세요.
출력값은 가중치와 편향 매개변수가 무작위로 초기화되는 방식에 따라 달라집니다. 하지만 입력층의 각 뉴런은 0의 값을 가지므로, 은닉층 노드 값을 계산하는 데 사용되는 가중치는 모두 0으로 설정됩니다. 예를 들어, 첫 번째 은닉층 노드 계산은 다음과 같습니다.
y = ReLU(w 11 * 0.00 + w 21 * 0.00 + w 31 * 0.00 + b)
y = ReLU(b)
따라서 각 은닉층 노드의 값은 바이어스(b)의 ReLU 값과 같아지며, b가 음수이면 0이고 b가 0이거나 양수이면 b 자체가 됩니다.
출력 노드의 값은 다음과 같이 계산됩니다.
y = ReLU(w 11 * x 11 + w 21 * x 21 + w 31 * x 31 + w 41 * x 41 + b)
과제 2
신경망을 수정하기 전에 다음 질문에 답하십시오.
첫 번째 은닉층 뒤에 새로운 은닉층을 추가하고, 이 새로운 은닉층에 3개의 노드를 부여할 때, 모든 입력과 가중치/편향 매개변수는 동일하게 유지한다면, 다른 노드들의 계산에 어떤 영향을 미칠까요?
입력 노드를 제외한 네트워크의 모든 노드
입력 노드를 제외한 네트워크의 모든 노드를 선택하셨습니다. 아래 지침에 따라 신경망을 업데이트하고 선택이 맞는지 확인하세요.
첫 번째 은닉층의 노드만
첫 번째 은닉층의 노드만 선택하셨습니다. 아래 지침에 따라 신경망을 업데이트하고 결과가 맞는지 확인해 보세요.
출력 노드만
출력 노드만 선택하셨습니다. 아래 지침에 따라 신경망을 업데이트하고 결과가 맞는지 확인해 보세요.
이제 다음과 같이 노드 3개를 가진 새로운 은닉층을 추가하여 신경망을 수정하십시오.
- 텍스트 '1 hidden layer' 왼쪽에 있는 '+' 버튼을 클릭하여 출력 레이어 앞에 새 숨김 레이어를 추가합니다.
- 새로 생성된 숨겨진 레이어 위에 있는 + 버튼을 두 번 클릭하여 레이어에 노드를 두 개 더 추가합니다.
위의 답변이 맞습니까?
설명을 보려면 여기를 클릭하세요.
출력 노드만 변경됩니다. 이 신경망의 추론은 "피드포워드"(계산이 시작에서 끝으로 진행됨) 방식이기 때문에 네트워크에 새 레이어를 추가해도 새 레이어 이후의 노드에만 영향을 미치고 이전 노드에는 영향을 미치지 않습니다.
과제 3
네트워크 그래프의 첫 번째 은닉 계층에서 위에서 두 번째 노드를 클릭합니다. 네트워크 구성을 변경하기 전에 다음 질문에 답하십시오.
첫 번째 입력 노드 x 1 아래에 표시되는 가중치 w 12 의 값을 변경하면 특정 입력 값에 대해 다른 노드의 계산에 어떤 영향을 미칠 수 있습니까 ?
없음
'없음'을 선택하셨습니다. 아래 지침에 따라 신경망을 업데이트하고 정답인지 확인해 보세요.
첫 번째 은닉층의 두 번째 노드, 두 번째 은닉층의 모든 노드, 그리고 출력 노드.
첫 번째 은닉층의 두 번째 노드, 두 번째 은닉층의 모든 노드, 그리고 출력 노드를 선택하셨습니다. 아래 지침에 따라 신경망을 업데이트하고 선택이 맞는지 확인해 보세요.
첫 번째 은닉층, 두 번째 은닉층 및 출력층의 모든 노드.
첫 번째 은닉층, 두 번째 은닉층, 그리고 출력층의 모든 노드를 선택하셨습니다. 아래 지침에 따라 신경망을 업데이트하고 선택이 맞는지 확인해 보세요.
이제 첫 번째 입력 노드인 x 1 아래에 표시된 가중치 w 12 텍스트 필드를 클릭하고 값을 5.00 으로 변경한 다음 Enter 키를 누르세요. 그래프의 변화를 확인하세요.
당신의 답이 맞았나요? 답을 검증할 때 주의하세요. 노드 값이 변하지 않았다고 해서 기본 계산도 변하지 않았다는 뜻은 아닙니다.
설명을 보려면 여기를 클릭하세요.
첫 번째 은닉층에서 영향을 받는 노드는 두 번째 노드(사용자가 클릭한 노드)뿐입니다. 첫 번째 은닉층의 다른 노드 값 계산에는 w12가 매개변수로 포함되지 않으므로 영향을 받지 않습니다. 두 번째 은닉층의 모든 노드는 첫 번째 은닉층의 두 번째 노드 값에 따라 계산되므로 영향을 받습니다. 마찬가지로 출력 노드 값도 두 번째 은닉층의 노드 값에 따라 계산되므로 영향을 받습니다.
가중치 값을 변경했을 때 네트워크의 노드 값이 전혀 변하지 않았기 때문에 답이 "없음"이라고 생각하셨나요? 노드의 값은 바뀌지 않더라도 노드에 대한 기본 계산 방식은 바뀔 수 있다는 점에 유의하세요(예: ReLU(0)과 ReLU(–5)는 모두 0의 출력을 생성합니다). 노드 값만 보고 네트워크에 어떤 영향을 미쳤는지 추측하지 말고, 계산 방식도 함께 검토해야 합니다.
연습문제 2
범주형 데이터 모듈 의 특징 교차 연습 에서 여러분은 비선형 데이터에 맞추기 위해 특징 교차를 수동으로 구성했습니다. 이제 훈련 중에 비선형 데이터에 맞추는 방법을 자동으로 학습할 수 있는 신경망을 구축해 보겠습니다.
여러분의 과제는 아래 그림에서 주황색 점과 파란색 점을 분리할 수 있는 신경망을 구성하는 것입니다 . 이때 훈련 데이터와 테스트 데이터 모두에서 손실 값이 0.2 미만이 되도록 해야 합니다.
지침:
아래의 인터랙티브 위젯에서:
- 다음 설정 중 일부를 실험해 보면서 신경망 하이퍼파라미터를 수정해 보세요.
- 네트워크 다이어그램에서 '숨겨진 레이어' 제목 왼쪽에 있는 '+' 및 '-' 버튼을 클릭하여 숨겨진 레이어를 추가하거나 제거할 수 있습니다.
- 숨겨진 레이어 열 위에 있는 + 및 - 버튼을 클릭하여 숨겨진 레이어에서 뉴런을 추가하거나 제거할 수 있습니다.
- 위의 그림에 있는 '학습률' 드롭다운 메뉴에서 새 값을 선택하여 학습률을 변경하세요.
- 위의 다이어그램에 있는 '활성화 ' 드롭다운 메뉴에서 새 값을 선택하여 활성화 기능을 변경하세요.
- 위의 다이어그램에 있는 재생(▶️) 버튼을 클릭하여 지정된 매개변수를 사용하여 신경망 모델을 학습시키세요.
- 학습이 진행됨에 따라 모델이 데이터에 얼마나 잘 맞는지를 시각화한 그래프와 출력 섹션에서 테스트 손실 및 훈련 손실 값을 확인하세요.
- 모델의 손실률이 테스트 데이터와 훈련 데이터 모두에서 0.2 미만으로 떨어지지 않으면, 재설정을 클릭하고 다른 설정으로 1~3단계를 반복하십시오. 원하는 결과가 나올 때까지 이 과정을 반복하십시오.
여기를 클릭하시면 저희 솔루션을 확인하실 수 있습니다.
다음과 같은 방법으로 테스트 손실률과 훈련 손실률을 모두 0.2 미만으로 낮출 수 있었습니다.
- 뉴런 3개를 포함하는 은닉층을 하나 추가합니다.
- 학습률을 0.01로 선택합니다.
- ReLU 활성화 함수 선택하기.