반응형 Tips27 분류 모델 성능 평가 지표 (Accuracy, precision, recall, F1 score) 분류 모델의 성능을 평가할 때 사용하는 표는 아래와 같습니다. 아래 셀의 용어들이 평가지표 정의에 사용됩니다.TP : True Positive (환자를 환자로 진단)FN : False Negative (환자인데 정상으로 진단)FP : False Positive (정상인데 환자로 진단)TN : True Negative (정상을 정상으로 진단)Positve 와 Negative 를 이해를 돕기 위해 환자와 정상으로 설명한 것입니다. 목적에 따라 Positive와 Negative의 의미가 달라질 수 있습니다.1. Accuracy (정확도)정의전체 예측 중에서 정답을 맞춘 비율공식$$Accuracy=\frac{TP+TN}{TP+TN+FP+FN}$$장점해석이 직관적임클래스가 균형잡혀 있으면 유용함단점클래스 불균형이.. 2025. 2. 28. 딥러닝에서 에폭과 배치 쉽게 이해하기 에폭 (epoch)1에폭이란 모든 훈련 데이터가 학습에 한번씩은 사용되는 것을 의미함.예를 들어, 데이터가 500개라면 500개의 데이터를 모두 학습해야 1에폭이 됨그러나 1000개의 데이터를 한번에 입력하고 가중치를 수정하면 메모리 사용량이 급격히 증가하고, CPU나 GPU성능이 저하될 수 있음.이러한 문제를 해결하기 위해 배치(batch) 개념을 사용함.배치 (batch)전체 데이터를 여러개의 그룹으로 나누는데, 이 그룹을 배치라고 부름예를 들어, 500개의 데이터를 50개씩 묶으면 10개의 배치가 생김.각 배치를 학습할 때마다 가중치를 업데이트하여 모델을 점진적으로 최적화함. 10개의 배치가 모두 학습에 사용된 것이 1에폭임. 배치학습 VS 미니배치학습전체 데이터를 여러개 그룹으로 나눠서 학습하는 .. 2025. 2. 22. 세그멘테이션 결과 평가 (Accuracy, Dice, IoU) 1. Accuracy전체 픽셀 중 올바르게 분류된 픽셀의 비율정의는 아래와 같음$$Accuracy = \frac{TP+TN}{TP+TN+FP+FN}$$특징 : 전체 성능 평가단점 : 객체 영역이 작고 배경이 대부분일 경우, 배경을 맞추기만 해도 Accuracy가 높게 나올 수 있음2. Dice coefficient예측한 객체 정답과 정답 영역 간의 겹침 정도정의는 아래와 같음 (A는 예측한 세그멘테이션 영역, B는 정답인 영역. 절댓값은 픽셀 수를 의미)$$Dice=\frac{2\times \left | A\cap B\right |}{\left | A\right |+\left | B\right |}$$배경(TN)은 포함하지 않고, positive class 영역의 겹침에 초점을 맞춤3. Intersect.. 2025. 2. 17. 데이터를 train, valdation, test 로 나누지 않고 train 과 test로만 나누는 경우 1. 데이터셋의 크기가 매우 작은 경우 데이터셋 자체가 충분히 크지 않다면, 세 덩어리(Train/Val/Test)로 쪼개면 각 파티션의 데이터가 너무 적어져서 학습/검증/테스트가 모두 불안정해질 수 있습니다. 이럴 때는 Train / Test로만 나눈 뒤, 교차 검증(Cross Validation) 등을 활용하여 하이퍼파라미터를 조정하는 경우가 많습니다. 예: K-Fold Cross Validation을 통해 Train 세트를 다시 여러 폴드로 나누어 검증을 대체하고, 최종적으로 Test 세트로 성능을 평가.2. 과거(혹은 단순) 실습/연구 관행 과거 머신러닝 실습이나 비교적 간단한 연구에서는 Train/Test만 사용하는 것이 흔했습니다. 하이퍼파라미터가 많지 않거나, 모델 구조가 단순해 추가적인 검.. 2025. 2. 12. 머신러닝과 딥러닝의 차이 이번 글에서는 머신러닝과 딥러닝에 어떤 차이가 있는지 이야기해볼 것입니다.머신러닝은 인간이 하는 일을 기계가 대신 하도록 해주는 기술입니다. 머신러닝이라는 이름도 기계가(머신) 배운다(러닝)이라는 의미입니다. 머신러닝을 하는 상황을 하나 살펴봅시다. 강아지 사진과 고양이 사진이 여러장 있고, 강아지인지 고양이인지 맞추는 인공지능을 만들려고 합니다. 머신러닝은 사진을 입력받아 무언가를 할 수가 없습니다. 사진에서 수염의 여부, 몸통 크기, 다리 길이, 귀의 면적 등을 인간이 먼저 추출해주어야 합니다. 그리고 그 추출된 값들을 입력받아 학습을 하게 됩니다. 반면 딥러닝은 사진 자체를 입력받을 수 있습니다. 사진을 통채로 입력하면, 딥러닝에서는 알아서 특징을 추출하고 강아지인지 고양이인지 분류하는 학습을 수행.. 2025. 2. 6. 딥러닝에서 k-fold cross validation 안 쓰는 이유 k-fold cross validation 은 tablular data에서 주로 쓰인다. tabular data 는 아래와 같은 데이터다. X : 값 Y : 레이블 이런 데이터에서는 train set 을 어떻게 뽑느냐에 따라 결과가 많이 달라질 수 있다. 한번 학습을 하는게 오래걸리지도 않는다. 따라서 여러 조합의 train set 을 뽑아보는 cross validation 을 적용하는게 유리하다. But Image data 의 경우 어떤 train set 을 뽑느냐에 그리 민감하지 않다. 또한 학습이 오래걸리므로 여러 조합의 train set을 뽑아서 cross validation 하기가 어렵다. 2024. 7. 26. 오토인코더는 어디에 사용되나 1. 차원축소 오토인코더는 차원축소에 사용됩니다. 오토인코더의 인코더 부분이 차원을 축소하는 역할을 합니다. 2. 노이즈 제거 학습에 사용할 데이터셋 X에 노이즈를 추가하여 X'를 만듭니다. X'를 input 으로 하고 X'와의 차이를 loss function 으로 정의하여 오토인코더를 학습시킵니다. 이렇게 학습한 오토인코더는 노이즈를 제거하는 역할을 합니다. 3. 이상치 탐지 2번에서 만든 오토인코더를 사용합니다. 어떤 사진 A에 이상한 값이 있을 경우 오토인코더는 이를 노이즈로 인식하여 제거한 결과 A'를 출력합니다. A와 A'의 차이맵 (diff map)을 이용하여 이상치를 탐지할 수 있습니다. 이 차이가 클수록 이상치가 많은 것입니다. 2023. 11. 16. 대표적인 5가지 생성형 모델 요약 (GAN, VAE, Flow-based Model, Diffusion Model, Autogressive model) VAE, GAN, Flow-based Modell, Autogressive model, Diffusion Mode 순서로 알아보겠습니다. 1. VAE 1) VAE 2) CVAE (Conditional) 3) VQ-VAE (Vector Quantised) :실제적이고 디테일한 이미지 생성. latent variable 이 discrete함. 2. GAN 2-1. GAN의 종류 1) GAN 2) DCGAN : CNN 사용 3) CGAN 4) WGAN : EM distance 사용 5) WGAN-GP(Gradient panelty) : weight clipping 의 대안으로 gradient 의 norm 에 패널티 부여 6) PGGAN (Progressive Growing) : 저해상도 이미지로부터 고해상도의.. 2023. 11. 15. 이진분류기의 손실함수 (binary cross entropy) 쉽게 이해하기 신경망을 이용하여 이진분류기 하나를 만들려고 합니다. 고양이와 개를 분류하는 이진분류기를 만들 것입니다. 개와 고양이 사진을 모으고 개는 1, 고양이는 0이라는 label을 설정합니다. 신경망의 출력은 0과 1사이의 값 하나를 출력할 것입니다. 출력값을 p로 놓고, 개일 확률이라고 정의 하겠습니다. 이제 손실함수를 정의합시다. 손실함수는 아래와 같은 두가지 조건을 만족해야 합니다. 1) 참값 y가 1일 경우, p는 1에 가까울 수록 손실이 작고 0에 가까울 수록 손실이 커야함 2) 참값 y가 0일 경우, p는 1에 가까울 수록 손실이 크고 0에 가까울 수록 손실이 작아야함 다양한 형태의 손실함수를 정의할 수 있을겁니다. 이진분류에서 주로 사용하는 손실함수는 cross entropy 입니다. 원리를 설명하.. 2023. 11. 1. MLE 와 MAP 가 뭔가요? (최대우도추정과 최대사후확률추정) MLE와 MAP 모두 모수를 추정하는데 사용됩니다. MLE 는 Maximum Likelihood Estimation 이고, MAP 는 Maximum A Posterior) 입니다. MLE 는 우도를 최대화하는 방식으로 모수를 추정하고, MAP 는 사후확률을 최대화하는 방식으로 모수를 추정합니다. 이렇게만 이야기하면 이해하기 어려우니 쉬운 예제로 둘의 차이를 알아봅시다. MLE 동전을 세번 던져서 HHT 가 나왔습니다. 우리가 궁금한 모수 $\theta$는 앞면이 나올 확률입니다. 앞면이 나올 확률이 $\theta$ 일 때 HHT 라는 결과가 나올 확률은 아래와 같이 표현됩니다. $P(HHT|\theta)=\theta^2(1-\theta)$ 위 식의 좌변을 우도라고 부릅니다. 아래와 같이 나타냅니다. $L.. 2023. 10. 25. 베이즈 추론이란 무엇인가 베이즈 추론의 목적부터 생각해봅시다. 베이즈추론의 목적은 '모수'를 알아내는 것입니다. 베이즈추론에서는 데이터를 가지고 모수가 발생할 확률을 계산합니다. 아래 확률입니다. $P(\theta | data)$ 위 확률을 구하는 것은 어렵기 때문에 베이즈정리가 사용됩니다. 위 식에 베이즈 정리를 적용하면 아래와 같습니다. $P\left ( \theta | data \right )=\frac{P\left ( data|\theta \right )P(\theta)}{P(data)}$ 좌변을 데이터가 발생한 뒤에 계산한 확률이므로 '사후확률'이라고 부릅니다. 영어로는 posterior 입니다. 우변의 분자의 첫항은 우도(likelihood) 입니다. 우변 분자의 둘째항은 사전확률입니다. 영어로 prior 입니다. 우.. 2023. 10. 20. 시그모이드 함수의 미분 역전파알고리즘으로 풀어보기 시그모이드 함수는 아래와 같습니다. $f(x)=\frac{1}{1+e^{-x}}$ 이 함수를 미분해볼 건데요. 딥러닝에 사용되는 역전파 알고리즘을 이용해서 미분해보려고 합니다. 역전파 알고리즘이 무엇인지 감을 잡아 볼 수 있는 좋은 예제입니다. 시그모이드 함수를 아래와 같이 치환해주겠습니다. $f(x)=\frac{1}{1+b}$ $b=e^{-x}$ 아래와 같이 한번 더 치환해줍시다. $f(x)=\frac{1}{a}$ $a=1+b$ $b=e^{-x}$ $f(x)$ 를 x로 미분할건데요. 아래와 같이 체인룰을 이용해서 미분할 수 있습니다. $\frac{df}{dx}=\frac{df}{da} \frac{da}{db} \frac{db}{dx}$ 각각을 미분하면 아래와 같이 계산됩니다. $\frac{df}{dx}.. 2023. 10. 14. GAN 시뮬레이션 시각화 해주는 사이트 아래 링크 참고하세요 https://poloclub.github.io/ganlab/ GAN Lab: Play with Generative Adversarial Networks in Your Browser! Each dot is a 2D data sample: real samples; fake samples. Background colors of grid cells represent discriminator's classifications. Samples in green regions are likely to be real; those in purple regions likely fake. Manifold represents generator's transf poloclub.github.io 2023. 10. 13. k-fold 교차검증 후에 어떤 모델을 최종으로 사용해야 하나? 관련 글 https://stats.stackexchange.com/questions/52274/how-to-choose-a-predictive-model-after-k-fold-cross-validation https://machinelearningmastery.com/train-final-machine-learning-model/ 2023. 10. 13. 딥러닝 시뮬레이션 해볼 수 있는 사이트 아래 링크에서 간단한 딥러닝 분류 문제를 시뮬레이션 해볼 수 있습니다. http://playground.tensorflow.org/#activation=tanh&batchSize=10&dataset=circle®Dataset=reg-plane&learningRate=0.03®ularizationRate=0&noise=0&networkShape=1,1&seed=0.00286&showTestData=false&discretize=false&percTrainData=50&x=true&y=true&xTimesY=false&xSquared=false&ySquared=false&cosX=false&sinX=false&cosY=false&sinY=false&collectStats=false&problem=.. 2023. 10. 9. 이전 1 2 다음 반응형