더북(TheBook)

또한, 비선형 함수는 중첩(cascading)하여 적용함으로써 더 다양한 비선형 함수를 구성한다는 점에서 선형 함수와 다릅니다. 여기에서 중첩한다는 것은 한 함수의 출력을 다른 함수의 입력으로 전달한다는 뜻입니다. 다음에 있는 두 개의 선형 함수를 생각해 보죠.

f(x) = k1 * x + b1

g(x) = k2 * x + b2

두 함수를 중첩하여 새로운 함수 h를 정의할 수 있습니다.

h(x) = g(f(x)) = k2 * (k1 * x + b1) + b2 = (k2 * k1) * x + (k2 * b1 + b2)

여기서 볼 수 있듯이 h는 여전히 선형 함수입니다. f1, f2 그리고 커널(기울기)과 편향만 달라졌습니다. 기울기는 (k2 * k1)이고 편향은 (k2 * b1 + b2)입니다. 몇 개의 선형 함수를 중첩해도 언제나 결국 하나의 선형 함수가 됩니다.

하지만 자주 사용되는 비선형 활성화 함수인 렐루를 생각해 보죠. 그림 3-3의 아래쪽에서 선형적으로 스케일링된 두 개의 렐루 함수를 중첩했을 때 어떤 일이 일어나는지 볼 수 있습니다. 스케일이 다른 두 개의 렐루 함수를 중첩하여 전혀 렐루 같지 않은 함수를 얻었습니다. 결과 함수는 새로운 형태입니다(이 경우 아래로 향하는 경사면 양쪽에 두 개의 평평한 영역이 있습니다). 이 계단 함수와 다른 렐루 함수를 중첩하면 (그림 3-3에는 없지만) ‘윈도(window)’ 함수, 여러 윈도로 구성된 함수, 넓은 윈도 위에 좁은 윈도가 놓여 있는 함수 등과 같이 훨씬 더 다양한 함수를 얻게 됩니다. (가장 널리 사용되는 활성화 함수 중 하나인) 렐루 같은 비선형 함수를 중첩하여 만들 수 있는 함수는 매우 다양합니다. 이것이 신경망과 무슨 관련이 있을까요? 근본적으로 신경망은 중첩된 함수이며, 신경망의 각 층을 하나의 함수로 볼 수 있습니다. 차례대로 층을 쌓는 것은 이런 함수를 중첩하여 더 복잡한 함수를 만드는 것과 동일합니다. 이 복잡한 함수가 신경망 그 자체입니다. 이제 왜 비선형 활성화 함수를 포함시키는 것이 모델이 학습할 수 있는 입력-출력 관계의 범위를 증가시키는지 명확합니다. 또한, 자주 사용되는 ‘심층 신경망에 더 많은 층을 추가하기’ 트릭을 직관적으로 이해할 수 있습니다. 이런 방법을 통해 (항상은 아니지만) 종종 모델이 데이터셋을 더 잘 학습할 수 있는 이유도 알 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.