전체 글 189

분류모델 성능평가 지표 (2) : PR curve, mAP (mean Average Precision)

해당 글을 읽기 전에 먼저 알아야할 내용 Confusion Matrix로 분류모델 성능평가 지표(precision, recall, f1-score, accuracy) 구하는 방법 먼저 Confusion Matrix(혼동행렬)란, 이진분류(Binary Classification) 나 다중분류(Multiclass Classification)에서 어떤 모델의 분류가 잘 되었는지 평가하기 위해 모델의 결과를 시각화한 표 또는 행렬이다. Binary kyull-it.tistory.com PR curve; Precision-Recall curve : 객체인식 결과에 대한 confidences에 대해 threshold를 지정하여 TP, FP를 구별해준다. 이를 통해 precision과 recall을 구해줄 수 있는데..

AI/Fundamental 2023.11.02

회귀분석 평가지표 정리해보기 (Metrics ; MAE, MAPE, MPE / MSE, RMSE, MSLE / R2 score)

MAE; Mean Absolute Error; 평균 절대 오차; - 오차의 절대값. (선 단위) MAPE; Mean Absolute Percentage Error; 평균 절대 비율(백분율) 오차; - MAE지표를 백분율로 계산한 것이다. MPE; Mean Percentage Error; 평균 비율(백분율) 오차; - 절댓값을 빼고 계산하여 underperformance, overperformance인지 판단할 수 있다. MSE; Mean Squared Error; 평균 제곱 오차; - 오차의 제곱 (면적 단위). - 값이 큰 오차일수록 훨씬 더 가중되어 오차가 커지고, 1미만의 오차는 더 오차가 작아진다. RMSE; Root Mean Squared Error; 평균 제곱 오차; - 오차의 제곱의 제곱근...

AI/Fundamental 2023.11.02

Spectral Clustering 알고리즘 & Laplacian Matrix. 라플라시안 행렬 (그래프이론)

Image Segmentation 기법 중에서 Spectral Clustering 이라는 알고리즘이 있다. Spectral Clustering은 기본적으로 그래프 이론을 바탕으로 Graph Partitioning Algorithm의 일종으로 사용될 수 있다. 이름을 보고 직관적으로 이해해보면, 이 알고리즘은 공간적으로 무언가를 클러스터링하겠다는 것으로 이해할 수 있다. 아래에서 더 자세히 어떤 과정으로 클러스터링을 할 수 있는것인지 간단하게 정리해보았다. 우선, 이 알고리즘은 크게 두가지 행렬을 통해 산출될 수 있다. 1. Similarity matrix(Affinity matrix) 2. Laplacian matrix 기본적으로 해당 행렬은 자료가 graph 형태로 node과 edge 정보들을 담고있다..

AI/Computer Vision 2023.11.01

2023.10 한달 간의 영어단어 기록

delve into ~을 샅샅이 조사하다. 정보를 캐내다. discrepancy 불일치. 모순. (같을 것이라고 예상된 두 결과에 대해 발생된 차이) gauge 양이나 크기를 재는 장치. (장치를 통해) 측정하다. (어떤 사람의 기분이나 태도를) 판단하다. 평가하다. performant (기술 영역에서) 올바르게, 효율적으로 잘 작동하는 precursor 선구자. 전임자 afferent 몸의 중심으로 들어오는 (신경) plasticity 가소성. (힘을 가하여 변형시킬 때, 영구 변형되는 물질의 특성) elicit (정보 또는 반응을) 이끌어내다. 도출하다. vertebrate 척추동물. 등뼈가 있는 동물. nuance 뉘앙스. full-fledged 완전히 갖춰진 fledged (새의) 날개가 날 수 ..

English/monthly 2023.11.01

다양한 관점에 따른 변수의 종류 모음. (수학, 데이터)

1. 인과관계(기능)에 따른 변수 독립 변수 (Independent Variable) : 다른 변수에 영향을 주는 변수 원인 변수 / 요인 변수 / 실험 요인 (Factor) : 종속 변수에 원인을 야기하는 독립 변수 예측 변수 (Predictor Variable) / 설명 변수 (Explanatory Variable) / 회귀 변수 (Regressor) / 자극 변수 (Stimulus) / 외생 변수 (Exogenous Variable) / 통제 변수 (Control Variable) / 공변 변수 (Covariate) : 예측에 이용되는 변수로 변화를 예측해보려고, 변화시켜보는 변수. (독립 변수) 종속 변수 (Dependent Variable) : 다른 변수로부터 영향을 받는 변수 반응 변수 (Re..

AI/Fundamental 2023.10.16

Tensorflow의 Loss Function과 Metrics의 차이

우리는 Tensorflow에서 학습 모델을 구축하려 한다. model architecture를 구성한 뒤, 모델을 실행시키기 위해서는 model compile 과정을 거치게 된다. compile단계에서는 loss function과 metrics를 정의해줄 수 있는데, 여러 종류의 loss function, metrics 중에서 풀고자하는 문제에 적합한 손실함수와 매트릭스를 선택하게 된다. 예를 들어 이진 분류 문제에서는 loss='binary_crossentropy', metrics='accuracy'를 해줄 수 있고, 회귀 문제라면 loss='mean_squared_error', metrics='mean_absolute_percentage_error'로 선택하여 모델을 컴파일할 수 있다. 얼핏보면 lo..

2023.09 한 달 간의 영어단어 기록

streamline (시스템·조직 등을) 간소화하다. (비즈니스 영어) bureaucratic 관료제 suffocate 질식하다 single-handedly 아무 도움없이; without any help from anyone else. prone (부정적인) 어떠한 영향을 받은, 어떤 특성을 보이는 standalone 독립되어 있는, 어떠한 연결도 없는 (IT분야에서 컴퓨터나 소프트웨어를 설명하는 형용사) dispersion 분산, 산란, 방산 (보통 빛에 사용하는 단어) mitigate ~을 완화시키다 tailor 맞춤제작하다. (양복뿐만아니라 다른 객체에도 사용할 수 있음) fulfill ~을 만족시키다. ~을 할 수 있게 하다 yardstick 판단 척도, 판단의 기준(가치나 성공에 대한) / 줄자..

English/monthly 2023.10.04

Tensorflow, Numpy - squeeze()와 flatten()의 차이

Tensorflow(Keras)에서는 다양한 연산을 해줄 수 있는함수들을 Layer의 형태로 제공해주고 있다. (ex. Dense, Convolution, Pooling,,,) 어떤 값들이 Layer를 통해서 나오는 Output은 텐서 형태로 그 결과물에 대해 추가적인 변형을 주고싶을 때는 해당 객체를 numpy형태로 변환해주어야한다. 그 과정은 아래의 MaxPooling2D 레이어를 거친 결과물로 예시를 들어 코드를 작성한 것에서 pooled_max.numpy()부분이다. import numpy as np import tensorflow as tf from tensorflow.keras.layers import MaxPooling2D N, n_H, n_W, n_C = 1, 5, 5, 1 f, s = 2..

[Tensorflow] 그림으로 이해하는 CNN 연산과정 (코드포함)

import numpy as np import tensorflow as tf from tensorflow.keras.layers import Conv2D N, n_H, n_W, n_C = 1, 5, 5, 3 n_filter = 5 k_size = 4 images = tf.random.uniform(minval=0, maxval=1, shape=(N,n_H,n_W,n_C)) # Forward Propogation(Tensorflow) conv = Conv2D(filters=n_filter, kernel_size=k_size) Y = conv(images) print(f"Y.shape : {Y.shape}\n") print(f"Y : \n{Y.numpy().squeeze()}\n") # Output Y.sh..