우선 0 0 을 넣었다.
주어진 weight 5 5 와 bias 8 로 계산해보자.
첫번쨰 보라색은 계산 시 -8이 된다. sigmoid(-8) 해보면 대략 0이 된다.
두번째 그린색 -7 -7에 입력시 0+ 3이니까 3이 된다. sigmoid(3) 하면 1 이 된다.
y값 0 1 을 집어 넣으면 -11 -11 -11 + 6 = -5
위 결과로 나온다.
다음으로는 x값이 각각 0 1 인 경우. 계산해보면
+ 6
또 다음으로 1 0
계속 계산하면 나온다.
결국 XOR 값이 나오게 되는 것
그림으로 간략하게 표현하면 이렇게 되겠지
이 때 can you find another w and b for the XOR ?
weight은 이차원 배열이 되고 bias는 두개 늘어진다.
이해를 돕기 위해 코드도 제시
how can we learn w1 w2 b1 b2 from training data?
지금 현재는 주어진 값인데 어떻게 계산할 수 있는가??
======미분 특별 강의
미분은 이렇게 표현한다 간단하게 말하면 df/dx로도 쓰인다.
다른 말로는 순간변화율. 기울기를 나타내는 것이고 그래서 gradient descent에서 필수적이었다.
f(x) = 3
f(x + 0.01 ) - f(x) / 0.01 = 3-3/0.01 = 0/0.01 = 0
f(x) = x
f(x + 0.01 - f(x) / 0.01 = x + 0.01 - x / 0.01 = 0.01 / 0.01 = 1
그래서 x이면 미분은 1이다.
f(x) = 2x
2(x + 0.01) - 2x / 0.01 = 2 * 0.01 / 0.01 = 2
앞의 상수는 그대로 따라간다.
partial derivative consider other variables as constants
f(x) = 2x df/ dx = 2
f(x, y) = xy * f /x y
f(x, y) = xy f/ y = x
마지막으로
f(x) = 3
0
f(x) = 2x f(x) = x + x
2
f(x) = x + 3
1
f(x, y) = x + y f/x
1
f(x, y) = x + y f/y
1
복잡하면 f(g(x))
======================
weight bias 값이 주어졌는데 자동적으로 학습할 수 있을지가 이번 강의 내용
G라는 변수 사용
이건 gradient descent
cost 함수가 밥그릇 모양이면 w점이 어디서 시작하든지 상관없이 그 점에서 기울기를 구하면서 계속 내려가면
결국 원하는 최저값으로 도달하게 된다. cost최소화하는 알고리즘
이걸 이용하려면 미분 계산해야하는데
이게 neural network로 가면서 복잡해지는 것.
x1 ->y 영향을 알아야 w를 조절할 수 있는데 너무 어렵다.
perceptron 책에서도 아무도 할 수 없다고 말하기도 했었죠?
backpropagaition 등장 앞으로갔다 뒤로 돌아가는 알고리즘
실제 예를 통해 한번 살펴보자
위의 세 수식을 그래프로 옮기면 이렇게 되겠지.
w,x, b 가 미치는 영향을 알고 싶지
두가지 방식으로 나뉜다.
1. forward(w = -2, x = 5, b = 3)
2. backward
1. 주어진거 그대로 적용해서 g, f를 계산해서 구할 수 잇다.
미분을 미리한다. g는 w 로 미분하면 x / x로 미분하면 w 된다.
g가 f에 미치는 영향 아까 계산한 결과 1 b 역시 1
f = g + b 부분을 미분
??? 간단하게 미분 함
정리하면 이렇게
그렇다면 이 미분 값은 어떻게 사용되는가?
g = x * y 일 때 x, y 의 미분은 이렇게 표현가능
g 역시 f / g 로 표현가능
하나하나 계산해서 계속 동그라미 이루어지고 그게 나중에 f로 이어지는데
x미분 값은 g를 미분한 값에 g에서의 x 미분 값을 곱해서 도출 가능 (g 에서의 x미분 값은 local 미분이라 부름)
따라서 이걸 계속 곱해서 확인 가능 ????
최종 출력값 간의 미분 값을 확인할 수 있는 것 (f에서의 x 미분 값)
다른 것도 마찬가지.
sigmoid 함수
tensorflow는 그래프로 만들었지 왜?
미분 구하기 위해서?????
어쨌든 이 방식으로 최종값에서의 미분 값을 알 수 있게 된다고...
tensorboard 사용하는 코드 ...
'머신러닝,딥러닝 > tensorflow' 카테고리의 다른 글
lec12 NN의 꽃 RNN 이야기 (0) | 2021.02.10 |
---|---|
lec11 CNN basics tensorflow (0) | 2021.01.25 |
lec11 ConvNet 의 conv 레이어 만들기 (0) | 2021.01.25 |
lec10 xsigmoid 보다 ReLU가 더 좋아 (0) | 2021.01.24 |
lec08 tensor manipulation(reshape, stack, zip, one_hot ..) (0) | 2021.01.22 |
lec08 deep neural network for everyone (0) | 2021.01.22 |
lec07 learning rate, data preprocessing overfitting (0) | 2021.01.21 |
lec06 multinominal 개념 소개 (0) | 2021.01.21 |