빅데이터분석기사

딥러닝(Deep Learning)의 종류

Jia H 2025. 4. 1. 17:57

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

- 각 레이어의 입출력 데이터의 형상 유지

- 이미지의 공간 정보를 유지하면서 인접 이미지와의 특징을 효과적으로 인식

- 복수의 필터(Filter = 커널)로 이미지의 특징 추출 및 학습

- 추출한 이미지의 특징을 모으고 강화하는 풀링 레이어(Pooling Layer) 사용

- 필터를 공유 파라미터로 사용하기 때문에, 일반 인공신경마오가 비교하여 학습 파라미터가 매우 적음

 

✅️ 합성곱신경망(CNN)의 레이어 설명

구분 설명  
컨볼루션 레이어
(Convolution Layer)
입력 데이터에 필터를 적용하여 특징(Feature)을 추출하는 레이어 필터(Filter) 사용
특징맵(Feature Map) 추출
풀링 레이어
(Pooling Layer)
서브 샘플링(Sub Sampling) 이용하여 데이터 차원을 축소하는 레이어 최대/평균(Max/Average) 풀링 활용
풀리커넥티드 레이어
(Fully Connected Layer)
이전 레이어의 모든 처리 결과를 하나로 연결하여 이미지의 특징을 구분(판단)하는 심층신경망이 구성된 레이어 분류(Classification) 등 최종 결과 출력

 

✅️ 컨볼루션 레이어(Convolution Layer)의 연산

구분 기능
필터(Filter)
(=Kernel)
원본 이미지의 특징을 찾아내기 위해 사용하는 공용 파라미터
어두운 이미지를 만드는 필터, 밝은 이미지를 만든 필터 등
특징맵(Feature Map)
(= Activation Map)
합성곱 계산으로 만들어진 행렬
특징맵 사이즈 = (N + 2P - F) / S + 1
N: 입력데이터의 차원, P: 패딩값, F: 필터의 차원, S: 필터의 이동 간격(Stride)
슬라이딩 윈도우
(Sliding Windows)
원본 이미지를 필터 사이즈만큼 몇 칸 단위로 이동하는 방식
필터의 이동 간격(Stride)
채널(Channel) 원본 이미지에 n개의 필터를 적용하여 출력되는 특징맵의 수
패딩(Padding) 입력 데이터의 외각에 지정된 픽셀만큼 특정 값으로 채워 넣는 값
컨볼루션 연산 시, 이미지 사이즈가 줄어드는 것을 방지하기 위한 용도로 사용

 

✅️ 풀링 레이어(Pooling Layer)의 출력 방법

구분 기능
평균 풀링
(Average Pooling)
특징맵(Feature Map)을 풀링 크기만큼 잘라낸 후, 평균을 연산해 도출하는 방법
영향에 미미한 값들이 반영이 됨으로 성능을 떨어트릴 수 있음
최대 풀링
(Max Pooling)
특징맵(Feature Map)을 풀링 크기만큼 잘라낸 후, 최대값을 찾아 도출하는 방법
만약 최대값이 이상값 혹은 노이즈값이면 과적합의 원인이 될 수 있음
확률 풀링
(Stochastic Pooling)
입력 데이터에서 임의의 확률로 한 개를 선정
범위 내 동일한 값이 여러 개 있다면 확률적으로 선택 가능성이 높아 대표성을 띌 수 있음

 

 

 

🚀 RNN(순환신경망, Recurrent Neural Networks)

- 연속된 데이터 상에서 이전 순서의 히든노드(Hidden Node)의 값을 저장한 후, 다음 순서의 입력 데이터로 학습할 때 이전에 저장해 놓은 값을 이용하는 알고리즘

- 신경망 연결에 순환구조(Direct Cycle)를 적용한 것으로 음성이나 언어 등 연속된 입력데이터(Sequence Input Data)에 적용이 용이한 딥러닝 모델

 

✅️ 순환신경망(RNN) 알고리즘

구분 요소 설명
구성 시간 순차적으로 연결된 시간의 흐름
입력층 해당 시간에 입력된 자극이나 입력값
은닉층 시간 경과 후 재사용을 위해 저장된 배열 정보
출력층 이전 상태와 입력값을 연산하여 나온 결과
학습 순환사이클(Directed Cycle) 하나의 Input 값에 대한 다수의 출력값
순환가중치(Recurrent Cycle) 반복 가중치 구조
BPTT 알고리즘 오류역전파 확장, 시간방향을 학습(Back Propagation Through Time)
순차적 데이터 학습 과거 내용을 이용하여 현재의 문맥을 이해

 

 

🚀 LSTM(장단기 메모리 신경망, Long Shot Term Memory)

- 은닉층(Hidden Layer)이 셀 상태(Cell State)와 3개의 게이트로(입력, 출력, 망각) 구성

- 시간 흐름에 따른 이전 데이터 처리를 위해 셀(Cell) 사용

- 입력(Input) 안에 활성화 함수(tanh), 망각게이트(XOR) 사용

- 언어모델링(Language Modeling), 기계번역(Machine Translation) 등에 활용

+ GRU(Gated Recurrent unit)을 사용하여 망각게이트와 입력게이트를 합친 업데이트 게이트(Update Gate) 사용 방법

 

 

🚀 NLP(자연어 처리, Natural Language Processing)

- 기계가 자연어를 이해하고 해석하여 처리할 수 있도록 하는 과정

구분 설명
순환신경망
(RNN)
- 연속된 데이터 상에서 이전 순서의 히든노드(Hidden Node)의 값을 저장한 후, 다음 순서의 입력 데이터로  학습할 때 이전에 저장해 놓은 값을 이용하는 알고리즘
- 신경망 연결에 순환구조(Direct Cycle)를 적용한 것으로 음성이나 언어 등 연속된 입력 데이터(Sequence Input Data)에 적용이 용이한 딥러닝 모델
장단기 메모리 신경망
(LSTM)
- 순환신경망(RNN)의 장기 의존성 문제를 해결하기 위해 망각게이트(Forget Gate)를 두어 불필요한 상태를 지울 수 있게 구성한 딥러닝 모델
- 언어 모델링(Language Modeling), 기계번역(Machine Translation) 등에 활용
시퀀스-투-시퀀스
(Seq2Seq)
- 순환신경망(RNN), 장단기 메모리 신경망(LSTM) 계열의 딥러닝 모델은 입력과 출력의 크기가 고정되어 있어, 한 언어로 다른 언언를 번역할 때 길이가 달라질 경우 별도의 처리가 필요
- Seq2Seq는 RNN 계열의 모델을 활용한 구조로, 입력시퀀스를 처리하는 인코더(Encoder), 출력시퀀스를 생성하는 디코더(Decoder)를 구성하여 한 문장(시퀀스)을 다른 문장(시퀀스)으로 변환하는 딥러닝 기반 언어 모델
어텐션
(Attention)
- Seq2Seq 모델에서 인코더의 압축에서 발생하는 정보 손실 문제(인코더의 압축)를 해결하기 위해, 인코더에서 문장 정보를 모은 다음 디코더로 보내는 것이 아닌, 단어 별로 보내는 딥러닝 기반 언어 모델(특히 단어에 중요도를 높여서(보정) 반영할 수 있음)
트랜스포머
(Transformer)
- Attention은 RNN에서 인코더가 입력을 벡터로 압축 시 일부 정보가 손실되는 것을 보정하는 용도로 활용
- Transformer는 RNN을 사용하지 않고 Attention 매커니즘이 인코더와 디코더를 만드는데 직접적으로 사용 됨
- 문장 속 단어와 같은 순차 데이터 내의 관계를 추적해 맥락과 의미를 학습하는 딥러닝 기반 언어 모델
<트랜스포머의 3가지 학습 계층>
1. Encoder Self Attention: 입력 단어의 유사성 파악
2. Masked Decoder Self Attention: 등장하지 않는 단어 제외
3. Encoder Decoder Attention: 단어의 연관성 파악

 

✅️ 컨텍스트 벡터(Contect Vector)

- 시퀀스-투-시퀀스(Seq2Seq) 모델은 인코더와 디코더, 두 개의 모듈로 구성

- Contect Vector: 인코더가 입력 문장의 모든 단어들을 순차적으로 입력 받은 뒤에 마지막에 이 모든 단어 정보들을 압축해서 만든 벡터

- 입력 문장의 정보가 하나의 컨텍스트 벡터로 모두 압축되면 인코더는 컨텍스트 벡터를 디코더로 전송하고, 디코더는 컨텍스트 벡터를 받아서 번역된 단어를 한 개씩 순차적으로 출력

 

 

🚀 DBN(심층신뢰망, Deep Belief Network)

- 입력층과 출력층으로만 구성된 제한된 볼츠만머신(RBM, Restricted Boltzmann Machine)을 층층이 쌓은 형태

- 입력층 → 여러 개의 RBM(은닉층) → 출력층 형태로 구성

- RBM (제한된 볼츠만 머신): 가중치를 학습하는 무감독 학습 모델, 층 간 연결은 있지만, 같은 층 내에서는 뉴런끼리 연결되지 않음

 

✅️ 심층신뢰망(DBN) 절차

구분 절차
Step 1 가시층과 은닉층1을 하나의 제한된 볼츠만머신(RBM)으로 생각하고 학습
Step 2 학습이 종료되면 은닉층1의 값을 새로운 입력으로 하여 은닉층1과 은닉층2를 제한된 볼츠만머신(RBM)으로 학습
Step 3 단계적으로 올라가면서 마지막 층까지 학습을 시켜 결과 도출

 

 

🚀 GAN(생성적 적대신경망, Generative Adversarial Network)

- 생성자(Generator)와 판별자(Discriminator)가 서로 경쟁하는 과정을 통해 정보를 학습하는 대표적 준지도학습

- 생성자: 실제 데이터를 학습하고 이를 바탕으로 거짓 데이터 생성, 실제에 가까운 거짓 데이터 생성이 목적

- 판별자: 생성자가 내놓은 데이터가 실제인지 거짓인지 판별하도록 학습, 거짓 데이터에 속아 넘어가지 않는 게 목적

 

✅️생성적 적대신경망(GAN)의 파생 알고리즘

알고리즘 설명 활용사례
DCGAN 사실적인 이미지 형성 기술 사람 얼굴 표현
SRGAN 저해상도 이미지를 고해상도 이미지로 변환하는 기술 미술품, 회화
Stack GAN 입력 이미지 생성을 통해 문장과 단어 해석 통번역
Cycle GAN AI가 자율적으로 학습해 이미지 스타일을 변환하는 기술 회화, 이미지 변환
Star GAN 여러 모데인 같의 이미지 변환을 동시에 수행하는 기술 도메인 융합
Self-AttentionGAN 스펙트럼정규화(Spectral Normalization) 도입해 안정적 보완 이미지
BigGAN 대규모(Large Scale) 데이터에 대해서도 학습 사전학습 성능 향상
ProgressiveGAN 생성자와 판별자를 점진적으로 학습 고해성도 이미지
StyleGAN 생성자 네트워크에서 각 레이어마다 스타일 정보를 입히는 방식으로 학습 이미지 스타일 변경