#wannabeeeeeee the best DataScientist
3장. 다층 퍼셉트론 본문
신경망은 기계 학습 역사상 가장 오래된 모델 중 하나이며, 오랜 시간 동안 다양한 형태로 발전해왔습니다. 특히 딥러닝의 부상 이후, 신경망은 다시금 기계 학습의 핵심 기술로 자리 잡았습니다.
신경망의 역사
- 1958년, 프랑크 로젠블렛(Frank Rosenblatt)은 최초의 신경망 모델인 퍼셉트론(Perceptron) 을 제안합니다.
- 그러나 1969년, 마빈 민스키와 세이무어 페퍼트가 공저한 『Perceptrons』에서는 퍼셉트론의 수학적 한계를 지적했습니다. 대표적으로, 퍼셉트론은 XOR 문제를 해결할 수 없다는 것이 드러났고, 이는 1차 암흑기로 이어졌습니다.
- 1986년, 루멜하트와 맥클랜드는 『Parallel Distributed Processing』을 통해 다층 퍼셉트론(Multilayer Perceptron, MLP) 을 제안하며 신경망 연구를 부활시켰습니다.
- 하지만 1990년대, 서포트 벡터 머신(SVM)과 같은 다른 알고리즘이 주목받으면서 2차 암흑기가 찾아옵니다.
- 이후, 2000년대 들어 GPU의 발전과 대규모 데이터셋의 등장으로 딥러닝이 가능해졌고, 신경망은 다시 기계 학습의 중심 기술이 되었습니다.
신경망의 주요 분류
1. 전방 신경망 vs. 순환 신경망
- 전방 신경망(Feedforward Neural Network)
→ 입력이 출력 방향으로 한 방향으로만 전달되는 구조입니다.
→ 퍼셉트론, 다층 퍼셉트론(MLP), 컨볼루션 신경망(CNN) 등이 해당됩니다. - 순환 신경망(Recurrent Neural Network, RNN)
→ 이전 출력이 다음 입력으로 순환되어 연결되는 구조입니다.
→ 시간적 정보나 순서가 중요한 데이터 처리에 사용되며, LSTM(Long Short-Term Memory)도 여기에 포함됩니다.
2. 얕은 신경망 vs. 깊은 신경망
- 얕은 신경망(Shallow Neural Network)
→ 은닉층이 1~2개 정도로 단순한 구조를 가집니다. - 깊은 신경망(Deep Neural Network)
→ 은닉층이 많아 복잡한 패턴 학습이 가능하지만, 몇 개의 층을 기준으로 ‘깊다’고 말할지는 명확히 정해져 있지 않습니다.
3. 결정론 신경망 vs. 스토캐스틱 신경망
- 결정론적(Deterministic) 신경망
→ 같은 입력에는 항상 같은 출력을 생성합니다. 대부분의 신경망이 여기에 해당됩니다. - 확률적(스토캐스틱, Stochastic) 신경망
→ 계산 과정에 난수를 포함하므로 같은 입력에서도 서로 다른 출력이 나올 수 있습니다.
→ 대표적인 예로 RBM(Restricted Boltzmann Machine), DBN(Deep Belief Network) 등이 있으며, 생성 모델로도 활용됩니다.
퍼셉트론(Perceptron)
구조
- 입력층과 출력층으로 구성되며, 은닉층은 없음
- 항상 1이 입력되는 바이어스 노드를 포함해 총 d+1개의 입력 노드
- 출력 노드는 단 하나이며, 각 입력 노드와 연결된 가중치 wiw_i를 가집니다.
동작 원리
- 입력 벡터와 가중치의 내적을 계산해 합산한 후,
- 계단 함수(활성함수)를 적용하여 출력 yy를 +1 또는 -1로 결정합니다.
- 퍼셉트론은 선형 분류기이므로, XOR과 같은 선형 분리가 불가능한 문제는 해결하지 못합니다.
다층 퍼셉트론(Multilayer Perceptron, MLP)
퍼셉트론의 한계를 극복하기 위해 제안된 구조입니다.
- 하나 이상의 은닉층(hidden layer) 을 도입
- 시그모이드(Sigmoid) 등의 비선형 활성함수 사용
- 오차 역전파(Backpropagation) 알고리즘으로 학습
- 선형 분리가 불가능한 문제까지도 해결 가능
다양한 활성함수
이름 | 특징 | 주요 사용 모델 |
계단 함수 | 출력이 +1 또는 -1 | 퍼셉트론 |
로지스틱 시그모이드 | 출력이 0~1 사이의 연속값 | MLP, 초기 신경망 |
하이퍼볼릭 탄젠트 | 출력이 -1~1 사이의 연속값 | MLP, 초기 신경망 |
ReLU | 0 이하에서는 0, 양수는 그대로 출력 | 딥러닝에서 주로 사용 |
Leaky ReLU 등 변종 | 음수 영역의 문제를 해결하기 위한 다양한 버전 | 현대 딥러닝 모델 |
딥러닝에서 시그모이드나 tanh 함수를 사용하면, 학습 도중 그레이디언트가 점점 작아지는 '그래디언트 소멸(vanishing gradient)' 문제가 발생할 수 있습니다.
이를 해결하기 위해 ReLU(Rectified Linear Unit) 가 널리 사용됩니다. ReLU는 간단한 비교 연산만으로 계산이 가능해 학습 속도도 빠릅니다.
다만 ReLU도 음수 입력을 모두 0으로 만들기 때문에 일부 뉴런이 비활성화(dead neuron) 되는 문제가 생길 수 있습니다. 이 문제를 해결하기 위해 Leaky ReLU, Parametric ReLU(PReLU) 등의 변형이 개발되었습니다.
다층 퍼셉트론(MLP)의 구조와 학습
앞서 퍼셉트론이 선형 분류기에 불과하다는 한계를 설명했습니다. 이를 극복하기 위해 제안된 것이 바로 다층 퍼셉트론(Multi-Layer Perceptron, MLP) 입니다. MLP는 여러 개의 은닉층을 사용해 더 복잡한 문제도 학습할 수 있도록 설계된 인공 신경망입니다.
다층 퍼셉트론의 구조
- 퍼셉트론과 달리, 여러 개의 층을 가지므로 '다층' 퍼셉트론이라 부릅니다.
- 일반적으로 은닉층이 4개 이상이면 깊은 신경망(deep neural network) 이라 부르며, 이를 학습시키는 기법을 딥러닝(deep learning) 이라고 합니다.
- 구성 요소는 다음과 같습니다:
- 입력 노드: 총 d+1개 (d는 특징의 개수, +1은 바이어스 항)
- 은닉 노드: 개수는 하이퍼파라미터로 사용자가 설정 (너무 많으면 과적합, 적으면 과소적합)
- 출력 노드: 분류 문제에서는 클래스 수 c에 따라 달라짐
은닉층의 역할
은닉층은 단순히 데이터를 전달하는 통로가 아닙니다. 입력된 특징을 더 유용한 형태로 변환해주는, 일종의 특징 추출기(feature extractor) 역할을 합니다.
딥러닝에서는 이를 계층적 특징 추출(hierarchical feature extraction) 이라고 부릅니다.
- 앞쪽 은닉층: 저급 특징(low-level features) 을 추출
- 뒤쪽 은닉층: 저급 특징을 조합해 고급 특징(high-level features) 을 추출
이러한 방식은 이미지, 음성, 자연어 등 복잡한 데이터에 매우 효과적입니다.
오류 역전파 알고리즘 (Backpropagation)
MLP의 학습은 오류 역전파(backpropagation) 라는 알고리즘을 통해 이루어집니다.
이는 모델의 출력과 정답 사이의 오차를 기준으로 가중치를 조정하는 방법입니다.
학습 방식
- 훈련 데이터: 특징 벡터와 해당하는 정답 레이블(부류 벡터)로 구성
- 목표: 모든 샘플을 정확히 분류하는 분류 함수 ff 찾기
학습 모드
- 온라인 모드
→ 한 샘플씩 순차적으로 학습하며, 즉시 가중치를 갱신 - 배치 모드
→ 전체 데이터를 기준으로 평균 그레이디언트를 계산해 한 번에 갱신 - 미니배치 모드 (현대 딥러닝의 표준)
→ t개의 샘플을 무작위로 뽑아 미니배치(mini-batch) 를 구성
→ 이들의 평균 그레이디언트로 가중치를 갱신
→- t = 1이면 확률적 경사 하강법(SGD)
- t = n(전체 데이터 수)이면 배치 경사 하강법
손실 함수
- MLP에서는 평균 제곱 오차(MSE) 를 주로 사용합니다.
- 딥러닝에서는 교차 엔트로피(cross-entropy) 또는 로그우드(log loss) 가 더 일반적입니다.
학습 이후
신경망은 학습이 완료되면 가중치만 저장하면 됩니다.
훈련 데이터를 보존할 필요가 없기 때문에 메모리 효율이 매우 뛰어납니다.
범용 근사 정리와 현실적 한계
1989년 호닉(Hornik) 은 흥미로운 주장을 했습니다.
“은닉층이 하나만 있어도, 다층 퍼셉트론은 어떤 함수든 근사할 수 있다.”
이 이론은 신경망이 이론적으로는 모든 연속 함수를 근사할 수 있음을 보여줍니다.
하지만 현실은 조금 다릅니다.
- 어떤 구조가 해당 함수에 가장 적합한지 찾는 방법은 제시되지 않았고
- 은닉층이 하나뿐일 때의 효율성과 일반화 능력에는 한계가 있습니다.
이러한 이유로 연구자들은 두 가지 방향으로 발전시켰습니다:
- 얕은 구조를 최적화하려는 시도
- 깊은 구조로 확장(딥러닝) 하려는 시도
결과적으로, 현재는 깊은 신경망이 성능 면에서 더 우수하다는 것이 증명되며 주류가 되었습니다.
신경망 설계 시 주요 고려사항 (휴리스틱 관점)
신경망의 성능은 구조와 하이퍼파라미터 설정에 따라 크게 달라집니다.
다음은 설계 시 주요하게 고려해야 할 요소들입니다.
1. 아키텍처
- 은닉층의 개수와 각 층의 노드 수는 문제에 따라 조정해야 합니다.
- 일반적인 규칙은 없으며, 실험 기반 튜닝이 필요합니다.
2. 초기값 설정
- 대부분 가중치는 무작위로 초기화합니다.
- 이때 값의 분포와 범위는 학습 안정성에 큰 영향을 줍니다.
3. 학습률(learning rate)
- 일정하게 유지할 수도 있고, 점점 줄이는 방식(적응형 학습률) 도 있습니다.
- 적절한 설정이 매우 중요하며, 학습률이 너무 크면 발산, 너무 작으면 수렴 속도가 느려집니다.
4. 활성함수 선택
- 초기 MLP: 로지스틱 시그모이드, 하이퍼볼릭 탄젠트(tanh)
- 딥러닝 시대 이후: 주로 ReLU 사용
→ ReLU는 계산이 빠르고, 그래디언트 소멸 문제 완화에 유리합니다.
마무리
다층 퍼셉트론은 퍼셉트론의 단점을 보완하며 기계 학습을 한 단계 발전시킨 구조입니다.
신경망의 구조 설계, 활성함수 선택, 학습 방식 조절 등은 실험과 경험에 의존하는 면이 많지만,
원리를 정확히 이해하면 보다 효과적으로 모델을 개발하고 튜닝할 수 있습니다.
'Master's degree > 머신러닝Ⅰ' 카테고리의 다른 글
2장. 기계 학습 (0) | 2025.05.09 |
---|---|
1장. 소개 (0) | 2025.04.04 |
기계학습에 필요한 선형 대수 (0) | 2025.03.09 |