비선형성을 학습하는 신경망을 구축하려면 다음과 같은 익숙한 모델 구조, 즉 $y' = b + w_1x_1 + w_2x_2 + w_3x_3$ 형태의 선형 모델 부터 시작하십시오.
이 방정식을 아래 그림과 같이 시각화할 수 있습니다. 여기서 $x_1$, $x_2$, $x_3$는 세 개의 입력 노드(파란색)이고, $y'$는 출력 노드(녹색)입니다.
연습문제 1
위 모델에서 가중치 와 편향 값은 무작위로 초기화되었습니다. 다음 작업을 수행하여 인터페이스에 익숙해지고 선형 모델을 살펴보세요. 활성화 함수 드롭다운 메뉴는 지금은 무시하셔도 됩니다. 이 주제는 모듈 후반부에서 다룰 예정입니다.
위의 네트워크에서 재생(▶️) 버튼을 클릭하여 입력값 $x_1 = 1.00$, $x_2 = 2.00$, $x_3 = 3.00$에 대한 출력 노드의 값을 계산합니다.
입력 레이어 의 두 번째 노드를 클릭하고 값을 2.00에서 2.50으로 증가시키세요. 출력 노드의 값이 변경되는 것을 확인할 수 있습니다. 출력 노드(녹색)를 선택하고 계산 패널을 확인하여 출력 값이 어떻게 계산되었는지 살펴보세요.
출력 노드(녹색)를 클릭하여 가중치($w_1$, $w_2$, $w_3$)와 편향($b$) 매개변수 값을 확인하세요. $w_3$의 가중치 값을 줄이세요(출력 노드 값과 아래 계산 결과가 변경되는 것을 다시 확인하세요). 그런 다음 편향 값을 늘리세요. 이러한 변경 사항이 모델 출력에 어떤 영향을 미쳤는지 검토하세요.
네트워크에 레이어 추가
연습문제 1 에서 네트워크의 가중치와 편향 값을 조정했을 때 입력과 출력 사이의 전체적인 수학적 관계는 변하지 않았다는 점에 유의하십시오. 우리 모델은 여전히 선형 모델입니다.
하지만 입력층과 출력층 사이에 또 다른 층을 추가하면 어떻게 될까요? 신경망 용어로 입력층과 출력층 사이에 있는 추가 층을 은닉층 이라고 하며, 이 층의 노드를 뉴런 이라고 합니다.
은닉층의 각 뉴런 값은 선형 모델의 출력과 동일한 방식으로 계산됩니다. 즉, 각 입력값(이전 네트워크 계층의 뉴런 값)과 고유한 가중치 매개변수의 곱을 더하고, 여기에 편향을 더합니다. 마찬가지로, 다음 계층(여기서는 출력 계층)의 뉴런 값은 은닉층의 뉴런 값을 입력으로 사용하여 계산됩니다.
이 새로운 은닉층은 모델이 다른 매개변수 세트를 사용하여 입력 데이터를 재조합할 수 있도록 합니다. 이것이 모델이 비선형 관계를 학습하는 데 도움이 될 수 있을까요?
연습문제 2
모델에 뉴런 4개를 포함하는 은닉층을 추가했습니다.
위의 네트워크에서 재생(▶️) 버튼을 클릭하여 입력값 $x_1 = 1.00$, $x_2 = 2.00$, $x_3 = 3.00$에 대한 4개의 은닉층 노드와 출력 노드의 값을 계산합니다.
다음으로 모델을 살펴보고, 이를 사용하여 다음 질문에 답하십시오.
모델 매개변수를 수정해 보고, 은닉층 노드 값과 출력 값에 미치는 영향을 관찰해 보세요(아래 계산 패널에서 이러한 값이 어떻게 계산되었는지 확인할 수 있습니다).
이 모델은 비선형성을 학습할 수 있나요?
숨겨진 레이어의 각 노드를 클릭하고 아래 계산을 살펴보면 모든 계산이 선형(곱셈과 덧셈 연산으로 구성됨)임을 알 수 있습니다.
그런 다음 출력 노드를 클릭하고 아래 계산을 검토하면 이 계산 또한 선형임을 알 수 있습니다. 선형 계산의 출력에 대해 수행되는 선형 계산 또한 선형이므로 이 모델은 비선형성을 학습할 수 없습니다.