본문 바로가기

DataScience68

[삽질 기록하기] Keras custom trainer 2024.02.25 - [DataScience/Project] - [아이펠톤] DR그알 - DR Segmentation [아이펠톤] DR그알 - DR Segmentation 아이펠에서 아이펠톤이라는 이름으로 프로젝트를 진행했습니다. 여기서 저는 DR그알이라는 팀을 만들고, 팀장 역할을 맡아 프로젝트를 진행했습니다. 사용했던 코드와 최종 발표자료는 https://gi mkk4726.tistory.com 이 프로젝트를 하면서 시간을 가장 뺏어간 삽질입니다. https://github.com/mkk4726/DR-GeuAl/blob/main/code/assets/one_mask/trainer.py 이런식으로 학습시키는 부분을 직접 짜면서 발생한 문제인데, 결과적으로는 인자를 빼먹어서 생긴 문제입니다. 1. 문제.. 2024. 2. 26.
[아이펠톤] DR그알 - DR Segmentation 아이펠에서 아이펠톤이라는 이름으로 프로젝트를 진행했습니다. 여기서 저는 DR그알이라는 팀을 만들고, 팀장 역할을 맡아 프로젝트를 진행했습니다. 사용했던 코드와 최종 발표자료는 https://github.com/mkk4726/DR-GeuAl 여기서 확인할 수 있습니다. 제 기술블로그에 어떤 프로젝트를 했는지 간단히 정리해보려고 합니다. 자세한 내용은 발표자료와 발표영상을 확인해주세요. 1. 팀이름 : DR 그알 DR (Diabetic Retinopathy, 당뇨병성 망막병증) 그알 (그것이 알고 싶다) 을 뜻합니다. 나름 라임을 맞춰서 센스있게 지어봤습니다. 팀이름처럼 DR과 관련된 프로젝트를 진행했습니다. 뒤에서 설명하겠지만 비증식성 DR을 segmentation 했습니다. 2. DR이란? 당뇨병 환자들.. 2024. 2. 25.
MLE vs MAP 의 직관적 이해 MLE(Maximum Likelihood Estimation)과 MAP(Maximum A Posteriror estimation)의 차이를 직관적으로 이해하는 건 꽤나 중요한 것 같다. 수식으로보면 다음과 같다. 값을 계산하기 위한 2가지 값(파라미터와 입력값) 이 주어졌을 때, 해당 값이 나올 확률이 얼마나 되는지를 likelihood (가능도) 라고 한다. 이 가능도를 최대화 하는게 MLE 이다. 반대로 입력값과 출력값이 주어졌을 때, 해당 파라미터가 나올 확률을 Posterior( 사후확률 ) 이라고 한다. 이는 앞에서 본 가능도 x 사전 확률 , 로 나타낼 수 있다. 이 2가지 방법에서의 관점 차이를 이해하는게 핵심이라고 생각한다. 먼저 MLE는 모수가 정해져있다는 가정이 깔려있다. 그렇기에 이 .. 2023. 9. 22.
[차원축소] PCA의 직관적 의미 PCA를 이해하기 위해서는 다음과 같은 인식(?)이 필요합니다. 분산이 곧 정보다. 따라서 분산을 유지하는게 중요하다. 이는 꽤나 직관적인 이야기입니다. 왼쪽에 있는 데이터가 오른쪽처럼 변환된다면 아무런 정보도 남지 않게 됩니다. "분산"이란 데이터가 퍼져있는 정도를 의미하며, 그 자체로 정보를 나타내게 됩니다. 이런 데이터의 분산을 의미하는게 "공분산 행렬"입니다. 공분산 행렬은 행렬이 가지는 본질적인 기능, "선형변환"의 역할을 통해 데이터를 표현합니다. 왼쪽의 기저벡터는 공분산 행렬이 곱해져 오른쪽과 같이 변환됩니다. 이로부터 분산을 최대한 유지하면서 차원을 축소하기 위한 아이디어가 추출됩니다. 공분산 행렬의 고유벡터대로 축소하자 공분산 행렬은 행렬의 정보인 "분산"을 반영하는 행렬이고, 공분산 행.. 2023. 8. 4.
[Clustering] DBSCAN vs HDBSCAN 1. DBSCAN의 기본 개념 DBSCAN은 밀도 기반으로 군집을 분류하는 방법입니다. 굉장히 직관적인 방법으로 Core point, Border point, $\varepsilon$, m이라는 4가지 키워드가 있습니다. 이 키워드들로 군집을 형성합니다. - $\varepsilon$ 안에 있는 점의 수가 m 개 이상이면 core point로 정의됩니다. - core point의 $\varepsilon$ 안에는 포함되지만, 본인의 $\varepsilon$ 반경 안에 점의 수가 m개 이하이면 border point로 정의됩니다. - core point의 $\varepsilon$ 안에 속하지 못한 점들은 noise로 정의됩니다. - $\varepsilon$ 안에 있는 core point들 끼리는 border .. 2023. 8. 2.
[Clustering] Spectral Clustering의 직관적 의미 Spectral Clustering은 그래프 기반의 군집화 방법입니다. 점 사이에 유사도를 구해 그래프를 구성하고 군집을 잘 구분하는 기준에 따라 잘라내는 방식입니다. 이 때 유사도 또는 가중치는 점 사이의 거리를 기반으로 구합니다. 더보기 이 때 가우시안 커널을 사용하는데 다음과 같은 특징이 있습니다. - 값이 0~1 사이의 값을 갖는다 - 거리가 멀 수록 작은 값을 가지고, 거리가 가까울 수록 큰 값을 가진다. - $\sigma$에 따라 거리의 분포가 달라진다. 첫 번째와 두 번째는 직관적이며, 세번째 부분에 대해 추가로 정리하자면 아래와 같은 특징을 가집니다. - $\sigma$ 가 작을 수록 세밀하게 군집을 나눌 수 있으나 같은 군집 내에 있더라도 거리가 조금이라도 멀어지면 유사도가 급격히 낮아짐.. 2023. 8. 1.
[eXplainable Method] SHAP(1) 기본개념 SHapley Additive exPlanation SHAP은 모델을 설명하는 방법 중 하나로 다음과 같은 컨셉을 가지고 있습니다. " Y의 값은 Y의 평균과 X의 기여도의 합으로 분석할 수 있다" 여기서 기여도를 shapley value로 구하고, 이 합으로 Y값을 구성한다는 점에서 additive라는 이름이 붙었습니다. 이에 대해 하나씩 정리해보겠습니다. LIME의 문제점 : 공평하지 못하다. 2023.07.30 - [DataScience/MachineLearning] - [eXplainable Method] LIME [eXplainable Method] LIME 1. LIME의 기본 컨셉 Local Interpretable Model-agnostic Explanation. 모델과 상관없이 local.. 2023. 7. 31.
[eXplainable Method] LIME 1. LIME의 기본 컨셉 Local Interpretable Model-agnostic Explanation. 모델과 상관없이 local Y를 해석가능한 모델을 말합니다. 복잡도가 높은 블랙박스 모델을 해석하기 위해서는 여러번 두드려보고 이를 통해 추론해야합니다. LIME의 기본 컨셉은 "특정 Y값을 변형시키고 이에 맞게 새로운 모델을 학습해 이로부터 원래 모델을 추론하는 것" 입니다. 이를 좀 더 자세히 설명하자면 원래 모델을 A, 새로운 모델을 B, 궁금한 i번째 Y 값을 Y_i라고 할 때, 1. 모델 A를 학습시킨다. 2. Y_i를 변형시킨다. 3. 학습된 모델 A로 변형된 데이터셋들을 예측한다. 4. 모델 B를 변형된 데이터셋과 A로 예측한 Y값들에 대해 학습시킨다. 5. 학습된 모델 B를 통해.. 2023. 7. 30.
[eXplainable Method] 필요한 이유, Local vs Global Feature Importance Score 모델의 설명력은 굉장히 중요합니다. 그 이유를 생각해보면 굉장히 직관적입니다. 어떤 모델을 제시할 때, 성능지표만으로는 설명도, 설득도 할 수 없기 때문입니다. 수치를 제시하는 것도 중요하지만, 그 모델이 어떻게 이런 결과를 냈는지를 설명할 수 있어야합니다. 그냥 정확도가 이정도 나왔고 정밀도가 높게 나왔다는 식의 이야기는 설득력을 갖추기 어렵습니다. 저는 아직 학생이라 현업에서의 경험은 없지만, 졸업과제를 할 때 이 부분에 대해 정말 많이 느낄 수 있었습니다. "와디즈"라는 크라우드 펀딩 사이트에서 펀딩에 성공하는 제품을 판별하는 모델을 만들었습니다. 이에 대해 발표를 할 때, 수치 위주로 발표를 하니 청중인 학생들과 교수님들은 전혀 이해하지 못하는 모습을 보였습니다. 생각해보면 수치 위주가 아닌, 이.. 2023. 7. 30.
[유사도지표] Gaussian kernel 가우시안 커널이 뭔지 , 왜 유사도 지표로 쓰이는지에 대해 정리해보려 합니다. Gaussian Kernel : $K(x, x') = exp(-\frac{||x-x'||^2}{2\sigma^2})$ 이는 non-linear fucntion of Euclidean distance으로 볼 수 있고, 0~1사이의 값을 갖도록 정규화된 버전이라고도 생각할 수 있습니다. 즉 Euclidean distance와 다르게 0~1 사이의 값을 가지므로 가중치로 자주 사용됩니다. Reference - https://datascience.stackexchange.com/questions/17352/why-do-we-use-a-gaussian-kernel-as-a-similarity-metric 2023. 7. 30.