뉴런과 퍼셉트론의 탄생
딥러닝의 가장 작은 단위인 퍼셉트론은 사람의 뇌에 있는 뉴런을 수학적으로 모방한 것입니다. 뇌에는 약 10의 11승 개의 뉴런이 있고, 하나의 뉴런이 다른 뉴런과 약 천 개의 연결을 가지고 있어 전체 연결 수는 10의 14승 개에 달합니다. 이 뉴런들이 전기 신호를 주고받으며 빠른 속도로 정보를 처리하는 구조가 신경망의 원형입니다.
뉴런을 수학으로 표현하면 간단합니다. 인접한 뉴런에서 오는 전기 신호를 특징 x1, x2, x3로 보고, 각 연결의 강도를 가중치 W로 표현합니다. 자주 쓰는 연결일수록 강한 가중치를 가지고, 거의 안 쓰는 연결은 약한 가중치를 가집니다. 이 가중치 합을 구한 다음 활성 함수를 통과시켜 다음 뉴런으로 신호를 전달하는 것이 퍼셉트론의 기본 구조입니다.
1950년대에 로젠블렛이 이 구조를 바탕으로 퍼셉트론을 제안했고, 당시 사람들은 뇌를 모방했다는 사실에 엄청난 기대를 품었습니다. 1960년대까지 AI에 막대한 자본이 투입됐지만 결과가 따라오지 못했고, 1969년 민스키와 페퍼트가 퍼셉트론이 단순한 선형 분류기에 불과하고 XOR 문제조차 풀지 못한다는 것을 수학적으로 증명하면서 첫 번째 AI 겨울이 찾아왔습니다.
신경망의 부활과 두 번의 겨울
민스키는 퍼셉트론의 한계를 지적하는 동시에 다층 구조를 이용하면 이 문제를 해결할 수 있다는 해법도 제시했습니다. 1986년 루멜하트가 다층 퍼셉트론을 실용 수준으로 끌어올린 연구들을 집대성한 책을 출간하면서 신경망이 부활했고, 우편물 우편번호를 인식하는 분류기까지 만들어졌습니다. 하지만 1990년대에 수학적으로 깔끔하고 성능도 뛰어난 **서포트 벡터 머신(SVM)**이 등장하면서 두 번째 겨울을 맞이했습니다.
현재는 딥러닝이 SVM이 감히 못 하는 수준의 일들을 수행하고 있고, 딥러닝을 대적할 새로운 패러다임을 가진 모델이 나오기 어려운 상황입니다.
퍼셉트론의 구조와 동작
퍼셉트론은 두 단계로 구성됩니다. 첫 번째 단계는 선형 연산으로, 입력 특징 벡터 x와 가중치 벡터 w의 내적에 바이어스 b를 더합니다. 두 번째 단계는 활성 함수를 통과시켜 출력을 내는 것입니다.
바이어스 표기를 간결하게 하기 위해 x0라는 0번째 차원을 추가하고 그 값을 1로 고정하는 방식을 씁니다. 이렇게 하면 w0가 바이어스 역할을 하게 되고, 수식 전체를 x와 w의 내적 하나로 깔끔하게 표현할 수 있습니다. GPU 관점에서도 덧셈 연산을 따로 수행하는 것보다 행렬 곱 하나로 처리하는 것이 훨씬 효율적입니다.
퍼셉트론의 활성 함수는 계단 함수입니다. w와 x의 내적 값이 양수면 1, 음수면 -1을 출력해 두 클래스 중 하나로 분류합니다. 결정 경계는 직선이 되고, 특징이 3차원이면 결정 평면, 그 이상이면 결정 초평면이 됩니다. 퍼셉트론은 이런 이유로 이진 분류기이자 선형 분류기입니다.

퍼셉트론의 목적 함수와 델타 규칙
퍼셉트론을 학습시키려면 먼저 목적 함수를 정의해야 합니다. 좋은 목적 함수는 세 가지 조건을 만족해야 합니다. 첫째, 값이 항상 0 이상이어야 합니다. 둘째, 모든 샘플을 맞추면 목적 함수가 0이 돼야 합니다. 셋째, 틀리는 샘플이 많을수록 목적 함수가 커져야 합니다.

평균 제곱 오차(MSE)를 쓰지 않은 이유가 있습니다. 계단 함수를 미분하면 전 구간에서 미분값이 0이 나오기 때문에, MSE를 쓰면 그래디언트가 항상 0이 되어 가중치 업데이트 자체가 불가능합니다.
그래서 퍼셉트론에는 틀린 샘플들만 모은 집합 Y에 대해 예측값과 레이블의 곱에 음수를 붙인 형태의 목적 함수를 사용합니다. 틀린 샘플은 예측값과 레이블의 부호가 항상 반대이므로 이 곱이 항상 음수가 되고, 거기에 음수를 붙이면 목적 함수는 항상 양수가 됩니다. 맞추는 샘플이 없으면 Y가 공집합이 되어 목적 함수가 0이 됩니다. 세 가지 조건을 모두 만족하는 거죠.
이 목적 함수를 w로 미분하면 델타 규칙이 나옵니다.
w_i ← w_i + ρ × Σ y_k × x_ki
델타 규칙의 물리적 의미는 명확합니다. 레이블 y와 특징 x의 내적 값이 클수록 그 특징이 레이블을 예측하는 데 중요하게 사용된다는 뜻이고, 그만큼 가중치를 더 크게 업데이트합니다. 키와 남자/여자 레이블의 내적은 크게 나오지만, 학점과 남자/여자 레이블의 내적은 0에 가깝게 나옵니다. 중요한 특징은 높은 가중치를 가지고, 상관없는 특징은 낮은 가중치를 가지도록 자연스럽게 학습되는 것이죠.
내적 값이 음수여도 중요한 특징일 수 있습니다. 양수냐 음수냐는 정방향 상관관계냐 역방향 상관관계냐의 차이일 뿐, 절댓값이 크면 그만큼 레이블 예측에 중요한 특징입니다.
퍼셉트론의 한계와 다층 퍼셉트론
퍼셉트론의 결정 경계는 직선 하나이기 때문에, XOR처럼 직선으로 분리할 수 없는 데이터는 100% 분류가 불가능합니다. 이 한계를 극복하기 위해 나온 것이 다층 퍼셉트론(MLP)입니다.
다층 퍼셉트론이 퍼셉트론과 다른 세 가지 핵심 아이디어가 있습니다.
첫째, 은닉층을 둡니다. 은닉층은 입력층과 출력층 사이에 존재하며, 사용자가 볼 수 없는 내부 층입니다. 은닉층의 역할은 선형 분리가 어려운 특징 공간을 선형 분리가 더 잘 되는 공간으로 변환하는 것입니다. 예를 들어 XOR 문제에서 두 개의 퍼셉트론이 각각 결정 직선을 그으면, 원래 2차원 특징 공간이 새로운 특징 공간으로 변환되면서 선형 분리가 가능해집니다.
둘째, 시그모이드 활성 함수를 사용합니다. 계단 함수의 미분값이 전 구간에서 0이기 때문에 MSE로 학습이 불가능했던 문제를 시그모이드가 해결합니다. 시그모이드는 부드러운 곡선이라 미분값이 존재하고, MSE와 연쇄 법칙을 함께 사용하면 모든 파라미터를 업데이트할 수 있습니다. 계단 함수가 무조건 1 또는 -1로 출력하는 경성 의사결정을 하는 반면, 시그모이드는 0과 1 사이의 연속값을 출력해 신뢰도 정보를 제공합니다.
셋째, 오류 역전파 알고리즘을 사용합니다. 출력 끝에서 손실값으로부터 로컬 그래디언트를 하나씩 구하면서 입력 방향으로 전달해, 모든 레이어의 가중치를 업데이트하는 방식입니다.

은닉층의 공간 변환 효과
은닉층의 퍼셉트론을 늘릴수록 특징 공간을 더 세밀하게 분할할 수 있습니다. 퍼셉트론 하나는 결정 직선 하나를 그어 공간을 둘로 나누고, p개의 퍼셉트론은 특징 공간을 최대 1+2+...+p 개의 영역으로 분할합니다. 각 영역에 속한 모든 샘플은 p차원 새로운 공간의 하나의 점으로 맵핑됩니다. 레이어를 깊게 쌓을수록 이 변환이 점진적으로 여러 번 일어나면서 흰 돌과 검은 돌이 조금씩 분리되는 방향으로 이동하게 됩니다.
은닉층 노드 개수 p는 유저가 직접 정하는 하이퍼파라미터입니다. 데이터가 적으면 오버피팅을 피하기 위해 작게, 데이터가 많으면 크게 설정하면 됩니다.

활성 함수의 종류와 선택
시그모이드 계열
로지스틱 시그모이드는 출력 범위가 0에서 1이고, 하이퍼볼릭 탄젠트는 -1에서 1입니다. 두 함수 모두 구간 내에서 미분값이 존재해 역전파 학습이 가능합니다. 하지만 입력값이 양수 또는 음수 방향으로 커질수록 기울기가 급격히 0에 가까워지는 그래디언트 소멸 문제가 있습니다. 레이어를 2개 이상 쌓으면 학습이 잘 되지 않는 이유가 여기에 있습니다.
ReLU
ReLU(Rectified Linear Unit)는 입력이 양수면 그대로 통과시키고, 음수면 0으로 만드는 함수입니다. 미분값은 양수 구간에서 1로 일정하게 유지되기 때문에 레이어를 50개 이상 쌓아도 그래디언트가 소멸되지 않아 딥 뉴럴 네트워크 학습에 필수적입니다. 계산량도 극도로 단순합니다. 음수면 0, 양수면 자기 자신. 하드웨어 구현에서도 압도적으로 유리합니다.
활성 함수의 근본적인 딜레마는, 왜곡을 반드시 만들어야 한다는 것입니다. 왜곡 없이 선형 연산만 반복하면 레이어를 아무리 쌓아도 결국 선형 방정식 하나와 동일하기 때문입니다. 그래서 활성 함수는 왜곡을 만들되 그래디언트도 잘 보존하는 방향으로 발전해 왔고, ReLU는 음수 구간을 포기하는 대신 양수 구간의 그래디언트를 온전히 보존하는 방식으로 이 트레이드오프를 해결했습니다.
은닉층에는 일반적으로 ReLU를 사용하고, 출력층은 출력 범위에 맞는 함수를 별도로 씁니다. 분류 문제에서는 소프트맥스, 이진 분류에서는 시그모이드를 출력층에 사용하는 식입니다.


오류 역전파 알고리즘
오류 역전파는 손실값으로부터 각 연산마다 로컬 그래디언트를 구해 입력 방향으로 전달하면서 모든 가중치를 업데이트하는 알고리즘입니다. 연쇄 법칙을 반복 적용하는 것이 핵심이고, 구조 자체는 단순합니다.
학습 과정은 세 단계로 이루어집니다. 먼저 전방 계산으로 입력을 출력까지 통과시켜 손실값을 구합니다. 그다음 역전파로 손실로부터 각 가중치에 대한 그래디언트를 구합니다. 마지막으로 그래디언트의 반대 방향으로 가중치를 업데이트합니다.
전방 계산에서 구한 중간값들은 역전파에서 그대로 재사용되기 때문에 반드시 메모리에 저장해 두어야 합니다. 추론(inference) 시에는 전방 계산만 수행하면 되기 때문에 이 중간값들을 저장할 필요가 없습니다.
딥 뉴럴 네트워크가 성공한 핵심 이유는 단순성과 연산의 동질성입니다. 전방 계산이든 역전파든 수행하는 연산이 행렬 곱과 원소별 연산 두 가지뿐입니다. 모든 레이어가 완전히 동일한 연산을 반복하기 때문에 GPU 병렬 처리에 최적화되어 있고, 레이어를 몇 개를 쌓아도 동일한 코드 구조로 처리할 수 있습니다.
미니 배치와 GPU 병렬 처리
미니 배치 방식은 전체 데이터를 T개씩 묶어서 묶음마다 그래디언트를 평균 내어 업데이트합니다. 샘플 하나씩 업데이트하는 확률적 경사 하강법보다 노이즈가 줄어 수렴이 안정적이고, 전체 배치보다 훨씬 빠릅니다. T개의 샘플을 T개의 GPU에 나눠 넣으면 이론적으로 T배의 속도 향상을 얻을 수 있기 때문에 GPU 병렬 처리와도 잘 맞습니다.
배치 사이즈가 클수록 전체 데이터의 통계적 특성을 더 잘 따르기 때문에 성능이 좋아지는 경향이 있습니다. 통계학적으로 66개 이상이면 모집단의 평균과 분산을 잘 근사하는 것으로 알려져 있습니다. GPU 메모리가 충분하다면 배치 사이즈를 최대한 크게 잡는 것이 좋습니다.
미니 배치 방식과 확률적 경사 하강법의 알고리즘 차이는 하나뿐입니다. 업데이트 시 그래디언트를 T로 나눠 평균을 낸다는 점입니다.
'학교공부 > 딥러닝' 카테고리의 다른 글
| [딥러닝] 딥러닝 최적화(1) (0) | 2026.03.24 |
|---|---|
| [딥러닝] 다층 퍼셉트론 (0) | 2026.03.05 |
| [딥러닝] 기계학습과 수학(2) (0) | 2026.03.04 |
| [딥러닝] 기계학습과 수학(1) (0) | 2026.03.04 |
| 딥러닝 [수정중] (0) | 2025.12.12 |