시간이 많지 않은데, 해당 유형의 문제를 간단하게 라도 이해하고 풀 수 있어야 합니다.
제가 공부하고 시도해보았지만, 의문스러웠던 부분에 대한 질문을 드립니다.
조건) w0 = -1.5, w1 = 1, w2 = 2 |
질문: 위 조건과 같이, 초기값이 변경된 상황입니다.
저는 이런 식으로 접근했습니다.
1단계) 퍼셉트론 식에, 새 조건의 그레이디언트(w1=1, w2=2)와 바이어스(w0=-1.5)를 적용시킵니다.
이후 샘플 데이터 X1, X2, X3, X4를 대입하여 연산합니다.
X 집합 | w0 | + | j = 1 | + | j = 2 | = | Y 집합 |
x1 | * | w1 | x2 | * | w2 | ||
X1 | -1.5 | 0 | 1 | 0 | 2 | -1.5 + 0*1 + 0*2 = -1.5 | -1 |
X2 | -1.5 | 0 | 1 | 1 | 2 | -1.5 + 1*1 + 0*2 = -0.5 | -1 |
X3 | -1.5 | 1 | 1 | 0 | 2 | -1.5 + 0*1 + 1*2 = 0.5 | 1 |
X4 | -1.5 | 1 | 1 | 1 | 2 | -1.5 + 1*1 + 1*2 = 1.5 | 1 |
그랬더니 결과 Y집합이 OR게이트 분류를 하지 못 합니다.
2단계) 오차를 줄이기 위해, 목적함수 MSE에 ‘목적함수 결과‘ ’목푯값’을 대입하여 연산합니다.
X 집합
| 퍼셉트론 결과 | 목푯값 | MSE | 새 그레이디언트 | ||
오차 계산 | 결과 | 평균 | ||||
X1 | -1.5 | -0.5 | (-1.5 - (-0.5))^2 | 0 | 3/4 | 0.75 |
X2 | -0.5 | 0.5 | (-0.5 - 0.5))^2 | 0.75 | ||
X3 | 0.5 | 0.5 | ( 0.5 - 0.5))^2 | 0.75 | ||
X4 | 1.5 | 1.5 | ( 1.5 - 1.5))^2 | 1.5 |
결과로 새 매개변수 0.75를 반환받습니다.
3단계) 이제 새 매개변수를 퍼셉트론 식에 적용시키고 연산합니다.
X 집합 | w0 | + | j = 1 | + | j = 2 | = | Y 집합 |
x1 | * | w1 | x2 | * | w2 | ||
X1 | 0 | 0 | 0.75 | 0 | 0.75 | 0 + 0*0.75 + 0*0.75 = 0 | 1 |
X2 | 0 | 0 | 0.75 | 1 | 0.75 | 0 + 1*0.75 + 0*0.75 = 0.75 | 1 |
X3 | 0 | 1 | 0.75 | 0 | 0.75 | 0 + 0*0.75 + 1*0.75 = 0.75 | 1 |
X4 | 0 | 1 | 0.75 | 1 | 0.75 | 0 + 1*0.75 + 1*0.75 = 1.5 | 1 |
의문1 – 이 때에, 가중치 w0 값을 0으로 설정해주는 것이 맞습니까?
의문2 – ‘1단계‘에서는 그레이디언트 값 ’w1=1’과 ‘w2=2’ 가 독립적이었습니다. 그런데 목적 함수 연산을 통해 나오는 값은 ‘0.75’라는 하나의 값입니다. 이후로는 그냥 w1과 w2 모두 0.75로 사용해주면 되는 것이 맞나요?
의문3 – 그냥 가중치 w0를 임의로 설정하고 활성화 함수를 통해 OR게이트 결과가 나오게 해 주어서는 안 되는 이유가 무엇인가요?
4단계) ‘3단계‘를 통해 얻은 결과를 다시 목적함수에 넣고 연산합니다.
그러자 새 그레이디언트 결과가 '2.5175/4 = 0.629375' 와 같이 나왔습니다.
이런 식으로 계속 가는 건 아무리 봐도 이상해 보입니다.
잘못 접근하고 있는 부분을 알려주시면 감사하겠습니다.
오일석 지음 - 기계학습
댓글 0