딥러닝
퍼셉트론: 뇌를 구성하는 신경 세포 뉴련의 동작과 유사하다.
뇌에서 뉴런은 신경물질을 전달한다. 이를 유사하게 구현한게 퍼셉트론이다.
입력값과 가중치의 값을 곱하여, 그 값을 1과 0으로 구분하는 것이다.
가중치가 높으면 높을 수 록 그 정보는 중요하다는 뜻이다.
바이어스 또한 더하고, 시그모이드나 소프트맥스 함수로, 활성화함수를 통해 출력을 해준다.
컴퓨터는 두 개의 값 0과 1을 입력해 하나의 값을 출력하는 회로가 모여 만들어지는데, 이 회로를 게이트(gate)라고 부릅니다. 초기 형태의 인공 신경망인 단층 퍼셉트론은 간단한 XOR 게이트조차도 구현할 수 없는 부족한 인공 신경망이라는 지적을 받았다.
def AND_gate(x1, x2):
w1 = 0.5
w2 = 0.5
b = -0.7
result = x1*w1 + x2*w2 + b
if result <= 0:
return 0
else:
return 1
def OR_gate(x1, x2):
w1 = 0.6
w2 = 0.6
b = -0.5
result = x1*w1 + x2*w2 + b
if result <= 0:
return 0
else:
return 1
def NAND_gate(x1, x2):
w1 = -0.5
w2 = -0.5
b = 0.7
result = x1*w1 + x2*w2 + b
if result <= 0:
return 0
else:
return 1
위에를 보면 단일 퍼셉트론으로 가중치와 바이어스를 조절하여 AND OR NAND를 모두 구현할 수 있지만, 아무리 가중치와 바이어스를 조절해도 XOR 게이트는 구현할 수 없다는 것을 알 수 있다.
이 부분을 해결하기위해 다중퍼셉트론이 등장했다.
입력층과 출력층 사이에 은닉층을 두는 것이다.
은닉층에 NAND와 OR을 구현해 놓으면, XOR 게이트를 만들 수 있다는 것이다.
입력*가중+B를 활성화함수로 거치고, 그것을 다시 가중치랑 곱하여 활성화함수를 거치는것. 이것을 순전파라고한다.
하지만 우리는 loss를 구해야한다. 손실함수를 통해 loss를 구해야하는데, 순전파를 하다보면 전에 값을 구해야한다.
이를 역전파를 통해 해결하는 것이다.
다음과 같은 방법으로 체이닝 기법을 사용하면, 미분의 값, 즉 역전파를 알 수 있다.
위에서는 다음과 같이 시그모이드 함수를 사용했으니, 시그모이드함수를 미분해서 구하는 것을 보여주겠다.
'부트캠프 > 구름ICT AI' 카테고리의 다른 글
태태개발일지 - 다중선형회귀, 로지스틱회귀 (0) | 2025.06.09 |
---|---|
태태개발일지 - 구름톤 선형회귀 (0) | 2025.06.04 |
태태개발일지 - 구름톤 Numpy (0) | 2025.05.29 |
태태코딩 - 구름톤 ICT AI과정 Python 기초 및 아나콘다 설치 (0) | 2025.05.27 |