[밑시딥1] 신경망에서 미분의 의미? 신경망의 파라미터를 자동으로 갱신하는 방법 – 4장 신경망학습

신경망에서 미분은 어떤 의미일까요? 신경망의 파라미터는 학습이라는 과정을 통해 자동으로 갱신되게 됩니다. 어떻게 자동으로 갱신될까요?

일단, 손실함수(loss fn)를 정의하고 손실함수의 값이 줄어드는 방향으로 학습하게 됩니다. 손실함수는 데이터와 신경망에 목적에 맞게 정의하면 됩니다.

‘신경망을 학습한다’라는 것

신경망을 학습(갱신)한다는 의미는 다층퍼셉트론의 w, b를 갱신한다는 의미이며, 수천만개 이상의 w와 b가 있다고 생각해봅시다. w, b는 신경망의 파라미터라고 하며, 파라미터를 갱신해서 모든 학습데이터(x)에 대해 손실함수의 값의 합이 최저가 되는 파라미터를 찾아나 갑니다. 이렇게 수많은 w, b를 하나하나 조금씩 변화시키며 최적의 파라미터를 찾아나가게 됩니다. 최적의 파라미터를 효율적으로 찾아내기 위해 미분을 사용하게 됩니다.

예를들면 미분값이 음수면 파라미터를 양의방향으로 변화시킵니다. 미분 값을 구하는 것이 신경망을 학습시키는데 필수적인 과정이라고 볼 수 있습니다.

퍼셉트론의 각 노드의 w, b마다 각각의 미분값을 구해주어야 합니다. 한 변수에 대해 미분하는 것을 편미분이라 부릅니다.

해석적 미분과 진정한 미분

해석적 비분과 수치적 미분의 차이

우리가 고등학생때 배웠던 미분은 해석적 미분이고, 진정한(정확한) 미분값입니다. 하지만 컴퓨터에서는 해석적 미분값을 구할 수가 없습니다. 따라서 수치미분값을 미분값으로 활용합니다.

이렇게 수치미분을 이용해서 각 파라미터(w, b)의 미분값을 모아놓은 것을 그래디언트라고 하고 Gradient Decent를 통해 손실함수의 합이 최소가 되는 파라미터 값을 찾아나가는 것이 신경망에서의 학습입니다.

하지만 우리는 가진 모든데이터를 한번에 활용해서 손실함수값의 합의 최소값을 찾아낼수 없기때문에 (데이터가 너무 커서) 미니배치로 학습을 하게 되고, 학습률이라는 개념을 통해 미니배치별로 서서히 파라미터를 업데이트 하는 과정을 거칩니다.

신경망에서 미분과 학습과정

정리하자면, 신경망에는 수많은 w,b(파라미터)가 존재하는데, 학습데이터로 파라미터를 자동 갱신 해야하는데, 손실함수의 합이 최소가 되는 지점으로 갱신하기 위해, 파라미터를 편미분을 하여 Gradient를 구하고, 신경망내의 파라미터를 학습률(learning rate)에 따라 조금씩 업데이트 하게 됩니다.

Leave a Comment