신경망을 구축할 떄 프로그래밍에 대해 알아볼거임.

  • 예: 훈련 데이텃 셋을 건건히 for 문을 통해 하나씩 학습시키는게 아니라 for 문을 사용하지 않는 걸로
  • 신경망 처리 계산에는 순방향 전파 계산과 역방향 전파 계산이 있음. 이것에 대해 알아볼거

 

 

Notation:

  • 입력과 출력:
    • (x, y): x는 입력, y는 출력을 나타냄.
    • x ∈ ℝ^n_x: x는 n_x 차원의 실수 벡터라는 뜻임.
    • y ∈ {0, 1}: y는 0 또는 1의 값을 가진다는 뜻임. (이진 분류 문제)
  • 훈련 데이터:
    • m개의 훈련 예제: {(x^(1), y^(1)), (x^(2), y^(2)), ..., (x^(m), y^(m))}
    • m = m_train: 훈련 데이터의 개수
    • m_test: 테스트 데이터의 개수
  • 입력 행렬 X:
    • X ∈ ℝ^(n_x × m): n_x 차원의 특성을 가진 m개의 샘플로 구성된 행렬
    • X의 shape = (n_x, m)
  • 출력 벡터 Y:
    • Y = [y^(1) y^(2) ... y^(m)]: m개의 샘플에 대한 출력값들의 벡터
    • Y ∈ ℝ^(1×m): 1×m 크기의 실수 벡터
    • Y의 shape = (1, m)
  • 예측값 (Predicted Value):
    • 변수 위에 햇(hat) 표시 (예: ŷ)
  • 편미분 (Partial Derivative):
    • ∂ 기호 사용 (예: ∂f/∂x)
  • 활성화 함수 (Activation Function):
    • σ(x) (시그모이드), tanh(x) (하이퍼볼릭 탄젠트) 등
  • 손실 함수 (Loss Function):
    • L 또는 J로 표기 (예: L(θ))

 

 

Logistic Regression 정의:

  • 0이나 1로 분류하는 알고리즘.

 

 

Sigmoid function:

  • Sigmoid 함수는 출력을 0과 1 사이로 압축하는 S자 형태의 함수로, f(x) = 1 / (1 + exp(-x))로 표현됨.

 

 

Cost Function:

  • 모델의 예측값과 실제 값 사이의 차이(오차)를 측정하는 함수임.
  • 이 함수를 최소화하는 것이 모델의 목표임. 이를 통해 예측을 더 잘하게 만드는 것.

 

 

Cost Function 1) Mean Squared Error, MSE

  • MSE = (1/n) * Σ(y_i - ŷ_i)²
  • 장점:
    • 계산이 간단함.
    • 큰 오차에 더 큰 페널티를 부여하여 이상치(outlier)에 민감하게 반응함.
    • 볼록 함수(convex function)이므로 전역 최소값을 찾기 쉽다. (이 함수는 지역 최솟값이 곧 전역 최솟값이므로, 지역 최솟값으로 움직이는게 전역 최솟값으로 움직이는 것과 동일함.)
  • 단점:
    • 이상치에 너무 민감하여 때로는 이상치의 영향을 과대평가할 수 있음.
    • 학습 과정에서 기울기 소실(gradient vanishing) 문제를 겪을 수 있음. (MSE 는 예측값과 실제값이 가까워질수록 기울기가 거의 0에 수렴하게 됨. 그래서 학습이 느려지거나 멈출 수 있음. 특히 Sigmoid 를 쓰거나, tanh 를 쓰거나 하는 경우 더욱 두드러짐.)
    • 스케일에 의존적이어서 출력 변수의 스케일이 다른 경우 문제가 될 수 있음. (0-1 사이의 변수와, 1-1000 사이의 변수가 있다면 1-1000 사이의 변수가 스케일이 더 크고 오차에 많은 영향을 줘서, 0-1 변수에도 큰 영향을 줄 수 있음.)
    • 분류 문제에는 적합하지 않음. (MSE 는 연속적인 출력을 가정하므로, 분류에서는 모델의 출력을 확률로 해석하는 경향이 있는데 MSE 는 이러한 확률해석을 지원하지는 않음. 이 경우에는 Cross-Entropy 가 더 적합.)

 

 

Cost Function 2) CrossEntropyLoss

  • 분류 문제에서 널리 사용되는 손실 함수
  • 모델의 예측 확률과 실제 레이블 간의 차이를 측정한다. 올바른 클래스에 대한 높은 확률을 예측할수록 손실이 낮아짐.
  • 중요한 건 모델이 각 클래스에 대한 예측한 확률이 있을건데, 실제 정답 클래스의 확률 값이 높을수록 손실 함수의 값은 작아지고, 정답 클래스의 확률 값이 낮을수록 손실 함수의 값은 커지며, 정답이 아닌 클래스에 대한 예측 확률이 높다면 손실 함수 또한 값이 커진다라는 걸 알아야한다.

 

 

Logistic Regression 의 Cost funcion:

  • y=1일 때 (실제 클래스가 양성인 경우):
    • 손실 함수: L = -log(ŷ)
    • ŷ가 1에 가까워질수록 (즉, 커질수록) log(ŷ)의 값은 0에 가까워짐. (손실이 최소화 됨)
    • 따라서 손실 함수는 학습 과정에서 ŷ가 1에 가까워지도록 유도한다.
  • y=0 일 때 (실제 클래스가 음성인 경우):
    • 손실 함수: L = -log(1-ŷ)
    • ŷ가 0에 가까워질수록 (1-ŷ)는 1에 가까워지고, log(1-ŷ)는 0에 가까워짐. (손실이 최소화 됨)
    • 따라서 손실 함수는 학습 과정에서 ŷ가 0에 가까워지도록 유도한다.

 

 

Loss Function vs Cost Function:

  • Loss Function:
    • 개별 데이터 포인트에 대한 예측 오차를 측정
    • 단일 학습 샘플에 대한 모델의 성능을 평가한다.
  • Cost Function:
    • 전체 학습 데이터셋에 대한 모델의 성능을 측정한다.
    • 일반적으로 개별 손실들의 평균이나 합으로 계산됨.
    • 모델 최적화의 목표가 되는 함수임.

 

 

Gradient Descent:

  • 비용 함수(cost function)를 최소화하는 모델 파라미터를 찾는 것
  • 비용 함수의 기울기(gradient)를 계산하여 파라미터를 조금씩 조정하는 방법으로 모델 파라미터를 찾음.
  • θ = θ - α * ∇J(θ) 여기서 θ는 모델 파라미터, α는 학습률, ∇J(θ)는 비용 함수의 기울기
  • 학습률 중요: 너무 크면 발산, 너무 작으면 수렴이 느림
  • Gradient Descent 의 변형:
    • Batch Gradient Descent: 전체 데이터셋 사용
    • Stochastic Gradient Descent (SGD): 각 반복마다 하나의 샘플 사용
    • Mini-batch Gradient Descent: 작은 배치 단위로 사용 (가장 일반적)
  • 개선된 알고리즘:
    • Momentum
    • RMSprop
    • Adam (가장 널리 사용됨)
    • AdaGrad

 

 

Computation Graph:

  • 계산 그래프는 복잡한 수학적 표현을 노드와 엣지로 구성된 방향성 그래프로 표현한 것
  • 각 노드는 연산을, 엣지는 데이터 흐름을 나타냄.
  • 순방향 전파(Forward Propagation): 입력에서 출력으로의 계산 과정
  • 역방향 전파(Backward Propagation): 기울기를 계산하는 과정

'Deep Learning' 카테고리의 다른 글

Activation Function  (0) 2024.07.13
Introduction to Deep Learning  (0) 2024.07.12

+ Recent posts