Notice
Recent Posts
Recent Comments
Link
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

bonggyulim 님의 블로그

딥러닝의 기본 개념 정리 본문

AI dev/Deep Learning

딥러닝의 기본 개념 정리

bonggyulim 2026. 4. 6. 17:30

딥러닝을 처음 공부할 때 가장 헷갈리는 부분은 “모델이 도대체 어떤 계산을 하고, 어떻게 학습되는가”이다.
코드를 따라 치는 것은 가능해도, 입력값이 어떻게 예측값으로 바뀌고, 왜 가중치가 수정되는지, 활성화함수와 옵티마이저는 각각 언제 쓰이는지가 연결되지 않으면 전체 구조를 이해하기 어렵다.

이번 글에서는 딥러닝의 가장 기본이 되는 퍼셉트론, 다층 퍼셉트론(MLP), 행렬곱, 활성화함수, 순전파와 역전파, 옵티마이저까지 하나의 흐름으로 정리해보겠다.
마지막에는 정확도(ACC)를 높이기 위해 어떤 점을 고민해야 하는지도 함께 정리한다.


1. 딥러닝이란 무엇인가

딥러닝은 입력 데이터 x 를 받아 정답 에 가깝게 예측하도록, 모델 내부의 가중치(weight)편향(bias) 를 반복적으로 조정하는 학습 방법이다.

사람이 직접 규칙을 하나하나 만드는 것이 아니라, 모델이 데이터를 통해 “어떤 특징이 중요한지”를 스스로 학습하게 만드는 방식이다.

입력 → 선형 계산 → 활성화함수 → 예측 → 손실 계산 → 역전파 → 옵티마이저 업데이트

이 과정을 수많은 반복을 통해 수행하면서 모델의 성능을 높여간다.


2. 퍼셉트론: 딥러닝의 가장 작은 계산 단위

딥러닝의 기본 단위는 퍼셉트론(Perceptron) 이다.
퍼셉트론은 여러 입력값을 받아 각각의 중요도를 반영한 뒤 하나의 값으로 합친다.

수식으로 표현하면 다음과 같다.

벡터 형태로 더 간단히 쓰면 다음과 같다.

여기서

  • : 입력값
  • : 가중치
  • b: 편향
  • : 선형 결합 결과

이다.

즉, 퍼셉트론은 입력 특징마다 서로 다른 중요도를 부여해 하나의 결과를 만드는 구조라고 볼 수 있다.
예를 들어 어떤 입력값은 예측에 매우 중요할 수 있고, 어떤 값은 거의 영향을 주지 않을 수 있다.
이때 그 중요도를 반영하는 값이 바로 가중치다.


3. 왜 활성화함수가 필요한가

퍼셉트론의 계산 결과 z 는 기본적으로 선형 결합이다.
그런데 선형 계산만 여러 번 반복하면, 층을 깊게 쌓더라도 결국 하나의 큰 선형식과 크게 다르지 않다.
즉, 복잡한 패턴을 학습하기 어렵다.

그래서 등장하는 것이 활성화함수(Activation Function) 다.

활성화함수는 모델에 비선형성을 추가한다.
이 비선형성이 있어야 딥러닝 모델은 단순한 직선 문제가 아니라, 실제 데이터에 존재하는 복잡한 패턴까지 학습할 수 있다.

4. 대표적인 활성화함수

4-1. Sigmoid

Sigmoid는 입력값을 0과 1 사이로 압축하는 함수다.
출력값을 확률처럼 해석하기 쉽기 때문에 이진 분류의 출력층에서 자주 사용된다.
입력이 커질수록 출력은 1에 가까워지고, 입력이 작아질수록 0에 가까워진다.

4-2. ReLu

ReLU는 음수는 0으로 만들고, 양수는 그대로 통과시키는 아주 단순한 함수다.
이미지 분류에서 많이 사용한다
계산이 빠르고 학습 효율도 좋아서 은닉층에서 가장 많이 사용되는 활성화함수 중 하나다.

4-3. Tanh

tanh는 출력을 -1에서 1 사이로 압축한다.
시계열 데이터에서 많이 사용한다.

4-4.SoftMax

Softmax는 여러 출력값을 전체 합이 1이 되도록 바꿔준다.
다중 분류 문제에서 클래스별로 합이 1인 확률분포 형태로 변환한다


5. 다층 퍼셉트론(MLP)

퍼셉트론 하나만으로는 복잡한 문제를 충분히 해결하기 어렵다.
그래서 여러 퍼셉트론을 층 형태로 쌓은 구조를 사용하게 되는데, 이를 다층 퍼셉트론(MLP, Multi-Layer Perceptron) 이라고 한다.

입력층→은닉층→출력층

여기서 중요한 것은 은닉층(Hidden Layer) 이다.
은닉층은 입력 데이터의 패턴을 더 추상적인 형태로 변환해 다음 층으로 전달한다.

1) 선형 계산

2) 활성화함수 적용

한 층은 결국

입력행렬곱편향더하기활성화함수

라는 흐름으로 작동한다.


6. 순전파(Forward Propagation)

입력 데이터가 들어와서 최종 예측값이 계산되는 과정을 순전파라고 한다.
예를 들어 은닉층이 하나인 모델이라면 순전파는 다음과 같이 진행된다.

입력이 각 층을 통과하면서 점차 변환되고, 마지막에 예측값 ŷ 가 만들어진다.

순전파에서 중요한 점은 활성화함수는 바로 이 단계에서 사용된다는 것이다.
즉, 순전파는 단순히 행렬곱만 하는 과정이 아니라, 각 층마다 선형 계산과 활성화함수 적용을 함께 수행하는 과정이다.


7. 손실함수(Loss Function)

예측값이 나왔다면, 이제 그 값이 실제 정답과 얼마나 차이가 나는지 계산해야 한다.
이때 사용하는 것이 손실함수다.

손실함수는 모델의 예측이 얼마나 틀렸는지를 수치로 나타낸다.

회귀 문제: MSE

이진 분류: Binary Cross Entropy

다중 분류: Categorical Cross Entropy

손실값이 작을수록 예측이 정답에 더 가깝다는 뜻이다.


8. 역전파(Backpropagation)

손실함수를 계산한 뒤에는, 이 손실을 줄이기 위해 각 가중치와 편향을 어떻게 수정해야 할지 알아야 한다.
이 과정을 역전파라고 한다.

역전파의 핵심은 손실 L 을 각 파라미터에 대해 미분하는 것이다.

이 값들은 기울기(gradient) 이며, 손실을 줄이려면 어느 방향으로 이동해야 하는지를 알려준다.

 출력층의 오차를 뒤에서부터 앞층으로 전달하면서 각 층의 기울기를 계산한다.


9. 옵티마이저(Optimizer)

역전파로 기울기를 계산했다면, 이제 실제로 파라미터를 수정해야 한다.
이 역할을 담당하는 것이 옵티마이저다.

가장 기본적인 업데이트 식은 다음과 같다.

여기서 η는 학습률(learning rate)이다.
손실이 줄어드는 방향으로 가중치와 편향을 조금씩 이동시키는 것이다.

대표적인 옵티마이저로는 다음이 있다.

  • SGD
  • Momentum
  • RMSProp
  • Adam
  • Nadam
  • AdamW

실무와 학습 예제에서는 Adam을 많이 사용하는 편이다.


10. 딥러닝 학습의 전체 흐름

1) 입력 데이터 준비

2) 순전파

3) 손실 계산

4) 역전파

5) 옵티마이저 업데이트

6) 1) ~ 5)를 반복


11. Epoch, Batch, Iteration

딥러닝에서는 전체 데이터를 한 번에 학습하지 않고, 여러 묶음으로 나누어 학습하는 경우가 많다.

  • Epoch: 전체 데이터를 한 바퀴 학습한 횟수
  • Batch: 한 번에 모델에 넣는 데이터 묶음
  • Iteration: 배치 하나를 학습한 횟수

예를 들어 데이터가 1000개이고 batch size가 100이라면,
1 epoch는 10 iteration으로 구성된다.


12. 모델 성능을 높이기 위해 어떤 고민을 해야 할까

딥러닝 모델을 만들다 보면 자연스럽게 “어떻게 하면 정확도를 더 높일 수 있을까?”라는 질문을 하게 된다.
하지만 정확도를 올리는 방법은 단순히 epoch를 늘리는 것만이 아니다.
오히려 데이터, 전처리, 모델 구조, 학습 방식, 평가 방법을 함께 고민해야 한다.

12-1. 데이터 품질을 먼저 의심해야 한다

성능이 낮을 때 가장 먼저 확인해야 할 것은 모델보다 데이터다.

  • 라벨이 잘못 붙어 있지는 않은지
  • 결측치나 이상치가 많은지
  • 클래스별 데이터 수가 너무 불균형하지 않은지
  • 학습 데이터와 테스트 데이터의 분포가 너무 다른지

아무리 좋은 모델을 써도 데이터 자체에 문제가 있으면 정확도는 쉽게 올라가지 않는다.
실무에서도 모델 구조보다 데이터 정제와 라벨 품질 개선이 더 큰 성능 향상을 만드는 경우가 많다.

12-2. 입력 전처리가 적절한지 확인해야 한다

입력값의 범위가 너무 크거나, 특성마다 단위 차이가 심하면 학습이 불안정해질 수 있다.
예를 들어 어떤 변수는 0~1 범위인데, 다른 변수는 0~10000 범위라면 가중치 학습이 한쪽에 치우칠 수 있다.

그래서 보통 다음과 같은 전처리를 고려한다.

  • 정규화(Normalization)
  • 표준화(Standardization)
  • 원-핫 인코딩
  • 텍스트 토큰화
  • 이미지 리사이즈 및 정규화

전처리는 단순한 보조 작업이 아니라, 모델 성능에 직접 영향을 주는 핵심 단계다.

12-3. 모델 구조가 문제에 맞는지 봐야 한다

모든 문제를 MLP 하나로 해결할 수 있는 것은 아니다.

  • 이미지 데이터: CNN 계열
  • 시계열 데이터: RNN, LSTM, GRU, Transformer 계열
  • 텍스트 데이터: Transformer 계열
  • 표형 데이터: MLP, 트리 기반 모델과 비교 필요

즉, 데이터 형태에 맞는 모델 구조를 선택해야 한다.
문제 유형에 비해 지나치게 단순한 모델은 성능 한계가 있고, 반대로 지나치게 복잡한 모델은 과적합을 유발할 수 있다.

12-4. 과적합과 과소적합을 함께 봐야 한다

정확도를 높이고 싶다고 해서 무조건 더 오래 학습시키는 것은 위험하다.

  • 과소적합(Underfitting): 학습 데이터조차 제대로 못 맞춤
  • 과적합(Overfitting): 학습 데이터는 잘 맞추지만 새로운 데이터는 못 맞춤

따라서 학습 정확도와 검증 정확도를 함께 비교해야 한다.
학습 정확도만 높고 검증 정확도가 낮다면, 모델이 훈련 데이터만 외운 상태일 수 있다.

  • Dropout
  • Early Stopping
  • 정규화(L1, L2)
  • 데이터 증강(Data Augmentation)
  • 모델 단순화

12-5. 하이퍼파라미터 튜닝이 필요하다

대표적으로 조정할 값은 다음과 같다.

  • 학습률
  • batch size
  • epoch 수
  • 은닉층 수
  • 뉴런 수
  • optimizer 종류

예를 들어 학습률이 너무 크면 발산할 수 있고, 너무 작으면 학습이 지나치게 느려질 수 있다.
따라서 적절한 값을 찾는 과정이 필요하다.

12-6. Accuracy만 볼지 다시 생각해야 한다

정확도(Accuracy)는 직관적이지만, 항상 좋은 지표는 아니다. 예를 들어 클래스 불균형이 심한 문제에서는 정확도가 높아도 실제 성능은 나쁠 수 있다.

예를 들어 전체 데이터의 95%가 정상, 5%가 이상이라면 모든 데이터를 정상이라고 예측해도 Accuracy는 95%가 된다. 하지만 이런 모델은 이상 탐지에는 거의 쓸모가 없다.

그래서 경우에 따라 다음 지표도 함께 봐야 한다.

  • Precision
  • Recall
  • F1-score
  • ROC-AUC
  • PR-AUC

“ACC를 높이는 것”이 목표인지, 아니면 “정말 중요한 클래스를 잘 잡는 것”이 목표인지 먼저 정의해야 한다.


'AI dev > Deep Learning' 카테고리의 다른 글

딥러닝 - RNN  (0) 2026.04.07
딥러닝 - CNN  (0) 2026.04.07