6장부터는 신경망에 대한 내용을 다룬다.
인간의 뇌에서 뉴런이 서로 연결되는 과정을 모방하여 여러 층의 퍼셉트론을
연결시키고 복잡하게 조합하여 입력 값에 대한 판단을 하게 하는 것이 신경망의 원리이다.
앞에서 했던 회귀는 y = ax+b에서 a와 b를 찾는 과정이었다.
퍼셉트론도 같은 원리인데 용어를 정리해보자면, y=wx+b로 표현을 하고
w는 가중치(weight), b는 바이어스(bias)라고 한다.
입력값 x와 w의 곱을 모두 더하고 b를 더한 값을 가중합이라고 부른다.
이 가중합을 이용해 결과를 판단하는데, 이때 판단하는 함수를 활성화 함수(activation function)라고 한다.
앞에서 사용했던 시그모이드 함수는 0과 1을 판단하는 대표적인 activation function이다.
퍼셉트론도 앞에서 봤던 회귀처럼 결국에는 선을 긋는 과정이다.
선을 어디에 그어야 하는지를 rmse 등을 이용한 loss값으로 경사 하강법을 이용해 찾아가는 과정이었다.
하지만 퍼셉트론의 한계를 설명하는 대표적인 XOR문제가 있다.

and와 or의 경우에는 참 거짓을 명확하게 나누는 선을 그을 수 있지만, xor의 경우에는 불가능하다.
이런 간단한 문제조차 해결할 수 없었는데, 10년이 지나서야 이 문제가 해결된다.
이를 해결한 개념이 다층 퍼셉트론이다.
퍼셉트론은 입력층의 x값들을 이용해 바로 출력값을 냈다면, 다층 퍼셉트론은 입력층과 출력층 사이에 은닉층을 만든다.

x1,x2가 입력층이고, y가 출력층, 가운데의 n1,n2가 은닉층이다.


n1, n2, y는 이렇게 계산된다.

출력층의 결과값을 내기 위해서 우리는 6개의 가중치와 3개의 바이어스 값을 결정해줘야 한다.


xor 문제를 해결하는 가중치와 바이어스 값의 조합은 무한대로 있지만, 위는 하나의 예시이다.

다층 퍼셉트론으로 xor 문제를 해결하는 예시 코드이다.
회귀에서는 경사 하강법을 통해 가중치를 구했다.
다층 퍼셉트론으로 구성된 신경망에서는 오차 역전파 방법을 통해 가중치를 구한다.
오차 역전파도 경사 하강법과 같은 원리이다.
경사 하강법에서는 하나의 가중치만 갱신하면 됐지만 신경망에서는 출력층에서 시작해 입력층과 은닉층 사이의 가중치로
역으로 가중치를 수정한다.

가중치 업데이트 자체는 경사 하강법과 동일하게 미분값이 0이 되는 방향으로 업데이트한다.
가중치에 대한 기울기를 빼는 작업을 반복하며 가중치를 수정한다.

오차 역전파 과정을 간단하게 나타낸 그림이다.
'인공지능' 카테고리의 다른 글
모두의 딥러닝 - 11장(데이터 다루기) (0) | 2025.03.18 |
---|---|
모두의 딥러닝 - 10장(모델 설계하기) (0) | 2025.03.17 |
모두의 딥러닝 - 5장(로지스틱 회귀) (0) | 2025.03.05 |
모두의 딥러닝 - 4장(경사 하강법) (0) | 2025.03.04 |
모두의 딥러닝 - 3장(선형 회귀) (0) | 2025.03.03 |