1. 딥러닝의 개요

- 딥러닝은 인공신경망에 기반을 둔 머신러닝의 한 종류로 연속된 층에서 점진적으로 의미있는 표현을 배우는 데 강점이 있으며, 데이터로부터 표현을 학습하는 새로운 방식
- 인공신경망을 여러 겹 쌓은 것이 곧 딥러닝으로 많은 층을 사용한 것이 되며, 이것이 모델의 깊이가 됨
- 인공신경망의 기본 구성요소는 다른 머신러닝 알고리즘이 발전되어서 만들어진 것인데, 머신러닝은 정형 데이터에 적합한 반면, 딥러닝은 비정형 데이터에 잘 맞음

- 몇 개의 층으로 이루어진 네트워크가 이미지 안의 숫자를 인식하기 위해 Layer를 거쳐 이미지를 변환하여 인식하고 최종적으로 정보를 출력하는 것을 확인할 수 있음
- 인공신경망부터 시작되었지만, 인공신경망의 한계를 극복하기 위해 심층 신경망 기법이 제안됨
2. 인공신경망 (ANN)
1) ANN의 개요
- 인간 뇌의 피질 영역 내에는 수많은 뉴런들이 시냅스로 층층이 연결되어 존재, 그것을 신경망이라고 부름
- 인공 신경망은 인간 뇌의 신경망에 착안하여 구현된 컴퓨팅 시스템의 총칭 (주로 소프트웨어로 구현)
2) ANN의 연구
- 1943년 매컬럭과 피츠: 인간의 뇌를 수많은 신경세포가 연결된 하나의 디지털 네트워크 모형으로 간주하고 신경세포의 신호처리 과정을 모형화하여 단순 패턴분류 모형을 개발
3) 구조

- 인공신경망은 입력층, 은닉층, 출력층으로 구성되어 있음
- 입력층과 출력층 사이에 은닉층이 하나인 경우를 단층신경망, 여러 개인 경우를 다층신경망이라고 함
- 은닉층이 여러개일 때는 각 층은 여러 개의 뉴런들로 구성되어 있고, 또 각 층에 있는 뉴런들은 전, 후 층의 뉴런들과 연결되어 있음 (이때, 같은 층의 뉴런들은 서로 연결되어 있지 않음)
- 인공신경망에서 뉴런(노드)은 기본적인 정보처리 단위이고, 뉴런 여러 개가 가중된 링크로 연결된 형태, 각 가중된 링크에는 수치적인 가중치가 있고, 이는 인간 뇌의 시냅스에 해당함
- 가중치는 한 층의 뉴런들이 다른 층의 뉴런들과 연결될 때 그 연결 강도를 결정함 따라서 뉴런 간의 가중치가 크다면 서로 강하게 연결되어 있는 것
- 최초 가중치는 랜덤 값으로 설정되기 때문에 이 상태에서 어떤 값을 입력해도 원하는 값이 출력되지 않음, 따라서 인공신경망은 훈련 데이터를 통해 주어진 환경에 적응할 수 있도록 가중치를 반복적으로 갱신하여 신경망의 구조를 선택하고, 활용할 학습 알고리즘을 결정한 후 훈련을 수행

- 뉴런은 입력 링크에서 여러 신호를 받는데, 개별 신호의 강도에 따라 가중되며 활성 함수는 새로운 활성화 수준을 계산하여 출력 링크로 출력 신호를 보냄
- 이때 입력신호는 미가공 데이터 또는 다른 뉴런의 출력이 될 수 있으며, 출력 신호 또한 문제의 최종적인 해(solution)가 되거나 다른 뉴런의 입력이 될 수 있음
4) 뉴런의 계산
- 뉴런은 전이함수, 즉 활성화 함수를 사용하며 활성화 함수를 이용해 출력을 결정하며 입력신호의 가중치 합을 계산하여 임계값과 비교함
- 가중치 합이 임계값보다 작으면 뉴런의 출력은 -1, 같거나 크면 +1을 출력함
5) 뉴런의 활성화 함수

a. 시그모이드 함수
- 시그모이드 함수의 경우 로지스틱 회귀분석과 유사하며, 0~1의 확률값을 가짐
b. softmax 함수
- 표준화지수 함수로도 불리며, 출력값이 여러 개로 주어지고, 목표치가 다범주인 경우 각 범주에 속할 사후확률을 제공
c. ReLU 함수
- 입력값이 0이하는 0, 0보다 크면 그 x값을 그대로 반환하는 함수, 최근 딥러닝에서 많이 활용
d. Leaky Relu 함수
- dead ReLU란 ReLU 모델이 학습하는 동안 일부 뉴런이 0만을 출력하여 활성화되지 않는 문제
- 이런 dead ReLU를 해결하기 위해 입력값이 0보다 작은 경우 매우 작은 기울기를 부여하여 출력값이 0이 되는 걸 방지
e. 하이퍼볼릭 탄젠트 함수

- 입력값을 -1과 1사이의 값으로 변환해주는 함수
- 시그모이드와는 달리 0을 중심으로 하고있기 때문에 시그모이드와 비교해 반환값의 변화폭이 더 크며 기울기 소실 문제가 적음
6) 단일 뉴런의 학습 (단층 퍼셉트론)
- 퍼셉트론은 선형 결합기와 하드 리미터로 구성됨, 초평면은 n차원 공간의 두 개의 영역으로 나눔
- 초평면을 선형 분리함수로 정의
7) 신경망 모형 구축시 고려사항
a. 입력 변수
- 신경망 모형은 그 복잡성으로 인하여 입력 자료의 선택에 매우 민감
- 입력변수가 범주형 또는 연속형 변수일 때 아래의 조건이 신경망 모형에 적합
| 범주형 변수: 모든 범주에서 일정 빈도 이상의 값을 갖고 각 범주의 빈도가 일정할 때 연속형 변수: 입력변수 값들의 범위가 변수간의 큰 차이가 없을 때 |
- 연속형 변수의 경우 그 분포가 평균을 중심으로 대칭이 아니면 좋지 않은 결과를 도출
| 변환: 고객의 소득 -> 로그 변환 범주화: 각 범주의 빈도가 비슷하게 되도록 설정 |
b. 가중치의 초기값과 다중 최소값 문제
- 역전파 알고리즘은 초기값에 따라 결과가 많이 달라지므로 초기값의 선택은 매우 중요함
- 가중치가 0이면 시그모이드 함수는 선형이 되고 신경망 모형은 근사적으로 선형 모형이 됨
- 일반적으로 초기값은 0 근처로 랜덤하게 선택하므로 초기 모형은 선형 모형에 가깝고 가중치값이 증가할수록 비선형 모형이 됨
- 초기값이 0이면 반복하여도 값이 전혀 변하지 않고, 크면 좋지 않은 해를 주는 문제점이 있기에 주의 필요
c. 역전파 알고리즘

- 출력층에서 입력층 방향으로 오차를 전파시키며, 각 층의 가중치를 업데이트하며 최적의 학습 결과를 찾아가는 방법
- 편미분을 사용하여 오차를 역방향으로 전파함녀서 신경망의 가중치와 편향을 업데이트
- 학습률: 역전파 알고리즘에서 가중치와 편향을 업데이트할 때 얼마나 크게 업데이트할지를 결정하는 하이퍼파라미터
- 학습률이 높을수록 가중치와 편향의 업데이트를 크게 수행
- 학습률이 너무 크면 가중치와 편향이 지나치게 크게 업데이트 되어 최적의 모델을 찾지 못할 수도 있음
d. 학습 모드
| 온라인 학습모드 | - 각 관측값을 순차적으로 하나씩 신경망에 투입하여 가중치 추정값이 매번 바뀜 - 일반적으로 속도가 빠르며, 훈련자료에 유사값이 많은 경우 그 차이가 더 두드러짐 |
| 확률적 학습모드 | - 온라인 학습 모드와 같으나 신경망에 투입되는 관측값의 순서가 랜덤함 |
| 배치 학습모드 | - 전체 훈련 데이터를 동시에 신경망에 투입 |
e. 은닉층과 은닉노드의 수
- 신경망을 적용할 때 가장 중요한 부분이 모형의 선택(은닉층의 수와 은닉노드의 수 결정)
- 은닉층과 은닉노드가 많으면 가중치가 많아져서 과대적합 문제가 발생
- 은닉층과 은닉노드가 적으면 과소적합 문제가 발생
- 은닉층의 수가 하나인 신경망은 범용 근사자이므로 모든 매끄러운 함수를 근사적으로 표현할 수 있음 (가능하면 하나로 선정)
- 은닉노드의 수는 적절히 큰 값으로 놓고 가중치를 감소시키며 적용하는 것이 좋음
f. 과대 적합 문제
- 신경망에서는 많은 가중치를 추정해야 하므로 과대적합 문제가 빈번함
- 알고리즘의 조기종료와 가중치 감소 기법으로 해결 가능
- 모형이 적합하는 과정에서 검증 오차가 증가하기 시작함녀 반복을 중지하는 조기 종료를 시행
- 가중치 감소라는 벌점화 기법 사용
g. 경사감소소멸 문제
- 신경망의 층수(은닉층의 개수)가 늘어나면서 앞쪽에 있는 은닉층들의 가중치가 제대로 훈련되지 않는 현상
- 이러한 한계를 극복하기 위해 DBN, SAE, CNN 등 딥러닝 알고리즘들이 인공신경망을 기반으로 해서 생겨남
3. 심층 신경망 (DNN)
1) DNN의 개요

- 심층신경망은 입력층과 출력층 사이에 다중의 은닉층을 포함하는 인공신경망을 뜻함 (우측)
2) DNN의 특징
- 심층신경망은 다중의 은닉층을 가지고 있기 때문에 데이터의 잠재적인 구조를 파악할 수 있으며 비선형적 관계 학습이 가능
- 하지만 학습을 위해 수많은 연산이 필요하고, 과한 학습으로 인해 실제 데이터에 오히려 오차가 증가하는 과적합 혹은 높은 시간 복잡도 등의 문제가 발생할 수 있음
- 2000년대 들어서 드롭아웃, ReLU, 배치 정규화 등의 기법을 적용함으로써 이러한 문제를 해결함
- 의료분야에서 암 진단 시스템 구축 등에 활용되고, 재무분야에서는 주가지수예측, 기업신용평가 등에 활용됨
3) 오토 인코더

- 인코더를 통해 입력을 신호로 변환한 다음 다시 디코더를 통해 레이블 등을 만들어내는 비지도 학습 방법
- 입력층보다 적은 뉴런을 가진 은닉층을 중간에 넣어줌으로써 차원을 줄이고 이때 학습을 통해 소실된 데이터를 복원한 후 입력 데이터의 특징을 효율적으로 응축한 새롱누 출력을 만들어냄
- 입력과 출력이 동일한 좌우대칭 구조
4. 합성곱 신경망 (CNN)
1) CNN의 개요
- 사람의 시각인지 과정을 모방해서 인공신경망에 필터링 기법을 적용한 것으로, 이미지와 같은 2차원 데이터를 분석하는 심층신경망 이론
- CNN은 필터링을 통해 입력된 이미지로부터 특징을 추출한 뒤 신경망에서 분류 작업을 수행
- ex) 어떤 이미지를 CNN에 입력시켜주면, 그 이미지가 개인지 고양이인지에 해당하는 이미지 분류를 수행하도록 학습 시킴
- 영상 인식, 영상 분류, 이미지 인식, 자연어 처리 등에 주로 사용되며 자율주행자동차 등에도 활용
2) CNN 알고리즘

- 기존 인공신경망의 경우는 이미지 픽셀값들을 그대로 입력받아서 어떤 클래스에 속하는지 분류하는데, 같은 클래스의 데이터지만 살짝만 변형이 생겨도 각 경우에 대한 훈련 데이터가 모두 필요했고, 그에 따라 훈련시간도 상당히 길어진다는 단점이 있었음
- CNN 알고리즘에서는 이미지 픽셀값들을 그대로 입력받는 것보다는 이미지를 대표할 수 있는 특성들을 도출해서 신경망에 넣어주는 방법을 사용
- 특징을 추출하는 '합성곱(Convolution) 레이어'와 추출된 특징 데이터의 사이즈를 줄이고 노이즈를 상쇄시키는 '풀링 레이어'로 구성
a. 합성곱 과정

- 이미지 데이터가 입력되었을 때 특징을 뽑아내는 과정에 해당
- 합성곱 층의 뉴런은 이미지의 모든 픽셀에 연결되지 않고 수용 영역 안에 있는 픽셀에만 연결됨
- 수용 영역의 용량만큼 필터가 존재하며, 필터는 커널이라고도 함
- 필터는 합성곱층에서의 가중치 파라미터에 해당하며, 학습 단계에서 적절한 필터를 찾도록 학습됨
- 컨볼루션 또는 필터링 과정을 통해 얻은 특성 지도들은 ReLU와 같은 활성화 함수를 거쳐 출력됨
- 합성곱 연산을 적용하면 입력데이터보다 작은 크기의 특성 맵이 출력되며, 이 과정이 반복되면 데이터의 크기가 작아지고 정보 손실이 발생할 수 있음 이러한 문제를 해결하기 위해 이미지의 가장자리를 특정 값으로 감싸는 패딩 과정을 수행
● Feature Map
- CNN에서 합성곱 계층의 입출력 데이터를 Feature Map이라고 하며 입력된 FM은 Filter를 통해 출력 FM으로 나오게 됨
- Filter는 주로 4X4, 3X3의 행렬로 정의되며, 특징을 추출하기 위해 사용하는 파라미터
- 지정된 간격으로 이동하면서 전체 입력 데이터와 합성곱을 통해 FM을 만들어냄
- 여기서 지정된 간격으로 필터를 순회하는 간격을 Stride라고 하며 Filter와 Stride에 따라 결과 값이 달라질 수 있음
- 위 그림은 3X3 Filter에 Stride가 1인 경우
- 7X7의 Feature Map에서 Filter가 3X3이고 Stride가 2일 때, 출력 Feature Map의 크기는 7-3/2 +1 = 3이 되며
출력 Feature Map의 크기는 3X3이라는 것을 알 수 있음
● Padding

- 출력 Feature Map을 계산할 때 Stride 설정에 따라 출력 Feature Map이 정수로 나누어 떨어지지 않아 Filter나 Stride를 사용할 수 없게 되며, 이런 문제로 정보가 사라지는 등의 문제가 발생할 수 있어 Padding을 사용해 방지함
- Padding은 입력 FM의 외곽에 지정된 픽셀만큼 특정값으로 채워넣는 것을 의미함 (보통 0을 채워 넣음)
b. 풀링 과정

- 합성곱 연산 이후에 풀링이라고 불리는 과정을 통해 활성화된 특성 지도들의 크기를 줄이며 이 특성 지도들에 다시 컨볼루션, 활성화, 서브 샘플링을 수행해서 점차적으로 로컬한 특성 지도로부터 글로벌한 특성 지도를 만들어감
- 이 과정을 여러 번 반복하여 얻어진 최종 특성지도는 인공신경망에 입력되어 이미지가 어떤 클래스 라벨에 속하는지 분류해주기에 CNN은 특성 추출 신경망과 분류 신경망을 직렬로 연결한 구조로 볼 수 있음
- 풀링은 합성곱 연산 이후에 필수적으로 적용해야하는 것은 아니며, 데이터의 사이즈를 줄이고자 할 때 선택적으로 적용하는 과정
- 정해진 필터 크기 안에서 가장 큰 값을 해당 영역의 대표값으로 보고 뽑아내는 것을 맥스 풀링이라고 함
- 정해진 필터 크기 안에서 평균 값을 대표값으로 보는 것은 평균 풀링이라고 함
5. 순환 신경망 (RNN)

1) RNN의 개요
- 시계열 데이터를 처리하기 위한 모델로 순차적이며 반복적인 데이터를 학습하는 데 특화된 알고리즘
- 내부가 순환구조로 이루어져 있는 인공신경망 즉, 입력층/은닉층/출력층의 3단계 구조로 이루어져 있으나, 가장 큰 특징은 은닉층이 이전 데이터를 참조하도록 서로 연결되어 있다는 것
- 과거에 학습했던 내용을 현재의 학습에 반영하며 신경망 내부에 상태를 저장하여 시퀀스 형태의 데이터 입력을 처리하여 앞으로의 데이터를 예측함
- 동일한 가중치와 편의가 모든 입력 값에 대해서 동일하게 사용되며, RNN 네트워크를 재귀적으로 사용하므로 길이에 대한 제한이 없음
- 병렬처리가 불가능하고, 순서대로 처리해야 하므로 속도가 느림
2) RNN의 특징
- 음성인식이나 텍스트의 앞 뒤 단어를 파악하는 분석과 같이 과거 데이터를 고려하여 현재 입력데이터를 순차적으로 처리하는 분서겡 주로 사용 (자동 번역, 단어 의미 판단, 이미지 캡션 생성 등의 자연어 처리 분야)
- 초기값에 따라서 과거 데이터를 계속 곱할수록 작아지는 문제가 발생
- 매 시점마다 심층신경망이 연결되어 있을 경우, 오래 전의 데이터에 대한 기울기 값이 소실되는 문제가 발생 가능
- 이를 해결하기 위한 모델로 LSTM이 있음
6. LSTM

1) LSTM의 개요
- RNN의 문제점은 입력된 데이터와 참고해야 할 데이터의 위치 차이가 커질 때, 문맥을 연결하기 힘들다는 것
- 이러한 장기 의존성 문제(과거 정보가 마지막까지 전달되지 못하는 현상)를 보완할 수 있는 딥러닝 프레임워크가 LSTM
- RNN은 단순히 이전 은닉층 값과 현재 입력값에 각각 가중치를 곱하고 tanh 함수를 거쳐 얻은 출력값을 해당 순번의 은닉층 값으로 계산하는 과정을 반복함 (LSTM도 은닉층에서 출력층으로 넘어가는 연산은 동일)
- 하지만 LSTM에서는 이전 단계의 정보를 메모리 셀에 저장하여 현재 시점의 정보를 토대로 과거 정보를 얼마나 반영할지 결정하고 그 결과에 현재의 정보를 더해서 다음 시점으로 정보를 전달함
- LSTM은 RNN과 비교해 긴 시퀀스의 입력을 처리하는 데 탁월한 성능을 보임
- LSTM은 각각의 메모리와 결과값을 컨트롤 가능하다는 장점이 있고 메모리가 덮어씌워질 가능성과 연산속도가 느리다는 단점이 있음
'빅데이터분석기사' 카테고리의 다른 글
| [빅분기] 11.1. 분석모형 평가 (4) | 2025.08.31 |
|---|---|
| [빅분기] 10.5. 비정형 데이터 분석기법 (6) | 2025.08.29 |
| [빅분기] 10.3. 군집분석 (4) | 2025.08.28 |
| [빅분기] 10.2. 연관분석 (2) | 2025.08.28 |