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

+ Recent posts