Pytorch로 시작하는 딥러닝 입문(06-03. XOR 문제: 단층 퍼셉트론 구현하기 )

2024. 3. 10. 14:26딥러닝 모델: 파이토치

파이토치를 사용해서 단층 퍼셉트론을 구현하여 XOR 문제를 풀어보자

*XOR 문제(https://wikidocs.net/60680,  입력값 두 개가 서로 다른 값을 갖고 있을 때만 출력값이 1이 되고, 입력값 두 개가 서로 같은 같을 가지면 출력값이 0이 되는 게이트. 곡선을 이용하여 영역 분리를 할 수 있음)

♣ 파이토치로 단층 퍼셉트론 구현하기

도구 import하기(GPU 연산 설정)

 

입력과 출력 정의하기

 

1개의 뉴런을 가지는 단층 퍼셉트론 구현하기

앞에서 배운 활성화 함수인 시그모이드 함수를 사용해보자.

 

0 또는 1을 예측하는 이진 분류 문제이므로 비용함수로는 크로스엔트로피 함수를 사용한다. 

nn.BCELoss( )는 이진 분류에서 사용하는 크로스엔트로피 함수이다. 

 

비용이 제대로 줄어들지 않는다는 것을 알 수 있다. 단층 퍼셉트론은 XOR 문제를 풀 수 없기 때문이다. 

 

♣ 학습된 단층 퍼셉트론의 예측값 확인하기

 

실제값은 0, 1, 1, 0 인데 예측값은 0, 0, 0, 0으로 문제를 풀지 못한다는 것을 확인할 수 있다.