[Ⅰ. Neural Networks and Deep Learning] Neural Networks Basics (4)
Neural Networks Basics
Logistic Regression as a Neural Network
More Derivative Examples
이번에는 조금 더 복잡한 예제들을 다뤄볼텐데요. 함수의 기울기가 지점마다 그 값이 다른 경우를 한번 보도록 하겠습니다. 우선 예제를 봅시다.
$f(a)$는 $a^2$라는 그래프를 그렸는데요. $a$의 값이 $2$일 때의 지점을 한번 보겠습니다. 그러면 $f(a)$는 $4$입니다. 이제 약간 오른쪽으로 이동해보면, $a=2.001$입니다. $f(a)$가 $a^2$이고 이 값은 그렇게 되면 $4.004$가 됩니다. 정확한 값은 계산기로 확인하여 $4.004001$이라는 것을 알아냈습니다. 일단 4.004가 비슷한 값이라고 하겠습니다.
이 뜻은 즉 $a$가 $2$인 경우 여기 표에 그려보겠습니다. 그래서 우리가 말하는 것은 만약 $a$가 $2$인 경우 $f(a)$는 $4$가 되고, 참고로 $x$ 및 $y$ 축은 정확한 척도로 그린 것이 아닙니다. 기술적으로, 세로축이 가로축보다 훨씬 더 높아야 하므로 $x$축과 $y$축은 같은 척도로 있지 않습니다.
이제 $a$를 $2.001$로 조금 이동하면 $f(a)$는 대략적으로 $4.004$가 됩니다. 따라서 이 작은 삼각형을 다시 그리면 이것이 의미하는 바는 오른쪽으로 $0.001$만큼 조금 이동하면 $f(a)$가 $0.004$만큼 4배 더 올라간다는 것을 의미합니다.
그래서 미적분학적 용어에서는 $a=2$에서 $f(a)$의 도함수인 기울기가 $4$라고 합니다. 또는 이것을 미적분 표기법에 쓰자면 $a=2$일 때 $\frac{d}{da}f(a)=4$라고 합니다.
$f(a)=a^2$라는 함수에서 한 가지 염두할 것은 $a$의 다른 값에 따라 기울기가 각각 다르다는 것입니다. 이것은 이전에 다뤘던 내용과는 조금 다른 부분인데요.
그럼 다른 점을 살펴봅시다. 만약 $a=5$이면 $a=2$ 대신 $a=5$이면 $a^2=25$이므로 $f(a)$입니다. 오른쪽으로 다시 약간 이동시키고 $a$로 아주 조금만 이동 시키면 이제 $a=5.001$이고, $f(a)$는 대략적으로 $25.001$이 될 것입니다. $a$를 $0.001$만큼 이동시키면 $f(a)$는 10배 가까이 그 값이 증가하는 것을 볼 수 있습니다.
따라서 $a=5$일 때 $\frac{d}{da}f(a)=10$이 됩니다. 왜냐하면 $f(a)$는 $a$를 조금 움직일 때 $a$보다 10배 더 많이 올라가기 때문입니다.
그러면 도함수가 다른 지점에서 왜 다른지 볼 수 있는 한가지 방법은 이 작은 삼각형을 다른 위치에 그려보는 것입니다. 삼각형의 높이 나누기 너비의 비율이 곡선의 다른 지점에서 매우 다르다는 것을 알 수 있다는 것입니다.
따라서 여기서 $a=2$일 때 기울기는 $4$, $a=5$일 때 기울기는 $10$입니다.
이제 미적분 교과서를 펴면 미적분 교과서는 $\frac{d}{da}f(a)$는 $f(a)=a^2$이므로 $\frac{d}{da}a^2$로 알려줄 것습니다. 미적분 교과서에서 찾을 수 있는 공식 중에서 하나는 함수 $a^2$의 기울기가 $2a$와 같다는 것입니다.
이것을 증명하지는 않겠지만 이것을 발견하는 방법은 미적분학 교과서에서 표 공식을 펼치는 것입니다. 그리고 그들은 $a^2$의 도함수가 $2a$라는 것을 알려줄 것입니다. 그리고 이 결과는 우리가 도출해낸 값과 동일하죠.
즉, $a=2$일 때 $a$에 대한 함수의 기울기는 $2$ x $2$ = $4$입니다. 그리고 $a=5$일 때 함수의 기울기는 $2$ x $5$ = $10$이 됩니다.
그러므로 언젠가 여러분이 미적분 교과서를 꺼내서 $\frac{d}{da}a^2=2a$라는 공식을 본다면 그 모든 것은 주어진 $a$의 값에 대해 이미 아주 작은 값인 $0.001$만큼 이동시키면, $f(a)$가 $2a$만큼 올라갈 것이라고 기대하게 될 것입니다. 그것은 $a$의 값을 오른쪽으로 밀어 넣었던 기울기 또는 미분의 곱입니다. 아주 작은 세부사항 하나는 여기에서 이러한 대략적인 기호를 사용합니다. 그리고 정확히 $4.004$가 아니라 거기에 .001이 더 있습니다. 이 추가의 .001, 여기 이 작은 것은 우리가 $a$를 오른쪽으로 $0.001$만큼 조금씩 이동했기 때문입니다.
대신에 이 무한히 작은 값만큼 오른쪽으로 조금 이동한다면 이 추가 항목은 사라질 것이고 $f(a)$가 나가는 양은 도함수 곱하기 $a$를 조금 이동한 양과 정확히 같다는 것을 알 수 있습니다.
그리고 정확히 $4.004$가 아닌 이유는 $0.001$이 아닌 아주 무한정으로 작은 값의 이동으로 도함수를 정의되기 때문입니다. 물론 $0.001$도 작긴 하지만 극도로 작은 것은 아닙니다. 그래서 $f(a)$가 올라간 양은 공식에 의해 주어지는 것이 아니라 도함수에 의해 대략적으로 주어지는 종류일 뿐입니다.
마무리를 위해서 몇 가지 간단한 예를 더 살펴보겠습니다.
이미 보신 예제에서는 만약 $f(a) = a^2$인 경우 미적분 교과서 공식 표에서 도함수가 $2a$와 같다고 알려줄 것입니다. 여기서 살펴본 예제는 $a=2$일 때 $f(a) = 4$, $a=2.001$일 때 $f(a) = 4.004$이고 $a$를 조금 이동시켰을 때 $f(a)$는 4배 더 많이 올라갔고 실제로 $a=2$일 떄 도함수는 $4$가 됩니다.
다른 예제를 보겠습니다. 이제 $f(a)=a^3$가 이라고 해봅시다. 미적분학 교과서를 보고 공식 표를 찾아보면, 이 함수의 기울기는 이 함수의 도함수가 $3a^2$와 같습니다. 따라서 이 공식은 미적분 교과서에서 찾을 수 있는데요. 그래서 이것은 무슨 뜻일까요?
이것을 이해하는 방법은 다음과 같습니다. 다시 $a=2$인 경우를 예로 들어보겠습니다. 따라서, $f(a)=a^3=8$이고 여기서 아주 조금 이동시킨다고하면 $f(a)$가 약 $8.012$라는 것을 알 수 있습니다.
그러면 $a$가 $2$인 경우 값이 $3$ x $2^2$이니 $3$ x $4$가 되므로 그 값은 $12$가 됩니다. 그러므로 미분 공식은 $a$를 우측으로 아주 조금 이동시키는 경우에 $f(a)$값이 12배로 올라야 한다고 예상하는 것입니다. 그리고 실제로 이것은 $a$가 $.001$만큼 증가하고 $f(a)$가 $.012$만큼 12배 증가했을 때 사실입니다.
마지막으로 한 가지 예제만 더 보고 마무리 하겠습니다.
$f(a)$가 로그함수라고 해봅시다. 미적분 교과서에서 보면 이 함수의 기울기는 $\frac{1}{a}$로 주어집니다. 이것을 해석하는 방법은 $a$가 만약 어떤 값이 있는 경우 계속 $a=2$를 예로 사용하겠습니다. $a$를 $0.001$만큼 오른쪽으로 조금 이동하면 $f(a)$가 $\frac{1}{a}$만큼 올라갈 것으로 예상한다는 것입니다.
즉, 도함수가 $a$가 이동하는 양 만큼 곱한 값입니다. 따라서 실제로 계산기를 꺼내면 $a=2$일 때 $f(a)$는 약 $0.69315$이고 $a$를 $2.001$로 증가시키면 $f(a)$는 대략적으로 $0.69365$가 됩니다. 이것은 $0.0005$만큼 증가했습니다.
그리고 실제로 $a=2$일 때 도함수의 공식을 보면 $\frac{d}{da}f(a)=\frac{1}{2}$임을 확인할 수 있습니다. 따라서 이 미분 공식은 만약 여러분이 $a$를 $0.001$만큼 증가시키는 경우 $f(a)$가 $a$의 $\frac{1}{2]$인 $0.0005$만큼 증가합니다.
따라서 작은 삼각형을 그려보면 가로 축에서 세로 축이 $0.001$만큼 올라가면 $\log{a}$가 절반으로 올라가서 $0.0005$가 됩니다. 그리고 이 경우 $a=2$일 때 이선의 기울기는 $\frac{1}{a}$인 $\frac{1}{2}$가 됩니다.
자 이게 도함수에 대한 내용 전부인데요. 여기서 2가지 가져가실 것이 있습니다. 첫째, 함수의 도함수는 함수의 기울기를 의미하며 그 기울기는 함수가 위치하고 있는 지점에 따라 값이 달라질 수 있다는 점입니다.
첫 번째 예제에서는 $f(a) = 3a$인 직선 그래프를 보았는데요 이 경우에 도함수는 모든 곳에서 동일했고 모든 곳에 동일하게 기울기는 $3$이었습니다. $f(a) = a^2$ 또는 $f(a) = \log{a}$와 같은 다른 함수의 경우 선의 기울기가 달라집니다.
따라서 기울기 또는 도함수는 곡선의 지점에 따라 그 값이 다를 수 있습니다. 그게 첫 번째 여러분이 가져가셔야 할 사항입니다. 도함수는 직선의 기울기를 의미합니다.
두 번째로 가져가셔야 할 포인트는 함수의 도함수를 찾고 싶다면 미적분 교과서를 펴거나 Wikipedia를 검색하면 종종 다른 지점에서 이러한 함수의 기울기에 대한 공식을 얻을 수 있습니다. 그래서 도함수나 선의 기울기를 직관적으로 이해하시길 바랍니다.
자 이제 계산 그래프와 이를 사용하여 더 복잡한 함수의 도함수를 계산하는 방법에 대해 이야기하겠습니다.
Computation Graph
앞서 신경망의 계산이 신경망의 출력을 계산하고 기울기를 계산하거나 도함수를 계산하는 데 사용하는 역방향 통과 또는 후방 전파 단계의 관점에서 구성되어 있다고 했습니다. 계산 그래프는 왜 이렇게 구성되어 있는지 설명합니다. 몇가지 예시를 들겠습니다.
계산 그래프를 설명하기 위해, 로지스틱 회귀 또는 다른 신경망보다 간단한 예제를 사용하겠습니다. $J$함수를 계산하려고 하면, 이것은 세 변수 $a,b,c$의 함수이고, 그 함수가 $3(a+bc)$라고 가정합시다.
이 함수를 계산하는데는 실제로 세 가지 단계가 있습니다.
첫 번째로, $bc$가 어떤 값을 갖는지 계산해야 하며, 이를 변수 호출 $u$에 저장한다고 가정해 보겠습니다. 그러면 $u=bc$이고 $v=a$ x $u$를 계산하면 되겠죠. 그리고 마지막으로 출력 $J$는 $3v$입니다.
이것이 여러분의 최종 함수 $J$입니다. 바로 여러분이 계싼하려고 한 것이었죠.
이 세가지 단계로 다음과 같이 계산 그래프로 그립니다.
3개의 변수 $a,b,c$를 그렸다고 해보죠. 그래서 우리가 가장 먼저 한 것은 $u=bc$를 계산하는 것 이었습니다. 따라서 저는 그 주위를 직사각형으로 둘러서 표시하겠습니다. 그러면 이것의 입력값이 $b$와 $c$가 될 것입니다.
그러면 $v=a+u$가 되고 이것의 입력값은 $a$와 $u$가 됩니다.
마지막으로, $J=3v$입니다. 예를 들어, 만약 $a=5, b=3$이고 $c=2$이면 $u=bc=6$일 것입니다. 왜냐하면, $a+u$는 $5+6$으로 $11$이 되고 $J$는 이 값의 3배이기 때문에 $33$이 됩니다.
따라서 계산 그래프는 이 경우 $J$와 같이 최적화할 식별 변수 또는 특수 출력 변수가 있을 때 유용하다는 겁니다. 그리고 로지스틱 회귀의 경우 $J$는 물론 최소화 하려고 하는 비용 함수입니다.
그리고 이 작은 예에서 우리가 보고 있는 것은 왼쪽에서 오른쪽으로 통과하는 식으로 $J$의 값을 계산할 수 있다는 것이며 그리고 우리가 다음에 보게될 도함수를 계산하기 위해서는 오른쪽에서 왼쪽으로 통과한다는 것입니다. 파란색 화살표와 같이 반대 방향으로 가고 있습니다. 도함수를 계산하기 위해서는 그것이 가장 자연스럽습니다.
되짚어보면, 계산 그래프는 왼쪽에서 오른쪽으로 파란색 화살표를 사용하여 계산을 구성하였습니다. 다음에는 도함수 뒤의 빨간색 화살표를 오른쪽에서 왼쪽으로 계산하는 방법에 대해 살펴보겠습니다.
댓글남기기