딥러닝 EXPRESS 05장 연습문제

2022. 3. 24. 01:30Study/딥러닝

반응형

 

책정보

 

제목 : 딥러닝 EXPRESS

저자 : 천인국

출판사 : 생능출판사

출판일 : 2021년 07월 16일

 

구매하기

 

예스24 - https://click.gl/nk9VvW

교보문고 - https://click.gl/2Sqg6V

 

필기노트

 

※ 직접 풀이한 문제이며, 정확한 답이 아님을 알려드립니다.

 

1. 네

 

2. 퍼셉트론에서는 계단함수가 사용된다. 계단함수는 특정임계치 이상일 때만 출력이 발생하는 함수다.

 

3. 퍼셉트론은 선형으로 분리할 수 있는 문제만 가능하다. 따라서 (a), (b), (c) 모두 다 분리할 수 있다.

 

4. x1 * w1 + x2 * w2 + b = 0 * 1 + 0 * 1 + (-1.5) = -1.5

 

5.

(a) 좌표를 그려 해당 샘플을 분류할 수 있는 선이 있는지 확인하면 된다. w1=1, w2=1, b=-2

x1 x2 x1 * w1 + x2 * w2 + b 결과
0 1 -1 0
1 0 -1 0
1 2 1 1
2 1 1 1

(b) w1=1, w2=1, b=-1

import numpy as np

epsilon=0.0000001

def step_func(t):
    if t >epsilon: return 1
    else: return 0

X=np.array([
    [0,1,1],
    [1,0,1],
    [1,2,1],
    [2,1,1]
])

y=np.array([0,0,1,1])
W=np.zeros(len(X[0]))
W[-1]=-1.0


def perceptron_fit(X,Y,epochs=10):
    global W
    eta=1.0
    for t in range(epochs):
        print("epoch=",t,"=========")
        for i in range(len(X)):
            predict=step_func(np.dot(X[i],W))
            error=Y[i]-predict
            W+=eta*error*X[i]
            print("현재 처리 입력=",X[i],"정답=",Y[i],"출력=",predict,"변경된 가중치=",W)
        print("========================")

def perceptron_predict(X,Y):
    global W
    for x in X:
        print(x[0],x[1],"->",step_func(np.dot(x,W)))

perceptron_fit(X, y,6)
perceptron_predict(X,y)

 

6. 네

 

7. or은 갯수와 상관없이 0,0,...0만이 0이 된다. 따라서 선형 분류가 가능함으로 퍼셉트론으로 구현할 수 있다.

 

8. 결과로 1과 0을 나누어 if-else문으로 class 1과 class-1을 구분하면 된다.

 

9. 네

 

 

 

 

반응형