퍼셉트론 선형분류기
- 사람의 신경계가 '뉴런-신경망-지능'을 이루듯이, 딥러닝에서도 '퍼셉트론-인공신경망-인공지능'을 이룬다.
'AND gate, OR gate, NAND gate, NOR gate'는 선형 분류기로 구현 가능하다.
이를 선형 분류를 위하여 퍼셉트론 하나를 사용했다고 하여 '단층 퍼셉트론'이라고 한다.
[1] AND Gate: C = activation(1*A + 1*B - 1.5)
[2] OR gate : C = activation(1*A + 1*B - 0.4)
[3] NAND gate : C = activation(-1*A - 1*B + 1.3)
[4] NOR gate : C = activation(-1*A - 1*B + 0.8)
이를 통해 0,1 데이터를 계산하던 논리 회로에서 확장하여 선형 분류기로서 데이터를 분류할 수 있게 되었다.
def AND_gate(x1, x2):
x = np.array([x1, x2])
weight = np.array([0.5,0.5])
bias = -0.7
y = np.matmul(x, weight) + bias
return Step_Function(y)
def OR_gate(x1, x2):
x = np.array([x1, x2])
weight = np.array([0.5,0.5])
bias = -0.3
y = np.matmul(x, weight) + bias
return Step_Function(y)
def Step_Function(y):
return 1 if y>=0 else 0
위는 ANDgate와 ORgate를 구현한 파이썬 코드이다.
위의 함수에 np.array(([0,0], [0,1], [1,0], [1,1]))를 사용하여 input 데이터를 차례로 입력해주면 값이 출력된다.
마찬가지로 아래는 NANDgate와 NORgate를 구현한 파이썬 코드이다.
def NAND_gate(x1, x2):
x = np.array([x1,x2])
weight = np.array([-0.5,-0.5])
bias = 0.7
y = np.matmul(x, weight) + bias
return Step_Function(y)
def NOR_gate(x1, x2):
x = np.array([x1,x2])
weight = np.array([-0.5, -0.5])
bias = 0.3
y = np.matmul(x, weight) + bias
return Step_Function(y)
def Step_Function(y):
return 1 if y>=0 else 0
'딥러닝' 카테고리의 다른 글
비선형 데이터 분류(XORgate) (0) | 2024.11.20 |
---|---|
인공신경망과 퍼셉트론 (0) | 2024.11.18 |