1. 딥러닝 vs 머신러닝 ? 딥러닝 ⊂ 머신러닝 !
최근에 ChatGpt, Geminai, OpenClaw 등 생성형 AI가 대중화됨에 따라 AI에 대한 관심도 더욱 높아지고 있었고, 또한 AI를 공부하려는 사람들도 많아졌다. 따라서 AI 관련된 자료들을 검색해보면, 딥러닝, 머신러닝이라는 단어를 빼놓고 얘기하는 자료가 없을 정도로 머신러닝과 딥러닝은 AI 관련 지식에서 필수적인 개념들이다. 따라서 딥러닝 vs 머신러닝을 비교하는 글들이 많은데, 이 둘의 관계는 vs관계로 정의될 것이 아니라 포함관계(⊂)로 정의되는 것이 맞다고 할 수 있다. AI, 딥러닝, 머신러닝에 대해 간략하게 소개하자면
● 인공지능(AI, Artificial Intelligence) : 인간과 유사한 지능적 행동을 컴퓨터로 실현하려는 광범위한 분야(검색, 계획, 추론 등등)
● 머신러닝(Machine Learning) : 데이터로부터 규칙이나 패턴을 학습해 예측/판단을 수행하는 알고리즘 및 이론(지도학습, 비지도학습, 강화학습)
● 딥러닝(Deep Learning) : 머신러닝의 하위 분야로, 여러 층의 인공신경망을 사용해 표현 학습을 자동화하는 머신러닝 기법

AI에 대해서는 많이 들어봤을테니 머신러닝과 딥러닝에 대해 조금 더 설명하자면, 머신러닝과 딥러닝은 둘 다 컴퓨터가 사람을 대신해서 데이터에 대해 분석을 진행하는 것이다. 명시적으로 규칙을 제시하지 않아도, 알아서 패턴을 학습하여 예측을 수행하는데, 머신러닝 이전의 전통적인 프로그래밍은 사람이 규칙을 선언하고, 데이터를 주게 되면 결과가 나오는 방식이었다고 할 수 있는데(규칙 + 데이터 → 결과), 머신 러닝의 경우에는 데이터 + 정답 → 규칙(모델) 으로 코드가 짜이게 된다.(본인 블로그 참고) 머신러닝 기법중 하나인 딥러닝은 인공신경망(artificial neural network)을 이용하는데, 이는 인간의 두뇌로부터 영감을 받아, 생물학적 뉴런이 서로 간에 신호를 보내는 방식을 모방하여 학습을 수행하는 것이다. 인간의 신경을 모방한만큼 대량의 연산을 수행하고, 특히 복잡하고, 비정형 데이터에서 성능이 뛰어나다. 따라서 이미지/음성처럼 복잡한 고차원 데이터에서는 딥러닝이 뛰어난 성능을 보인다.

결론 : 딥러닝은 머신러닝 기법중 하나이며, 복잡하고 대량의 데이터에서 높은 성능을 보인다.(딥러닝 ⊂ 머신러닝)
2. 딥러닝 하이파라미터
위에서 얘기한 딥러닝을 '잘', '효율적으로' 수행하려면 어떻게 해야할까? 딥러닝을 수행하기 위해선 코드를 작성하는데, 사람이 미리 적절한 학습 수, 배치 사이즈, 손실함수 등등 학습에 관한 수치들을 정할 수 있다. 이 수치들을 조정하여 모델의 성능을 극대화하고 효율적인 모델을 설계한다. 이 수치들을 하이퍼파라미터(Hyper Parameters)라고 부르며, 수치들을 알맞게 조정하는 것을 하이퍼파라미터 튜닝(Hyper Parameter-Tuning)이라고 부른다. 그렇다면 이 하이퍼 파라미터들에는 무엇이 있을까 ? 중요한 하이퍼파라미터들을 한번 알아보자.

※구조 관련
● 층 수(num_layers) : 신경망이 몇 단계의 계산을 거칠 것인가 ?
● 각 층의 유닛 수(hidden_units) : 각 층이 얼마나 많은 정보를 처리할 것인가 ?(각 층의 뉴런 개수)
-> 위 두 파라미터 모두 너무 적으면 학습률 ↓, 너무 많으면 계산량 증가(학습속도 저하), 과적합(Overfitting)
※모델 최적화 관련
●옵티마이저 종류(SGD, Adam, Momentum, etc) : 손실함수의 값을 최소화하도록 모델을 업데이트하는 알고리즘
● 학습률(learning_rate) : 모델이 한 번 학습할 때 가중치를 얼마나 크게 업데이트하는가 ?(모델이 얼마나 빠르게 배우는가 ?)
-> 너무 큰 경우 : 학습이 수렴하지 않음, 너무 작은 경우 : 학습 시간이 매우 오래걸림
-> 모델 성능을 결정하는 가장 민감한 하이퍼파라미터
※학습 스케줄/스텝 관련
● 배치 크기(batch_size) : 한 번의 학습에서 사용하는 데이터 샘플의 개수 결정(모델이 한 번에 몇 개의 데이터를 볼 것인가 ?)
-> 배치 크기가 작아질수록 : 일반화 성능 ↑, 메모리 사용 ↓
-> 배치 크기가 커질수록 : 학습 속도 ↓
●에포크 수(num_epochs) : 전체 학습 데이터를 몇 번 반복해서 학습할 것인가?
-> 에포크 수가 너무 작을 경우 : 모델이 충분이 학습 X, 과소적합(Underfitting) 발생
-> 에포크 수가 너무 큰 경우 : 모델 학습 시간 ↑, 과적합(Overfitting) 발생
-> 적절한 epoch수를 찾기 위해서 Early-Stopping(손실함수 값이 더이상 줄지 않으면 미리 종료) 사용하곤 함
※성능 안정화 관련
● 활성화 함수(sigmoid, tanh, ReLU, leaky Relu, etc) : 뉴런의 출력값을 비선형으로 변환하는 함수(신경망이 복잡한 패턴을 학습할 수 있도록 만듬)
-> 현재는 주로 ReLU, Leaky ReLU 사용
● 드롭아웃 비율(dropout_rate) : 과적합을 방지하기 위해 일부 뉴런을 랜덤으로 drop(ex. p= 0.5 : 50% 뉴런을 랜덤으로 drop)
'My IT > Article' 카테고리의 다른 글
| [My IT : Article] CNN Layer, AutoEncoder (0) | 2026.03.23 |
|---|---|
| [My IT : Article] PyTorch vs TensorFlow, Tensor(PyTorch) vs Array(Numpy) (1) | 2026.03.17 |
| [My IT : Article] 결정 트리, 앙상블 기법, 차원 축소 기법 (2) | 2026.03.04 |
| [My IT : Article] 지도학습 vs 비지도학습, 손실함수, 편향/분산, K-폴드 교차 검증 (0) | 2026.02.24 |
| [My IT : Article] 선형 자료구조 : 배열, 링크드 리스트, 스택 , 큐 , 데크 (0) | 2026.02.23 |