상세 컨텐츠

본문 제목

[Deep Learning - 딥러닝]수학 배경 지식(벡터, 행렬, 연쇄법칙, 합성함수, 미분, 기울기)

Artificial Intelligence

by [성운] 2019. 9. 21. 12:48

본문

이번 포스팅은 딥러닝을 이해하기 위해 선행학습으로 수학 내용을 정리했습니다. 수학에 대한 깊이 있는 내용 보다는 간단한 정의 위주로 정리했으며, 깊은 내용은 타 사이트를 참고 바랍니다.

Vector and Matrix: 벡터와 행렬

벡터는 크기와 방향을 가진 양입니다. 벡터는 숫자가 일렬로 늘어선 집합으로 표현할 수 있으며, 파이썬에서 1차원 배열로 numpy.array()함수를 이용해 처리할 수 있습니다.

행렬은 숫자가 2차원 형태(사각형 형상)로 파이썬에서 numpy.array()함수를 이용해 처리할 수 있습니다.

열벡터 ,  행벡터
2 행 3열 행렬

 

Dot product: 벡터의 내적

벡터의 내적은 두 벡터에서 대응하는 원소들의 곱을 모두 더한 것입니다. 벡터의 내적의 수식은 다음과 같습니다.

벡터의 내적

벡터의 내적은 두 벡터가 얼마나 같은 방향으로 향하고 있는가를 나타냅니다. 벡터의 길이가 1일 때 같은 방향이면 두 벡터의 내적은 1이 되고, 반대 방향일 경우 벡터의 내적은 -1이 됩니다.

 

Matrix Multiplication: 행렬의 곱

행렬의 곱

결과 값 11열은 A행렬 1행과 B행렬 1열의 연산한 결과입니다. 그리고 A행렬의 열과 B행렬의 행의 크기가 같아야 행렬의 곱이 수행됩니다. 또한 결과는 A행렬의 행과 B행렬의 열의 크기로 됩니다.

 

Derivative and slope: 미분과 기울기

신경망 학습의 목표는 손실을 최소화하는 매개변수를 찾는 것입니다. 이때 손실(비용) 함수를 미분하여 기울기를 이용해 최소화하는 매개변수를 찾습니다.

독립변수가 하나일 경우, x라는 변수 하나에 대해 미분의 수식은 다음과 같습니다.

1개 독립변수 x에 대한 미분

함수 f(x)에 대해서 x의 변화량에 대한 y의 변화량을 뜻하며, x가 한없이 작아질 경우 비용함수 그래프에 한 점에 가까워 지고, 이는 그래프의 기울기가 됩니다.

이번에는 여러 개의 변수(다변수)에 대한 수식입니다.

다변수 x에 대한 미분

  • 비용함수 그래프 L은 스칼라
  • x는 벡터이며 함수 L=f(x)
  • xix i번째 원소를(차원) 의미하며 xi에 대한 L의 미분을 의미함

이처럼 벡터의 각 원소에 대한 미분을 정리한 것이 기울기(gradient)입니다. 벡터와 마찬가지로 행렬에서도 기울기를 적용할 수 있습니다. Wm*n 행렬이면, L=g(W) 함수의 기울기는 다음과 같습니다(LW에 대한 기울기).

W의 형상과(m*n)과 기울기의 형상은(m*n)으로 같습니다. 이 성질은 매개변수 갱신과 연쇄 법칙에 이용됩니다.

 

Chain Rule: 연쇄 법칙

연쇄 법칙은 비용 함수의 결과로 얻은 오차를 기반으로 가중치를 조정하는 오차역전파(back propagation)을 이해하기 위한 사전 내용입니다.

신경망의 각 계층마다 미분을 하는 변수가 다릅니다. 이를 위해서는 사용되는 법칙이 연쇄 법칙 입니다.

연쇄 법칙이란 합성함수로 수식은 다음과 같습니다.

연쇄 법칙

연쇄법칙을 이용해 x에 대한 z의 미분은 y=f(x)의 미분과 z=g(y)의 미분을 곱하면 구할 수 있습니다.

 

계산 그래프 및 편 미분

계산 그래프에서는 연산을 노드로 나타내고 그 처리 결과가 순서대로 흐릅니다. 이것이 계산 그래프의 순전파입니다. 계산 그래프를 이용하면 계산을 시각적으로 파악할 수 있습니다.

기울기는 순전파와 반대 방향으로 전파되며, 이 전파가 역전파입니다. 이 역전파는 정답과 비교하여 오차인 L(Loss)를 반환하고 이 그래프에 대해 각 변수에 대해 편미분을 수행하여 기울기를 구합니다.

덧셈노드

Sum Node Graph
Sum Node derivative

곱셈노드

Multiply Node Graph
Multiply Node derivative

분기노드

Divide Node Graph

MatMul 노드

MatMul Node Graph

 

미니 배치일 경우 행렬 곱의 형상 확인

 

글이 도움되셨다면 공감 부탁 드립니다.

감사합니다.

 

[Reference]

밑바닥부터 딥러닝2

관련글 더보기

댓글 영역