ML/DL 이해: Deep Learning
1. Deep Learning
- 딥러닝은 인공지능(AI)의 한 종류
- 인간의 뇌 신경망 구조를 모방하여 만든 인공신경망을 활용한 학습 방법
- 왜 Deep 일까?
- 데이터가 정답에 이르기까지 거치는 층(Layer)이 매우 깊고 많기 때문
- 층이 깊어질수록 모델은 복잡한 패턴과 추상적인 개념을 파악 가능
- 특징은?
스스로 특징 추출- 기존 ML은 사람이 _바나나는 노란색이고 휘어져 있어_라고 특징을 알려줘야 했음
- 그러나 딥러닝은 수만 장의 사진을 보고 무엇이 중요한 특징인지 스스로 찾음
데이터의 힘- 데이터가 많으면 많을수록, 층을 통과하며 파라미터(
)를 최적화하는 과정이 정교해짐 - 사람보다 더 정확한 판단을 내리기도!
- 데이터가 많으면 많을수록, 층을 통과하며 파라미터(
- 즉, 딥러닝은 수많은 데이터 속에서 스스로 규칙을 찾아내기 위해, 신경망 층을 깊게 쌓아 학습하는 기술
좀 더 쉽게 설명하면
- 딥러닝은 마치 바나나를 인식할 때 한 껍질씩 벗겨가며 속을 알아가는 과정과 같음
- 사물을 한 번에 파악하는 것이 아니라, 여러 개의 층(Layer)을 통과시키며 단계별로 깊이 있게 분석!
- 이 단계에 대해서 좀 더 알아보면 이런식
1️⃣ 첫 번째 층: 기본 모양 (Low-level Features)- 분석 물체의 가장 기본적인 윤곽을 살피기
- 길쭉하고 휘어져 있는 형태구나
2️⃣ 두 번째 층: 색깔과 질감 (Mid-level Features)- 분석 더 깊이 들어가 색상과 표면의 특징을 파악
- 노란색이고 겉면이 매끈매끈하네
3️⃣ 세 번째 층: 세부 디테일 (High-level Features)- 분석 바나나를 잘랐을 때의 단면이나 꼭지 부분 등 세부적인 특징을 결합
- 안쪽은 밝고 부드러운 과육이 있는 조각들이군
4️⃣ 최종 이해: 결과 도출 (Output)- 분석 모든 층에서 수집한 정보를 종합
- 이건 확실히 바나나야!
- 결국 딥러닝은 성격이 다른 여러 개의 안경을 겹쳐 쓰고 사물을 보는 것과 비슷
첫 번째 안경큰 형체만 볼 수 있음두 번째 안경색깔을 구별할 수 있음마지막 안경아주 작은 디테일까지 꿰뚫어 봄- 이 안경(층)들이 겹겹이 쌓여 있을수록(Deep), 컴퓨터는 사물을 훨씬 정확하게 인식!
- 단계별로 정확하게 특징을 파악하고 있는가? →
Learning, Weights & Bias - 단계별로 모델이 예측을 잘 하고 있는가? →
Minimizing Error - 단계별로 실제값과 예측값의 오차는 얼마나 되는가? →
MSE, Least Squares Method
2. 선형회귀의 재해석
2.1. 선형회귀에서의 파라미터
- 선형 회귀에서는 알고 있는 데이터
를 학습시켜 최적의 기울기( )와 절편( )을 결정 - 파라미터 → 기울기(
), 절편( ) - 목표 → 데이터에 가장 적합한
와 를 계산
| 단계 | 구분 | 주요 내용 |
|---|---|---|
| 1️⃣ | 데이터 정의 | |
| 2️⃣ | 선형 모델 정의 | 가설 수립: ( |
| 3️⃣ | 오차 평가 정의 | 손실 함수(MSE) 정의: |
| 4️⃣ | 오차 최소화 | 최소제곱법(Least Squares Method) 사용 |
| 5️⃣ | 파라미터 계산 | 최종 파라미터 도출 (예: |
2.2 DL에서의 파라미터
- 딥러닝에서는 경사하강법(Gradient Descent)을 사용
- 경사하강법을 통해 손실 함수가 최소가 되는 최적의 파라미터를 찾아냄
- 경사하강법 → 손실 함수의 기울기(Gradient)를 따라 낮은 쪽으로 이동하며 근사값을 찾음
- 반복 학습 → 데이터를 통해 파라미터를 지속적으로 업데이트하여 최적의 해를 찾음
| 단계 | 구분 | 주요 내용 |
| :--- | :--- | :--- | :--- |
| 1️⃣ | 데이터 준비 | 학습 데이터 전처리 (입력값
- 결국 딥러닝의 절차는 크게 **'순전파(Forward)'**와 **'역전파(Backward)'**의 반복
순전파입력 데이터가 층을 통과하며 예측값을 내놓는 과정 (1️⃣ ~ 3️⃣)오차 계산예측값과 실제 정답을 비교하여 틀린 만큼의 점수를 매김 (3️⃣)역전파계산된 오차를 뒤로 전달하며 "얼마나 고쳐야 하는지" 계산 (4️⃣)업데이트계산된 양만큼 파라미터()를 수정 (5️⃣)
- 이 과정을 수천, 수만 번 반복하면서 컴퓨터는 바나나 사진만 보고도 이건 바나나다! 라고 말할 수 있는 최적의 숫자(
)들을 찾아냄
3. DL의 정체
3.1. 딥러닝의 최소 단위 Perceptron
- 데이터를 직선으로 표현하려는 시도 (선형회귀)
- Activation Function
- 그 결과를 그대로 내보내지 않고, 비선형적인 성질을 더해줌
- 예를들어 0 아니면 1, 혹은 특정 값 이상만 통과 등
3.2. 왜 활성화 함수를 더할까?
- 선형회귀만으로는 해결할 수 없는 복잡한 문제를 풀기 위해서!
- 선형회귀
- 아무리 층을 높게 쌓아도 결국은 거대한 직선 하나일 뿐...
- 활성화 함수 추가
- 직선을 꺾고, 비틀고, 곡선으로 만들어줌
- 덕분에 컴퓨터가 복잡한 이미지나 언어의 패턴을 읽어낼 수 있게 됨
3.3. 선형회귀 vs 딥러닝 비교
| 구분 | 선형회귀 (Linear Regression) | 딥러닝 (Deep Learning) |
|---|---|---|
| 기본 구조 | ||
| 특징 | 정직한 선형 관계를 찾음 | 비선형 관계를 찾음 |
| 깊이 | Single Layer | Multi-Layer |
| 비유 | 자 대고 직선 하나 긋기 | 여러 개의 자를 꺾어 붙여서 복잡한 그리기 |
"딥러닝 = (선형회귀 + 활성화 함수)를 아주 깊게(Deep) 층층이 쌓아 올린 것"
그래서 딥러닝 모델은 거대한 수식 덩어리 라고도 부른다. 수조 개의
4. 활성화 함수
- 입력 데이터에 비선형성을 추가하여 모델이 복잡한 패턴을 학습할 수 있도록 돕는 함수
- 출력값의 범위를 제한하여 계산의 안정성도 보장
| 구분 | Sigmoid | Tanh | ReLU |
|---|---|---|---|
| 정의 | |||
| 출력 범위 | |||
| 장점 | 확률값(0~1) 출력 유용 | 출력값이 0 중심이라 학습 효율 좋음 | 계산 빠르고 성능 좋음 |
| 단점 | Gradient Vanishing 발생 가능 | Gradient Vanishing 발생 가능 | 일부 뉴런이 죽는 현상 발생 가능 |
| 주요 활용 | 이진 분류 | RNN, LSTM 신경망 | 현대 딥러닝의 표준 |
4.1 Sigmoid
- 정의:
- 출력값이 0과 1 사이로 제한되어 확률값을 출력하는 데 매우 유용함
- 입력값이 극단적일 경우(매우 크거나 작을 때) 기울기가 0에 가까워지는 Gradient Vanishing 현상 발생 가능
- 🏥 간단한 예시 → 환자의 질병 유무 판정
입력검사 수치, 나이, 증상 데이터 뉴런에 넣기필터링뉴런이 해당 질병에 걸렸을 확률을 계산결과값수치가 높을수록 1(100%)에 가까워지고, 낮을수록 0(0%)에 가까워짐
결과"이 환자가 암일 확률은 85%입니다"와 같은 이진 분류 문제에 주로 사용됨
4.2 Tanh
- Hyperbolic Tangent
- 정의:
- 출력값이 -1과 1 사이이며, 중심값이 0(Zero-centered)임
- Sigmoid와 유사하지만, 출력값이 음수와 양수에 걸쳐 있어 Sigmoid보다 학습 효율이 더 좋음
- Sigmoid와 마찬가지로 입력값이 커지면 Gradient Vanishing 문제가 발생할 수 있음
- 🎭 간단한 예시 → 영화 리뷰 감성 분석 (긍정 vs 부정)
입력리뷰 텍스트 데이터의 단어 특징들 뉴런에 넣기필터링문장의 톤이 긍정적인지 부정적인지 분류긍정 신호→ "최고예요", "재미있어요" → +1에 가까운 값 출력부정 신호→ "지루해요", "최악이에요" → -1에 가까운 값 출력
결과0을 중심으로 데이터가 분포되어 있어 RNN, LSTM 같은 순환 신경망에서 신호의 방향성을 정할 때 자주 사용됨
4.3 ReLU
- Rectified Linear Unit
- 정의:
- 음수는 버리고, 양수만 살림 (입력이 양수면 그대로 출력, 음수면 0으로 처리)
- 계산이 단순해 학습 속도가 비약적으로 빠르며, 현대 딥러닝에서 가장 기본적으로 많이 사용됨
- 양수 영역에서는 기울기가 일정하여 층이 깊어져도 신호가 잘 전달됨 (Gradient Vanishing 완화)
- 🍎 간단한 예시 → 사과와 오렌지 구분하기
입력과일의 크기와 색상 데이터를 뉴런에 넣기필터링뉴런이 사과일 가능성을 계산양성 신호→ 크기가 크고 빨간색일 때 → 의미 있는 정보야! 하며 그대로 전달음성 신호→ 크기가 작고 주황색일 때 → ReLU가 0으로 만들어 버림
결과이렇게 필요 없는 정보를 0으로 쳐내면서 학습하면, 컴퓨터는 사과와 오렌지를 가르는 아주 복잡하고 정교한비선형 경계를 더 잘 찾아낼 수 있게 됨