ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [AI] ํผ์…‰ํŠธ๋ก ๊ณผ ํผ์…‰ํŠธ๋ก ์˜ ๊ตฌํ˜„ / ํผ์…‰ํŠธ๋ก ์˜ ํ•œ๊ณ„ (๋ฐ‘๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๋”ฅ๋Ÿฌ๋‹)
    ๐Ÿ’ปProgramming/AI 2023. 12. 16. 17:30
    ๋ฐ˜์‘ํ˜•

    ๐Ÿ”— ํผ์…‰ํŠธ๋ก 

    • ๋‹ค์ˆ˜์˜ ์‹ ํ˜ธ๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์•„ ํ•˜๋‚˜์˜ ์‹ ํ˜ธ๋ฅผ ์ถœ๋ ฅ
    • ํผ์…‰ํŠธ๋ก ์˜ ์‹ ํ˜ธ๋Š” 'ํ๋ฅธ๋‹ค/์•ˆํ๋ฅธ๋‹ค(1/0)'์˜ ๋‘ ๊ฐ€์ง€ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

    ์ž…๋ ฅ์ด 2๊ฐœ์ธ ํผ์…‰ํŠธ๋ก 

    • ๊ทธ๋ฆผ์˜ ์›์„ ๋‰ด๋Ÿฐ ํ˜น์€ ๋…ธ๋“œ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
    • ์ž…๋ ฅ ์‹ ํ˜ธ๊ฐ€ ๋‰ด๋Ÿฐ์— ๋ณด๋‚ด์งˆ ๋•Œ, ๊ฐ๊ฐ ๊ณ ์œ ํ•œ ๊ฐ€์ค‘์น˜๊ฐ€ ๊ณฑํ•ด์ง„๋‹ค.
    • ๋‰ด๋Ÿฐ์—์„œ ๋ณด๋‚ด์˜จ ์‹ ํ˜ธ์˜ ์ดํ•ฉ์ด ํ•œ๊ณ„๋ฅผ ๋„˜์–ด์„ค ๋•Œ๋งŒ 1์„ ์ถœ๋ ฅ -> ์ด๋ฅผ '๋‰ด๋Ÿฐ์ด ํ™œ์„ฑํ™”ํ•œ๋‹ค'๋ผ๊ณ ๋„ ํ‘œํ˜„
    • ๊ทธ ํ•œ๊ณ„๋ฅผ ์ž„๊ณ„๊ฐ’์ด๋ผ๊ณ  ํ•˜๋ฉฐ ๊ธฐํ˜ธ๋กœ ์„ธํƒ€๋ผ๊ณ ๋„ ํ‘œํ˜„ํ•œ๋‹ค.

    ํผ์…‰ํŠธ๋ก ์˜ ์ˆ˜์‹ ํ‘œํ˜„

    ๐Ÿ”— ํผ์…‰ํŠธ๋ก ์˜ ๋…ผ๋ฆฌ ํšŒ๋กœ

    ๐Ÿ“ AND ๊ฒŒ์ดํŠธ

    • ์ž…๋ ฅ์ด ๋‘๊ฐœ์ด๊ณ  ์ถœ๋ ฅ์ด ํ•˜๋‚˜
    • ์•„๋ž˜์™€ ๊ฐ™์€ ์ž…๋ ฅ ์‹ ํ˜ธ์™€ ์ถœ๋ ฅ ์‹ ํ˜ธ์˜ ๋Œ€์‘ํ‘œ๋ฅผ ์ง„๋ฆฌํ‘œ๋ผ๊ณ  ํ•œ๋‹ค. 

    AND ๊ฒŒ์ดํŠธ์˜ ์ง„๋ฆฌํ‘œ

    • ๋‘ ์ž…๋ ฅ์ด ๋ชจ๋‘ 1์ผ ๋•Œ๋งŒ 1์„ ์ถœ๋ ฅํ•˜๊ณ , ๊ทธ ์ด์™ธ๋Š” 0์„ ์ถœ๋ ฅ

    โœจ AND ๊ฒŒ์ดํŠธ์˜ ๊ตฌํ˜„

    def AND(x1, x2):
    	w1, w2, theta = 0.5, 0.5, 0.7
        tmp = x1*w1 + x2*w2
        if tmp <= theta:
        	return 0
        elif tmp > theta:
        	return 1

    ๐Ÿ“ NAND ๊ฒŒ์ดํŠธ

    • AND ๊ฒŒ์ดํŠธ์˜ ์ถœ๋ ฅ์„ ๋’ค์ง‘์€ ๊ฒƒ๊ณผ ๊ฐ™๋‹ค.
    • ์ž…๋ ฅ์ด ๋ชจ๋‘ 1์ผ ๋•Œ๋งŒ 0์„ ์ถœ๋ ฅํ•˜๊ณ , ๊ทธ ์ด์™ธ์—๋Š” 1์„ ์ถœ๋ ฅ

    NAND ๊ฒŒ์ดํŠธ์˜ ์ง„๋ฆฌํ‘œ

    ๐Ÿ“ OR ๊ฒŒ์ดํŠธ

    • ์ž…๋ ฅ ์‹ ํ˜ธ ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์ด 1์ด๋ฉด 1์„ ์ถœ๋ ฅ

    OR ๊ฒŒ์ดํŠธ์˜ ์ง„๋ฆฌํ‘œ


    ๐Ÿ”— ๊ฐ€์ค‘์น˜์™€ ํŽธํ–ฅ ๋„์ž…

    • ์œ„์˜ ํผ์…‰ํŠธ๋ก ์˜ ์ˆ˜์‹ ํ‘œํ˜„ ์‹์—์„œ ์„ธํƒ€๋ฅผ -b๋กœ ์น˜ํ™˜ํ•œ ๊ฒƒ๊ณผ ๊ฐ™๋‹ค.

    ๊ฐ€์ค‘์น˜์™€ ํŽธํ–ฅ์„ ์ด์šฉํ•œ ํผ์…‰ํŠธ๋ก ์˜ ์ˆ˜์‹

    • ํผ์…‰ํŠธ๋ก ์€ ์ž…๋ ฅ ์‹ ํ˜ธ์— ๊ฐ€์ค‘์น˜๋ฅผ ๊ณฑํ•œ ๊ฐ’๊ณผ ํŽธํ–ฅ์„ ํ•ฉํ•˜์—ฌ, ๊ทธ ๊ฐ’์ด 0์„ ๋„˜์œผ๋ฉด 1์„ ์ถœ๋ ฅํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด 0์„ ์ถœ๋ ฅํ•œ๋‹ค. 

    โœจ ๊ฐ€์ค‘์น˜์™€ ํŽธํ–ฅ์„ ์ด์šฉํ•œ AND ๊ฒŒ์ดํŠธ์˜ ๊ตฌํ˜„

    def AND(x1, x2):
    	x = np.array([x1, x2])
        w = np.array([0.5, 0.5])
        b = -0.7
        tmp = np.sum(w*x) + b
        if tmp <= 0:
        	return 0
        else:
        	return 1
    • ๊ฐ€์ค‘์น˜์™€ ํŽธํ–ฅ์˜ ๊ธฐ๋Šฅ์ด ๋‹ค๋ฅด๋‹ค๋Š” ์‚ฌ์‹ค์— ์ฃผ์˜ํ•ด์•ผํ•œ๋‹ค. 
    • ๊ฐ€์ค‘์น˜๋Š” ๊ฐ ์ž…๋ ฅ ์‹ ํ˜ธ๊ฐ€ ๊ฒฐ๊ณผ์— ์ฃผ๋Š” ์˜ํ–ฅ๋ ฅ์„ ์กฐ์ ˆํ•˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜
    • ํŽธํ–ฅ์€ ๋‰ด๋Ÿฐ์ด ์–ผ๋งˆ๋‚˜ ์‰ฝ๊ฒŒ ํ™œ์„ฑํ™”(๊ฒฐ๊ณผ๋กœ 1์„ ์ถœ๋ ฅ)ํ•˜๋Š๋ƒ๋ฅผ ์กฐ์ •ํ•˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜

    โœจ ๊ฐ€์ค‘์น˜์™€ ํŽธํ–ฅ์„ ์ด์šฉํ•œ NAND ๊ฒŒ์ดํŠธ์™€ OR ๊ฒŒ์ดํŠธ์˜ ๊ตฌํ˜„

    def NAND(x1, x2):
    	x = np.array([x1, x2])
        w = np.array([-0.5, -0.5])
        b = 0.7
        tmp = np.sum(w*x) + b
        if tmp <= 0:
        	return 0
        else:
        	return 1
            
    def OR(x1, x2):
    	x = np.array([x1, x2])
        w = np.array([0.5, 0.5])
        b = -0.2
        tmp = np.sum(w*x) + b
        if tmp <= 0:
        	return 0
        else:
        	return 1

     

    ๐Ÿ”— ํผ์…‰ํŠธ๋ก ์˜ ํ•œ๊ณ„ 

    • XOR ๊ฒŒ์ดํŠธ๋Š” ๋ฐฐํƒ€์  ๋…ผ๋ฆฌํ•ฉ์ด๋ผ๋Š” ๋…ผ๋ฆฌ ํšŒ๋กœ๋กœ ์ž…๋ ฅ ์‹ ํ˜ธ ๋‘ ๊ฐœ ์ค‘ ํ•œ์ชฝ์ด 1์ผ ๋–„๋งŒ 1์„ ์ถœ๋ ฅ. 
    • ์ง€๊ธˆ๊นŒ์ง€์˜ ํผ์…‰ํŠธ๋ก ์œผ๋กœ๋Š” XOR๊ฒŒ์ดํŠธ๋ฅผ ๊ตฌํ˜„ ๋ถˆ๊ฐ€๋Šฅ

    OR ๊ฒŒ์ดํŠธ์˜ ์‹œ๊ฐํ™”

    • ์ง์„ ์œผ๋กœ ๋™๊ทธ๋ผ๋ฏธ์™€ ์„ธ๋ชจ๋ฅผ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

    XOR ๊ฒŒ์ดํŠธ์˜ ์‹œ๊ฐํ™”

    • ์ง์„ ์œผ๋กœ๋Š” ๋™๊ทธ๋ผ๋ฏธ์™€ ์„ธ๋ชจ๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ณก์„ ์ด๋ผ๋ฉด ๊ฐ€๋Šฅํ•˜๋‹ค. 

    โœจ ํผ์…‰ํŠธ๋ก ์˜ ํ•œ๊ณ„

    • ์ง์„  ํ•˜๋‚˜๋กœ ๋‚˜๋ˆˆ ์˜์—ญ๋งŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ํ•œ๊ณ„๊ฐ€ ์กด์žฌํ•œ๋‹ค. XOR ๊ฒŒ์ดํŠธ์™€ ๊ฐ™์€ ๊ณก์„  ์˜์—ญ์€ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†๋‹ค.
    • (๋˜ํ•œ ๊ณก์„ ์˜ ์˜์—ญ์„ ๋น„์„ ํ˜• ์˜์—ญ, ์ง์„ ์˜ ์˜์—ญ์„ ์„ ํ˜• ์˜์—ญ์ด๋ผ๊ณ  ํ•œ๋‹ค.) 
    • ์ด ํผ์…‰ํŠธ๋ก ์˜ ํ•œ๊ณ„๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์ธต ํผ์…‰ํŠธ๋ก ์ด ๋“ฑ์žฅํ•˜์˜€๋‹ค. 

    ๐Ÿ”— ๋‹ค์ธต ํผ์…‰ํŠธ๋ก 

    • ๋‹จ์ธต ํผ์…‰ํŠธ๋ก ์˜ ์ธต์„ ์—ฌ๋Ÿฌ๊ฐœ ์Œ“์•„์„œ ๊ตฌํ˜„
    • ๊ธฐ์กด ๊ฒŒ์ดํŠธ๋“ค์„ ์กฐํ•ฉํ•˜์—ฌ XOR ๊ฒŒ์ดํŠธ๋ฅผ ๊ตฌํ˜„ ๊ฐ€๋Šฅ.

    AND, NAND, OR ๊ฒŒ์ดํŠธ์˜ ๊ธฐํ˜ธ
    AND, NAND, OR ๊ฒŒ์ดํŠธ๋ฅผ ์กฐํ•ฉํ•ด ๊ตฌํ˜„ํ•œ XOR ๊ฒŒ์ดํŠธ
    XOR ๊ฒŒ์ดํŠธ์˜ ์ง„๋ฆฌํ‘œ

    def XOR(x1, x2):
    	s1 = NAND(x1, x2)
        s2 = OR(x1, x2)
        y = AND(s1, s2)
        return y

    XOR์˜ ํผ์…‰ํŠธ๋ก 

    • ์ด์ฒ˜๋Ÿผ ์ธต์ด ์—ฌ๋Ÿฌ๊ฐœ์ธ ํผ์…‰ํŠธ๋ก ์„ ๋‹ค์ธต ํผ์…‰ํŠธ๋ก ์ด๋ผ๊ณ  ํ•œ๋‹ค. 

    โœจ XOR ๋‹ค์ธต ํผ์…‰ํŠธ๋ก ์˜ ๋™์ž‘ ๊ณผ์ •

    1. 0์ธต์˜ ๋‘ ๋‰ด๋Ÿฐ์ด ์ž…๋ ฅ ์‹ ํ˜ธ๋ฅผ ๋ฐ›์•„์„œ 1์ธต์˜ ๋‰ด๋Ÿฐ์œผ๋กœ ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ธ๋‹ค.

    2. 1์ธต์˜ ๋‰ด๋Ÿฐ์ด 2์ธต์˜ ๋‰ด๋Ÿฐ์œผ๋กœ ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด๊ณ , 2์ธต์˜ ๋‰ด๋Ÿฐ์€ y๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.


    ๐Ÿ”— ์ •๋ฆฌ

    • ํผ์…‰ํŠธ๋ก ์€ ์ž…์ถœ๋ ฅ์„ ๊ฐ–์ถ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์ž…๋ ฅ์„ ์ฃผ๋ฉด ์ •ํ•ด์ง„ ๊ทœ์น™์— ๋”ฐ๋ฅธ ๊ฐ’์„ ์ถœ๋ ฅ
    • ํผ์…‰ํŠธ๋ก ์€ ๊ฐ€์ค‘์น˜์™€ ํŽธํ–ฅ์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์„ค์ •
    • ํผ์…‰ํŠธ๋ก ์œผ๋กœ AND, OR ๊ฒŒ์ดํŠธ ๋“ฑ์˜ ๋…ผ๋ฆฌ ํšŒ๋กœ๋ฅผ ํ‘œํ˜„ ๊ฐ€๋Šฅ
    • XOR ๊ฒŒ์ดํŠธ๋Š” ๋‹จ์ธต ํผ์…‰ํŠธ๋ก ์œผ๋กœ ํ‘œํ˜„์ด ๋ถˆ๊ฐ€๋Šฅ
    • 2์ธต ํผ์…‰ํŠธ๋ก ์„ ์ด์šฉํ•˜๋ฉด XOR ๊ฒŒ์ดํŠธ ํ‘œํ˜„ ๊ฐ€๋Šฅ
    • ๋‹จ์ธต ํผ์…‰ํŠธ๋ก ์€ ์ง์„ ํ˜• ์˜์—ญ๋งŒ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•˜๊ณ , ๋‹ค์ธต ํผ์…‰ํŠธ๋ก ์€ ๋น„์„ ํ˜• ์˜์—ญ๋„ ํ‘œํ˜„ ๊ฐ€๋Šฅ
    ๋ฐ˜์‘ํ˜•
Designed by Tistory.