본문 바로가기

NEWCONCEPTS

(8)
(파이썬) list와 array의 차이점 파이썬 자료 구조에는 list와 array가 있다. list는 메모리를 할당받은 주소부터 차례로 리스트 크기만큼의 메모리를 할당받는다. 또, list는 리스트 내 타입이 다른 데이터들을 가질 수 있다. 예를 들어, ['1', 2, '3', 4]처럼 string과 int를 한 번에 담을 수 있다. 반면, array는 메모리를 할당받을 때, 컴퓨터가 알아서 남은 메모리 주소를 할당해준다. 리스트처럼 데이터들이 붙어있는 것이 아니라 각자 띄어져있어도 무관하다는 뜻이다. 이러한 array의 특성 덕분에 대용량의 데이터를 다룰 때 메모리 관리가 더 효율적이다. array는 같은 자료형만을 담을 수 있다. list - 서로 다른 타입의 데이터 저장 가능 - 메모리 할당받을 때, 일체로 할당 (테트리스처럼) arra..
DecisionTree https://www.youtube.com/watch?v=7VeUPuFGJHk x variables : x1, x2, x3,...., xn y variable : y (binary 0/1) 에 대해 각 x feature들이 y 값에 대해 어떤 연관이 있는지 확인. 예를 들어, x1 >500 일 때, y = 1인 경우 80 y = 0인 경우 30 x1 500일 때, 1 - (80/110)^2 - (30/110)^2과 x1500일 때와 x1
classification with localization (one object per image) https://www.youtube.com/watch?v=GSwYGkTfOKk Image Classification -> Image Classification with localization -> Detection 우리가 당장 인터넷을 켜서 AI 비전 인식에 대해 검색을 하면, 나오는 최신 기술은 이미지 내에 object의 갯수가 몇 개이던 그리고 클래스 종류가 다양하던 간에 다 찾아내는 Object Detection과 픽셀 단위로 물체의 경계선까지 인식하는 Image Segmentation이다. 하지만, 이미지 분류에서 시작한 이미지 인식 기술이 앞의 최신 기술들로 갑자기 발전했을까. 이미지 분류 기술이 확실하게 입증되자 사람들은 이미지 내 물체의 클래스와 위치에 대해 연구하기 시작했다. 처음에는 이미..
벡터 유사도 구하기 본 내용은 '김기현의 자연어 처리 딥러닝 캠프 -파이토치편'에서 발췌한 내용이다. L1 거리 L1 norm을 사용한 거리. 맨해튼 거리라고도 함. 두 벡터의 각 차원별 값의 차이의 절대값을 모두 합한 값 def L1_distance ( x1, x2 ) : return ((x1-x2).abs()).sum() L2 거리 L2 norm을 이용한 거리. 유클리디안 거리. 차원별 값 차이의 제곱의 합에 루트를 취한 값 def L2_distance ( x1, x2 ) : return ((x1-x2)**2).sum()**.5 Infinity Norm 차원별 값 차이 중 가장 큰 값. def inf_distance ( x1, x2 ) : return ((x1-x2).abs()).max() 코싸인 유사도 (Cosine ..
알고리즘 데이터가 여러 개 모였을 때, 그것을 정렬하는 알고리즘에 대해 알아보자. 정렬하는 알고리즘에서 우리가 우선적으로 생각해야하는 것은 정렬하는데 걸리는 속도와 복잡도이다. 쉽게 말해, 알고리즘은 데이터 전체에 간결한 규칙을 적용해 정렬하는데, 얼마나 걸리는지와 그 규칙이 얼마나 복잡한지에 대해 알아야 한다. 얼마나 걸리는지에 대한 부분은 다시 두 가지로 나눌 수 있다. 정렬하는데 걸리는 최대 횟수과 최소 횟수. 최대 횟수를 Big O라고 표현하고, 최소 횟수를 Big-Omega라고 표한다. 1. selection sort int main(void) { int temp, minIndex = 0; for (int i = 0 ; i < n-1 ; i++) { for (int j = i+1 ; j < n ; j++..
A = CR (columns) X(Rows) 선형대수학에서 행렬간의 곱셈은 rows x columns이라고 배운다. 법칙만 안다면, 초등학생도 풀 수 있는 쉬운 계산법이다. 하지만, 그건 선형대수학을 배우는 방법이 아니다. 각각의 계산들이 수의 공간에서 어떤 의미를 가지고 있는지에 대해서 알 필요가 있다. 답을 내는 계산법에 얽매이지 않고 본다면, 행렬간의 곱셈은 rows x columns가 아닌 columns x rows로도 가능하다.그리고 우리가 여기서 중점을 두는 것은 행렬 A를 어떤 식으로 분해할 수 있는지에 대한 것이다. A = CR columns에 해당하는 C는 A의 Column space에 해당하는 부분이다. column space는 기초 선형대수학에서 배웠듯이 행렬 A를 설명(represent)할 수 있는 basis의 column 집..
Maximum Likelihood Estimation (최대 우도 추정법) 최대우도추정법에 대한 설명 확률: 항아리에 n개의 흰색 구슬과 m개의 검은색 구슬이 있다. 이중에 a개의 검은색 구슬이 나올 가능성? 우도: 항아리에 100개의 구슬이 있는데, 구슬을 k번 추출했을 때, n개의 흰색 구슬과 m개의 검은색 구슬이 나왔다. 항아리에는 몇개의 검은색 구슬이 있을까? 확률은 모집단에 대한 정보를 바탕으로 구한다. 항아리가 모집단이라고 한다면, 이 항아리를 구성하는 구슬의 정보에 대해 알고 있기 때문에 확률을 구할 수 있다. 반면 최대 우도는 표본집단(sample)을 바탕으로 구한다. 어떤 시행에 대해 A라는 결과가 나왔을 때, 이 결과가 나올 정도가 우도이다. 쉽게 말하자면, sampling을 했을 때, 이 결과에 대해 얼마만큼 자신할 수 있는지에 대한 지표라고 할 수 있다. ..
자유도: degree of freedom 대학교에서 기초통계를 배울 때, 듣고 들어도 항상 헷갈리는 컨셉들이 있다. 계속 듣다가보면 '아 그런가보다' 싶다가도 며칠만 지나면 다시 헷갈리는 그런 개념들. 난 고집이 굉장히 쎈 편이고, 납득할만한 이유가 없다싶으면 아무리 꾸겨넣어도 머릿속에서 정기적으로 포맷을 하는 것처럼 까먹곤 한다. 그 중 하나가 자유도 (degree of freedom) 였다. 잊고 있었는데(그리 중요한 컨셉이였다면 훨씬 전에 기억해내고 다시 정리하지 않았을까), 통계학 원론을 훑다가 표본 표준편차를 구하는 공식에서 생각났다. 모집단에서 분산을 구할때는 평균처럼 N으로 나누면서, 왜 표본집단에서 구할 때는 n-1로 나눠서 구하는 걸까. 그럼 각설하고, the sample variance: why Divide by n-1? 에서..