Á¤¼ºÈÆ
    xor
xor.py [2 KB]   xor.png [15 KB]  




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# ´º·ÐÀÇ Ãâ·Â °è»ê ÇÔ¼ö
def calculate(input):
    global weights
    global bias
    activation = bias        # ¹ÙÀ̾
    for i in range(2):        # ÀԷ½ÅÈ£ ÃÑÇÕ °è»ê
        activation += weights[i] * input[i]
    if activation >= 0.0:    # ½ºÅÜ È°¼ºÈ­ ÇÔ¼ö
        return 1.0 
    else:
        return 0.0
 
# ÇнÀ ¾Ë°í¸®Áò
def train_weights(X, y, l_rate, n_epoch):
    global weights
    global bias
    for epoch in range(n_epoch):        # ¿¡Æ÷Å© ¹Ýº¹
        sum_error = 0.0
        for row, target in zip(X, y):        # µ¥ÀÌÅͼÂÀ» ¹Ýº¹
            actual = calculate(row)        # ½ÇÁ¦ Ãâ·Â °è»ê
            error = target - actual        # ½ÇÁ¦ Ãâ·Â °è»ê
            bias = bias + l_rate * error    
            sum_error += error**2        # ¿À·ùÀÇ Á¦°ö °è»ê
            for i in range(2):            # °¡ÁßÄ¡ º¯°æ
                weights[i] = weights[i] + l_rate * error * row[i]
            print(weights, bias)
        print('¿¡Æ÷Å© ¹øÈ£=%d, ÇнÀ·ü=%.3f, ¿À·ù=%.3f' % (epoch, l_rate, sum_error))
    return weights
 
# XOR ¿¬»ê ÇнÀ µ¥ÀÌÅͼÂ
# »ùÇðú ·¹À̺íÀÌ´Ù. 
= [[0,0],[0,1],[1,0],[1,1]]
= [0110]
 
weights = [0.00.0]
bias = 0.0
 
l_rate = 0.1        # ÇнÀ·ü    
n_epoch = 100        # ¿¡Æ÷Å© È½¼ö
weights = train_weights(X, y, l_rate, n_epoch)
print(weights, bias)
cs

  µî·ÏÀÏ : 2020-08-02 [02:58] Á¶È¸ : 227 ´Ù¿î : 183   
 
¡â ÀÌÀü±Û(12Àå) ½Å°æ¸Á I(ÆÛ¼ÁÆ®·Ð)
¡ä ´ÙÀ½±Ûperceptron2
ÀΰøÁö´É ½Ç½À
¹øÈ£ ¨Ï Á¦ ¸ñ À̸§
ÀΰøÁö´É (õÀα¹ Àú) ÄÚµå
¨ÕÆÄÀÌÅäÄ¡ ù°ÉÀ½ (ÃÖ°ÇÈ£ Àú) ÄÚµå
34 ÀΰøÁö´É (õÀα¹ Àú) ÄÚµå Á¤¼ºÈÆ
33 ¦¦❶ (15Àå) ½Å°æ¸Á IV(ÄÁº¼·ç¼Ç ½Å°æ¸Á) Á¤¼ºÈÆ
32    ¦¦❷ ¨Õfashion2 Á¤¼ºÈÆ
31    ¦¦❷ ¨Õfashion1 Á¤¼ºÈÆ
30 ¦¦❶ (14Àå) ½Å°æ¸Á III(µö·¯´×) Á¤¼ºÈÆ
29    ¦¦❷ ¨ÕMNIST Á¤¼ºÈÆ
28 ¦¦❶ (13Àå) ½Å°æ¸Á II(MLP) Á¤¼ºÈÆ
27    ¦¦❷ lab1(MNIST) Á¤¼ºÈÆ
26    ¦¦❷ ¨Õkeras_ex2 Á¤¼ºÈÆ
25    ¦¦❷ ¨Õkeras_ex1 Á¤¼ºÈÆ
24    ¦¦❷ mlp Á¤¼ºÈÆ
23    ¦¦❷ ¨Õgrad_descent Á¤¼ºÈÆ
22 ¦¦❶ (12Àå) ½Å°æ¸Á I(ÆÛ¼ÁÆ®·Ð) Á¤¼ºÈÆ
21    ¦¦❷ xor Á¤¼ºÈÆ
20    ¦¦❷ perceptron2 Á¤¼ºÈÆ

[1][2][3][4][5][6]