반응형
 

Derivative of Sigmoid and Cross-Entropy Functions

A step-by-step differentiation of the Sigmoid activation and cross-entropy loss function.

towardsdatascience.com

  • Sigmoid 활성화 함수Cross-Entropy 손실 함수단계별 미분
    • ML 영역에서 모델 훈련 중 역전파(back-propagation)을 수행할 때
    • 이 두 함수의 도함수를 이해하는 것은 필수적!
레퍼런스 블로그 자료

[1] Sigmoid 함수의 미분

  • Sigmoid / Logistic Function

 

  • e : Euler’s number
    • 대략 2.71828182859와 동일한 초월 상수인 오일러의 수
    • 임의의 x 값에 대하여 Sigmoid 함수 g(x) 는 (0,1) 범위 속한다.
    • x 값이 감소함에 따라 g(x) 는 0에 가까워지는 반면 x 값이 커짐에 따라 g(x)는 1이 되는 경향이 있다.
    • ex)

 

 

  • Quotient and Chain Rules of Differentiation
    • 몫과 연쇄 법칙의 미분
    • 2가지 방법을 사용하여 Sigmoid 함수 미분

Sigmoid 함수의 미분: Quotient Rule (Step 1)

  • STEP 1: Stating the Quotient Rule
    • 몫 법칙 명시

 

  • 몫 법칙 => 몫미분 => 몫의 미분법
  • “분모의 도함수는 분자의 도함수에 분자의 도함수를 곱한 것이며 모든 것을 분모의 제곱으로 나눈 것을 뺀 것이다.”

 

  • STEP 2: Apply the Quotient Rule
    • 몫 법칙 적용:
    • Sigmoid 함수 g(x)와 몫 법칙으로부터, 우리는

 

시그모이드 함수

 

 

 

  • 주의해야 할 2가지:
    • 상수의 도함수는 0과 같음. (u^′=0인 이유)
    • v 에서 지수 함수(e^∗)의 미분은 지수 미분 법칙(Exponential rule of differentiation)으로 다룸.

 

 

..정리 진행중..

반응형
반응형

conda에서 설치

아래는 모두 

Proceed ([y]/n)?  y

y 입력 필요

 

[0] conda update하기

conda update -n base -c defaults conda

 

[1] conda에서 stable-baselines3 설치하기

conda install conda-forge::stable-baselines3


https://anaconda.org/conda-forge/stable-baselines3

 

Stable Baselines3 :: Anaconda.org

Pytorch version of Stable Baselines, implementations of reinforcement learning algorithms. copied from cf-staging / stable-baselines3

anaconda.org

 

[2] conda에서 pytest 설치하기

conda install pytest

 

[3] conda에서 tensorboard 설치하기

conda install conda-forge::tensorboard

 

[4] conda 에서 비디오 저장하기 위해 opencv-python 설치하기

conda install conda-forge::opencv

 

반응형
반응형

https://medium.com/@anishnama20/understanding-cost-functions-in-machine-learning-types-and-applications-cd7d8cc4b47d

 

Understanding Cost Functions in Machine Learning: Types and Applications

What is cost function?

medium.com

CCE 사용 시기

  • 다중 클래스 분류: 인스턴스가 여러 가능한 범주 중 하나에만 속하는 문제에 이상적.
  • 확률적 출력: 모델 출력이 각 클래스에 대한 확률일 때 유용.
  • 출력층의 소프트맥스 활성화: 신경망의 마지막 계층에서 소프트맥스 활성화 함수와 함께 자주 사용됨.

CCE를 사용하지 않는 경우

  • 이진 분류: 두 클래스 문제의 경우, 이진 교차 엔트로피가 더 적합함.
  • 비확률적 출력: 모델 출력이 확률이 아닌 경우에는 적합하지 않음.
  • 회귀 문제: 출력이 연속적인 값이라면 범주형이 아닌 회귀 작업에는 부적절.

장점

  • 다중 클래스 문제에서의 성능: 다중 클래스를 효율적으로 처리하며 복잡한 분류 작업에서 좋은 결과를 제공.
  • 소프트맥스와의 안정성: 확률을 정규화하기 때문에 소프트맥스 함수와 잘 작동하여 안정적인 훈련을 제공.
  • 해석 가능한 손실 값: 모델이 예측한 확률 분포가 실제 분포와 얼마나 잘 일치하는지를 측정하는 해석 가능한 손실 값.

단점

  • 불균형 데이터에 민감함: 훈련 데이터가 특정 클래스로 크게 치우친 경우 성능이 저하될 수 있음.
  • 수치적 안정성 문제: CCE의 로그 함수는 특히 0에 가까운 확률에서 수치적 불안정을 일으킬 수 있음.
  • 비범주형 출력에 부적합: 출력이 이산 범주가 아닌 작업, 예를 들어 회귀에는 부적합.


요약하자면, 범주형 교차 엔트로피는 다중 클래스 분류 작업에 강력하고 널리 사용되는 손실 함수.
특히 소프트맥스 출력 계층과 결합할 때 효과적.
그러나 데이터 불균형, 이진 분류 작업, 비확률적 모델 출력의 경우에는 효과가 감소.

BCE = LogLoss = 1/n sum(-(y_actual * log(y_pred) + (1-y_actual)*log(1-y_pred)))
CCE = -1/n * sum(sum(y_actual*log(y_pred)))

y_actual : truth value
y_pred : predicted probability

 

BCE

import numpy as np
y_pred = np.array([0.2, 0.8, 0.6, 0.3])
y_actual = np.array([0, 1, 1, 0])
n = len(y_pred)
bce = -1/n * np.sum(y_actual * np.log(y_pred) + (1 - y_actual) * np.log(1 - y_pred))
print('Binary Cross-Entropy:', bce)

 

CCE

import numpy as np
y_pred = np.array([[0.1, 0.3, 0.6], [0.2, 0.7, 0.1], [0.9, 0.05, 0.05]])
y_actual = np.array([[0, 0, 1], [0, 1, 0], [1, 0, 0]])
n = len(y_pred)

cce = -1/n * np.sum(np.sum(y_actual * np.log(y_pred)))
print('Categorical Cross-Entropy:', cce)

 

반응형
반응형

https://www.evidentlyai.com/classification-metrics

분류 모델의 품질을 평가하는 방법 가이드
이진 및 다중 클래스 문제에 대한 다양한 기계 학습 메트릭 소개

 

 가이드 제공 내용
1. 정확도, 정밀도, 리콜, F1점수 및 ROC AUC 포함하는 주요 분류 메트릭 계산하는 방법
2. 메트릭의 장단점 및 코너 케이스에서 동작하는 방식과 일부 메트릭이 적합한 경우 이해
3. ML 모니터링에서 분류 메트릭을 설정하고 사용하기 위한 실제 팁

 

가이드의 차별점
1. 메트릭 뒤에 숨겨진 직관 설명. 공식에 연결하여 누구나 이해 가능한 간단한 설명에 집중.
2. 그림으로 표시된 가이드.메트릭의 시각화 제공.
3. 실제 사례 사용. 추상적인 시나리오보다는 작업 중에 발생 가능한 관련 비즈니스 사례 사용
4. 안내서를 처음부터 끝까지 읽을 필요 없이. 개별적으로 읽기 가능

 

Reference

[1] Confusion Matrix

https://www.evidentlyai.com/classification-metrics/confusion-matrix

 

How to interpret a confusion matrix for a machine learning model

How to use the confusion matrix in machine learning? This illustrated guide breaks down each matrix component and explains how to read it.

www.evidentlyai.com

 

[2] Accuray, Precision, Recall

https://www.evidentlyai.com/classification-metrics/accuracy-precision-recall

 

Accuracy vs. precision vs. recall in machine learning: what's the difference?

Confused about accuracy, precision, and recall in machine learning? This illustrated guide breaks down each metric and provides examples to explain the differences.

www.evidentlyai.com

 

[3] Multi-class Precision and Recall
https://www.evidentlyai.com/classification-metrics/multi-class-metrics#binary-vs-multi-class-classification

 

Accuracy, precision, and recall in multi-class classification

How to use accuracy, precision, and recall in multi-class classification? This illustrated guide breaks down how to apply each metric for multi-class machine learning problems.

www.evidentlyai.com

 

[4] Classification Threshold

https://www.evidentlyai.com/classification-metrics/classification-threshold

 

How to use classification threshold to balance precision and recall

Is 0.5 a universal classification threshold in probabilistic machine learning problems? This illustrated guide explains the precision-recall trade-off and how to approach threshold choice.

www.evidentlyai.com

 

[5] ROC AUC Score

https://www.evidentlyai.com/classification-metrics/explain-roc-curve

 

How to explain the ROC AUC score and ROC curve?

How to interpret the ROC curve and ROC AUC scores? This illustrated guide breaks down the concepts and explains how to use them to evaluate classifier quality.

www.evidentlyai.com

 

반응형

+ Recent posts