machine learning
-
Bias-variance tradeoffmachine learning 2020. 1. 24. 15:40
Bias는 학습모델이 잘못된 가정을 했을때 정답과 예측값 사이의 차이를 말한다. high bias는 학습데이터로 부터 멀어지고 모델을 지나치게 단순화시킨다. underfitting 이라고 흔히 불린다. Variance는 데이터내에 있는 에러나 노이즈까지 잘 잡아내는 highly flexible models에 데이터를 fitting 시킴으로써, 실제 현상과는 관계없는 것까지 학습되는 경향을 말한다. high vaiance 모델은 학습데이터에 지나치게 과접합되어있으며 일반적인 데이터 및 test 데이터에는 high error reates를 가지게 된다. overfitting과 관계되어 있다. Bias와 Variance는 이러한 경향을 의미할 뿐 아니라, 실제로 이 정도를 '측정'하기 위해서도 사용된다. 'B..
-
softmax / cross-entropy / kldmachine learning 2019. 7. 30. 18:56
Softmax는 classfier이며 classfication이 필요한 Layer에서 사용한다. softmax를 사용하는 이유는 결과값을 확률값으로 받기 위해 주로 사용하며 확률값이기에 모든 컴포넌트의 확률값의 총합은 1이된다. 식은 간단하게 각 element에 exponential function을 적용하여 exp한 값의 합으로 나누어서 normalization을 한다. cross-entropy는 정보이론(information theory)에서 나온 concept이며 정보이론에서 정보의 정의는 사건A에 대한 정보량 h(A)는 아래와 같이 정의한다. $${\mathrm {H} (X)=- {\log \mathrm {P} (A) }}$$ entropy란 이산확률변수(discrete random variabl..
-
K-Nearest Neighbor(KNN)machine learning 2019. 3. 13. 19:17
cs231n — KNN classifierk-NN은 분류나 회귀에 사용되는 비모수 방식이다. 두 경우 모두 입력이 특징 공간 내 k개의 가장 가까운 훈련 데이터로 구성되어 있다. 출력은 k-NN이 분류로 사용되었는지 또는 회귀로 사용되었는지에 따라 다르다.거리가장 흔하게 사용되는 거리척도는 유클리드 거리이다. 이산 변수의 경우 중첩거리(또는 해밍거리)와 같은 다른 척도가 사용될 수 있다. 종종 거리 척도가 Large Margin Nearest Neighbor or Neighbourhood components analysis 를 통해 학습된다면 k-NN 분류의 정확성을 상당히 향상시킬 수 있다.cs231n에서 KNN Classifier에 대해 설명하고 있으며 이를 통해 이미지 분류기를 만든다. 위 그림을 ..
-
유사도 구하기 (피어슨 상관계수)machine learning 2019. 3. 13. 19:16
피어슨 상관계수(Pearson correlation coefficient)Mathematical Expression유사도를 구하는 다른 방법중엔유클리디안, 코사인, 맨하튼 거리, 타니모토 계수등이 있다. 피어슨 상관계수는 두 변수의 선형관계를 파악하기 위해 사용하며 결과값 r은 (X와 Y가 함께 변하는 정도) / (X와 Y가 따로 변하는 정도) 이다.Code이 예제는 programming collective intelligence에 나오는 pearsson 함수입니다.def sim_pearson(prefs,p1,p2): # Get the list of mutually rated items si={} for item in prefs[p1]: if item in prefs[p2]: si[item]=1# if ..
-
타니모토 계수(Tanimoto coefficient)machine learning 2019. 3. 13. 19:15
타니모토 계수는 두 집합간의 유사도를 측정한다. 하지만 아이템에 선호도의 점수는 보지 않으며 아이템이 존재하는지(선호하는지) 여부만 체크하게 된다.Mathematical ExpressionCodec는 a와 b의 교집합이다.def tanimoto(a,b): c=[v for v in a if v in b] return float(len(c))/len(a)+len(b)-len(c)Result결과값이 0이면 유사한 아이템이 전혀 없다는것이고 1이면 100% 아이템이 유사하다는 의미다.타니모토 계수는 여러집합군중에서 유사한 집합을 분류하고 그 집합내의 유사도를 구하여 유사한 집합간의 아이템을 추천해주는곳에 사용될 수 있다.