피너클의 it공부방
AND, NAND, OR, XOR 퍼셉트론 구현 본문
AND와 NADN, OR 모두 같은 구조로 만들수있다.
안에있는 가중치와 편향만 다를 뿐이다.
가중치 : 입력 신호의 중요도
편향 : 활성화 정도를 조정하는 매개변수
AND는 위처럼 구현 가능하다.
w는 가중치 값이다. 0.5와 0.5, 이 두값은 각각 x1, x2에 곱해진다.
b는 편향이다. 입력신호에 가중치를 곱한 값에 더해줄것이다.
입력값이 1과 1이라면 1 * 0.5 + 1 * 0.5 - 0.5 = 0.5가 될것이다.
0.5는 0보다 크니 1을 반환하고 AND의 기능을 성공적으로 수행하게 된다.
나머지 1,0 0,1 0,0 은 모두 0 아니면 -0.5가 나와 0을 반환한다.
OR이다.
하나라도 1이면 1을 반환해야한다.
1,0 이 입력신호로 들어왔을때 1 * 0.5 + 0 * 0.5 - 0.2 = 0.3이니 0보다 커 1을 반환한다.
1,1 이 입력신호로 들어오면 당연히 0보다 크고
0,0 이 들어오면 -0.2이니 0을 반환한다.
NAND이다. AND에 NOT을 취한 형태로 둘다 1이면 0을 반환, 아니면 1을 반환한다.
위 처럼 가중치와 편향을 설정하면 된다.
XOR은 얘기가 달라진다.
지금까지는 모두 선형함수였다.
위와 같이 그래프가 있을때
AND그래프는 위처럼 그릴수있다.
1,1은 선형함수보다 위에 있으니 1을 반환하고 나머지는 0을 반환한다.
OR은 하나라도 1이면 1을 반환하고 나머지는 0을 반환한다.
NAND는 1,1 제외 모두 1을 반환한다.
하지만 XOR은 선형함수로는 할수가다.
두 입력신호가 다르면 1을 반환하는 위의 그래프는 하나의 선형함수로는 나타낼수없다.
그래서 XOR은 여러개의 퍼셉트론을 이용해야한다.
XOR이다.
0 1 0 1
0 0 1 1
위 처럼 입력신호가 들어오면 일단 OR과 NAND를 거쳐
0 1 0 1
0 0 1 1
---------
0 1 1 1
1 1 1 0
이렇게 나오고 이게 AND를 거치면
0 1 0 1
0 0 1 1
---------
0 1 1 1
1 1 1 0
---------
0 1 1 0
이렇게 나오게 된다.
0 1 0 1
0 0 1 1
---------
0 1 1 0
서로 다른 입력은 1이 나오고 같은 입력은 0이 나오게 된다.
'인공지능' 카테고리의 다른 글
신경망, 활성화 함수 (0) | 2025.06.11 |
---|