XOR 문제를 해결하기 위해서 퍼셉트론 2개를 한번에 계산하는 은닉층을 만듭니다.
x1과 x2를 두 연산으로 각각 보내고 x1과 x2를 각각 NAND와 OR연산을 동시에 진행합니다. 그 후 결과를 AND 처리하면 우리가 구하고자 하는 출력 값을 만들 수 있습니다.
은닉층 : 입력층과 출력층 사이에 숨어 있는 은닉층
입력층의 x들 ( x1, x2, x3...) 각 값에 가중치 (w)를 곱하고 바이어스(b)를 더해 은닉층으로 전송합니다.
노드: 값들이 모이는 은닉층의 중간 정거장을 노드라고 합니다. 가운데 은닉층의 동그라미 n1, n2, n3라고 합시다.
은닉층에 취합된 값들은 활성화 함수를 통해 다음으로 보내는 데, 앞서 배운 시그모이드 함수를 활성화 함수로 사용해서
아래의 식으로 나타내고 Yout 활성화 함수(시그모이드 함수)를 사용해서 y의 예측값을 결정하게 됩니다.
각각의 가중치(w)와 바이어스(b)값을 정할 차례 -> 2차원 배열을 사용한다.
은닉층을 포함해 가중치 여섯개와 바이어스 3개가 필요합니다.
우리에게 필요한 가중치와 바이어스
입력층에서 은닉층으로 보내기 위해 바이어스와 가중치가 필요하고 은닉층에서 결과층으로 보내기 위해 가중치와 바이어스가 또 다시 필요했따.
이를 이용해 XOR문제를 해결해보자.
위의 사진은 예제이다.
여기에 x1과 x2를 각각 입력해 우리가 원하는 y값이 나오는지 점검해보자.
표에서 볼수 있듯이 우리가 원하는 결과를 구할수 있었다. 숨어있는 노드 (은닉층) 을 둔 다층 퍼셉트론을 이용해 XOR 문제가 해결된 것 입니다.
이렇게 다층 퍼셉트론을 사용하는 경우 XOR문제는 해결되었지만 은닉층에 들어있는 가중치를 데이터를 통해 학습하는 방법이 아직 없었습니다.
이렇게 문제를 해결하기까지 최적화된 예측선을 그려주는 아달라인을 발전시켜 SVM이나 로지스틱 회귀 모델은 만든 그룹
또 하나는 다층 퍼셉트론의 학습 방법을 찾는 그룹으로 나뉘었다 -.
제프리 힌튼은 오차 역전파라는 것을 이용해 다층 퍼셉트론을 진화 시켰다고 한다.