본문 바로가기

알고리즘9

AdaBoost(아다부스트) 알고리즘 개념 Adaptive Boosting의 약자. Ensemble-based Classifier의 일종으로 본다. 영상을 인식하기 위하여 영상의 특징을 weak classifier를 반복적으로 적용하는 방법으로 찾아나가는 알고리즘이다. 이렇게 하면, weak classifier가 strong classifier가 된다. 아다부스트는 다음과 같이 작동한다. 처음에는 weak classifier가 아무(random) data N개를 training하고서 testing을 수행한다. 이 때 data들의 weight은 모두 동일하게 1/N. 이렇게 해서 하나의 선을 그릴 수 있게 된다. 우리는 이 선을 h1(x)라고 부를 수 있다. 이 때 제대로 분류해내지 못하는 데이터들이 발생할 것이다. 이 때의 오류값을 1이라고 부른.. 2018. 12. 23.
머신러닝(Machine Learning) 알고리즘 장단점 비교 장점 단점 k-NN 이해하기 매우 쉬운 모델이다. 그리고 많이 조정하지 않아도 자주 좋은 성능을 발휘한다. 훈련 세트가 매우 크면 (특성의 수나 샘플의 수가 클 경우) 예측이 느려진다. 이해하긴 쉽지만, 예측이 느리고 많은 특성을 처리하는 능력이 부족해 현업에서는 잘 쓰지 않는다. 따라서 주로 k-NN의 이러한 단점을 없앤 선형 모델을 사용하곤 한다. 선형 모델 학습 속도가 빠르고 예측도 빠르다. 매우 큰 데이터셋과 희소한 데이터셋에도 잘 작동한다. 또한 예측이 어떻게 만들어 지는지 수식 등을 통해 비교적 쉽게 이해할 수 있다. 하지만 계수의 값들이 왜 그런지 명확하지 않을 때가 종종 있다. 특히 데이터셋의 특성들이 서로 깊게 연관되어 있을 때 그러하다. 분류에도 널리 사용된다. 가장 널리 알려진 두 개.. 2018. 12. 20.
[Algorithms] 해쉬 테이블(Hash Table) 해시 테이블은 궁극의 탐색 알고리즘이라고 불린다. 데이터를 담을 테이블을 미리 크게 확보해 놓은 후 입력받은 데이터를 해싱(hashing)하여 테이블 내의 주소를 계산하고 이 주소에 데이터를 담는 것이 기본적인 컨셉이다. 해시 테이블은 한마디로 공간을 팔아 성능을 얻어내는 것이다. 해시값으로의 접근은 다음과 같은 방식으로 이루어진다. Table[3819] = 123817; 데이터는 해시 함수를 거치면 다음 그림처럼 테이블 내의 주소(즉, 인덱스)로 변환된다. 해시 테이블은 데이터가 입력되지 않은 여유 공간이 많아야 제 성능을 유지할 수 있다. 그렇지 않으면, collision 현상이 발생한다. 통계적으로 해시 테이블의 공간 사용률이 70%~80%에 이르면 성능 저하가 나타나기 시작한다. 다른 배열 형식의.. 2017. 4. 21.
[Algorithms] 이진트리(Binary tree) 이진 트리(binary tree)란 한 노드가 최대 두 개의 자식 노드를 가지는 트리를 말한다. 보통 첫 번째 노드를 부모 노드라고 하며 자식 노드는 왼쪽 노드(left noe)와 오른쪽 노드(right node)로 부른다. 이진 트리는 이진 탐색 트리와 이진 힙의 구현에 흔히 쓰이는 자료구조다. 용어정의 방향 간선(directed edge) : 부모 노드에서 자식 노드로 가는 경로를 가리킨다. 위 그림에서 화살표로 표현되어 있다. 루트 노드(root node) : 자신의 위로 부모 노드가 없는 노드다. 트리는 하나의 루트 노드만을 가진다. 단말 노드(leaf node) : 자식 노드가 없는 노드다. 노드의 깊이(depth) : 루트 노드에서 특정 단말 노드까지의 길이다. 레벨(level)이라고 부르기도.. 2017. 4. 19.