728x90
뉴런 VS 퍼셉트론
가중치 가중합 바이어스 활성화 함수
가중치 w(weight) = 기울기 a
바이어스 b(bias) = y 절편 b
가중합(weighted sum) y = wx + b
가중합의 결과를 1 or 0으로 출력해서 다음으로 보낸다.
0, 1을 판단하는 함수를 활성화함수(activation function)이라고하며, 시그모이드 함수가 대표적인 활성화 함수이다.
XOR 문제
퍼셉트론의 한계(2차원의 한계)
퍼셉트론으로는 단순히 선을 그려도 하나의 직선으로 흰점/검은점 구분할 수 없음.
다층 퍼셉트론 = 2차원 한계 해결
종이를 휘어서 선 2개로 흰색/검은색 구분이 가능 → 2차원이 아닌 3차원으로 해결
숨어있는 은닉층(hidden layer)를 만들어 해결
다층 퍼셉트론
x = 퍼셉티콘
n(node) = 은닉층(은닉층이 모이는 중앙 정거장)
y(out) = 출력층
퍼셉트콘 x1, x2 함수
# 퍼셉트콘 함수
def MLP(x, w, b):
y = np.sum(w * x) + b
if y <= 0:
return 0
else:
return 1
node1, node2 은닉층 가중치 계산 코드
def NAND(x1, x2):
return MLP(np.array([x1, x2]), w11, b1)
# OR 게이트
def OR(x1, x2):
return MLP(np.array([x1, x2]), w12, b2)
# AND 게이트
def AND(x1, x2):
return MLP(np.array([x1, x2]), w2, b3)
# XOR 게이트
def XOR(x1, x2):
return AND(NAND(x1, x2), OR(x1, x2))
출력층 Y(out) 최종값 계산 : 퍼셉티콘 x1, x2 값을 번갈아 대입하여 최종값을 도출
if __name__ == "__main__":
for x in [(0,0), (1,0), (0,1), (1,1)]:
y = XOR(x[0], x[1])
print("입력 값:" + str(x) + "출력값 : " + str(y))
반응형
'머신러닝딥러닝 > 딥러닝' 카테고리의 다른 글
딥러닝(Deep learning) #8 모델 설계 keras (0) | 2022.04.13 |
---|---|
딥러닝(Deeping Learning) #7 - 오차 역전파/신경망 (0) | 2022.04.12 |
딥러닝(deeplearning) #5 - 다항 로지스틱 회귀(Multi_Logistic_Regression) (0) | 2022.04.12 |
딥러닝(deeplearning) #4 - 로지스틱 회귀(logistic regression) (0) | 2022.04.12 |
딥러닝(deeplearning) #3 - 경사하강법 (0) | 2022.04.11 |
댓글