티스토리 뷰
AND나 OR문제에 대해서는 한 개의 logistic regression 으로도 해결할 수 있었지만, XOR문제의 경우 하나의 logistic 모델로는 불가능 하다는 것이 수학적으로 증명되면서 한계에 직면했다. XOR 문제를 해결하기 위해서 logistic regression을 여러개 이용해서 푸는 방법이 등장했다. 이는 Neural Network 형태를 띠게 되며, XOR 문제를 풀 수는 있지만 W와 b를 학습하는 것은 불가능한것으로 보였다.
NN으로 XOR 푸는 방식
임의로 W와 b값을 지정해 여러개의 logistic regression에 X1과 X2값을 입력해서 결과값이 제대로 나오는지 확인하는 방식이다. X1과 X2 한 쌍의 값이 (0, 0), (0, 1), (1, 0), (1, 1)일 때 이미 정해놓은 X와 b를 이용해 Y1 = X1W+b, Y2 = X2W+b에서의 Y1, Y2값을 구한다. 이 Y1, Y2 값으로부터 또다른 logistic regression을 이용해 Y3의 값을 구하여 XOR의 답을 판단한다.
Backpropagation 알고리즘
-학습시키기
NN을 이용하면 XOR 문제를 해결할 수는 있지만 W와 b값을 임의로 지정하지 않고 스스로 학습해 W와 b값을 설정할 수 있는가에 대한 문제가 있었다. 하나의 logistic regression 인 경우 cost function 을 gradient descent algorithm을 이용해 최소화 할 수 있었는데, 이 경우 1개 선형 함수의 기울기를 구하는 방식이므로 어려운 과정이 아니었다. 그러나 여러개의 logistic regression이면 상당히 복잡해 진다.
따라서 이 때 backpropagation을 사용하는데, 아래의 2가지 단계로 구성된다.
- 예측한 값과 실제 결과 값을 비교해 오류 값을 구한다.
- 오류 값을 NN의 각 노드에 역전파한다.
즉 NN을 순방향으로 한 번 연산한 다음, 연산에 따른 결과값을 가지고 NN을 역방향으로 계산하여 입력한 데이터가 결과 값에 얼마나 영향을 미치는 지 확인하게 된다.
'study' 카테고리의 다른 글
ML — NN Dropout & Model Ensemble (0) | 2023.10.09 |
---|---|
ML — weight 값 초기화하기 (0) | 2023.10.09 |
ML — Sigmoid 대신 ReLU? 상황에 맞는 활성화 함수 사용하기 (0) | 2023.10.09 |
ML — 응용과 몇가지 팁 2 (1) | 2023.10.09 |
ML — 응용과 몇가지 팁 1 (0) | 2023.10.09 |
- Total
- Today
- Yesterday
- 벡터
- 불어문법
- 프랑스어문법
- 안젤라유강의
- 유데미파이썬강의
- 파이썬안젤라유강의
- 파이썬반복문
- qlearning
- 파이썬 초급강의
- 선형대수
- higher lower game
- 파이썬디버깅
- 복합과거
- 파이썬for문
- 파이썬초급강의
- 파이썬전역범위
- 파이썬 게임 만들기
- 파이썬강의소개
- higherlower게임
- 고성
- 아야진
- 파이썬 안젤라유 강의
- 반과거
- 큐러닝
- 아야진해변
- 파이썬안젤라유
- 파이썬디버거
- 안젤라유파이썬
- 숫자업다운게임
- 파이썬thonny
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |