지난시간에 찾아낸 XOR 연산의 신경망은 아래와 같습니다.
오늘은 위 신경망을 수식으로 표현해봅시다. 수식으로 표현하기 위해 위 신경망을 아래와 같이 변형하였습니다.
용어 설명을 먼저 하겠습니다. $w_{01}^{1}$에서 위첩자는 신호가 나가는 층 번호입니다. 아래첨자의 첫번째 숫자는 신호가 나가는 층의 퍼셉트론 번호이고, 두번째 숫자는 신호를 받는 층의 퍼셉트론 번호입니다. bias 는 0번으로 하였습니다. g는 활성화함수이고, y는 활성화 함수로 계산된 결과입니다.
순서대로 계산해봅시다. 먼저 $z_{1}$과 $z_{2}$가 계산됩니다.
$z_{1}=w_{01}^{1}+w_{11}^{1}x_{1}+w_{21}^{1}x_{2}$
$z_{2}=w_{02}^{1}+w_{12}^{1}x_{1}+w_{22}^{1}x_{2}$
활성화 함수 $g_{1}$과 $g_{2}$에 의해 $y_{1}$과 $y_{2}$가 계산됩니다. $y_{1}$과 $y_{2}$d에 활성함수 $g_{3}$를 적용하여 $\hat{y}$를 구합니다.
$\hat{y}=g_{3}(w^{2}_{01}+w^{2}_{11}y_{1}+w^{2}_{21}y_{2})$
이제 weight 들을 구해야 하는데요. AND 신경망과 OR신경망의 weight 을 구해놓았기 때문에 위 예제의 weight 은 쉽게 구할 수 있습니다.
하지만 신경망이 더 복잡해지면, 그래프를 그려가며 수동으로 weight를 찾는 것은 불가능합니다. 자동으로 weight 를 찾아줄 최적화 알고리즘이 필요합니다.
최적화 알고리즘을 적용하려면 먼저 목적함수가 있어야 합니다. 목적함수를 최대화 또는 최소화하는 방식으로 최적화 알고리즘이 작동합니다.
다음 시간에는 간단한 AND 신경망을 이용하여 목적함수를 만들어봅시다.
'머신러닝 이론 (딥러닝) > 손으로 푸는 딥너링(지움)' 카테고리의 다른 글
[손으로 푸는 딥러닝] 5. XOR 연산 신경망으로 구현하기 (0) | 2023.10.16 |
---|---|
[손으로 푸는 딥러닝] 4. 단층퍼셉트론의 수학적 이해 (0) | 2023.10.12 |
[손으로 푸는 딥러닝] 3. OR 연산 신경망으로 구현하기 (0) | 2023.10.10 |
[손으로 푸는 딥러닝] 2. AND 연산 신경망으로 구현하기 (0) | 2023.09.14 |
댓글