- 본 글은 서울대학교 산업공학과 DSBA 연구실 강필성 교수님의 "다변량데이터분석" 학부강의의 review이다.
1. Artificial Neural Networks: Perceptron
1.1. 인공 신경망의 기본 아이디어
-
생물학적 뉴런(Neuron)을 모사한 모형
- 인공 신경망(Artificial Neural Network)은 사람 뇌의 신경계 구조와 정보처리 메커니즘을 모사하고자 한다.
- 초기 AI(1950년대)부터 “인간의 뇌처럼 작동하는 기계를 만들자”는 비전이 있었으나, 당시 컴퓨팅 자원과 데이터 부족 등으로 오랜 시간에 걸쳐 서서히 발전해왔다.
-
단일 뉴런(퍼셉트론, Perceptron)
- 가장 기본적인 인공 신경망 구조는 퍼셉트론이라 불리는 “단일 뉴런”이다.
- 하나의 뉴런이 하는 일:
1) 여러 입력(변수) x1,x2,…,xd 를 받아 가중치(Weight) w1,w2,…,wd 와 결합하여 합(스칼라)을 만든다.
2) 해당 합에 비선형 활성화 함수(activation function)를 적용하여 최종 출력 y 을 결정한다.
1.2. 퍼셉트론의 구조와 활성화 함수

-
선형 결합(가중 합)
- 퍼셉트론의 전반부는,
입력 벡터 x=(x1,x2,…,xd) 에 대해
a=∑i=1dwixi+b
같은 형태(회귀식 유사)의 선형 결합을 수행한다.
- 여기서 wi는 가중치, b는 bias로, 학습을 통해 최적값을 찾게 된다.
-
활성화(Activation) 함수
-
선형 합 a를 비선형 함수에 넣어
최종 출력 y=σ(a) 를 얻는다.
-
최종 출력 전에 거치는 함수의 형태가 비선형함수여야지만, 퍼셉트론이 선형 회귀(혹은 로지스틱 회귀) 이상의 복잡한 표현력을 갖게 된다. 그렇지 않다면 연속해서 함수를 씌우더라도 결국 선형꼴로 돌아가게 된다.
-
대표적인 비선형 함수들:
- 시그모이드(sigmoid): σ(a)=1+e−a1. 출력 범위는 [0,1].

- 하이퍼볼릭 탄젠트(tanh): 출력 범위는 $[-1,1].
- ReLU: max(0,a). 음수 입력을 0으로, 양수 입력을 그대로 통과시키는 함수로, 최근 AI에서 널리 쓰인다.
-> 이 외에도 여러 함수가 있지만 개념적으로는 이정도만 알아도 충분하다.
- 출력과 손실 함수
- (회귀) 만약 y가 연속형 예측값이라면, 오차 (t−y)의 제곱합 등을 손실 함수로 사용한다.
- (분류) 만약 y가 이진 혹은 다중 범주라면, 크로스엔트로피(Cross-Entropy) 등 분류용 손실 함수를 사용한다.
- 손실 함수를 최소화하는 방향으로 가중치 w를 학습시키는 것이 우리의 목표이다.
1.3. Gradient Descent and Learning Rate

- Gradient Descent 개념
- 퍼셉트론 학습은 경사하강법(Gradient Descent)을 통해 손실 함수를 최소화한다.
- 손실 함수 L(w)를 w에 대해 미분(그레디언트)을 구하고, 반대 방향 −α⋅∇L으로 가중치를 업데이트한다.
- α는 학습률(learning rate)로, 한 번의 업데이트에서 얼마만큼 이동할지 결정한다.
- Stochastic vs. Batch vs. Mini-batch
방식 | 설명 | 업데이트 빈도 | 계산 비용 | 수렴 속도 및 안정성 | 장점 | 단점 |
---|
Stochastic Gradient Descent (SGD) | 하나의 데이터 샘플을 사용하여 매번 가중치를 업데이트 | 데이터 샘플 1개마다 업데이트 | 계산 비용이 가장 낮음 | 진동이 크지만 빠른 방향 탐색 가능 | 계산 부담이 적어 대용량 데이터 처리 가능, 빠른 업데이트로 빠르게 최적점에 도달 가능 | 진동이 커서 최적점에 도달하기 어렵고, 수렴 속도가 불안정함 |
Batch Gradient Descent | 전체 데이터셋을 사용하여 손실을 계산한 후 한 번에 업데이트 | 한 에포크(전체 데이터 1회 학습)마다 1회 업데이트 | 계산 비용이 가장 큼 | 방향이 안정적이지만 수렴 속도가 느릴 수 있음 | 방향이 안정적이며 최적점에 안정적으로 수렴 가능 | 계산량이 크고, 대용량 데이터셋에서는 비효율적 |
Mini-batch Gradient Descent | 일정 개수(예: 32, 64, 128)의 데이터를 사용하여 가중치를 업데이트 | 미니배치(일정 개수의 샘플)마다 업데이트 | 계산 비용이 중간 정도 | 안정성과 속도의 균형이 좋음 | SGD와 Batch의 장점을 절충, GPU 병렬 연산 활용 가능, 빠른 학습 가능 | 배치 크기 조정이 필요하며, 적절한 크기가 아닐 경우 성능이 저하될 수 있음 |
- Stochastic Gradient Descent(SGD): 데이터 1개(혹은 매우 소수) 단위로 가중치를 업데이트. 계산 부담은 작으나 자주 방향이 요동한다.
- Batch Gradient Descent: 전체 데이터(배치)로 손실을 구해 그레디언트를 한 번만 계산→가중치 업데이트 1회. 방향은 안정적이지만 계산량이 큼.
- Mini-batch Gradient Descent: 일정 크기(예: 32, 64, …)의 묶음 단위로 업데이트. SGD와 Batch의 절충안으로 널리 사용된다.
-> 실제로 Mini-batch Gradient Descent가 딥러닝 학습에서 가장 널리 사용되며, GPU 병렬 연산에도 적합한 방식으로 인식되고 있다.
- Learning Rate(학습률) 이슈
- 학습률이 너무 크면 발산하거나 최적해 근처에서 진동할 수 있다.
- 학습률이 너무 작으면 수렴은 가능하나 학습에 오랜 시간이 걸린다.
- 실제로는 학습률을 조금씩 감소시키거나(스케줄링), 모멘텀, RMSProp, Adam 등의 기법을 활용해 더 빠르고 안정적으로 학습한다.
1.4. Stopping and Overfitting
-
학습 종료(Stopping) 조건
- (1) 가중치 업데이트 변화가 매우 미미해질 때
- (2) 독립 검증세트의 오차가 일정 이하로 만족될 때
- (3) 에폭(epochs) 수를 미리 정해서 제한할 때
-> 일반적으로 이 셋 중 하나라도 만족하면 학습을 중단한다.
-
Overfitting 문제
- 학습 데이터만 계속 반복 학습하면 노이즈까지 외워서 새 데이터 예측력이 떨어지는 현상이 발생한다.
- 에폭 수·학습률 등을 적절히 조정하거나, 별도 검증세트를 통해 일반화 성능을 확인하면서 학습을 멈춘다.
2. Multi-layer Perceptron(MLP)

2.1. MLP란?
다층 퍼셉트론(MLP, Multi-Layer Perceptron)은 여러 개의 뉴런이 층(layer) 형태로 구성된 신경망이다. MLP의 구조를 이해하기 위해 먼저 주요 용어를 정리해보도록 하겠다.
MLP는 입력층(Input Layer), 출력층(Output Layer), 그리고 그 사이에 위치한 은닉층(Hidden Layer)으로 구성된다.
- 입력층(Input Layer): 외부 데이터를 받아들이는 층으로, 신경망의 가장 아래쪽에 위치한다.
- 은닉층(Hidden Layer): 입력층과 출력층 사이에 존재하며, 외부에서 직접 관찰할 수 없는 층이다. MLP의 비선형성을 담당하는 핵심 요소이다.
- 출력층(Output Layer): 최종 예측 값을 생성하는 층으로, 신경망의 가장 위쪽에 위치한다.
MLP는 아래와 같은 중요한 특징을 가진다.
-
층 내부에서는 뉴런 간 연결이 존재하지 않음:
-> 동일한 층 내 뉴런들은 서로 연결되지 않으며, 오직 인접한 층 사이에서만 연결된다.
-
데이터는 순방향(Feed-Forward)으로 전달됨:
-> 한 번 지나간 층의 뉴런은 이전 층으로 되돌아가지 않는다. 즉, 피드백이 없는 구조이다.
-
완전 연결(Fully Connected Layer) 구조:
-> 각 층의 뉴런들은 이전 층의 모든 출력을 입력값으로 받는다. 이러한 특성 때문에 MLP는 FC Layer(Fully Connected Layer) 또는 Dense Layer라고도 불린다. (완전 같은 표현이며, FC Layer도 굉장히 자주 등장하는 표현이다)
2.2. MLP의 등장 배경
2.2.1. 다층 구조로 비선형 문제 해결하기
- 여러 퍼셉트론을 층(layer)으로 구성해, 선형 결합을 여러 번 겹치고 비선형 함수를 반복 적용함으로써 복잡한 분류·회귀 경계를 모델링한다.
- 예시: XOR 문제처럼 하나의 직선(단일 퍼셉트론)으로 분리 불가능한 데이터도, 히든 레이어를 거치면 선형적으로 분리 가능한 공간으로 변환 가능하다.
XOR 문제란?
XOR(배타적 논리합, Exclusive OR) 문제는 선형 분리가 불가능한 논리 연산 문제로, 단순한 퍼셉트론(Perceptron)으로는 해결할 수 없다. 입력 (x1,x2)에 대해 출력 y는 아래와 같이 정의된다:
y=x1⊕x2={1,0,if x1=x2if x1=x2
→ 즉, 두 입력이 다를 때만 1을 출력하고, 같을 때는 0을 출력하는 문제이다.
2.2.2. Hidden Layer
- 입력 레이어를 받아 특정 변환(여러 퍼셉트론 가중합 + 비선형 활성화)을 수행한 뒤, 그 출력을 다음 층에 전달한다.
- 히든 노드 수·레이어 수에 따라 모델 복잡도가 결정된다.
2.3. Forward Pass and Activation Function
2.3.1. Forward Pass
- (1) 입력 x가 히든 레이어의 각 노드(퍼셉트론)로 유입 → 가중합 aj(1) 계산.
- (2) 활성화 함수로 변환해 히든 레이어 출력 hj 도출.
- (3) 히든 레이어 출력이 다시 다음 레이어로 전달.
- (4) 최종 출력 레이어에서 예측값(회귀면 실수, 분류면 범주 확률 등)을 얻는다.
2.3.2. 출력 레이어
-
(분류) 소프트맥스(Softmax) 함수를 사용해 각 범주 확률을 산출:
yj=∑kexp(ak)exp(aj)
→ 모든 클래스 확률의 합이 1이 되도록 함.
-
(회귀) 단순 선형 출력 혹은 ReLU·tanh 등 활성화를 적용할 수도 있다.
2.4. Backpropagation
-
Backpropagation(오차 역전파)
- MLP도 근본적으로 경사하강법을 사용해 가중치를 최적화한다.
- 다만 출력 레이어뿐 아니라 히든 레이어 가중치들도 업데이트해야 한다
→ 체인룰(연쇄 법칙)을 이용해 오차를 뒤에서부터 전파하며 미분한다.
- 수식적 구현은 “퍼셉트론 단일 미분”을 여러 층에 걸쳐 반복·합성하는 형태로 이루어진다.
-
Overfitting 방지

- 히든 레이어를 무제한 늘리면 모델 복잡도가 급격하게 상승하게 된다.
→ 매우 복잡한 결정 경계를 형성하나, 노이즈에 과적합할 수 있음.
- 정규화(Regularization), 드롭아웃(Dropout), 적절한 학습률 제어 등 기법으로 일반화 성능을 확보한다.
Overfitting 방지 기법
과적합(Overfitting)은 모델이 훈련 데이터에 지나치게 적응하여 일반화 성능이 떨어지는 현상을 의미한다. 이를 방지하기 위해 여러 기법이 활용된다.
1. 정규화(Regularization)
- 정규화는 모델이 너무 복잡해지는 것을 방지하기 위해 손실 함수에 추가적인 제약을 부여하는 기법이다.
- 대표적인 방법으로 L1 정규화(LASSO) 와 L2 정규화(Ridge) 가 있다.
- L1 정규화: 가중치 절댓값의 합을 패널티로 부과해 일부 가중치를 0으로 만들어 변수 선택 효과를 유도한다.
- L2 정규화: 가중치 제곱합을 패널티로 부과해 가중치 값이 너무 커지는 것을 억제한다.
- 드롭아웃(Dropout)
- 신경망의 일부 뉴런을 랜덤하게 비활성화(제거) 하여 특정 뉴런이 과도하게 학습되는 것을 방지하는 기법이다.
- 훈련 과정에서 랜덤하게 선택된 뉴런들이 비활성화되므로, 모델이 특정 패턴에 과적합하는 것을 막고 일반화 성능을 향상시킨다.
- 테스트 시에는 모든 뉴런을 활성화하되, 학습 시 드롭된 비율만큼 출력값을 스케일링하여 일관성을 유지한다.
- 적절한 학습률 제어
- 학습률(learning rate)이 너무 크면 최적점에 도달하기 어려우며, 너무 작으면 수렴 속도가 느려질 수 있다.
- 학습률 조정 기법:
- Step Decay: 일정 Epoch마다 학습률을 줄이는 방식
- Exponential Decay: 학습률을 지수 함수적으로 감소
- Adaptive Methods(Adam, RMSProp 등): 학습률을 데이터나 기울기에 따라 자동 조정
이러한 기법들을 적절히 조합하면 과적합을 방지하고 일반화 성능을 개선할 수 있다.
3. Reference
[1] Korea University - Multivariate Data Analysis 06_part_1 ~ 06_part_1