신경망은 숫자를 여러 층의 단순한 연산에 통과시켜 입력을 출력으로 바꾸는 수학적 모델입니다. 각 층은 이전 값들로 가중합을 만들고, 편향을 더한 뒤, 비선형 활성화 함수를 적용하고, 그 결과를 다음 층으로 전달합니다.
이 설명은 다소 추상적으로 들릴 수 있지만, 핵심 아이디어는 간단합니다. 신경망은 조절 가능한 많은 가중치를 학습해서, 입력의 유용한 패턴이 출력의 유용한 예측으로 이어지게 만듭니다.
신경망이란 무엇인가
입력이 인 하나의 뉴런에 대해, 기본 계산은 다음과 같습니다.
그다음 활성화를 적용합니다.
여기서 은 가중치, 는 편향, 는 ReLU, sigmoid, tanh 같은 활성화 함수입니다.
완전한 순전파 신경망은 이 패턴을 여러 층에 걸쳐 반복합니다. 간단히 쓰면, 한 층은 보통 다음과 같이 표현합니다.
여기서 는 이전 층의 출력입니다.
보통 이해가 확실해지는 직관
각 뉴런은 자신이 보는 입력에 대해 가중치가 붙은 질문을 던진다고 생각할 수 있습니다. 큰 양의 가중치는 어떤 특징을 더 중요하게 만듭니다. 음의 가중치는 특정 패턴에 반대로 작용할 수 있습니다. 편향은 기준점을 이동시키고, 활성화 함수는 그 뉴런이 얼마나 강하게 반응할지를 결정합니다.
층을 쌓으면 네트워크는 단계적으로 특징을 만들어낼 수 있습니다. 앞쪽 층은 단순한 패턴을 감지하고, 뒤쪽 층은 그것들을 결합해 최종 작업에 더 유용한 내부 신호를 만듭니다.
그래서 신경망은 단순히 "수식이 많이 동시에 있는 것" 이상입니다. 신경망은 단순한 함수들의 합성이며, 바로 그 합성이 유연성을 만들어냅니다.
하나의 계산 예제
입력이 2개이고, 은닉층이 1개이며, 출력이 1개인 아주 작은 네트워크를 생각해 봅시다. 입력은 다음과 같습니다.
은닉층에 뉴런이 2개 있고 ReLU를 사용한다고 합시다. 이때
은닉층 계산을 다음과 같이 둡니다.
이제 이 은닉값들을 출력 뉴런으로 보냅니다.
규칙이 "이면 클래스 1로 예측한다"라면, 이 입력은 클래스 1로 분류됩니다.
중요한 것은 구체적인 숫자 자체가 아닙니다. 중요한 것은 구조입니다.
- 입력을 받는다
- 가중합을 만든다
- 비선형 활성화를 적용한다
- 반복한다
- 최종 점수를 읽는다
이것이 바로 신경망이 순전파를 수행하는 방식입니다.
신경망은 어떻게 학습하는가
네트워크를 사용하는 것과 학습시키는 것은 서로 다른 문제입니다.
표준적인 지도학습에서는 먼저 네트워크가 예측을 만듭니다. 그다음 손실 함수가 그 예측이 정답에서 얼마나 떨어져 있는지를 측정합니다. 기울기 기반 학습은 각 가중치와 편향에 대해 손실이 어떻게 변하는지 계산하고, 손실을 줄이는 방향으로 그것들을 업데이트합니다.
현대의 실무에서는 보통 역전파와 경사하강법, 또는 그와 관련된 옵티마이저를 사용합니다. 이 방식은 모델과 손실 함수가 미분 가능하거나, 적어도 기울기 방법이 작동할 만큼 구간별로 충분히 미분 가능하다는 점에 의존합니다.
짧게 쓰면 다음과 같습니다.
많은 예제를 거치면서, 가중치는 작업에 도움이 되는 패턴 쪽으로 점차 이동합니다.
흔한 실수
층이 많으면 자동으로 더 좋은 결과가 나온다고 생각하기
그렇지 않습니다. 층이 많아지면 표현 능력은 커지지만, 최적화, 필요한 데이터 양, 과적합 제어는 더 어려워집니다.
왜 비선형성이 중요한지 잊기
모든 층이 선형이기만 하면, 전체 네트워크는 결국 하나의 선형 사상에 불과합니다. 활성화 함수가 있어야 깊은 네트워크가 더 복잡한 관계를 표현할 수 있습니다.
출력을 확실한 정답처럼 받아들이기
네트워크의 출력은 그 뒤에 있는 모델, 데이터, 학습 설정만큼만 유용합니다. 높은 점수가 곧 증명을 의미하는 것은 아닙니다.
입력 표현을 무시하기
신경망은 의미 자체에서 학습하지 않습니다. 신경망은 주어진 수치 표현에서 학습합니다. 입력이 부실하거나, 일관성이 없거나, 중요한 구조를 놓치고 있으면 보통 성능이 떨어집니다.
신경망은 언제 사용되는가
신경망은 입력과 출력 사이의 관계가 충분히 복잡해서 사람이 직접 만든 규칙이 쉽게 깨지거나 불완전할 때 사용됩니다. 대표적인 예로 이미지 인식, 음성, 언어 모델링, 추천 시스템, 일부 예측 작업이 있습니다.
하지만 모든 문제에서 자동으로 최선의 선택은 아닙니다. 작고 구조화된 데이터셋에서는 더 단순한 모델이 학습하기 쉽고, 해석하기 쉽고, 때로는 성능도 비슷하게 좋을 수 있습니다.
좋은 사고 모형
신경망을 조절 가능한 손잡이가 많이 달린 층형 함수라고 생각해 보세요. 순전파는 하나의 입력을 하나의 출력으로 바꿉니다. 학습은 그 손잡이들을 바꿔서 이후의 출력이 작업에 더 유용해지도록 만듭니다.
이것이 두 가지 아이디어를 함께 붙잡는 가장 깔끔한 방식입니다. 신경망은 함수의 합성으로 계산하고, 오차를 줄이도록 매개변수를 조정하면서 학습합니다.
직접 해보기
같은 작은 네트워크를 유지한 채 입력을 에서 으로 바꿔 보세요. , , , , 그리고 최종 점수 를 다시 계산해 보세요. 그런 다음 가중치 하나를 바꾸고 출력의 어느 부분이 달라지는지 확인해 보세요. 이런 작은 연습은 정의만 외우는 것보다 순전파의 아이디어를 훨씬 더 구체적으로 이해하게 해 줍니다.