줘이리의 인생적기

[tensorflow 06] OR 연산 뉴런 본문

공부/tensorflow

[tensorflow 06] OR 연산 뉴런

줘이리 2021. 4. 8. 22:00
728x90

AND 연산에 이어 OR 연산 뉴런을 만들어 보겠습니다.

 

OR 연산 진리표

 

정수 입력 OR 연산 진리표

 

뉴런 계산식도 AND 연산과 동일합니다.

 

AND 연산과 다른점은 출력 y가 바뀌었죠.

 

import tensorflow as tf
import math
import numpy as np

def sigmoid(x):
    return 1 / (1 + math.exp(-x))

x = np.array([[1,1], [1,0], [0,1], [0,0]])
y = np.array([[1], [1], [1], [0]]) # 참 참 참 거짓
w = tf.random.normal([2], 0, 1)
b = tf.random.normal([1], 0, 1)

for i in range(2000):
    error_sum = 0

    for j in range(4):
        output = sigmoid(np.sum(x[j]*w)+ 1*b)
        error = y[j][0] - output
        w = w + x[j] * 0.1 * error
        b = b + 1 * 0.1 * error

        error_sum += error

    if i % 100 == 99:
        print(i, "error_sum = ", error_sum)

결과

 

error의 합이 점점 줄어드는 것을 확인할 수 있습니다.