[Class Review](MDA_강필성) 6. Artificial Neural Networks

minbrass·2025년 2월 17일
0
post-thumbnail
  • 본 글은 서울대학교 산업공학과 DSBA 연구실 강필성 교수님의 "다변량데이터분석" 학부강의의 review이다.



1. Artificial Neural Networks: Perceptron

1.1. 인공 신경망의 기본 아이디어

  1. 생물학적 뉴런(Neuron)을 모사한 모형

    • 인공 신경망(Artificial Neural Network)은 사람 뇌의 신경계 구조와 정보처리 메커니즘을 모사하고자 한다.
    • 초기 AI(1950년대)부터 “인간의 뇌처럼 작동하는 기계를 만들자”는 비전이 있었으나, 당시 컴퓨팅 자원과 데이터 부족 등으로 오랜 시간에 걸쳐 서서히 발전해왔다.
  2. 단일 뉴런(퍼셉트론, Perceptron)

    • 가장 기본적인 인공 신경망 구조는 퍼셉트론이라 불리는 “단일 뉴런”이다.
    • 하나의 뉴런이 하는 일:
      1) 여러 입력(변수) x1,x2,,xdx_1, x_2, \dots, x_d 를 받아 가중치(Weight) w1,w2,,wdw_1, w_2, \dots, w_d 와 결합하여 합(스칼라)을 만든다.
      2) 해당 합에 비선형 활성화 함수(activation function)를 적용하여 최종 출력 yy 을 결정한다.

1.2. 퍼셉트론의 구조와 활성화 함수

  1. 선형 결합(가중 합)

    • 퍼셉트론의 전반부는,
      입력 벡터 x=(x1,x2,,xd)\mathbf{x} = (x_1, x_2, \dots, x_d) 에 대해

      a=i=1dwixi+ba = \sum_{i=1}^d w_i x_i + b

      같은 형태(회귀식 유사)의 선형 결합을 수행한다.
    • 여기서 wiw_i는 가중치, bb는 bias로, 학습을 통해 최적값을 찾게 된다.
  2. 활성화(Activation) 함수

    • 선형 합 aa를 비선형 함수에 넣어
      최종 출력 y=σ(a)y = \sigma(a) 를 얻는다.

    • 최종 출력 전에 거치는 함수의 형태가 비선형함수여야지만, 퍼셉트론이 선형 회귀(혹은 로지스틱 회귀) 이상의 복잡한 표현력을 갖게 된다. 그렇지 않다면 연속해서 함수를 씌우더라도 결국 선형꼴로 돌아가게 된다.

    • 대표적인 비선형 함수들:

      • 시그모이드(sigmoid): σ(a)=11+ea\sigma(a) = \frac{1}{1 + e^{-a}}. 출력 범위는 [0,1][0,1].
      • 하이퍼볼릭 탄젠트(tanh): 출력 범위는 $[-1,1].
      • ReLU: max(0,a)\max(0,a). 음수 입력을 0으로, 양수 입력을 그대로 통과시키는 함수로, 최근 AI에서 널리 쓰인다.

      -> 이 외에도 여러 함수가 있지만 개념적으로는 이정도만 알아도 충분하다.

  1. 출력과 손실 함수
    • (회귀) 만약 yy가 연속형 예측값이라면, 오차 (ty)(t - y)의 제곱합 등을 손실 함수로 사용한다.
    • (분류) 만약 yy가 이진 혹은 다중 범주라면, 크로스엔트로피(Cross-Entropy) 등 분류용 손실 함수를 사용한다.
    • 손실 함수를 최소화하는 방향으로 가중치 w\mathbf{w}를 학습시키는 것이 우리의 목표이다.

1.3. Gradient Descent and Learning Rate

  1. Gradient Descent 개념
    • 퍼셉트론 학습은 경사하강법(Gradient Descent)을 통해 손실 함수를 최소화한다.
    • 손실 함수 L(w)L(\mathbf{w})w\mathbf{w}에 대해 미분(그레디언트)을 구하고, 반대 방향 αL-\alpha \cdot \nabla L으로 가중치를 업데이트한다.
    • α\alpha는 학습률(learning rate)로, 한 번의 업데이트에서 얼마만큼 이동할지 결정한다.
  1. 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 병렬 연산에도 적합한 방식으로 인식되고 있다.

  1. Learning Rate(학습률) 이슈
    • 학습률이 너무 크면 발산하거나 최적해 근처에서 진동할 수 있다.
    • 학습률이 너무 작으면 수렴은 가능하나 학습에 오랜 시간이 걸린다.
    • 실제로는 학습률을 조금씩 감소시키거나(스케줄링), 모멘텀, RMSProp, Adam 등의 기법을 활용해 더 빠르고 안정적으로 학습한다.

1.4. Stopping and Overfitting

  1. 학습 종료(Stopping) 조건

    • (1) 가중치 업데이트 변화가 매우 미미해질 때
    • (2) 독립 검증세트의 오차가 일정 이하로 만족될 때
    • (3) 에폭(epochs) 수를 미리 정해서 제한할 때

    -> 일반적으로 이 셋 중 하나라도 만족하면 학습을 중단한다.

  2. 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는 아래와 같은 중요한 특징을 가진다.

  1. 층 내부에서는 뉴런 간 연결이 존재하지 않음:
    -> 동일한 층 내 뉴런들은 서로 연결되지 않으며, 오직 인접한 층 사이에서만 연결된다.

  2. 데이터는 순방향(Feed-Forward)으로 전달됨:
    -> 한 번 지나간 층의 뉴런은 이전 층으로 되돌아가지 않는다. 즉, 피드백이 없는 구조이다.

  3. 완전 연결(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)(x_1, x_2)에 대해 출력 yy는 아래와 같이 정의된다:

y=x1x2={1,if x1x20,if x1=x2y = x_1 \oplus x_2 = \begin{cases} 1, & \text{if } x_1 \neq x_2 \\ 0, & \text{if } x_1 = x_2 \end{cases}

\to 즉, 두 입력이 다를 때만 1을 출력하고, 같을 때는 0을 출력하는 문제이다.

2.2.2. Hidden Layer

  • 입력 레이어를 받아 특정 변환(여러 퍼셉트론 가중합 + 비선형 활성화)을 수행한 뒤, 그 출력을 다음 층에 전달한다.
  • 히든 노드 수·레이어 수에 따라 모델 복잡도가 결정된다.

2.3. Forward Pass and Activation Function

2.3.1. Forward Pass

  • (1) 입력 x\mathbf{x}가 히든 레이어의 각 노드(퍼셉트론)로 유입 → 가중합 aj(1)a^{(1)}_j 계산.
  • (2) 활성화 함수로 변환해 히든 레이어 출력 hjh_j 도출.
  • (3) 히든 레이어 출력이 다시 다음 레이어로 전달.
  • (4) 최종 출력 레이어에서 예측값(회귀면 실수, 분류면 범주 확률 등)을 얻는다.

2.3.2. 출력 레이어

  • (분류) 소프트맥스(Softmax) 함수를 사용해 각 범주 확률을 산출:

    yj=exp(aj)kexp(ak)y_j = \frac{\exp(a_j)}{\sum_k \exp(a_k)}
    → 모든 클래스 확률의 합이 1이 되도록 함.

  • (회귀) 단순 선형 출력 혹은 ReLU·tanh 등 활성화를 적용할 수도 있다.


2.4. Backpropagation

  1. Backpropagation(오차 역전파)

    • MLP도 근본적으로 경사하강법을 사용해 가중치를 최적화한다.
    • 다만 출력 레이어뿐 아니라 히든 레이어 가중치들도 업데이트해야 한다
      → 체인룰(연쇄 법칙)을 이용해 오차를 뒤에서부터 전파하며 미분한다.
    • 수식적 구현은 “퍼셉트론 단일 미분”을 여러 층에 걸쳐 반복·합성하는 형태로 이루어진다.
  2. Overfitting 방지

  • 히든 레이어를 무제한 늘리면 모델 복잡도가 급격하게 상승하게 된다.
    → 매우 복잡한 결정 경계를 형성하나, 노이즈에 과적합할 수 있음.
  • 정규화(Regularization), 드롭아웃(Dropout), 적절한 학습률 제어 등 기법으로 일반화 성능을 확보한다.

Overfitting 방지 기법
과적합(Overfitting)은 모델이 훈련 데이터에 지나치게 적응하여 일반화 성능이 떨어지는 현상을 의미한다. 이를 방지하기 위해 여러 기법이 활용된다.

1. 정규화(Regularization)

  • 정규화는 모델이 너무 복잡해지는 것을 방지하기 위해 손실 함수에 추가적인 제약을 부여하는 기법이다.
  • 대표적인 방법으로 L1 정규화(LASSO) 와 L2 정규화(Ridge) 가 있다.
    • L1 정규화: 가중치 절댓값의 합을 패널티로 부과해 일부 가중치를 0으로 만들어 변수 선택 효과를 유도한다.
    • L2 정규화: 가중치 제곱합을 패널티로 부과해 가중치 값이 너무 커지는 것을 억제한다.
  1. 드롭아웃(Dropout)
  • 신경망의 일부 뉴런을 랜덤하게 비활성화(제거) 하여 특정 뉴런이 과도하게 학습되는 것을 방지하는 기법이다.
  • 훈련 과정에서 랜덤하게 선택된 뉴런들이 비활성화되므로, 모델이 특정 패턴에 과적합하는 것을 막고 일반화 성능을 향상시킨다.
  • 테스트 시에는 모든 뉴런을 활성화하되, 학습 시 드롭된 비율만큼 출력값을 스케일링하여 일관성을 유지한다.
  1. 적절한 학습률 제어
  • 학습률(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

profile
인공지능 대학원 진학을 희망하는 학부생의 정리노트

0개의 댓글

관련 채용 정보