본문 바로가기

Cerificate/빅데이터분석기사

[빅데이터분석기사 필기] 3과목 - 빅데이터 모델링 (4/5)

728x90
반응형

  지난 글에서 정형 데이터를 분석하는 여러 방법에 대해 공부했다. 이번에는 딥러닝을 학습할 것이다. 이 내용은 데이터에듀에서 발행한 '빅데이터 분석기사 필기' 교재 2권의 182~196페이지를 바탕으로 정리했다. 

※ 출처가 있는 이미지를 클릭하면 원 사이트로 접속된다.


 

Index

    4장 딥러닝

    1절 딥러닝의 개요

    1. 딥러닝의 개요

     

    출처 : levity.ai

     

    • 딥러닝 Deep Learning : 인공신경망에 기반한 머시러닝의 한 갈래. 점진적으로 의미있는 표현을 배우는 데 강점. 데이터로부터 표현을 학습하는 새로운 방식.
    • 딥러닝에 잘 맞는 데이터는 비정형 데이터. 인지와 관련된 문제를 잘 해결하는 것으로 알려짐.
    • 음성, 이미지 인식과 자연어처리, 헬스케어 등 다양한 분야에서 활용.
    • 딥러닝 알고리즘은 인공신경망부터 시작되어 심층 신경망 기법으로 발전.
    • 심층 신경망 방법론
      • 심층 신경망 DNN
      • 합성곱 신경망 CNN
      • 순환 신경망 RNN
      • 생성적 적대 신경망 GAN
      • RBM 등

    2절 인공신경망 Artificial Neural Network

    1. ANN의 개요

    • 신경망 : 뇌의 피질 영역에는 수많은 뉴런이 시냅스로 층층이 연결돼 있음. 인간의 뇌는 100억 개 뉴런과 6조 개 시냅스의 결합체.
    • 인공신경망 ANN은 뇌의 신경망에서 착안해 구현된 컴퓨터 시스템의 총칭

    출처 : 한겨레

    • 연구
      • 1943년 매컬릭 & 피츠 : 단순 패턴분류 모형 개발
      • 햅 : 뉴런 간의 연결강도 weight를 조정하여 학습규칙 개발
      • 로젠블럿 : 퍼셉트론이라는 인공세포 개발
      • XOR 문제 (비선형성 한계점) 라는 한계에 봉착
      • 홉필드 등 3인 : 역전파 알고리즘을 활용해 다계층 퍼셉트론을 개발해 위 문제 극복.
    • 구조 : 입력층, 은닉층, 출력층으로 구성.
      • 은닉층이 여러 개라면 층마다 복수의 뉴런으로 구성. 동일 층의 뉴런은 이어지지 않음.
      • 뉴런 (노드)은 기본 정보처리 단위.
      • 뉴런 여러 개가 가중된 링크 weighted link 로 연결됨. 이 링크에는 가중치가 있고, 뇌의 시냅스에 해당.
      • 최초 가중치는 랜덤으로 설정되기에 인공신경망은 훈련 데이터로 가중치를 반복 갱신해 신경망의 구조를 선택하고, 학습 알고리즘을 결정해 훈련 수행.
      • 뉴런은 입력 링크에서 여러 신호를 받고 신호의 강도에 따라 가중되며 활성함수는 새로운 활성화 수준을 계산해 출력링크로 전달.

    다층신경망 구조 (출처 : medium)

    2. 뉴런의 계산과 학습

    • 뉴런은 전이함수 (활성화함수)를 사용해 출력을 결정하고 입력신호의 가중치 합을 계산해 임계값과 비교.
    • 가중치 합이 임계값보다 작으면 -1, 같거나 크면 1을 출력함.
    • 활성화함수 
      • 시그모이드 함수 : 로지스틱 회귀분석과 유사. 0~1의 확률값.
      • softmax 함수 (표준화지수 함수) : 출력값이 여러 개로 주어지고 목표치가 다범주인 경우, 각 범주에 속할 사후확률을 제공
      • ReLU 함수 : 입력값 0이하는 0, 0보다 크면 입력값 그대로 반환.
      • Leaky Relu 함수 : dead ReLU (ReLU 모델이 학습하는 동안 일부 뉴런이 0만을 출력해 활성화되지 않는 문제)를 해결하기 위해 고안됨. 입력값이 0보다 작을 때, 매우 작은 기울기를 부여해 출력값이 0이 되지 않도록 함.
      • 하이퍼볼릭 탄젠트 함수 : 입력값을 -1~1사이로 변환. 시그모이드 함수와 달리 0을 중심으로 함. 

    시그모이드 함수 (출처 : Wikidocs)
    출처 : medium

    • 단일 뉴런의 학습 (단층 퍼셉트론) 
      • 퍼셉트론은 선형 결합기와 하드리미터로 구성. 초평면 hyperplane은 n차원 공간의 두 개의 영역으로 분할.

    3. 신경망 모형 구축의 고려사항

    • 입력변수 
      • 다음의 경우에 신경망 모형에 적합
      • 1) 범주형 변수 : 모든 범주에서 일정 빈도 이상의 값을 지니고 각 범주의 빈도가 일정. (같은 범위를 갖도록 가변수화하는 것이 좋음)
      • 2) 연속형 변수 : 입력변수 값의 범위가 변수 간에 큰 차이가 없을 때. 분포가 평균을 중심으로 대칭이 아니라면 결과가 바람직하지 않아 변환 (로그 변환 등)과 범주화 (각 범주의 빈도가 비슷하게 되도록 설정) 시도.
    • 가중치의 초깃값과 다중 최소값 문제
      • 역전파 알고리즘은 초깃값에 의해 결과가 크게 변하므로 초깃값 선택이 대단히 중요.
      • 가중치가 0이면 시그모이드 함수는 선형이 되고, 신경망 모형은 근사적으로 선형 모형이 됨.
      • 일반적으로 초깃값은 0 근처에서 무작위로 선택되기에 초기 모형은 선형에 가깝고, 가중치값이 증가함에 따라 비선형이 됨.
    • 학습 모드
      • 온라인 학습 모드 : 관측값을 순차적으로 하나씩 신경망에 투입해 가중치 추정값이 매번 변경. 속도가 빠름. 국소최솟값에서 벗어나기 쉬움. 훈련 데이터가 비정상성 nonstationarity 과 같이 특이한 성질을 지닌 경우 더욱 줗음.
      • 확률적 학습 모드 : 신경망에 투입되는 관측값의 순서가 랜덤.
      • 배치 학습 모드 : 전체 훈련 데이터를 동시에 신경망에 투입.
    • 은닉층과 은닉노드의 수
      • 신경망 적용 시 가장 중요.
      • 은닉층과 은닉노드가 많아지면 가중치가 많아져 과대적합 문제가 발생. 반대로 적으면 과소적합 발생.
      • 은닉층 수가 하나인 신용망은 범용 근사자 universal approximator 이므로 모든 매끄러운 함수를 근사적으로 표현 가능. 따라서 가능하다면 은닉층은 하나로 선정.
      • 은늑노드의 수는 적절히 큰 값으로 지정해 가중치를 감소시켜가는 것이 좋음.
    • 과대적합 문제
      • 신경망에서는 많은 가중치를 추정해야 하기에 과대적합 문제가 빈번.
      • 알고리즘의 조기종료 (검증오차가 증가하기 시작할 때) 및 가중치 감소 기법 (선형모형의 능형회귀와 비슷한 벌점화 기법)으로 해결 가능.
    • 경사 감소 소멸 Gradient descent vanishing 문제
      • 신경망의 층수 (은닉층 수)가 늘어나 앞쪽의 은닉층 가중치가 제대로 훈련되지 않는 현상.
      • 이를 극복코자 DBN, SAE, CNN 등의 딥러닝 알고리즘 등장.

    3절 심층신경망 Deep Neural Network

    1. DNN 개요 및 특징

    • 심층신경망 DNN 은 입력층과 출력층 사이 복수의 은닉층을 포함하는 인공신경망을 의미.
    • 특징 
      • 다중의 은닉층을 지니기에 데이터의 잠재적 구조를 파악할 수 있고 비선형적 관계 학습 가능.
      • 학습을 위해 많은 연산이 요구되고, 과적합이나 높은 시간 복잡도 등의 문제 발생 가능성. 2000년대 이후, 드롭아웃, ReLU, 배치 정규화 등의 기법으로 상기 문제 해결하여 딥러닝 핵심 모델로 활용 중.
      • 암 진단, 주가지수예측, 환율 예측 등에 활용됨.
      • CNN (이미지 처리), RNN (시계열 데이터), 심층 오토인코더, DBN (비지도형 기계학습 기반) 등의 종류가 있음.

    4절 합성곱 신경망 Convolution Neural Network

    1. CNN 개요 

    • 인간의 시각인지 과정에서 착안함. 이미지와 같은 2차원 데이터를 분석하는 심층신경망 방법론.
    • 필터링을 통해 입력된 이미지로부터 특징을 추출해 신경망에서 분류작업 수행.
    • 영상, 이미지 인식, 자연어 처리 등에서 활용 중.

    2. CNN 알고리즘

    • 이미지 픽셀값을 그대로 입력받지 않고, 이미즈를 대표하는 특성을 도출해 신경망에 넣는 방법 채용.
    • 특징을 추출하는 합성곱 레이어와 특징 데이터의 사이즈를 줄이고 노이즈를 상쇄하는 풀링 레이어로 구성.

    출처 : Analyticvidhya

    • 합성곱 과정 
      • 합성곱 층의 뉴런은 이미지의 모든 픽셀과 이어지지 않고 수용 영역 receptive field 에 있는 픽셀과 연결됨. 수용 영역의 용량만큼 필터 (커널)가 존재함.
      • 필터는 합성곱층의 가중치 파라미터에 해당. 학습 단계에서 적절한 필터를 찾도록 학습함. 컨볼루션 혹은 필터링으로 얻은 특성 지도는 ReLU와 같은 활성화 함수를 거쳐 출력.
      • 합성곱 연산을 적용하면 입력 데이터보다 작은 크기의 특성(피쳐) 맵이 출력되기에 정보 손실이 일어날 수 있음. 이 문제를 보완하고자 이미지의 가장자리를 특정 값으로 감싸는 패딩 작업을 수행.
      • 1) Feature Map
      • 합성곱 계층의 입출력 데이터를 뜻함. 입력된 피쳐 맵은 필터링을 통해 출력 피쳐 맵으로 나옴.
      • 필터는 주로 4x4, 3x3의 행렬로 정의됨. 지정된 간격 Stride 만큼 이동하며 전체 입력 데이터와 합성곱을 통해 피쳐 맵을 생성.
      • 2) Padding
      • 출력 피쳐 맵 계산 시, Stride 설정에 따라 출력 피쳐 맵이 정수로 나누어 떨어지지 않아 필터와 스트라이드를 사용하지 못할 수 있고 이는 정보 손실로 이어진다. 
      • 패딩은 입력 피쳐 맵의 외곽에 지정된 픽셀만큼 특정값 (보통 0을 넣음) 으로 채워넣는 것을 뜻함.
    • 풀링 과정
      • 합성곱 연산 후, 풀링 단계를 거쳐 활성화된 피쳐 맵의 크기를 줄인다. 그리고 이 피쳐 맵에 컨볼루션, 활성화, 서브 샘플링을 수행해 글로벌한 피쳐맵으로 재구성함.
      • 상기 과정을 반복해 얻은 최종 피쳐 맵은 인공신경망에 입력돼 어떤 그룹에 속하는지 분류함. ☞ CNN은 특성 추출 신경망과 분류 신경망이 직렬로 연결된 구조.
      • 풀링은 필수는 아님.
      • 필터 내의 가장 큰 값을 대푯값으로 추출하면 맥스 풀링, 평균값을 대푯값으로 하면 평균 풀링.

    5절 순환 신경망 Recurrent Neural Network

    • 시계열 데이터 (음성, 자연어, 센서 등)을 처리하기 위한 모델로 순차적, 반복적 데이터 학습에 특화.
    • 내부가 순환구조로 이루어짐. 입력층, 은닉층, 출력층 구성은 동일하나 은닉층이 이전 데이터를 참조하게끔 연결됨.
    • 신경망 내부에 상태를 저장해 시퀀스 형태의 데이터 입력을 처리하고 향후 데이터 예측.

    출처 : Wikidocs

    • 동일한 가중치와 편향이 모든 입력값에 대해 동일하게 적용되고 RNN 네트워크를 재귀적으로 사용해 길이에 제한이 없음.
    • 현재 데이터 처리를 위해 과거 데이터가 필요하므로 병렬 처리가 불가능하여 속도가 느림.
    • 특징
      • 자동번역, 단어 의미 판단, 이미지 캡션 생성 등의 자연어 처리 분야에서 활용.
      • 초깃값에 따라 과거 데이터를 계속 곱하면 작아지는 문제 발생.
      • 매 시점마다 심층신경망이 연결되면 오래 전 데이터의 기울기값이 소실되는 문제 발생.
      • 위 문제 해결을 위해 LSTM 방식의 순환신경망 개발. 

    6절 LSTM (Long Short-Term Memory)

    • RNN은 입력 데이터와 참고 데이터의 위치 차이가 벌어질 경우 문맥을 연결하기 힘들다는 문제점 (장기 의존성 문제). LSTM은 이를 보완.
    • RNN과 동일하게 이전 은닉층 값과 현재 입력값에 가중치를 곱하고 tanh 함수로 얻은 출력값을 해당 순번의 은닉층 값으로 계산하는 과정 반복.
    • but, LSTM에서는 이전 단계의 정보를 메모리 셀에 저장해 현재 정보를 바탕으로 과거 내용을 얼마나 반영할지 결정 + 그 결과에 현재 정보를 더해 다음 시점으로 정보 전달
    • 메모리와 결과값을 컨트롤할 수 있다는 장점 ↔ 메모리가 덮어씌워질 우려, 느린 연산속도 (단점) 

    출처 : Wikidocs

     

    ♧ 예상문제 오답 정리

    • 포화문제 : 역전파를 진행함에 따라 각 노드를 연결하는 가중치의 절대값이 커져 조정이 이루어지지 않아 underfitting이 발생하는 케이스
    • 신경망 모형의 특성
      • 변수가 많거나 입출력 변수 사이에 복잡한 비선형관계가 존재할 때 유용. 노이즈에 대해서도 로버스트한 편.
      • 뉴런은 입력신호 w의 합을 계산해 임계값과 비교하고, 활성화 함수로 출력 결정.
    • R 인공신경망 함수 - neuralnet() : 가중치가 클수록 해당 신호의 중요성이 크다고 볼 수 있음. neuralnet()의 일반화 가중치는 로지스틱 회귀 모형의 회귀계수와 비슷하게 해석됨.
    • DNN
      • 데이터의 잠재적 구조 파악 가능.
      • 비선형적 관계 학습 가능.
    • DFN (Deep Feedforward Network)
      • 딥러닝에서 기본적으로 이용되는 인공신경망으로 입력층, 은닉층, 출력층으로 구성. 대개 2개 이상의 은닉층을 가짐. 다만 DFN은 입력 데이터를 전파하기만 하므로 시계열 데이터에 대한 예측에 부적합.
    • CNN
      • 필터 : 이미지의 특징을 찾기 위한 공용 파라미터. 커널이라고도 함.
    • 활성화 함수
      • ReLU : 입력값이 0 이하면 0, 0보다 크면 해당값 출력.
      • Leaky ReLU : ReLU에서 뉴런이 죽는 현상을 보완하고자 만들어졌는데 입력값이 음수라면, 입력값의 1/10을 출력함.
    • LSTM
      • LSTM은 단방향, 양방향, 단/다층구조, 매니 투 원/매니 등과 같이 다양한 구조로 활용 가능.
      • 상호작용이 가능한 4개의 레이어로 구성됨.
      • 입력값은 데이터 개수, 시간축 차원, 입력 데이터 feature에 해당하는 3차원 구조를 가짐.
    728x90
    반응형