3. Ch2. 간단한 예측자
• 질문을 받아 생각한 후 대답한다?
• 반복에 의한 학습
100km !!!
생각하는 원숭이 사진: https://flic.kr/p/8TywNY
4. 생각하는 기계
• 어떤 질문(문제)를 입력하면 “생각”을 해서 대답(출력)을 해주는 머신
• 컴퓨터는?
!4
질문 생각
Machine
대답
입력 생각
4 + 4 + 4
출력
3 x 4 12
신경망 첫걸음, 한빛미디어
5. 킬로를 마일로 변환하는 머신 1/3
• 킬로미터 입력을 마일로 연산을 통해 계산해 주는 기계다
• 실제로 100km -> 62.137 mile 을 알고 있다.
• 킬로와 마일은 선형Linear 관계가 있다.
• 어떤 상수c 만큼 늘어나는 관계
!5
킬로 생각
어떤 연산으로?
마일
킬로 생각
상수
마일
0km
100km
0mile
62.137mile
신경망 첫걸음, 한빛미디어
6. 킬로를 마일로 변환하는 머신 2/3
• 그럼 상수c는?
• 임의Random 값 0.5를 대입해 보면?
• 실제 값 62.137과 예측 값 50은 62.127-50 = 12.137
• 이것을 오차error라 한다.
!6
킬로 생각 마일
킬로 생각
km x 0.5
마일
100km 50mile
km x 0.5100km 50mile
62.127mile
실제 값
오차 12.137
신경망 첫걸음, 한빛미디어
7. 킬로를 마일로 변환하는 머신 3/3
• 임의Random 값 증가하면 선형으로 결과도 증가한다는 것을 안다!
• 두번째 시도로 c를 0.6으로 해보자
• 세번째 시도로 c를 0.7으로 해보자 - 값을 지나치는 Overshooting
• 세 번의 시도로 0.7 보다 작고 0.6 보다 큰 값일 것이라 판단
• 오차가 줄고 더욱 실제에 가까와 진다
• 이런 기계를 예측자Predictor 라고 부른다
!7
킬로 생각 마일
킬로 생각
km x 0.6
마일
100km 60mile
km x 0.50
km x 0.70
km x 0.61
100km
61mile
62.127mile
오차 1.137
실제에 조금
가까와 진다
km x 0.7 70mile
실제 값을 지나쳐:
Overshooting
반복에 의한
학습!!!
신경망 첫걸음, 한빛미디어
8. 킬로를 마일로 변환하는 머신
• 반복 Iteration
• 개선해나간다
!8
입력 생각 예측
km x 0.50
km x 0.70
km x 0.61
100km
61mile
62.127mile
오차 1.137
반복에 의한
학습!!!
신경망 첫걸음, 한빛미디어
모델을 정하고 모델 수식화 모델 학습 모델 평가
9. Ch2. 분류는 예측과 다르지 않다
• 측정된 무리를 분류해 보자
• 새로 발견되 것에 분류가 적용되나?
소녀 사진: https://pixabay.com/photo-774648/
10. 곤충의 분포
• 곤충1 , 곤충2 들을 길이, 폭으로 묶어 그래프에 표시
• 예측자는 선형함수에 의존
• 선형함수는 입력에 대해 직선 형태를 출력
• 선형함수에서 매개변수인 c값을 조정해 직선의 기울기를 변환 시킬 수 있다.
길이
폭
기울기 함수를 써서 직선을 그
으면 두 무리의
분류Classfy
용도라 할 수 있다.
길이
폭
곤충1
곤충2
11. 곤충의 분포
• 기울기를 조절해 다시 그어 본다
• 기울기를 조정해가며 분할자 Classifier를 발견했다고 가정하자.
• 새로운 곤충 C가 발견되어 길이/폭을 측정해 그래프에 표시해 보자.
• 곤충1, 2에 분할자로 분류가 되는가?
길이
폭
이 직선은 분할자길이
폭
길이
폭
분류에 직선이 최선?
다른 방법은?
12. Ch3. 분류자 학습시키기
사진: https://pixabay.com/photo-1073638/
• 분류자를 학습시켜 분류가 가능하
게 하자
• Delta 값을 이해한다.
• Moderator로서 L 값을 배운다
13. 학습 데이터
• 예측에서 보았듯 현실 세계의 실제 데이터가 필요하다
• 이것은 예측자 또는 분류자에 실제 값을 알려주는 역할로
• 학습 데이터 Learning Data라고 한다
• 두 데이터를 그래프로 시각화 해보자
폭 길이 곤충
3.0 1.0 곤충1
1.0 3.0 곤충2
길이
폭3
곤충1
곤충23
14. 직선의 방정식
• 분할선을 위한 직선의 방정식
• 첫번째 학습데이터
• A = 0.25 라 해보자
• 두 곤충 분류에 비적합
• 분류를 하려면 둘 사이를 가로지르는 기울기 값 필요
y = Ax y = Ax + B 에서 상수 B=0
이므로 직선은 원점을 지난다
길이
폭
y=0.25x
3
곤충 1
곤충 23
1
길이
폭
0.25↑ 필요
3
곤충1
곤충23
1
15. 학습데이터 적용
• 둘 사이를 가르기 위해서는 기울기 값이 커야 하는 것을 알 수 있다.
• 이런 일련의 방법을 알고리즘Algorithm 이라 한다.
• 학습데이터를 함수에 적용해 보자
• A=0.25 가정에서 폭3.0 벌레 길이가 0.75로 예측. 실제 벌레 길이는 1.0이므로 차이가
발생
!15
길이
폭
0.25↑ 필요
3
곤충1
곤충23
1
반복적으로 높여가며 학습해야!!!
- 알고리즘 구현
y = 0.25 ⋅ 3.0 = 0.75
길이
폭
y=0.75
y=1.0
3
3
1 오차 발생
신경망 첫걸음, 한빛미디어
16. 오차 값
• 직선은 y=1.0 이라면 곤충A 위치 (3.0,1.0) 지나나서 분할선이 되지 못한다.
• 목표를 y=1.1 삼아보자
• 오차 E 는
길이
폭
y=1.0
y=1.1
3
3
1
E = 목표값 - 계산값 = 1.1 - 0.75 = 0.35
길이
폭3
3
1
목료값 y=1.1
출력값 y=0.75
E = 0.35
오차를 줄여 정교하게 해야 한다
1.1이 근사치 같아 보인다.
17. A와 E 관계
• 학습으로 오차E를 이용해 매개변수 A에 대해 알고자 한다.
• A를 임의 초기값 주면 잘못된 y 를 얻는다.
• 이런 목표에 근접한 값을 t라하자, t는 A값을 조금씩 조정하며 얻는다.
• 수학에서는 조정해 가는 작은변화를 Δ (Delta)로 표기한다.
• t를 Δ로 식을 바꿔 보면
y = Ax
t = (A + ΔA)x
길이
폭3
3
1
E
y = (A + ΔA)x
y = Ax
오차를 통해 매개변수 A를 알아간다
18. Delta A
• E는 목표값t과 실제 값y의 차이 이므로
• 분류가 잘 되도록 기울기A를 다루므로
• 실제 A=0.25에서 E=0.35, x=3.0 이므로 델타A 아래 같다
ΔA =
E
x
ΔA =
E
x
=
0.35
3.0
= 0.1167
즉 A를 델타만큼 업데이트해야 한다
19. 첫번째 학습 데이터
• 기울기 변화 식을 업데이트된A 라 하면
• 이 업데이트된A 를 y 식에 적용하면
• 이렇게 첫번째 학습데이터를 계산했다.
y = (A + ΔA)x = 0.3667 ⋅ 3.0 = 1.1
A + ΔA = 0.25 + 0.1167 = 0.3667
실제 1.0에 근사해 졌다.
폭 길이 곤충 A+DeltaA y
3.0 1.0 곤충1 0.3667 1.1
1.0 3.0 곤충2
길이
폭
y=1.1
3
3
1
20. 두번째 학습 데이터
• 두번째 학습데이터 곤충2는 (1.0, 3.0) 값이고,
곤충1에서 찾은 업데이트한A를 적용하면
• 이제부터 두번째 학습데이터에 대한 오차 개선해 나가야 한다.
• 먼저 학습 데이터 바로 밑 2.9 을 목표로 하자
3.0과 엄청난 차이가 난다
길이
폭
곤충2 (1,3)
y=1.1
3
3
1
y = (A + ΔA)x = 0.3667 ⋅ 1.0 = 0.3667
길이
폭
목표값 2.9
y=1.1
3
3
1
21. 두번째 학습 데이터-오차E
• 두번째 학습데이터의 E는 곤충1 업데이트한 A와 차이므로
• 두번째 학습데이터의 업데이트된A 는,
• 마지막으로 업데이트된A는
ΔA =
E
x
=
2.5333
1.0
= 2.5333
E = 2.9 − 0.3667 = 2.5333
A + ΔA = 0.3667 + 2.5333 = 2.9
폭 길이 곤충 A+DeltaA y
3.0 1.0 곤충1 0.3667 1.1
1.0 3.0 곤충2 2.9 2.9
22. 최종 업데이트한 분류
• 목표값을 기준으로 업데이트한 분류 직선은!
길이
폭
최종
y = 2.9x
y=0.3667x
3
3
1
결과가 곤충1, 곤충2를
구분해 주진 않는다.
23. Moderate
• 학습데이터에 새 목표값을 정해 A를 정하는 것 보다
• 학습에 기반한 업데이트를 조금씩 조정 Moderate해 올라가는 방법이 머신러닝
의 핵심 개념이다
• 앞의 킬로->마일 학습에서 매개변수c 값을 조금씩 변경해 가던 것과 같은 개념이
다.
•
길이
폭
최종
y = Ax
학습한 업데이트
y=0.3667x
조정1
조정2
3
3
1
델타 값을 조금씩 조정한다
24. Moderate - 학습률
• 머신러닝에서 조정인자 L을 학습률 Learning Rate라고 하고 업데이트 방정식
을 아래 같이 쓸 수 있다.
• 학습률 L을 제시하는 것은 조정이 없을 때 비해 L 만큼 갱신하겠다는 의미.
• L=0.5로 주면 1/2 만큼 갱신하자는 의미.
ΔA = L(E/x)
25. 조정인자로 학습하기
• 조정인자 L을 임의로 L=0.5로 잡으면
• 첫번째 학습데이터:A=0.25, x=3.0, E=0.35 이고
• DeltaA = 0.5 (0.35/3.0) = 0.0583
• 업데이트된 A = 0.25+ 0.0583 = 0.3083
• y = 0.3083 * 3.0 = 0.9250
• 두번째 학습데이터는 업데이트된 A와 오차를 기반해 학습해 간다.
• A=0.3083, x=1.0
• y = 0.3083 * 1.0 = 0.3083
• 오류E=2.9-0.3083=2.5917 (목표 A=2.9 였으므로 )
• DeltaA = 0.5 * (2.5917 / 1.0) = 1.2958
• 업데이트된A = 0.3083 + 1.2958 = 1.6042
• y = 1.6042 * 1.0 = 1.6042
최초 직선에 비해 위로 올라간 학습
결과를 보인다
26. 조정인자 학습 결과
• 첫번째 학습데이터:
• y = 0.3083 * 3.0 = 0.9250
• 두번째 학습데이터:
• y = 1.6042 * 1.0 = 1.6042
길이
폭
y = (1.6042)x
y=(0.9250)x
최초 직선
y=(0.25)x
3
3
1
27. Ch5.여러 분류자
• 여러 선형분류자로
복잡한 문제 학습
https://pixabay.com/photo-3380192/
28. 선형분류자와 논리 함수
• 불 논리 함수
• 데이터가 불 논리함수에 의해 좌우되는지 파악하는 선형 분류자를 생각해 보자
입력A 입력B 논리곱 논리합
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 1
입력1
생각
논리함수
입력2
출력
29. 선형분류자와 논리곱/논리합
• 예를 들어 비가오고 AND 기온이 35도 이상이면 말라리아가 발병하나?
• 혹은 둘 중 한 가지 조건 OR 조건이면 충족하나?
• 논리 입력을 좌표로 표현했다.
• y=Ax + b 선형함수가 논리함수를 학습할 수 있다.
(0,1)
분할선
(0,0) (1,0)
(1,1)
논리곱
(0,1)
분할선
(0,0) (1,0)
(1,1)
논리합
30. 배타적 논리합 XOR
• 배타적논리합을 분류자로 표현해 보면
• 분류선 1개로 (0,1),(1,0) 을 구분할 수 없다
(0,1)
분할선
(0,0) (1,0)
(1,1)
XOR
입력A 입력B XOR
0 0 0
0 1 1
1 0 1
1 1 0
선형분류자는 한 직선으로
구분되지 않으면 소용없다.
31. 여러개의 분류자
• 여러개 분류선으로 (0,1),(1,0) 을 구분한다.
• 신경망에서 여러개의 분류자로 어떤 형태의 지역이라도 분류해 낼 수 있다.
(0,1)
분할선
(0,0) (1,0)
(1,1)
XOR
33. Neuron
• 동물 뇌의 신비한 능력 - 먹이 찾기, 위험 회피 등 복잡한 일을 할 수 있다.
• 초파리 10만개 뉴런
• 선충 302개 뉴런
• 뉴런 원리는 전기신호를 받아 전기신호를 출력한다.
https://pixabay.com/photo-209371/
https://pixabay.com/photo-2022398/
축삭
축삭말단
가지돌기
34. 선형함수와 Neuron
• 생물학적 뉴런은 선형함수 같은 출력을 만들지 않는다.
• 뉴런 입력에 분계점Threshold 에 도달해야 출력이 발생된다.
35. 활성화 함수
• 분계점을 넘어서는 경우 출력 신호를 생성하는 함수를 활성화 함수라 한다.
• 입력이 작은 경우 출력이 0
• 분계점 이상되면 출력이 올라간다
• 수학적으로 다양한 활성화 함수가 있다.
• 문제 결과가 직선을 잘 따르면 선형함수
• 보통 문제에서 2개를 분류할 때 Sigmoid 함수
• Sigmoid 보다 ReLU 와 변형된 활성화 함수를 사용한다.
출력
입력
분계점
3
3
1
계단함수
이런 분계점 반응응 뉴런과 유사
Fire
36. Sigmoid Function
• 시그모이드함수는 전통적으로 많이 쓰여와서 처음 진입시 적합하다.
• 로지스틱Logistic 함수라고도 한다.
• 실제 문제에 적용하기에는 문제가 있다.
• 초월수 e=2.71828
입력
출력
https://en.wikipedia.org/wiki/Sigmoid_function
y =
1
1 + e−x
37. Gradient Vanishing 문제
• 시그모이드 함수는 Gradient Vanishing 문제가 있다.
https://www.slideshare.net/jongyeolhyun/ss-79143299
38. 인공 뉴런
• 생물학적 뉴런의 동작원리를 흉내내서
• 여러 입력을 더한다. 그 합을 시그모이드 입력으로 전달한다.
• 합이 분계점 함수인 시그모이드 함수의 입력으로 전달된다.
입력a
시그모이드
함수
y(x)
입력c
출력 y
입력b
입력의
합
39. • 뉴런은 직전-직후 뉴런들과 상호 연동
• 노드 간 연결 강도를 조정해가야 한다.
계층2 계층3
계층모델
입력
입력
입력
출력
계층1
1 1
2 2
3
2
3
1
3
뉴런
연결
40. 가중치
• 뉴런간 연결의 신호 강도를 나타내는 가중치(weight)를 부여
• 아래는 모든 노드가 연결된 FC Full connected 사용.
계층2 계층3
입력
입력
입력
출력
계층1
1 1
2 2
3
2
3
1
3
w1,1
w1,2
w1,3
w2,1
w2,2
w2,3
w3,1
w3,2
w3,3
w1,1
w1,2
w1,3
w2,1
w2,2
w2,3
w3,1
w3,2
w3,3
가중치가 0에 가깝다면
42. 2 계층
• 2계층의 신경망 신호를 따라가 살펴보자
• 입력계층은 값만 주어진다
• 계층의 노드 각각에 가중치가 주어졌다
계층2
1.0
0.5
출력
계층1
1 1
2 2
w1,1 = 0.9
w1,2 = 0.2
w2,1 = 0.3
w2,2 = 0.8
활성화 함수 적용
입력계층
43. 계층2 노드1
• 활성화 함수는 가중치와 입력의 합이 입력된다.
• 이제 x = (1.0*0.9)+(0.5*0.3) = 1.05 이므로
x = awa + bwb + cwc 입력의 합은
조합 combind라 부른다
y =
1
1 + e−1.05
=
1
1 + 0.3499
= 0.7408
계층2
1.0
0.5
출력
계층1
1 1
2 2
w1,1 = 0.9
w2,1 = 0.3
0.7408
44. 계층2 노드2
• 이제 x = (1.0*0.2)+(0.5*0.8) = 0.6 이므로
• 앞으로 4계층, 8계층 그리고 노드가 수백개 있을 수 있다.
• 이런 계산에 적합한 수학적 방법이 행렬Matrix이다.
y =
1
1 + e−0.6
=
1
1 + 0.5488
= 0.6457
계층2
1.0
0.5
출력
계층1
1 1
2 2
w1,1 = 0.9
w2,1 = 0.3
0.7408
w1,2 = 0.2
w2,2 = 0.8
0.6457
49. 신경망 계층의 행렬
• 계층1의 가중치 행렬곱은 계층2에 활성화 함수 입력 값 x로 전달된다.
• 행렬을 축약해 표기하면
• 출력은
X = W ⋅ I
O = sigmoid(X)
x = (input1*w1,1) + (input2*w2,1)
x = (input1*w1,2) + (input2*w2,2)
계층2
input1
input2
출력 O
계층1
1 1
2 2
w1,1
w1,2
w2,1
w2,2
50. Ch9. 3계층 신경망 행렬곱
• 입력계층
입력 - 은닉 - 출력을 표현한 사진: https://flic.kr/p/5W8eeP
51. 입력계층
• 각 계층은 입력 / 은닉 / 출력 계층으로 부른다
• 행렬로 계층의 입력을 표시할 수 있다.
• 입력의 값은 행렬 I 로
입력 출력
은닉계층 출력계층입력계층
1 1
2 2
3
2
3
1
3
w1,1 = 0.9
w1,2 = 0.2
w1,3 = 0.3
w2,1 = 0.3
w2,2 = 0.8
w2,3
w3,1
w3,2
w3,3
0.9
0.1
0.8
I =
0.9
0.1
0.8
52. 은닉계층 입력
• 은닉계층 입력 는 행렬로 표현한다.
• 결국 은닉계층의 입력은,
I =
0.9
0.1
0.8
X = W ⋅ I
Xhidden = Winput_hidden ⋅ I
입력 출력
은닉계층 출력계층입력계층
1 1
2 2
3
2
3
1
3
w1,1 = 0.9
w1,2 = 0.3
w1,3 = 0.4
w2,1 = 0.2
w2,2 = 0.8
w2,3 = 0.2
w3,1 = 0.1
w3,2 = 0.5
w3,3 = 0.6
0.9
0.1
0.8
Whidden_output =
0.8 0.7 0.5
0.6 0.5 0.2
0.8 0.1 0.9
Winput_hidden =
0.9 0.2 0.1
0.3 0.8 0.5
0.4 0.2 0.6
53. 은닉계층 입력 계산
• 은닉계층 입력 을 계산하면
• 이 값을 계층에 대입해 보면
Xhidden = Winput_hidden ⋅ I
Xhidden =
0.9 0.2 0.1
0.3 0.8 0.5
0.4 0.2 0.6
⋅
0.9
0.1
0.8
=
1.16
0.42
0.62
입력 출력
은닉계층 출력계층입력계층
1 1
2 2
3
2
3
1
3
1.16
0.42
0.62
0.9
0.1
0.8
54. 은닉계층 출력 계산
• 은닉계층 출력은
• 활성함수를 통한 출력은,
• 계층도
Ohidden = sigmoid(Xhidden)
Ohidden = sigmoid
1.16
0.42
0.62
=
0.761
0.603
0.650
입력 출력
은닉계층 출력계층입력계층
1 1
2 2
3
2
3
1
3
1.16
0.42
0.62
0.9
0.1
0.761
0.603
0.650
활성화 함수
0.8
은닉계층의 작업이 최종
출력계층 전까지 이루어 진다
55. 출력계층 입력
• 출력계층 입력 는 행렬로 표현한다.
• 은닉계층의 출력이 완성됐으므로,
• 출력계층의 입력은,
X = W ⋅ I
Xoutput = Whidden_output ⋅ Ohidden
I Ohidden
입력 출력
은닉계층 출력계층입력계층
1 1
2 2
3
2
3
1
3
1.16
0.42
0.62
0.9
0.1
0.8
0.761
0.603
0.650
Xhidden
56. 출력계층 입력 계산
• 출력계층 입력 을 계산하면
• 계층도에 표시해 보면,
Xouput = Whidden_output ⋅ Ohidden
Xoutput =
0.8 0.7 0.5
0.6 0.5 0.2
0.8 0.1 0.9
⋅
0.761
0.603
0.650
=
0.975
0.888
1.254
I Ohidden
입력 출력
은닉계층 출력계층입력계층
1 1
2 2
3
2
3
1
3
1.16
0.42
0.62
0.9
0.1
0.8
0.761
0.603
0.650
Xhidden Xoutput
0.975
0.888
1.254
57. 출력계층 출력 계산
• 은닉계층은 활성함수에 전달한다
• 활성함수를 통한 출력은,
• 계층도에 표시해 보면,
I Ohidden
입력 출력
은닉계층 출력계층입력계층
1 1
2 2
3
2
3
1
3
1.16
0.42
0.62
0.9
0.1
0.8
0.761
0.603
0.650
Xhidden Xoutput
0.975
0.888
1.254
앞 계층에서 마지막 까지
입력신호와 가중치를 조합
해 전달하는 방식을 전파법
이라고 한다.
Ooutput = sigmoid(Xhidden)
Ooutput = sigmoid
0.975
0.888
1.254
=
0.726
0.708
0.778
Ooutput
0.726
0.708
0.778
59. 전방전달과 역전파
• 전방전달 Feed-forward
• 입력->은닉->출력층으로 예측값을 계산해 가는 과정
• 역전파 Back-Propagation
• 출력값과 예측값의 오차를 줄이는 방향으로 역으로 계산해 가는 과정
입력
은닉계층입력계층
1 1
2 2
출력계층
1
2
출력
입력
은닉계층입력계층
1 1
2 2
출력계층
1
2
출력
60. 여러 노드에 결과 오차E 전파
• 선형분류자는 기울기를 오차에 기반해 조정해 갔다.
• 둘 관계는 단순
• 계층간의 관계에서 노드 결과가 오차에
영향을 받으면 어떻게?
• 가중치 하나에 오차를 적용하는 것은 의미가 없다. 노드에 여러 노드의 가중
치가 기여를 했기 때문.
입력
결과 값의 오차
출력계층입력계층
1 1
2
3
w1,1 = 0.9
w1,2 = 0.2
0.9
0.1
0.8
w3,1 = 0.2
61. 오차를 균일하게 분배
1. 연결한 모든 노드에 균등하게 분배
- 일괄로 연결 수 만큼 균등하게
전달한다.
2. 모든 노드에 차등을 두어 분배
- 가중치가 큰 노드에 큰 오차 반환
- 각 가중치가 가해진 영향에
비례해서 되돌려 준다.
E 1/3
입력
출력계층입력계층
1 1
2
3
w1,1 = 0.9
w1,2 = 0.2
0.9
0.1
0.8
w3,1 = 0.2
E 1/3
E 1/3
결과 값
의 오차
입력
출력계층입력계층
1 1
2
3
w1,1 = 0.9
w1,2 = 0.2
0.9
0.1
0.8
w3,1 = 0.2
E 1/4
E 2/4
결과 값
의 오차
E 2/4
Full Propagation
Back Propagation
역전파
62. 출력의 오차 역전파
두 출력 오차의 역전파는 각 입력 가중치에 비례해 전달한다.
- 결과 값 오차 e1, e2는 학습데이터와 출력의 차이 이다.
- 예) e1 = t1 - o1,
e2 = t2 - o2
e1은 가중치 w11, w21 값에 비례해 나뉘고
e2는 가중치 w12, w22 값에 비례해 나누어 돌려주고 있다.
입력
출력계층입력계층
1 1
2
w1,1 = 0.9
w1,2 = 0.2
0.9
0.1
0.8
w2,1 = 0.2
결과 값의 오차
2
w2,2 = 0.4
e1
e2
O1
O2
64. 여러 계층으로 오차 역전파
입력/은닉/출력 계층으로 구성된 간단한 신경망에서 오차의 역전파를 고려해 보자.
- 출력층 오류
- 은닉층 오차 가중치
- 은닉층 오류
- 입력층 오차 가중치
입력
은닉계층입력계층
1 1
2 2
eoutput
출력계층
1
2
whowih
ehidden
역전파
eoutput
who
wih
ehidden
65. 은닉계층에서 오차?
출력 오차가 은닉계층 두 곳 가중치에 분배된다.
- 이 분배되어 전파되는 오차를 재조합Recombine 해서 은닉계층 오차로 이용.
입력
은닉계층입력계층
1 1
2 2
eoutput1
출력계층
1
2
w11
wih
ehidden1
eoutput2
w12
w21
w22 ehidden2
학습데이터는 최종 노드의 결과가
갖어야 할 목표 값에 대한 것. 결국 다
른 노드는 의미가 없다.
76. 가중치 계산은…
각 계층은 노드에 입력되는 신호에 가중치를 적용하고 합을 구한 후에 활성화 함수
를 작용시켜서 이의 합을 다음 계층 입력으로 제공하는 복합적인 방식이다.
망 안의 복잡한 가중치 조합으로 함수의 함수, 함수의 함수...
간단한 대수식으로 표현이 어렵다.
이런 문제에 봉착했을 때 - 그냥 추측으로 가중치를 선택하면?
입력
은닉계층입력계층
1 1
2 2
e1 = 0.8
출력계층
1
2
w11 = 2.0
e1 = 0.42
w12 = 1.0
w21 = 3.0
w22 = 4.0 e2 = 0.5
e2 = 0.88
w11 = 3.0
w12 = 1.0
w21 = 2.0
w22 = 7.0
e1 = 0.362
e2 = 0.932
0.32
무차별 대입
77. 무차별 대입
• 무차별 대입Brute force
• 예) 비밀번호를 알아내는데 순차적으로 대입해 알아내는 것을 익히 안다.
• 가중치에 대입해 보면?
• 각 가중치가 -1~1 사이 값이므로 1000가지 중 하나라고 가정해 보자
• 3개 노드 3개층이므로 18개 가중치가 있으므로
18,000개만 테스트 하면 된다.
• 500개 노드라면? 3000개 가중치므로 30만개
• 한 조합을 테스트하는데 1초라면 208일 걸려야 한다.
• 현실적으로 무차별대입은 어렵다.
78. 경사 하강법
• 경사 하강법Gradient Descent는 최저점을 한단계씩 찾아 간다.
• 함수가 너무 복잡해 대수학을 통해 찾기 어렵다면 경사하강법을 사용해 볼 수
있다. 다만 정답에 접근하는 방식이므로 해답을 얻지 못할 수 있다.
• 다음 오차 함수 y가 있으면 y를 최소화하는 x를 찾는다면,
• 위치에서 기울기에 따라 아래인지 위인지 파악
• x축으로 한 단계씩 이동해 최저점인지 알아 간다. x는 증가한다.
• 반대로 양의 기울기에서는 x값이 감소한다.
y = (x − 1)2
+ 1 y = (x − 1)2
+ 1
음(-) 기울기
다음 단계
y = (x − 1)2
+ 1
다음 단계
양(+) 기울기
짧아진다
79. 3차원 공간 경사하강법
• 많은 변수를 가진 다차원 함수 -> 3차원 공간
• 3차원 공간 함수도 경사하강법이 가능하다.
• 3차원 공간의 계곡에 빠지는 상황도 있다
• 잘못된 최저점 : local minimum
• 제대로된 최저점: global minimum
• Local minimum을 피하기 위해 각기 다른 위치에서 출발해 최적화 한다.
https://towardsdatascience.com/improving-vanilla-gradient-descent-f9d91031ab1d
80. 오차함수-제곱오차 방식
• 신경망에 경사하강법을 사용하려면 적합한 오차함수Error function 필요
• 오차는 학습데이터와 결과의 차이므로 결과함수를 오차함수로 변환 가능
• 다음 표 세 가지 오차 후보를 살펴보자,
• 제곱오차 방식 (목표-실제)^2 을 많이 선호
• 경사하강법의 기울기 구하는 대수학이 간단해진다
• 오차함수가 부드럽고 연속적이라 경사하강법에 잘 동작
• 최저점에 다다를 수록 경사가 점점 작아지므로
목표를 오버슈팅할 가능성이 낮다.
실제 결과 목표 값 오차(목표-실제) 오차|목표-실제| 오차(목포-실제)^2
0.4 0.5 0.1 0.1 0.0.1
0.8 0.7 -0.1 0.1 0.01
1.0 1.0 0 0 0
합: 0 0.2 0.002
81. 미분으로 오차함수 구하기
• 경사하강법을 사용하려면 가중치에 대한 오차함수의 기울기를 구하는데 미분
Calculus이 필요하다.
• 미분은 변화율을 구하는 것이다. 예를 들어 스프링에 힘을 얼마나 주느냐에
따라 스프링 길이가 어떻게 달라지냐는 것이다.
• 오차는 가중치의 변화에 얼마나 민감한가?
http://taewan.kim/post/cost_function_derivation/
신경망에 수많은
가중치가 있다
82. 미분으로 오차함수 구하기
• 미분으로 표현하는 오차의 가중치는
• 입력/은닉/출력 계층에서
• 은닉-출력의 오차함수
가중치 변화에 따라
오차 E가 얼마나 변하나?
δE
δwjk
입력
은닉계층입력계층
i=1 j=1
i=2 j=2
출력계층
k=1
k=2
wjk
노드오차
= 목표값 - 실제값
ok결과값,
ex = tk − okwij xj
xj
δE
δwjk
=
δ
δwjk
⋅
∑
n
(tn − on)2
n개 노드에서 목표-실제값
을 제곱해 모두 더한 것
83. 미분으로 오차함수 구하기
• 계층의 결과는 직전 층의 가중치만 영향을 받는다.
• 오차함수 구할 때 합 기호가 필요가 없어진다.
• 이전 층에 대해서 간단히 식을 쓸 수 있다.
입력
은닉계층입력계층
i=1 j=1
i=2 j=2
출력계층
k=1
k=2
wjk
노드오차
= 목표값 - 실제값
ok결과값,
ex = tk − okwij xj
xj
δE
δwjk
=
δ
δwjk
(tk − ok)2
결과는 Wjk 에 의해서만
영향을 받는다
은닉층 Xj는 Wij만
영향을 받는다
84. 미분으로 오차함수 구하기
• 식을 바로 앞 가중치의 변화에 따른 출력 변화를 구할 수 있도록
• 연쇄법칙을 이용해 미분작업을 한다.
• 먼저 첫번째 항에서 E는 알고 있듯이 므로
• 두번째 항에서 Ok는 노드k 결과 합으로, 입력 신호 가중치를 시그모이드 함
수를 적용한 것
• 시그모이드 함수를 미분하고 정리하면 마무리가 된다.
δE
δwjk
= − 2(tk − ok)2
⋅
δok
δwjk
δE
δwjk
=
δE
δok
⋅
δok
δwjk
E = (tk − ok)2
δE
δwjk
= − 2(tk − ok)2
⋅
δ
δwjk
sigmoid(
∑
j
wjkoj)
85. 미분으로 오차함수 구하기
• 시그모이드 함수의 x에 대한 미분값은
• 시그모이드 함수 미분한 식은 간단하고 활용도 편리해 인기가 있다.
• 결과를 정리하면
• 은닉층-출력층 가중치 업데이트에 대해서 간소화로 상수를 제거한 최종 수식
δE
δwjk
= − 2(tk − ok)2
⋅ sigmoid(
∑
j
wjk ⋅ oj)(1 − sigmoid(
∑
j
wjk ⋅ oj)) ⋅
δ
δwjk
(
∑
j
wjk ⋅ oj)
δ
δwx
sigmoid(x) = sigmoid(x)(1 − sigmoid(x))
= − 2(tk − ok)2
⋅ sigmoid(
∑
j
wjk ⋅ oj)(1 − sigmoid(
∑
j
wjk ⋅ oj)) ⋅ oj
δE
δwjk
= − (tk − ok) ⋅ sigmoid(
∑
j
wjk ⋅ oj)(1 − sigmoid(
∑
j
wjk ⋅ oj)) ⋅ ojsigmoid(
∑
j
wjk ⋅ oj)sigmoid(
∑
j
wjk ⋅ oj)
목표-실제 값 최종층 입력 신호 i_k 이전 은닉층 j의 결과
86. 미분으로 오차함수 구하기
• 입력층-은닉층 가중치의 오차 기울기
• 첫번째 항: 은닉층에서 역전파 오류
• 두번째 항: 은닉층 노드 j로 들어오는 입력값 가중치 적용 결과
• 세번째 항: 입력층 출력 결과
ej
ij
oi
δE
δwij
= − (ej) ⋅ sigmoid(
∑
i
wij ⋅ oi)(1 − sigmoid(
∑
i
wij ⋅ oi)) ⋅ oisigmoid(
∑
i
wij ⋅ oi) sigmoid(
∑
i
wij ⋅ oi)
87. 학습률
• 가중치는 기울기와 반대 방향으로 진행된다
• 학습률 수식은 입력-은닉, 은닉-출력 사이 가중치에 동일하게 적용
• 학습률 인자를 적용해 변화의 정도를 조정한다.
• 데이터에 나쁜 영향 줄이고, 오버슈팅등 방지
• 이 식은 갱신 새 가중치는 상수를 곱한 오차 기울기를 원래 가중치에서 빼줌.
• 양의 기울기는 가중치를 줄이고
• 음의 기울기는 가중치를 늘이기 위함
• 상수 𝛼 는 학습률로 오버슈팅을 방지하고 변화의 강도 조정
•
new wjk = old wjk − α
δE
δwjk
학습률은 문제에 따라 조금씩
다르게 튜팅해야 한다.
88. 학습률
• 오차 기울기 수식을 계층 사이에서 경우에 따라 다르게 적용하면 된다.
• 행렬식으로 계산을 풀어 보면
• 맨 뒤항은 직전 계층 Oj 의 전치행렬
• 가중치 업데이트 행렬을 표현하면
Δw1,1 Δw2,1 Δw3,1 ⋯
Δw1,2 Δw2,2 Δw3,2 ⋯
Δw1,3 Δw2,3 Δwj,k ⋯
⋯ ⋯ ⋯ ⋯
=
E1 ⋅ S1(1 − S1)
E2 ⋅ S2(1 − S2)
Ek ⋅ Sk(1 − Sk)
⋅ [O1 O2 Oj ⋯]
다음 계층에서 값들 이전 계층 j의 결과
학습률 생략 - 상수로 행렬곱 수
행하는데 영향을 주지 않는다
ΔWjk = α ⋅ Ek ⋅ Ok(1 − Ok) ⋅ OT
j
89. 15. 가중치 업데이트 예제
https://pixabay.com/photo-1181820/
90. 가중치 업데이트 예제
• 아래 같이 은닉층 노드 값 O_j1, O_j2 를 가진 망이 있다.
• 은닉-출력계층 사이 W11=2.0인 가중치를 업데이트 하려고 한다.
• 오차기울기를 사용해서 가중치 W11을 업데이트 해보자
입력
은닉계층입력계층
1 1
2 2
e1 = 0.8
출력계층
1
2
w11 = 2.0
e1 = 0.42
w12 = 1.0
w21 = 3.0
w22 = 4.0 e2 = 0.5
e2 = 0.88
0.4
oj=2 = 0.5
oj=1 = 0.4 0.32
0.48
출력
91. 오차 기울기
• 은닉-출력층의 오차기울기
• 첫째항: 는 오차 e1 이다. 그림에서 e1=0.8 이다.
• 두번째 항: 시그모이드 내의 합 는 (2.0*0.4)+(3.0*0.5)=2.3 이다.
• 그러면 시그모이드 함수 값은 는 0.909
• 0.909*(1-0.909)=0.083 이다.
• 마지막 항: Oj는 j=1인 가중치 w11을 계산하므로 Oj1=0.4이다
• 이 세항을 계산하면 -(0.8*0.083*0.4) = -0.0265 가 된다.
• 학습률이 0.1이라면 변화량은 0.1*-0.0265=-0.00265
• 새로운 W11=2.0-(-0.00265) = 2.00265 가 된다.
• 작은 변화지만 수백, 수천번 반복해가며 가중치가 최적의 값으로 수렴한다.
δE
δwjk
= − (tk − ok) ⋅ sigmoid(
∑
j
wjk ⋅ oj)(1 − sigmoid(
∑
j
wjk ⋅ oj)) ⋅ ojsigmoid(
∑
j
wjk ⋅ oj)sigmoid(
∑
j
wjk ⋅ oj)
−(tk − ok)
∑
j
wjk ⋅ oj
1/(1 + e−
2.3)
93. 데이터 준비
• 신경망을 이용해 문제를 해결하기 위해서는, 올바른 학습 데이터를 제공해야 한
다. 그래서 학습데이터, 가중치 초기화, 결과 값을 잘 디자인 하는 것 만으로도 좋
은 신경망 학습 모델을 구성할 수 있다.
• 시그모이드 함수에 큰 입력값이 입력되면,
• 활셩화 함수는 평평한 형태를 가진다
• 입력 값, 결과 값 과 가중치 초기화를 위한 준비를 살펴본다.
0.5
0
x
1
y =
1
1 + e−x
94. 입력 값
• 기울기를 이용해 가중치를 업데이트하므로 평평한 활성화 함수는 문제가 있다.
• 가중치의 변화는 활성화함수 기울기에 따른다.
• 작은 기울기는 곧 학습 능력에 제한된다는 의미
• 이것이 신경망에 포화Saturation 이 발생했다는 의미
• 포화가 안되게 입력값을 작게 유지해야 한다.
• 입력신호 Oj 영향도 있어서 가중치를 작게 만들수도 없다.
• 그래서 데이터의 범위를 0.0~1.0 사이에 놓이도록 정규화를 하는 것이다.
• 때로는 입력값에 0.01 같이 작은 오프셋 값을 더해 입력이 0이 안되게 한다.
• 입력이 0이면 Oj=0 이 되어 업데이트 수식 능력이 사라진다.
δE
δwjk
= − (tk − ok) ⋅ sigmoid(
∑
j
wjk ⋅ oj)(1 − sigmoid(
∑
j
wjk ⋅ oj)) ⋅ oj
95. 결과 값
• 최종 출력층에서 활성화 함수가 1.0 넘는 값을 못만들면 목표값 설정에 문제
• 로지스틱 함수는 0.0~1.0 사이의 값을 점근적Asymptotically으로 출력한다.
• 불가능 영역 0.0, 1.0 설정을 막기 위해 0.01~0.99 사이를 이용하기도 한다
0.5
0
x
1
y =
1
1 + e−x
활성화함수가
도달할 수 없는 범위
활성화함수 범위:
0.0~1.0
96. 가중치 초기화
• 가중치도 큰 값이 입력되면 포화가 되므로, 보통 초기화에 -1.0~1.0 사이의 임의
값으로 선택한다.
• 과학자들이 특정 신경망의 형태와 활성화 함수가 주어졌을 때 수학적으로 가중
치의 임의 값을 경험적으로 알아냈다.
• 노드로 오는 연결 노드의 개수에 루트를 씌운 역수를 취해 얻는 범위
• 예) 각 노드가 3개 연결노드가 있으면:
• 각 노드가 100개 연결노드가 있으면:
±1/ 3 = ± 0.57
±1/ 100 = ± 0.1
97. A. 미분
• 손으로 구하는 미분
• 손으로 구하지 않는 미분
https://pin.it/nuozeufk55db4c
98. 직선
• 표 데이터를 표현
• 속도를 s, 시간을 t 라고 하자
• 속도 식으로 표시하면 s=30
• 시간에 대한 변화율은 0므로 속도는 시간에 대해 의존관계가 없다.
• 의존도 0
• 시간 경과에 따른 속도의 변화를 미분 수식으로 표현하면
미분이 만들어지기
까지 이해
시간(분) 속도(마일/시간)
0.0 30
0.5 30
1.0 30
1.5 30
2.0 30
2.5 30
변화를 파악하는
미분을 하는 것
δs
δt
= 0미분계수
derivarative
시간에 따른 변화가
없어 변화율을 0
99. 경사를 가지는 직선
• 시속 30 마일에서 가속패달을 서서히 밟고 있는 차가 있다고 하자
• 속도의 수식으로 표현하면: speed = 30 + (10 * time)
기호로 표현하면 : s = 30 + 10t
• 시간의 변화에 따른 속도의 변화는 어떻게 표현???
속도는 매분 마다 10씩 변화하는 의존 관계가 성립한다.
• 다음같은 변화의 의존식이 성립
시간(분) 속도(마일/시간)
0.0 30
0.5 35
1.0 40
1.5 45
2.0 50
2.5 55
3.0 60
기울기 10을 가진 1차함수
δs
δt
= 10
100. 곡선
• 정지 상태에서 가속을 해서 서서히 속도가 오르는 차가 있다.
• 매 분 시간의 제곱으로 데이터가 변화한다.
• 방정식으로 표현하면
• 곡선에서 시간의 변화에 따른 속도의 변화는 어떻게 표현???
• 3분 - 9마일, 6분 - 36마일 …
시간(분) 속도(마일/시간)
0 0
1 1
2 4
3 9
4 16
5 25
6 36
7 49
8 64
s = t2
101. 손으로 구하는 미분
• 다음 3분, 6분의 시점의 기울기를 비교하면,
• 6분에서 기울기가 큰 것을 확인 가능하다.
• 어느 시점 곡선의 기울기는 변화율이다.
• 곡선 기울기는 해당 시점에 탄젠트라는 직선을 그어 주어 추정 할 수 있다.
• 그 순간 기울기
• Δs/Δt =
• 9.6/0.8 = 12.0
• 분당 시속 12.0마일 변화율
경사면
높이 Δs
길이Δt
Delta는 작은 변화다
삼각형 크기를 자로 재서
계산해 보자
102. 손으로 구하지 않는 미분
• t=3을 기준 2분 차이나는 t=1, t=5 에 직선을 그었다
• 수학적으로 2분의 Δx 를 가진다.
• x를 사이에 x - Δx 와 x + Δx
• x - Δx 와 x + Δx 사이 직선을 그어주면, 이 직선은 중간지점 x 에서의 탄젠트와
거의 동일한 기울기를 갖는다
• 곡선의 기울기와 비슷한 기울기를 가진다 (근사치)
경사면
높이 Δs
길이Δt
x x+Δxx-Δx
103. 손으로 구하지 않는 미분
• 이x - Δx 와 x + Δx 사이 직선의 기울기를 구해보자
• 기울기 = 높이/길이
• 높이: 속도의 차이므로
1분에서 속도 1^2, 5분에서 속도 5^2 의 차이 이므로 24가 된다.
• 길이는 시간 x - Δx 와 x + Δx의 차이 5-1=4가 된다.
• 기울기는 24/4 = 6(mph/m) 이 된다.
• 두 점 사이 직선의 기울기를 구하므로 아직 근사치이다.
• Δx 를 더 작게 해서 촘촘하게 하면 어떨까?
경사면
높이 Δs
길이Δt
x x+Δxx-Δx
아직까지는 근사치이다.
104. 손으로 구하지 않는 미분
• Δx 를 더 작게 해서 촘촘하게 하면 어떨까?
• 그림 같이 Δx를 작게 하면 t=3 위치에 가까와 진다.
• Δx 를 작게 할 수록 실제 탄젠트와 점점 가까와 진다.
• 수학에서 정답을 근사치로 잡고, 편차를 점점 작게 해가며 개선해가는 방법이 매
우 강력하다. 이 같이 직접적으로 공략이 어려운 문제를 정복해 왔다.
경사면
Δx = 0.1
Δx = 0.5
Δx = 1
Δx = 3
105. 그래프 없이 하는 미분
• 앞의 탐구로 속도는 s = t^2 시간의 함수로 표현했다.
• 시간의 함수가 속도에 어떻게 변화하는지를 기울기를 통해 살펴보았다.
• 변화률을 식으로 정리하면
• 변화율: 높이/길이
• 높이: (t + Δx)^2 - (t - Δx)^2
• 길이: (t + Δx) - (t - Δx) = 2Δx
• 풀어서 정리하면
• 앞의 근사치 구한 결과에서
• t=3 일때 변화율=6, t=6일 때 변화율=12 임을 확인했다.
δs
δt
=
Height
Length
=
(t + Δx)2
− (t − Δx)2
2Δx
δs
δt
=
4tΔx
2Δx
= 2t
그러나 변화하는 Δ 가
상쇄되었다
106. 그래프 없이 하는 미분
• 속도가 더 복잡한
• 변화률을 식으로 정리하면
• 높이 t + Δx에서 속도와 t - Δx의 차이
•
• 길이: (t + Δx) 와 (t - Δx) 차이
•
• 변화율 식으로 정리
δs
δt
=
(t + Δx)2
+ 2(t + Δx) − (t − Δx)2
+ 2(t − Δx)
2Δx
s = t2
+ 2t
(t + Δx)2
+ 2(t + Δx) − (t − Δx)2
+ 2(t − Δx)
2Δx
=
4tΔx + 4Δx
2Δx
= 2t + 2
여전히 변화하는
Δ 가 상쇄되었다
107. 그래프 없이 하는 미분
• 속도를 시간의 세제곱으로 한다면,
• 변화률을 식으로 정리하면
• 높이는 t + Δx에서 속도와 t - Δx의 차이
• 길이는 (t + Δx) 와 (t - Δx) 차이
• 변화율 식으로 정리
• Δx가 점점 작아져 무한히 작아져야 정확한 기울기를 구할 수 있다.
• 무한히 작아지면 0에 가까와지고, 결과적으로 0이 된다.
δs
δt
=
(t + Δx)3
− (t − Δx)3
2Δx
s = t3
(t + Δx)3
− (t − Δx)3
2Δx
=
2t2
Δx + 2Δx3
2Δx
= 3t2
+ Δx2
Δ 가 포함되었다
δs
δt
= 3t2
+ Δx2
= 3t2 미분을 통해
해답을 얻었다
108. 패턴
• 여기까지 Δx 같은 델타로 미분계수를 구하는 것을 보았다.
• t함수 미분계수는 같지만 t의 지수가 1씩 줄고 있다.
• t^3은 t^2, t^2 은 t가 되고 있다.
• 계수는 t는 t^1 이므로 t^0가 되어 1이 된다
• 3,4,5 같은 상수, a, b, c 같은 변수 상수도 변화율을 갖지 않으므로 사라진다.
• t^2은 2t, t^3은 3t^2 이 된다.
• 승수multiplier 이용 단계도 2t^5은 2*5t^4 = 10t^4 가 된다.
• 패턴:
δs
δt
= 2ts = t2
δs
δt
= 2t + 2s = t2
+ 2t
δs
δt
= 3t2
s = t3
y = axn δy
δx
= naxn−1
신경망에서 다항식의
미분 정도만 이해해도 좋다
도함수
109. 함수의 함수
• 다음 같은 함수가 있다:
• y는 다음 같다:
• y의 변화에 따라 f의 변화:
• 그러면 x의 변화에 따른 f는 어떻게 변할까?
• 이렇게 쓸 수 없다:
• 연쇄법칙Chain rule을 사용한다.
• x변화로 식을 쓴다
• 신경망에서 역전파에서 연쇄법칙은 핵심중 핵심이다.
f = y2
y = x3
+ x
δf
δy
= 2y
f = (x3
+ x)2
δf
δx
= 2(x3
+ x)
δf
δx
=
δf
δy
⋅
δy
δx
110. 함수의 함수
• 신경망 역전파에서 연쇄법칙Chain rule을 이용하면 각 계층을 한 층 한 층 풀
어 갈 수 있다.
• 함수 와 에서 x의 변화에 따른 f의 변화를 구한다면
• 연쇄법칙으로 정리하면
• 두 부분을 정리하면 이므로
• 조합해 보면 인데, 이므로 x 식으로 표현할 수
있다.
δf
δx
=
δf
δy
⋅
δy
δx
f = y2
y = x3
+ x
δf
δy
= 2y
δy
δx
= 3x2
+ 1
δf
δx
= (2y) ⋅ (3x2
+ 1) y = x3
+ x
δf
δx
= (2(x3
+ x)) ⋅ (3x2
+ 1)
= (2x3
+ 2x) ⋅ (3x2
+ 1)
111. 함수의 함수
• 함수 상태에서 x의 변화에 따른 f의 변화를 구한다면
• 이런 방법으로 미분을 하면 동일한 결과를 얻는다.
f = (x3
+ x)2
= (2x3
+ 2x) ⋅ (3x2
+ 1)
= 2 ⋅ (x3
+ x)(3x2
+ 1)
f′ = 2 ⋅ (x3
+ x)(x3
+ x)′ = 2 ⋅ (x3
+ x)(3x2
+ 1)
112. 함수의 함수
• 다른 독립변수를 처리하는 방법으로 다음 함수의 예를 들어 보면,
• x, y ,z 은 독립적이다. 어떤 값도 가능, 다른 변수 값에 의존치 않는다.
• 다른 변수의 변화에 영향을 받지 않는다.
• 에서 y는 x 영향을 받는다.
• 를 풀기 위해 두 부분으로 나눈다
• 2xy 를 x에 대해 미분하면 2y (y가 x에 독립적)
• 3x^2z 를 미분하면
• 4z 은 x가 없으므로 상수로 취급되어 없어져 버린다.
• 그러므로
• 독립적인 변수들은 과감히 무시, 복잡한 수식에 대해서도 미분을 수월하게 할 수
있다.
3x2
z = 2 ⋅ 3xz
y = x3
+ x
δf
δx
= 2y + 6xz
f = 2xy + 3x2
z + 4z
δf
δx