[Home] AI로 돌아가기

Deep Learning (DL) - 딥러닝

딥러닝(Deep Learning)은 인공신경망(Artificial Neural Network, ANN)을 기반으로 한 머신러닝의 한 분야로 심층학습이라고도 한다. 다층 신경망(Deep Neural Network, DNN)을 활용하여 데이터를 학습하는 알고리즘의 집합이다.

(1) 딥러닝이란?

1) 개요

딥러닝은 머신러닝의 하위 분야로, 인공신경망을 기반으로 다층 구조의 신경망을 통해 데이터를 학습하는 방식이다.

비교
그림 1. 머신러닝과 딥러닝의 학습 차이
출처: 서지영, 난생처음 인공지능 입문(2판), 한빛미디어, 2024

딥러닝 네트워크는 입력층(Input Layer), 은닉층(Hidden Layers), 출력층(Output Layer)으로 구성된다.

딥러닝 구조

2) 개발 과정

...
2차원 숫자 0(4x4 배열)을 1차원 숫자(1x16 배열)로 변경하기
출처: 길벗
...
216개의 숫자를 인공신경망에 넣어 학습한 후 정답 결과 도출
출처: 길벗
...
머신러닝 학습방법 vs 머신러닝 알고리즘
출처: 길벗

5) Word Embedding (워드 임베딩)


(2) 딥러닝 vs 인공신경망

딥러닝 모델에서는 각 노드를 뉴런(Neuron)이라고 하며, 노드 간 연결을 에지(Edge)라고 한다.

각 뉴런은 입력 값을 받아들여 가중치(weight)를 적용하고, 편향(bias)을 더한 후 활성화 함수를 통과시켜 출력을 생성한다.


1) 인공신경망(ANN, Artificial Neural Network)


2) 딥러닝(Deep Learning)


(3) 기울기 소실 문제

1) 기울기 소실 문제

딥러닝 모델이 깊어질수록 역전파(Backpropagation) 과정에서 기울기(Gradient)가 소실되는 문제가 발생한다.

이 문제는 다음과 같이 설명할 수 있다:

\[ \text{오차} = \text{출력 값} - \text{실제 정답} \]

이 오차를 최소화하기 위해 매개변수를 조정하지만, 층이 깊어질수록 곱해지는 값이 작아져 기울기가 소실된다.


2) ReLU 활성화 함수

ReLU(Rectified Linear Unit) 활성화 함수는 기울기 소실 문제를 해결하는 데 효과적이다.

ReLU의 도함수는 다음과 같이 정의된다:

\[ f(x) = \max(0, x) \]

이 함수는 0 이하의 값에서는 0을 출력하고, 0보다 크면 1의 기울기를 유지한다.

ReLU 함수

(4) 딥러닝의 유형

1) DFN (심층 순방향 신경망; Deep Feedforward Network)

...
순방향 신경망
출처: 나무위키

2) RNN (순환 신경망; Recurrent Neural Network)

...
RNN: 기억을 갖는 신경망 모델
RNN는 (forward NN이나 CNN과 달리)
데이터의 순차구조로 인식하기 위해 데이터를 시간 순서대로 하나씩 입력 받는다.
출처: https://prod.velog.io/@cosmicdev/RNN

a) RNN (순환 신경망; Recurrent Neural Network)

...
일반신경망 vs 순환신경망
출처: https://hyun-tori.tistory.com/81

...
순환 신경망 구조
출처: 길벗

b) LSTM(장단기 메모리 순환 신경망; Long Short-Term Memory)

...
RNN vs LSTM
a: RNN은 내부 상태(메모리)를 사용하여 입력 시퀀스를 처리한다.
b: 장단기 메모리(LSTM) 네트워크는 RNN의 변형으로,
과거 데이터를 기억하기 위해 장기 메모리가 추가된다.
출처: DOI:10.1101/2020.05.03.075184
...
게이트는 입력 게이트, 출력 게이트, 망각 게이트가 있다.
출처: https://ljyong.tistory.com/47

c) GRU (Gated Recurrent Unit)

...
RNN, LSTM, GRU
출처: 10.17977/um018v6i22023p215-250

LSTM이 RNN보다 훨씬 강력한 모델이기는 하지만, 단점도 있다. 계산량이 많아 속도가 느리고, 복잡한 구조 때문에 구현이 어렵다는 것이다. 그래서 등장한 모델이 바로 GRU(Gated Recurrent Unit)이다. GRU는 LSTM과 비슷한 기능을 하지만 구조가 더 단순해 빠르게 동작한다. LSTM과 GRU는 비슷한 시기에 등장했지만 서로 스타일이 다른 모델이다. 마치 필기할 때 다른 사람처럼 말이다. LSTM이 ‘꼼꼼한 필기형’이라면, GRU는 ‘빠른 요약형’이다.

LSTM은 모든 중요한 내용을 필기장에서 정리하고 필요한 때 꺼내 본다. 하지만 필기가 많아 시간이 오래 걸린다. 그에 비해 GRU는 중요한 정보만 간략하게 요약해서 기록한다. 그래서 복잡한 정보를 짧고 빠르게 기억하고 활용할 수 있다. GRU는 LSTM보다 단순하기 때문에 암기 구조와 원리가 짧고 빠르다. 즉, 중요한 부분만 간단하게 정리해서 보관하는 방식이다. GRU는 LSTM보다 계산량이 적기 때문에 빠른 속도가 중요한 경우에 많이 사용된다. GRU는 LSTM보다 더 가볍고 빠르게 정보를 기억하는 방식으로 발전했다. 여전히 RNN 기반의 구조적 한계를 벗어나진 못했다. GRU와 LSTM은 입력된 정보를 효과적으로 기억하는 데 집중한 모델이기에, 번역처럼 새로운 문장을 만들어야 하는 작업에는 최적화되지 않았다. ‘잘 기억하는 것’과 ‘잘 생성하는 것’은 다르다.


3) CNN (합성곱 신경망; Convolutional Neural Network)

...
합성곱(Convolution)에서 4×4 이미지를 2×2 이미지로 추출하는 모습
출처: 길벗
...
전체와 부분을 함께 학습하는 CNN
출처: 길벗

...
CNN의 가장 큰 장점은 필터를 학습을 통해 스스로 만든다는 것이다.
출처: https://aidev.co.kr/deeplearning/782

4) Generative NN (생성 신경망)

지난 2017년 8월 미국 워싱턴대학교 연구진은 버락 오바마 전 미국 대통령의 가짜 영상을 만들어 화제가 됐다.
...
Click on the person who is real
https://www.whichfaceisreal.com/

a) GAN (적대적 생성 신경망; Generative Adversarial Network)

...
경찰과 위조지폐범의 예시
출처: 과학기술정보통신부 블로그

b) Diffusion Model (디퓨전 모델)

...
https://www.superannotate.com/blog/diffusion-models



...
챗GPT로 생성한 “우주를 떠다니는 고양이”


(5) 딥러닝의 체험: 텐서플로(TensorFlow)

[유튜브] 딥러닝을 시각화해서 본다고!? 텐서플로 플레이그라운드

1) 텐서플로 플레이그라운드(TensorFlow playground) 접속하기

웹 브라우저에서 TensorFlow Playground에 접속한다. 초기 화면에는 데이터(DATA), 특성(FEATURES), 은닉층(HIDDEN LAYERS), 출력(OUTPUT) 영역이 배치되어 있으며, 분류(classification)를 기본 문제로 제공한다.

...
텐서플로 플레이그라운드로 딥러닝 이해하기
출처: https://medium.com/

2) 시작 버튼 클릭하기

▶ 버튼을 누르면 학습이 진행되며 에포크(epoch) 카운터가 증가한다. 학습 중에는 손실값의 변화를 통해 모델 수렴 여부를 확인할 수 있다. 손실이 일정 수준에서 더 이상 줄어들지 않으면 과대적합 혹은 한계에 도달한 것이다.


3) 출력 부분 살펴보기

OUTPUT 패널에는 결정 경계와 데이터 분포가 실시간으로 갱신된다. 학습 데이터와 검증 데이터는 서로 다른 색으로 표기되며, Training lossTest loss 곡선을 통해 과적합 여부를 가늠할 수 있다. 검증 손실이 학습 손실과 급격히 벌어지면 과적합 신호다.


4) 신경망의 구조 설계하기

은닉층의 개수와 각 층의 뉴런 수는 모델의 표현력을 좌우한다. 층과 뉴런을 늘리면 복잡한 경계를 학습할 수 있으나, 계산량 증가와 과적합 위험이 동반된다. 2‒3개 층, 층당 8‒12개 뉴런을 기준으로 시작한 뒤, 성능을 확인하며 조정한다.


5) 데이터 입력 형태 선택하기

기본 특성은 x₁, x₂이며, 필요에 따라 x₁·x₂, x₁², x₂², sin(x₁), sin(x₂) 등 파생 특성을 추가할 수 있다. Ratio of training to test data(훈련/검증 비율), Noise(노이즈), Batch size, Epoch을 조절한 뒤 REGENERATE를 눌러 새 데이터를 생성한다.


6) 복잡한 형태의 데이터 구분하기

비선형 경계가 필요한 데이터의 대표 예로 나선형(spiral)이 있다. 데이터셋에서 Spiral을 선택하고 적절한 은닉층 구성과 파생 특성을 더하면 나선형에 가까운 결정 경계를 학습할 수 있다.

핵심: 입력 특성 선택이 성능을 크게 좌우한다. 무작정 층과 뉴런을 늘리는 것보다, 문제 구조에 맞는 파생 특성 설계가 더 큰 개선을 제공한다.

7) 텐서플로 플레이그라운드 2배로 즐기기

화면 상단의 하이퍼파라미터를 적절히 조정하면 탐구 효율이 높아진다.

  1. Learning rate — 가중치 갱신 폭을 결정한다. 너무 크면 발산, 너무 작으면 수렴 지연이 발생한다.
  2. Activation — 비선형성을 도입하는 함수다. ReLU, Tanh, 시그모이드 등으로 경계의 매끈함과 수렴 특성이 달라진다.
  3. Regularization — 과적합을 줄이기 위한 항이다. L2 정규화를 사용하면 가중치가 과도하게 커지는 것을 억제한다.
  4. Regularization rate — 정규화 강도(λ). 값을 키우면 경계가 과도하게 매끈해질 수 있으므로 손실 곡선을 보며 조정한다.
  5. Problem type — 분류(classification)와 회귀(regression) 중 선택한다. 본 장에서는 주로 분류를 다룬다.