본문 바로가기
2️⃣ Study/▢ 자격증 | 교육

[빅분기] 3과목 빅데이터 모델링 : 4장 딥러닝

by isdawell 2022. 4. 6.
728x90

📌 4장. 딥러닝

 

1️⃣ 딥러닝 개요 

(1) 개요 

  • 인공신경망에 기반을 둔 머신러닝의 한 종류 
  • 연속된 층(layer) 에서 점진적으로 의미있는 표현을 배우는데 강점이 있으며 데이터로부터 표현을 학습한다. 
  • ML 은 정형 데이터에 적합한데 비해 딥러닝에 잘 맞는 데이터는 비정형데이터이다. 
  • 음성인식, 이미지 인식, 자연어처리, 헬스케어 등 전반적인 분야에 활용되고 있다. 

 

2️⃣ 인공신경망 ANN ⭐⭐ - 딥러닝 구조, 뉴런, 활성화 함수, 신경망 모형 구축 시 고려사항 

(1) 개요 

  • 인공신경망 : 인간 뇌의 신경망에 착안하여 구현된 컴퓨터 시스템의 총칭 

 

(2) 연구 

  • 매컬럭과 피츠 : 신경세포 신호처리 과정을 모형화하여 단순 패턴분류 모형 개발 
  • 헵 : 신경세포 사이의 연결강도 weight 를 조정해 학습규칙 개발 
  • 로젠블럿 : 퍼셉트론이라는 인공 세포를 개발 
  • XOR 문제 
  • 필드, 러멜하트, 맥클랜드 : 역전파 알고리즘을 활용해 비선형성을 극복한 다계층 퍼센트론 

 

(3) 구조 

  • 입력층 - 은닉층 - 출력층 
  • 은닉층이 한 개면 단층 신경망, 여러 개면 다층 신경망 
  • 뉴런 : 기본적인 정보처리 단위
  • 가중치 : 가중된 링크에 해당하는 것으로 인간의 뇌에 시냅스에 해당한다. 
  • 가중치가 크다면 뉴런이 서로 강하게 연결되어 있는 것 
  • 최초 가중치는 랜덤 값이므로 훈련 데이터를 통해 가중치를 반복적으로 갱신하고 학습 알고리즘에 따라 훈련을 수행한다. 
  • 뉴런은 입력링크에서 여러 신호를 받고 개별 신호의 강도에 따라 가중되며 활성화 함수에서 새로운 활성화 수준을 계산해 출력링크로 출력 신호를 보낸다. 

 

(4) 뉴런의 계산 

  • 활성화 함수를 사용하여 출력을 결정하며, 입력신호의 가중치 합을 계산해 임계값과 비교한다. 임계값보다 작으면 뉴런의 출력은 -1, 같거나 크면 +1을 출력한다. 

 

(5) 활성화 함수 

  • 시그모이드 함수 : 로지스틱 회귀분석과 유사하며 0~1 의 확률값을 가진다. 
  • 소프트맥스 함수 : 표준화지수 함수라고도 불리며 출력값이 여러개로 주어져 목표치가 다범주인 경우 각 범주에 속할 사후확률을 제공하는 함수이다. 
  • ReLU 함수 : 입력값이 0 이하는 0 , 0보다 크면 x 값을 그대로 반환하는 함수이며 최근 딥러닝에서 많이 활용하는 함수이다. 
  • Leaky ReLU : dead ReLU 문제를 해결하기 위해 입력값이 0보다 작은 경우엔 매우 작은 기울기를 부여하여 출력값이 0이 되는 것을 막기위해 등장한 ReLU의 변형함수 
    • deda ReLU : ReLU 모델이 학습하는 동안 일부 뉴런이 0만을 출력해 활성화되지 않는 문제. 가중치가 업데이트 되다가 음수가 되는 순간 0으로 변환되어 출력되기 때문에 발생하는 문제이다. 
  • 하이퍼볼릭 탄젠트 함수 : 입력값을 -1과 1 사이의 값으로 변환해주는 함수. 시그모이드와 달리 0을 중심으로 하고있기 때문에 시그모이드와 비교했을 때 반환값의 변화폭이 더 크며 기울기 소실 문제가 적은 편이다. 

 

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

  • 퍼셉트론은 선형 결합기와 하드 리미터로 구성되며 초평면은 n 차원 공간을 두 개의 영역으로 나눈다. 
  • 초평면을 '선형 분리함수' 로 정의한다. 

 

(7) 신경망 모형 구축시 주의사항 

 

a. 입력변수 

 

🔹 범주형 

  • 모든 범주에서 일정 빈도 이상의 값을 갖고 각 범주의 빈도가 일정할 때 
  • 범주형 변수는 가변수화하여 (남녀: 1, 0 또는 1, -1) 가능하면 모든 범주형 변수는 같은 범위를 가지도록 가변수화 하는 것이 좋다. 

 

🔹 연속형 

  • 입력변수 값들의 범위가 변수간 큰 차이가 없을 때 
  • 연속형 변수는 분포가 평균을 중심으로 대칭이 아니면 좋지않은 결과를 보이기 때문에, 로그변환을 하거나 범주화를 시켜 각 범주의 빈도가 비슷하게 분포하도록 설정하는 방법을 취한다. 

 

b. 가중치 초기값과 다중 최소값 문제 

  • 역전파 알고리즘은 초기값에 따라 성능이 좌우된다. 
  • 가중치가 0으로 초기화되면 시그모이드 함수는 선형이 되고 신경망 모형은 근사적으로 선형모형이 된다. (반복하여도 값이 전혀 변하지 않음) 
  • 일반적으로 초기값은 0 근처로 랜덤하게 선택하므로 초기 모형은 선형 모형에 가깝고, 가중치 값이 증가할수록 비선형 모형이 된다. 

 

c. 학습 모드 

  • 온라인 학습 모드 
    • 각 관측값을 순차적으로 하나씩 신경망에 투입하여 가중치 추정값이 매번 바뀐다. 
    • 속도가 빠르고 훈련자료에 유사값이 많을수록 그 차이가 더 두드러진다. 
    • 훈련자료가 비정상성과 같이 특이한 성질을 가진 경우가 좋다. 
    • 국소 최솟값에서 벗어나기 쉽다
  • 확률적 학습 모드 
    • 온라인 학습 모드와 같으나 신경망에 투입되는 관측값의 순서가 랜덤하다. 
  • 배치 학습모드 
    • 전체 훈련 데이터를 동시에 신경망에 투입 

 

d. 은닉층과 은닉노드의 수 

  • 과대적합, 과소적합 문제 주의 
  • 은닉층의 수가 하나인 신경망은 범용 근사자(universal approximator) 이므로 모든 매끄러운 함수를 근사적으로 표현할 수 있다. 그러므로 가능하면 은닉층은 하나로 선정한다. 
  • 은닉노드의 수는 적당히 큰 값으로 두고 가중치를 감소시키며 적용하는 것이 좋다. 

 

f. 과대적합 문제 

  • 신경망에서는 많은 가중치를 추정해야 하므로 과대적합 문제가 빈번하다. 
  • 알고리즘의 조기종료와 가중치 감소 기법으로 해결할 수 있다. 
  • 조기종료 : 모형이 적합하는 과정에서 검증 오차가 증가하기 시작하면 반복을 중지 
  • 선형모형의 능형 회귀와 유사한 가중치 감소라는 벌점화 기법을 활용한다. 

 

e. 경사 감소 소멸 문제 

  • 신경망의 층수가 늘어나면서 앞쪽에 위치한 은닉층들의 가중치가 제대로 훈련되지 않는 현상을 뜻한다. 
  • 한계 극복 : DBN, SAE, CNN 

 

⭐ DNN, CNN, RNN 개념과 특징 

 

3️⃣ 심층신경망 DNN 

(1) 개요 

  • 입력층과 출력층 사이에 다중의 은닉층을 포함하는 인공신경망 

 

(2) 특징 

  • 데이터의 잠재적인 구조 파악이 가능 
  • 비선형적 관계를 학습 가능 
  • 학습을 위한 많은 연산으로 인해 과적합 혹은 시간복잡도 문제가 발생 👉 드롭아웃, ReLU, 배치 정규화 기법 적용 
  • ex. 암진단 시스템 구축, 주가지수 예측, 기업 신용평가, 환율예측 등에 활용 
  • 이미지 데이터 👉 CNN, 시계열 데이터 👉RNN, 비지도형 기계학습을 기반으로 하는 DBN, 심층 오토인코더 등 

 

4️⃣ 합성곱 신경망 CNN 

(1) 개요 

  • 사람의 시각인지 과정을 모방하여 인공신경망에 '필터링' 기법을 적용한 것
  • 이미지와 같은 2차원 데이터를 분석하는 심층신경망 
  • 필터링을 통해 입력된 이미지로부터 특징을 추출한 뒤 신경망에서 분류 작업을 수행한다. 
  • 영상인식, 영상분류, 이미지 인식, 자연어 처리 등에 주로 사용된다. 

 

(2) 알고리즘 

  • 기존 인공신경망 : 이미지 픽셀 값들을 '그대로' 입력받아 생기는 훈련상의 문제점들이 발생 
  • CNN 알고리즘 : 이미지를 대표할 수 있는 특성들을 도출해 신경망에 넣어주는 방법을 사용 
  • 합성곱 레이어와 풀링 레이어로 구성되어 있다. 
    • 합성곱 레이어 : 특징을 추출하는 레이어 
    • 풀링 레이어 : 추출된 특징 데이터의 사이즈를 줄이고 노이즈를 상쇄 

 

(3) 합성곱 과정 

  • 이미지 데이터가 입력되었을 때 특징을 뽑아내는 과정 
  • 합성곱 층의 뉴런은 이미지의 모든 픽셀에 연결되지 않고 '수용 영역' 안에 있는 픽셀만 연결된다. 
  • 수용영역 용량만큼의 필터가 존재 
  • 필터 = 커널 : 합성곱층에서 가중치 파라미터에 해당하며 적절한 필터를 찾도록 삭습된다. 
  • 필터링을 통해 얻은 특성 지도들은 ReLU 와 같은 활성화 함수를 거쳐 출력된다. 
  • 패딩 : 합성곱 연산으로 인해 데이터의 크기가 작아져 정보 손실이 발생할 수 있는데, 이러한 문제를 해결하기 위해 이미지의 가장자리를 특정 값으로 감싸는 패딩 과정을 수행한다. 

 

a. Feature Map 

  • CNN 의 합성곱 계층의 입출력 데이터를 칭한다. 
  • Filter : 특징을 추출하기 위해 사용하는 파라미터로 일반적으로 4x4 또는 3x3 행렬로 정의된다. 
  • Stride : 지정된 간격으로 필터를 순회하는 간격 
  • Filter 와 Stride 에 따라 결과 값이 달라질 수 있으므로 알고리즘 처리에서 중요한 역할을 한다. 
  • 입력 feature map : NxN , Filter : FxF 👉 출력 feature map : { (N-F)/Stride } + 1 

 

b. Padding 

  • 출력 feature map 을 계산할 때 Stride 설정에 따라 출력 Feature map 이 정수로 나누어 떨어지지 않아 Filter 나 Stride 를 사용할 수 없게 된다. 
  • 이러한 문제로 정보가 사라지는 등의 상황이 발생할 수 있어 Padding 을 사용해 방지한다.
  • Padding 은 입력 feature Map 의 외곽지정된 픽셀만큼 특정값으로 채워넣는 것을 의미한다. 보통 padding 값으로 0을 채워 넣는다. 
  • 기존 입력 Feature Map 이 NxN 이었다면 패딩 후에는 (N+2) x (N+2) 행렬을 가진다. 
  • 패딩을 통해 출력 Featrue Map 사이즈를 조절하는 기능인공신경망이 이미지의 외곽을 인식하는 학습효과가 있다. 

 

(4) 풀링 과정 

  • 풀링 과정을 통해 활성화된 특성 지도의 크기를 줄인다. 이 특성 지도들에 다시 컨볼루션, 활성화, 서브 샘플링을 수행해 점차적으로 로컬한 특성지도로부터 글로벌한 특성 지도를 만든다. 
  • 최종 특성 지도는 인공신경망에 입력되어 이미지가 어떤 클래스 라벨에 속하는지 분류해준다. 
  • CNN = 특성 추출 신경망분류 신경망을 직렬로 연결한 구조 
  • 풀링은 필수는 아니고, 데이터 사이즈를 줄이고자 할 때 선택적으로 적용한다. 
  • 종류 : 맥스 풀링, 평균 풀링 

 

 

 

 

5️⃣ 순환 신경망 RNN 

(1) 개요 

  • 시계열 데이터 (sequential data, 음성, 자연어, 센서, 주가 데이터 등) 를 처리하기 위한 모델로 순차적이며 반복적인 데이터를 학습하는데 특화된 알고리즘이다. 
  • 내부가 순환구조로 이루어져 있는 인공신경망이다. (입력층 - 은닉층 - 출력층) 으로 이루어져 있으나 가장 큰 특징은 은닉층이 이전 데이터를 참조하도록 서로 연결되어 있다는 것이다. 
  • 순환구조를 통해 과거에 학습했던 내용을 현재의 학습에 반영한다. 
  • 신경망 내부에 상태를 저장시퀀스 형태의 데이터 입력을 처리해 데이터를 예측한다. 
  • 동일한 가중치와 bias 가 모든 입력값에 대해 동일하게 사용 
  • RNN 네트워크를 재귀적으로 사용하기 때문에 길이에 대한 제한이 없다. 
  • 병렬처리가 불가능하여 속도가 느리다. 

 

(2) 특징 

  • 텍스트 앞 뒤 단어를 파악하는 분석처럼 과거 데이터를 고려해 현재 입력 데이터를 순차적으로 처리하는 분석에 주로 사용된다. 
  • 자동번역, 단어 의미 판단, 이미지 캡션 생성 등에 활용되고 있다. 
  • 초기값에 따라서 과거 데이터를 계속 곱할수록 작아지는 문제가 발생한다. 
  • 오래전 데이터에 대한 기울기 소실 문제 👉 LSTM 방식이 등장 

 

6️⃣ LSTM 

(1) 개요 

  • 장기 의존성 문제 : 입력된 데이터와 참고해야할 데이터의 위치 차이가 커질 때 문맥을 연결하기 힘들어진다는 것 👉 은닉층의 과거 정보가 마지막까지 전달되지 못하는 현상 
  • RNN 의 장기 의존성 문제를 보완할 딥러닝 프레임워크가 LSTM 이다. 
  • RNN 동작 방식 : 이전 은닉층의 값과 현재 입력값에 각각 가중치를 곱하고 tahn 함수를 거쳐 얻은 출력값을 해당 순번의 은닉층 값으로 계산하는 과정 반복 
  • LSTM 동작 방식 : 은닉층에서 출력층으로 넘어가는 연산은 RNN과 동일. LSTM 은 이전 단계의 정보를 메모리셀에 저장해 현재 시점의 정보를 토대로 과거 내용을 얼마나 반영할지 정하고 그 결과에 현재의 정보를 더해 다음 시점으로 정보를 전달한다. 
  • 긴 시퀀스의 입력을 처리하는데 탁월한 성능을 보인다. 
  • 메모리와 결과값을 컨트롤 가능하지만 메모리가 덮어씌워질 가능성과 연산속도가 느리다는 단점이 있다. 

 

 

 

 

 

 

 

 

728x90

댓글