TensorFlow - XOR 문제 딥 러닝으로 풀기.
- 개요
- 하나의 Logistic regression 으로는 절대 XOR 문제를 풀 수 없다.
- Multiple logistic regression Units 으로는 가능하다.
- Neural Network 학습
- NN 을 이용하여 XOR 학습이 가능한가?
- 기존에는 +- 를 구분할 수 있는 선을 찾을 수 없었다.
- 기존에는 +- 를 구분할 수 있는 선을 찾을 수 없었다.
- NN 3개를 이용하여 계산. - 값 계산 방법은 다음시간에 일단 가능한지만 확인하자.
- 0, 0일때
- 0, 1일때
- 1, 0일때
- 1, 1일때
- Forward propagation
- 앞단의 유닛 두개는 Multinomial classfication 과 유사하여, 하나로 합친다.
- 대신 w, b 의 rank 가 늘어난다.
- 이를 식 및 TensorFlow 로 표현하면 아래와 같다. 여기서 k(x) 는 앞의 두개 unit 의 결과값이다.
- w, b 의 값을 기계적으로 학습할 수 있을까?
- Gradient descent algorithm 을 사용하여, 코스트가 0인 것을 찾아야하는데, 미분이 필요하다. (기울기 0)
- 각각 unit 의 미분 값을 알아야하는데, 너무 많아서 계산할 수 없다.
- Backpropagation Algorithm 을 사용하여 해결한다.
- Backpropagation 알고리즘
- 예측한 값과 실제 값을 비교하여 예측한 오류(cost) 를 뒤에서부터 앞으로 돌려서 미분값 등을 구하는 알고리즘.
- w가 f 에 미치는 여양, x가 f 에 미치는 영향, b 가 f 에 미치는 영향 등을 구한다면 아래 보라색 글씨와 같을 것이다.
- g 와 f 를 통하여 미분을 계산.
- Chain rule - 복합 함수. 미분 (아래 별표가 Chain rule 에 해당됨)
- Sigmoid 미분
- TensorFlow
- 아래 그래프를 구현할 필요가 없다. TensorBoard 를 사용하면 된다.
Back propagation 을 이해하기 위한 기본 미분 개념
- Basic derivative
- Partial derivative (편미분)
- 내가 관심있는 값만 변수로 두고 나머지는 상수로 둔다.
'TensorFlow' 카테고리의 다른 글
TensorFlow - CNN (Convolutional Neural Networks) (0) | 2018.04.29 |
---|---|
TensorFlow - ReLU (0) | 2018.04.20 |
TensorFlow - 딥러닝의 기본 개념 (0) | 2018.03.26 |
TensorFlow - Softmax regression (0) | 2018.03.25 |
TensorFlow - Logistic regression (0) | 2018.03.25 |