[ADsP] 3과목 정리(13)

전민정·2025년 5월 13일

ADsP 자격증

목록 보기
13/15

5장 정형 데이터 마이닝

5절 인공신경망분석

(1) 인공신경망분석(ANN)

인공신경망(Artificial Neural Network)의 정의

"인간의 놀라운 인식력과 판단력은 단순한 기능을 가진 몇 개의 신경세포 조합에 의해 행해진다."

인간의신경세포조직을인위로만들없을까?인간의\quad 신경세포\quad 조직을 \quad인위로 \quad만들 \quad수 \quad없을까?

인공신경망의 연구

  • 1943년 매컬릭(McCulloch)과 피츠(Pitts) : 인간의 뇌를 수많은 신경세포가 연결된 하나의 디지털 네트워크 모형으로 간주하고 신경세포의 신호처리 과정을 모형화하여 단순 패턴 분류 모형을 개발

  • 햅(Hebb) : 신경세포(뉴런) 사이의 연결 강도(weight)를 조정하여 학습 규칙을 개발

  • 로젠블럿(Rosenblatt, 1855) : 퍼셉트론(Perceptron)이라는 인공세포 개발

  • 비선형성의 한계점 발생 - XOR(Exclusive OR)문제

  • 홉필드(Hopfild), 러멜하트(Rumelhart), 맥클랜드(McCleland) : 역전파알고리즘(Backpropagation)을 활용하여 비선형성을 극복한 다계층 퍼셉트론으로 새로운 인공신경망 모형 등장

  • 딥러닝(Deep Learning)

    • 2006년 제프리 힌튼(Geoffrey Hinton) : 비교사 학습을 이용한 전처리 과정을 다층신경망에 추가하는 방식을 통해 다층망을 쌓아도 정확성을 해치치 않는 방법 개발
    • 2012년 개선된 기법을 객체 인식에 적용하여 오류율을 기존 방식 대비 10%가량 떨어뜨리면서 딥러닝(deep learning)에 관심 부각
    • 신경망을 여러 층 쌓아 올려 모델을 구축하는 머신 러닝 방식이라면 어떠한 접근 방법이든 딥러닝(deep learning)이라고 할 수 있음
    • 유명한 모델로는
    1. 심층(deep) 신경망 - 입력층과 출력층 사이에 다중의 은닉층(hidden layer)이 존재하는 신경망
    2. 컨볼루셔널(convolutional) 신경망 - 동물의 시각 피질의 구조와 유사하게 뉴런 사이의 연결 패턴을 형성하는 신경망
    3. 재귀(recurrent) 신경망 - 시간에 따라 매순간 신경망을 쌓아 올리는 신경망
    4. 제한 볼츠만 머신(restrictedBoltzmann machine) - 입력 집합에 대한 확률 분포를 학습할 수 있는 신경망

인간의 뇌를 형상화한 인공신경망

  • 인공신경망(Artificial Neural Network)
    • 인간 뇌를 기반으로 한 추론 모델
    • 인간 뇌의 추론 모델 - 뉴런(neuron)
    • 뉴런은 기본적인 정보처리 단위
  • 인간 뇌의 특징
    • 100억 개의 뉴런과 각 뉴런을 연결하는 6조 개의 시냅스의 결합체
    • 인간의 뇌는 현존하는 어떤 컴퓨터보다 빠르게 기능을 수행할 수 있음
    • 인간의 뇌는 매우 복잡하고, 비선형적이며, 병렬적인 정보 처리 시스템으로 생각할 수 있음
    • 정보는 신경망 전체에 동시에 저장되고 처리됨
    • 적응성에 따라 '잘못된 답'으로 이끄는 뉴런들 사이의 연결은 약화되고, '올바른 답'으로 이끄는 열결은 강화됨
  • 인간의 뇌 모델링
    - 생물학적인 뇌의 뉴런과 비슷하게 모델링함
    - 인공신경망은 뉴런이라는 아주 단순하지만 내부적으로 매우 복잡하게 연결된 프로세스들로 이루어져 있음
    - 뉴런은 가중치가 있는 링크들로 연결되어 있음
    - 각각의 뉴런은 연결을 통해 여러 입력 신호를 받지만 출력 신호는 오직 하나만 생성
    - 인공신경망 구조

인공신경망의 학습

  • 인공신경망의 학습
    • 신경망은 가중치를 반복적으로 조정하여 학습
    • 뉴런은 링크(link)로 연결되어 있고, 각 링크에는 그와 연관된 수치적인 가중치가 있음
    • 가중치는 장기 기억을 위한 기본적인 수단으로 각 뉴런 입력 강도, 즉 중요도를 표현
  • 인공신경망의 가중치 조정
    • 신경망의 가중치를 초기화하고 훈련 예제들의 집합에서 해당 가중치를 갱신
    • 신경망의 구조를 먼저 선택하고, 어떤 학습 알고리즘을 사용할지 결정한 후 신경망을 훈련시킴

(2) 인공신경망 특징

구조

  • 뉴런의 특징
    - 입력 링크에서 여러 신호를 받아서 새로운 활성화 수준을 계산하고, 출력 링크로 출력 신호를 보냄
    - 입력신호는 미가공 데이터 또는 다른 뉴런의 출력이 될 수 있음
    - 출력신호는 문제의 최종적인 해(solution)가 되거나 다른 뉴런에 입력될 수 있음

뉴런의 계산

  • 뉴런의 계산
    • 뉴런은 전이함수, 즉 활성화 함수(activation function)을 사용
    • 활성화 함수를 이용한 출력 결정 순서
      1) 뉴런은 입력 신호의 가중치 합을 계산하여 임곗값과 비교
      2) 가중치 합이 임곗값보다 작으면 뉴런의 출력은 -1, 같거나 크면 +1을
  • 활성화 함수
    X=i=1nxiωiX = \sum_{i=1}^{n} x_i \omega_i
Y={+1if X01if X<0Y = \begin{cases} +1 & \text{if } X \geq 0 \\ -1 & \text{if } X < 0 \end{cases}
  • X는 뉴런으로 들어가는 입력의 순 가중합
  • x_i는 입력의 i의 값
  • w_i는 입력의 i의 가중치
  • n은 뉴런의 입력 개수
  • Y는 뉴런의 출력

단일 뉴런의 학습(단층 퍼셉트론)

  • 단일 뉴런의 학습(단층 퍼셉트론)
    • 퍼셉트론은 선형 결합기와 하드 리미터로 구성
    • 초평명(hyperplane)으로 n차원 공간을 두 개의 결정 영역으로 나눔
    • 선형 분리 함수:
      i=1nxiwiθ=0\sum_{i=1}^{n} x_i w_i - \theta = 0
    • 입력이 2개일 때와 3개일 때의 퍼셉트론 도식화

(3) 활성화 함수

활성화 함수의 정의

  • 뉴런의 출력 검정
    - 활성화 함수를 부호함수라고 함
    - 부호 활성화 함수를 사용하는 뉴런의 실제 출력

    Y=sign[i=1nxiwiθ]Y = sign [ \sum_{i=1}^{n} x_i w_i - \theta]
  • 뉴런의 활성화 함수

    - 계단 함수 : 입력값이 어떤 기준(임계값)을 넘으면 1, 그렇지 않으면 0을 출력하는 이진 출력 함수
    - 부호 함수 : 입력값이 양수이면 +1, 음수이면 -1을 출력하는 함수
    - 시그모이드 함수 : 입력값을 0과 1 사이의 값으로 매핑하는 연속적이고 부드러운 함수
    - 선형 함수 : 입력값을 그대로 출력하거나, 기울기와 절편을 곱해 출력하는 함수


(4) 신경망 모형 구축 시 고려사항

입력변수

  • 신경망 모형은 그 복잡성으로 인하여 입력 자료의 선택에 매우 민감
  • 입력변수가 범주형 또는 연속형 변수일 때 아래의 조건이 신경망 모형에 적합
    범주형 변수 - 모든 범주에서 일정 빈도 이상의 값을 갖고 각 범주의 빈도가 일정할 때
    연속형 변수 - 입력변수 값들의 범위가 변수 간의 큰 차이가 없을 때
  • 연속형 변수의 경우 분포가 그 평균을 중심으로 대칭이 아닌 경우 좋지 않은 경과 도출
    -> 변환 : 고객의 소득(대부분 평균 미만이고 특정 고객의 소득이 매우 큰) : 로그 변환
    -> 범주화 : 범주화 한 각 범주의 빈도가 비슷하게 되도록 설정하는 것이 바람직
  • 범주형 변수의 경우 가변수화하여 적용(남녀:1,0 또는 1,-1)하고 가능하면 모든 범주형 변수는 같은 범위를 갖도록 가변수화 하는 것이 바람직

가중치와 초깃값과 다중 최솟값 문제

  • 역전파 알고리즘을 초깃값에 따라 결과가 많이 달라지므로 초깃값의 선택은 매우 중요한 문제
  • 가중치가 0이면 시그모이드 함수는 선형이 되고 신경망 모형은 근사적으로 선형모형이 됨
  • 일반적으로 초깃값은 0 근처로 랜덤하게 선택하고 초기 모형은 선형모형에 가깝고, 가중치 값이 증가할수록 비선현모형이 됨(초깃값이 0이면 반복하여도 값이 전혀 변하지 않고, 너무 크면 좋지 않은 해를 주는 문제점을 내포하고 있어 주의 필요)
  • 신경망의 비용함수 R(θ)는 비볼록 함수이고 여러 개의 국소 최솟값들(local minima)을 가짐
  • 랜덤하게 선택된 여러 개의 초깃값에 대한 신경망을 적합한 후 얻은 해들을 비교하여 가장 오차가 작은 것들을 선택하여 최종 예측값들 얻거나 평균(또는 최빈값)을 구하여 최종 예측치로 선정
    -> 훈련 자료에 대하여 배깅(bigging), 부스팅(boosting)을 적용하여 최종 예측치를 선정

학습 모드

  • 온라인 학습 모드(online learning mode)
    : 각 관측값을 순차적으로 하나씩 신경망에 투입하여 가중치 추정값이 매번 바뀜
  • 확률적 학습 모드(probabilistic learning mode)
    : 온라인 학습 모드와 같으나 신경망에 투입되는 관측값의 순서가 랜덤함
  • 배치 학습 모드(batch learning mode) : 전체 훈련자료를 동시에 신경망에 투입
    -> 온라인 학습 모드의 장점:
    1. 일반적으로 속도가 빠름, 특히 훈련자료에 비슷한 값이 많은 경우 그 차이가 더 두드러짐
    2. 훈련자료가 비정상성(nonstationarity)과 같이 특이한 성질을 가진 경우 좋음
    3. 국소 최솟값에서 벗어나기가 더 쉽다
  • 학습률
    • 보통 학습률은 상숫값을 사용
    • 학습률을 처음에는 큰 값으로 정하고 반복이 진행되어 해에 가까울수록 학습률이 0에 수렴

은닉층과 은닉노드의 수 (중요)

  • 신경망을 적용할 때 가장 중요한 부분이 모형의 선택임(은닉층의 수와 은닉노드의 수 결정)
  • 은닉층과 은닉노드가 많으면 - 가중치가 많아져서 과대적합 문제 발생
  • 은닉층과 은닉노드가 적으면 - 과소적합 문제 발생
  • 은닉층의 수 결정 : 은닉층이 하나인 신경망은 범용 근사자(universal approximator)임이 알려져 모든 매끄러운 함수를 근사적으로 표현할 수 있음 -> 은닉층은 하나로 선정
  • 은닉노드의 수 결정 : 적절히 큰 값으로 놓고 가중치 감서(weight decay)라는 모수에 대한 벌점화를 적용하는 것이 좋음

(5) 신경망 모형의 확장

CNN(Convolutional Neural Network)

  • CNN은 합성곱 계층에서 특징을 추출하고 풀링 계층에서 데이터를 축소해 중요한 정보를 학습하는 딥러닝 모델

  • 이미지나 시각 데이터를 처리하기 위해 설계된 딥러닝 모델로 주로 이미지 분류, 객체 탐지, 얼굴 인식 등 컴퓨터 비전 분야에서 사용됨

  • 합성곱 층(Convolutional Layer) : 입력 이미지에 대해 필터(또는 커널)를 적용하여 특징 맵(feature map)을 생성
    필터는 이미지의 특정 패턴을 감지하는 역을 하며, 여러 개의 필터가 사용되어 다양한 특징을 추출함

  • 풀링 층(Pooling Layer) : 합성곱 층의 출력 특징 맵의 크기를 줄이고, 계산량을 ㄱ마소시키며, 데이터의 변형에 대한 저항성을 높임
    일반적으로 최대 풀링(max pooling)이나 평균 풀링(average pooling)방법이 사용됨

  • 완전 연결 층(Fully connected Layer) : 풀링 층을 지나온 특징들을 기반으로 최종 분류를수행
    일반적인 신경망과 유사하게 작동하며, 모든 뉴런이 이전 층의 모든 뉴런과 연결되어 학습

  • 활성화 함수(Activation Function) : 각 층의 출력을 비선형적으로 변환하기 위해 사용
    주로 ReLU(Rectified Linear Unit)함수가 많이 사용됨

  • 드롭아웃(Dropout) : 과적합을 방지하기 위해 학습 중에 무작위로 일부 뉴런을 비활성화하는 기법

RNN(Recurrent Neural Network)

  • RNN은 순차적 데이터를 처리하기 위해 설계된 딥러닝 모델로, 이전 단계의 출력을 당므 단계로 전달하며 시계열 정보나 문장 구조를 학습

  • 순환 구조를 통해 데이터 간의 읜존성을 파악할 수 있더 자연어 처리, 음성 인식, 시계열 예측 등에 활용됨

  • 장기 의존성(long-term dependency)은 주로 순차 데이터나 시계열 데이터를 처리하는 모델에서 중요한 개념.
    이는 특정 시점의 정보가 이후 시점의 예측이나 결과에 영향을 미치는 경우를 말함. 예를 들어, 문장에서의 단어들 간의 관계나, 시간에 따른 데이터의 패턴을 이해하는데 필요

  • 장기 의존성의 문제
    전통적인 RNN(순환 신경망) 모델은 장기 의존성을 처리하는데 한계가 있음을 확인. 이는 다음과 같은 문제를 야기

  • 기울기 소실(Vanishing Gradient) : 역전파 과정에서 기울기가 점ㅈ머 작아져서, 초기 입력에 대한 정보가 잘 전달되지 않는 현상으로, 이로 인해 모델이 장기 의존성을 학습하기 어려워지는 현상 발생

  • 기울기 폭주(Exploding Gradient) : 반대로 기울기가 너무 커져서 학습이 불안정해지는 현상

  • 장기 의존성 학습에 어려움이 있어 이를 개선한 LSTM과 GRU 같은 변형 모델도 많이 사용됨

LSTM(Long Short-Term Memory)

  • LSTM(장기 단기 메모리, Long Short-Term Memory)은 순환 신경망(RNN)의 한 종류로, 장기 의존성 문제를 해결하기 위해 설계된 모델. LTSM은 기본 RNN의 구조를 개선하여, 정보가 긴 시퀀스에 걸쳐 전달될 수 있도록 함
  • 주요 구성 요소
    • 셀 상태(Cell State) : LSTM의 핵심 요소로, 정보가 시간에 따라 흐르는 경로임. 셀 상태는 필요에 따라 정보를 추가하거나 제거할 수 있음
    • 게이트(Gates) : LSTM은 세 가지 주요 게이트를 사용하여 정보를 조절함
    • 입력 게이트(Input Gate) : 새로운 정보가 셀 상태에 얼마나 추가될지를 결정함
    • 포겟 게이트(Forget Gate) : 셀 상태에서 어떤 정보를 잊을지를 결정함
    • 출력 게이트(Output Gate) : 셀 상태에서 어떤 정보를 출력으로 내보낼지를 결정함
  • 장점
    • 장기 의존성 처리 ; LSTM은 긴 시퀀스 데이터에서 중요한 정보를 효과적으로 기억하고 잊을 수 있어, 장기 의존성 문제를 해결함
    • 유연한 구조 : 다양한 시퀀스 데이터에 적용할 수 있으며, 자연어 처리, 음성 인식, 시계열 예측 등에서 널리 사용됨

GRU(Gated Recurrent Unit)

  • GRU(게이트 순환 유닛, Gated Recurrent Unit)는 순환 신경망(RNN)의 한 종류로 LSTM(장기 단기 메모리)을 간소하게 변형한 모델
  • GRU는 LSTM과 유사한 장기 의존성 문제를 해결하지만, 구조가 더 간단하여 계산 효율성이 높음
  • 주요 구성 요소
    • 업데이터 게이트(Update Gate) : 현재 입력과 이전 상태를 기반으로, 어떤 정보를 업데이트할지를 결정함
    • 리셋 게이트(Reset Gate) : 이전 상태를 얼마나 잊을지를 결정함
    • 현재 상태(Current State) : 현재 상태는 리셋 게이트를 사용하여 이전 상태의 정보를 조절한 후, 새로운 입력을 반영하여 계산
    • 최종 출력(Next Hidden State) : 업데이트 게이트와 현재 상태를 결합하여 최종 출력을 생성함
  • 장점
    • 간단한 구조 : LSTM보다 작은 수의 파라미터를 가지므로 계산 효율성이 높고, 학습 속도가 빠름
    • 유사한 성능 : 장기 의존성 문제를 해결하는데 LSTM과 유사한 성능을 보임

GAN(Generative Adversarial Network)

  • GAN(생성적 적대 신경망, Generative Adversarial Network)은 두 개의 신경망인 생성자(Generator)와 편별자(Discriminator)로 구성된 딥러닝 모델
  • GAN은 주로 이미지 생성, 비디오 생성, 텍스트 생성 등 다양한 생성 작업에 사용
  • GAN의 구성 요소
    • 생성자(Generator) : 무작위 노이즈 벡터를 입력으로 받아 가짜 데이터를 생성하는 역할을 함. 생성자는 실제 데이터와 유사한 데이터를 생성할 수 있도록 학습함
    • 판별자(Discriminator) : 실제 데이터와 생성자가 만든 가짜 데이터를 구분하는 역할을 함. 판별자는 입력 데이터가 실제인지 가짜인지 판단하도록 학습함
  • GAN의 장점
    • 고품질 데이터 생성 : GAN은 매우 사실적인 이미지를 생성할 수 있으며, 다양한 데이터 유형에 적용 가능
    • 다양한 응용 분야 : 이미지 보강, 스타일 변환 ,이미지 생성 및 변형 등에서 활용됨

0개의 댓글