[Week 2]

chelseey·2025년 3월 11일

인공 신경망의 한계와 딥러닝 출현

perceptron : 신경망(딥러닝)의 기원이 되는 알고리즘
다수의 신호를 입력으로 받아 하나의 신호를 출력

입력을 컴퓨터가 논리적으로 인식하는 방식 : 논리 게이트

• AND 게이트

모든 입력이 1일때 작동(=1)

• OR 게이트

모든 입력이 0일때 0

• XOR 게이트

입력 두 개 중 하나만 '1'일때 작동(=1)

AND, OR 게이트는 하나의 decision boundary로 두 클래스를 나눌 수 있지만, XOR은 직선 하나로 1과 0을 정확히 분리할 수 없음.
ex. (0,1)과 (1,0)은 1이지만, (0,0)과 (1,1)은 0이므로, 가운데가 비어있는 형태

→ XOR 게이트는 비선형적으로 분포된 데이터,
선형(직선) 하나로는 두 클래스를 나눌 수 없음.
단층 퍼셉트론(하나의 선형 분류기)로는 XOR 문제 학습 불가,
다층 퍼셉트론(은닉층이 있는 신경망)에서 해결해야함.

• DNN(딥러닝)
입력층과 출력층 사이에 은닉층이 여러 개 있는 신경망
뉴런을 여러 층 쌓아 비선형 분리가 가능

딥러닝 구조

딥러닝 용어

Layer

  • 입력층 : 데이터를 받아들이는 층
  • 은닉층 : 모든 입력 노드부터 입력 값을 받아 가중합을 계산하고, 이 값을 활성화 함수에 적용하여 출력층에 전달하는 층
  • 출력층 : 신경망의 최종 결괏값이 포함된 층

Weight (가중치)

입력 값이 연산 결과에 미치는 영향력을 조잘하는 요소

Weighted sum (가중합, 전달함수)

각 노드에서 들어오는 신호에 가중치를 곱해서 모두 더한 합계

w : 가중치, b: bias

bias

가중합에 더해 주는 상수.
모델이 입력이 0이어도 출력을 내도록 하거나, 결정 경계를 원점에서 떨어뜨려
데이터 분포에 더 잘 맞는 형태로 학습하도록 함.

활성화 함수

전달 함수에서 전달받은 값을 출력할 때 일정 기준에 따라 출력 값을 변화시키는 비선형 함수

  • 시그모이드(sigmoid) 함수
    선형 함수의 결과를 0~1사이의 비선형 형태로 변환

    시그모이드 함수 σ= 1/(1+e^-x)
    시그모이드의 미분값(기울기) 범위는 (0,0.25], 항상 1보다 작음
    → 깊은 층에서 작은 기울기가 연쇄적으로 곱해지면,
    기울기 소멸(Vanishing Gradient) 현상 발생
    출력 범위가 [0,1]이므로 업데이트에서의 입력이 0이 아닌 0.5 중심이 되어
    → 양의 방향으로만 편향이 생길 수 있음
  • 하이퍼볼릭 탄젠트(hyperbolic tangent) 함수
    선형 함수의 결과를 -1~1 사이에서 비선형 형태로 변환

    시그모이드는 출력 범위가 [0,1]이지만, tanh는 [−1,1]이라 출력 평균이 0 근처로 유지됨.
    tanh(x)는 큰 양수 입력에서 1에, 큰 음수 입력에서 -1에 가까워지며, 양쪽 극단에서는 미분값이 거의 0인 포화(saturation) 현상이 발생
    → 기울기 소멸 발생
  • 렐루(ReLU) 함수
    입력(x)이 음수일 때는 0을 출력, 양수일 때는 x를 출력

    양수 구간에서 기울기(미분)가 1이므로, 깊은 신경망에서도 기울기 소멸 현상이 발생하지 않음.
    양수 영역에서 출력이 입력에 비례해 계속 증가하므로(기울기=1),
    → 출력이 입력값과 동일하게 증가하여 학습이 빠르게 진행됨.
    입력이 음수인 경우, 출력이 계속 0이 되어 기울기도 0
    → 가중치가 업데이트되지 않고 죽어버릴 수 있음.
  • 리키 렐루(Leaky ReLU) 함수
    입력 값이 음수이면 0이 아닌 매우 작은 수를 반환(ex. 0.001)

    음수 영역에서도 조금이라도 출력(기울기)을 내보내므로, 뉴런이 완전히 죽는 상황을 해결

  • 소프트맥스(softmax) 함수
    입력 값을 0~1 사이에 출력되도록 정규화하여 출력 값들이 총합이 항상 1이 되도록 함

주로 은닉층에는 ReLU, Leaky ReLU, tanh 등을 사용하고,
출력층에는 소프트맥스, 시그모이드 등의 활성화 함수를 적용함.

손실 함수

학습을 통해 얻은 데이터의 추정치가 실제 데이터와 얼마나 차이가 나는지 평가하는 지표

  • 평균 제곱 오차 (MSE)
    실제 값과 예측 값의 차이를 제곱하여 평균을 낸 값

    연속값을 예측하는 문제(회귀)에서 손실 함수로 주로 사용
  • 크로스 엔트로피 오차 (CEE)
    분류(classification) 문제에서,
    정답 레이블이 원-핫(one-hot) 형태일 때 사용하는 손실 함수

    예측 확률이 정답 클래스에 집중되어 있으면 오차가 작아지고, 잘못된 클래스에 확률이 높으면 오차가 커짐
    ex. 클래스 (cat, dog, rabbit)에 대해 입력 이미지를 보고
    y^\hat{y} =[0.7,0.2,0.1] 이라고 모델이 예측.
    정답이 cat일 경우: y=[1,0,0] (One-hot Encoding)
    CE=−(1×log(0.7)+0×log(0.2)+0×log(0.1))=−log(0.7)
    정답이 dog인 경우: y=[0,1,0]
    CE=−(0×log(0.7)+1×log(0.2)+0×log(0.1))=−log(0.2)
    → 정답 클래스 확률이 낮으면 오차가 크게 증가.

딥러닝 학습

: 두 단계(순전파, 역전파)로 진행

입력층·은닉층·출력층 각각이 하나의 층이고, 그 안에는 여러 뉴런이 있을 수 있음

순전파 (feedforward)

입력층에서부터 은닉층, 출력층으로 순차적으로 신호(값)를 전달
은닉층과 출력층의 뉴런들은 가중치(weight), 편향(bias), 활성화 함수를 사용해 출력을 생성.
이후 모델의 출력과 실제 정답(레이블)을 비교해, 오차를 구함

역전파 (backpropagation)

계산된 손실(오차)을 기준으로, 출력층 → 은닉층 → 입력층 방향으로 거슬러 올라가며, 각 가중치와 편향이 오차에 얼마나 기여했는지(=기울기)를 Chain Rule로 계산

딥러닝의 문제점과 해결 방안

활성화 함수가 적용된 은닉층 개수가 많을수록 데이터 분류가 잘됨.

but 은닉층이 많을수록 문제 발생

과적합 문제 발생

훈련 데이터에 대해 과하게 학습하여 실제 데이터에 대한 오차가 증가하는 현상

→ 해결 방법 : dropout

모델이 과적합되는 것을 피하기 위해

기울기 소멸 문제 발생

Backpropagation 과정에서 출력층에서 은닉층 방향으로 오차가 거슬러 올라갈 때, 기울기가 점점 작아져 0에 가까워지는 현상
→ 학습이 거의 되지 않는 상태.
sigmoid , tanh 대신 ReLU 활성화 함수 사용

성능이 나빠지는 문제 발생

• 경사 하강법(Gradient Descent)

손실 함수(cost function)가 최소가 되는 지점을 찾기 위해
기울기(Gradient)가 양수면 w를 감소시키고, 음수면 w를 증가시켜,
Cost(w)가 최소화되는 방향으로 가중치(w)를 이동

• 성능 관련 문제

  • 학습률(learning rate)이 너무 크면
    최소점을 지나치며 진동하거나 발산할 수 있음.
  • 학습률이 너무 작으면
    학습이 매우 느리게 진행됨.
  • 지역 최소(local minimum) 우려
    복잡한 손실 곡선에서는 전역 최소가 아닌 지역 최소에 빠질 수도 있음.

• 배치 경사 하강법 (Batch Gradient Descent, BGD)
모든 샘플의 오차를 계산해 그 평균 또는 합을 바탕으로 Gradient를 구하는 방법

W←W−η∇J(W)
W: 가중치
η: 학습률(learning rate)
∇J(W): 전체 데이터를 이용해 계산된 손실 함수 J(W)의 기울기

BGD에서는 한 에포크(전체 데이터를 1회 학습)마다 한 번 가중치를 업데이트전역 최솟값을 향해 비교적 안정적으로 이동(노이즈가 적음).
but, 매번 전체 데이터를 로드해 기울기를 계산하므로, 계산량이 많고 학습 속도가 느림

• 확률적 경사 하강법 (Stochastic Gradient Descent, SGD)
전체 데이터가 아니라, 개별 데이터(혹은 작은 배치)를 사용하여 기울기를 계산하고 즉시 업데이트하는 방법

개별 데이터 포인트를 이용해 기울기를 계산하므로, 업데이트마다 변화가 큼.
수렴 과정에서 진동(불안정한 움직임)이 발생.
but, 더 빠르게 최적점에 도달할 가능성이 있음.

• 미니 배치 경사 하강법 (Mini-Batch Gradient Descent)
전체 데이터셋을 여러 개의 작은 배치(mini-batch)로 나눈 뒤,
각 미니배치에 대해 Gradient를 구해 평균을 내어 모델 파라미터를 업데이트하는 방법

여러 샘플(mini batch)을 묶어 평균 기울기를 사용하므로,
진동은 적당히 완화되면서도, 업데이트가 빠르고 빈번하게 일어남.

BGD처럼 노이즈가 적고 안정적이면서,
SGD처럼 계산이 빠르고 대규모 데이터에도 효율적

딥러닝을 사용할 때 이점

특성 추출

머신러닝·딥러닝 모델이 데이터를 더 잘 이해하고 학습할 수 있도록 원본 데이터에서 의미 있고 유용한 특징(Feature)을 골라내는 과정

과거에는 SVM, 나이브 베이즈(Naive Bayes), 로지스틱 회귀 등 전통 머신러닝 알고리즘을 사용하여 도메인 전문가가 직접 데이터에서 유의미한 특징을 추출.
→ 딥러닝에서는 자동으로 특징을 학습

딥러닝 알고리즘

모두 심층 신경망을 사용

심층 신경망 (DNN)

입력층과 출력층 사이에 여러개의 은닉층을 포함하는 인공 신경망
은닉층이 깊어지면, 단순 선형 분류로는 처리하기 어려운 비선형적 패턴을 학습 가능

합성곱 신경망 (Convolutional Neural Network, CNN)

합성곱(convolution) 연산과 풀링(pooling) 연산을 사용해, 이미지나 영상 같은 2차원 데이터를 효율적으로 처리하는 신경망 구조.

입력 이미지를 합성곱 레이어에 전달.
합성곱 레이어는 여러 개의 필터를 이용해 로컬 패턴을 감지 → 특징 맵을 생성.
풀링 레이어로 특징 맵 크기를 줄여, 중요한 특징만 유지하면서 계산 효율을 높임.

순환 신경망 (Reccurent Neural Network, RNN)

시계열(time series) 데이터나 순서가 중요한 데이터(자연어, 음성 등)를 학습하기 위한 인공 신경망
이전 시점의 상태(hidden state)를 현재 시점에 재사용하여, 시간적(순서) 의존성을 학습할 수 있음

시계열 길이가 길어질수록, 역전파가 반복되어 기울기가 0에 가까워지는 기울기 소멸 현상이 발생. 이로 인해 먼 과거 정보가 제대로 학습되지 않음
→ LSTM(Long Short-Term Memory), GRU(Gated Recurrent Unit) 등 게이트 구조를 추가한 변형 RNN을 사용하여 극복

제한된 볼츠만 머신(Restricted Boltzmann Machine, RBM)

가시층(visible layer)과 은닉층(hidden layer) 두 층으로 구성된 모델
은닉 뉴런들 간, 가시 뉴런들 간에는 연결이 없음

심층 신뢰 신경망

제한된 볼츠만 머신을 블록처럼 여러 층으로 쌓은 형태로 연결된 신경망

0개의 댓글