Archive: 2020

Feature and Feature vector

Feature and Feature vector Feature와 Feature vector에 대해 설명하기 위해 아래 몽타주를 예를 들어 설명해 볼 것이다. 몽타주는 목격자들에 의해 범인의 특징을 합쳐 만든것으로 범인을 대표할 만한 특징을 알 수 있도록 해야할 것이다. 예를 들어 모든 사람이 갖고있는 눈이 2개, 귀가 2개 같은 특징은 범인을 검거하는데 전

OpenCV를 활용한 Computer Vision - Computer Vision이란?

Computer Vision Computer Vision 컴퓨터를 이용하여 정지 영상 또는 동영상으로부터 의미 있는 정보를 추출하는 방법을 연구하는 학문 즉, 사람이 눈으로 사물을 보고 인지하는 작업을 컴퓨터가 수행하게끔 만드는 학문 아래 그림과 같이 사과라는 이미지를 컴퓨터가 인식할 수 있게끔 처리하는 과정은 그렇게 쉽지많은 않다. 둥글고 빨간색

Least Squares Problem & Orthogonal Projection

Least Squares Problem 앞서 말했던 것과 같이 크기가 $ m \times n $ 행렬에 대해 $ Ax=b $를 푼다면, 풀려는 방정식의 개수가 미지수의 개수보다 많기 때문에 해가 존재하지 않게 된다. 우리가 분석하려는 데이터들은 대체로 이런 Over-determined된 형태일 것이다. 위의 Over-determined 형태의 feat

Linear Transformation & onto, ono-to-one의 개념

아래 내용은 김도형 박사님의 선형대수 강의안, edwith의 인공지능을 위한 선형대수 강의와 KOCW의 한양대학교 이상화 교수님의 선형대수학 강의를 보고 정리한 내용이다. 행렬에 의해서의 변환 또는 함수에 대해 정리해 볼 것이다. Transformation Domain(정의역) : 입력값으로 가질 수 있는 모든 값들의 집합 Co-domain(공역)

Linear Independence, Span, and Subspace

아래 내용은 김도형 박사님의 선형대수 강의안, edwith의 인공지능을 위한 선형대수 강의와 KOCW의 한양대학교 이상화 교수님의 선형대수학 강의를 보고 정리한 내용이다. 우선 이전에 언급했듯이 solution가 존재하려면 solution 벡터가 선형시스템이 이루는 Span안에 포함되어있어야 한다. 선형시스템을 이루는 벡터들이 linearly Inde

Imbalanced Data

Imbalanced Data 실제로 도메인에서 적용될 때 클래스가 Imbalance한 데이터들이 많을 것이다. 아래와 같이 불균형인 데이터를 그냥 학습시키면 다수의 클래스를 갖는 데이터를 많이 학습하게 되므로 소수 클래스에 대해서는 잘 분류해내지 못한다. 데이터 클래스 비율이 너무 차이가 나면(highly-Imbalanced data) 단순히 우세한 클

Clustering - Hierarchical, DBSCAN, Affinity Propagation

Hierarchical clustering(계층적 군집화) 계층적 군집화(hierachical clustering)는 여러개의 군집 중에서 가장 유사도가 높은 혹은 거리가 가까운 군집 두개를 선택하여 하나로 합치면서 군집 개수를 줄여 가는 방법을 말한다. 합체 군집화(agglomerative clustering)라고도 한다. 가장 처음에는 모든 군집이 하나

Clustering - K-means, K-medoid

K-means Clusterig 각 군집에 할당된 포인트들의 평균 좌표를 이용해 중심점을 반복적으로 업데이트하면서 군집을 분류해 나가는 방법 가장 단순하고 빠른 군집화 방법 초기에 제일 처음 랜덤하게 포인트를 하나 잡아서 그 포인트에 가까운 데이터들을 같은 군집으로 할당해준다. 그 다음 아래와 같은 방법으로 반복한다. 다음과 같은 목저함수 값이 최소

Clustering

Clustering(군집화)이란? 군집 분석이라고도 불리며 클러스터링 알고리즘은 비지도 학습(Unsupervised Learning)에 해당한다. X(입력변수)간의 관계를 규명하거나 살펴보는 것에 많이 사용된다. 주어딘 데이터 집합을 유사한 데이터들의 그룹으로 나누는 것을 군집화(clustering)이라 하고 이렇게 나누어진 유사한 데이터의 그룹을 군

Ensemble Learning - Ensemble의 Ensemble

Ensemble의 Ensemble Ensemble의 개념 자체가 여러 개의 기본 모델을 활용하여 하나의 새로운 모델을 만들어 내는 개념이다. 그러므로 Ensemble 모델을 하나의 weak learner로 설정하면 Ensemble의 Ensemble 모델을 만들 수 있다. Ensemble의 Ensemble 모델은 다양한 모델을 사용하므로 Boost

Ensemble Learning - Boosting, Stacking

Boosting 앞에서 언급했던 Bagging이나 Random Forests는 부트스트랩 방식으로 데이터를 뽑긴해도 각 모델에 대해 독립적이라고 가정하지만, Boosting은 resampling을 할 때 오분류된 데이터에 더 가중치를 주어서 오분류된 데이터가 뽑힐 확률이 높도록 하여 복원 추출을 하고 다시 학습하기 때문에 모델들이 Sequential한 것이

내가 정리하는 자료구조 06 - 힙(heap)

대표적인 데이터 구조8: 힙1. 힙 (Heap) 이란? 힙: 데이터에서 최대값과 최소값을 빠르게 찾기 위해 고안된 완전 이진 트리(Complete Binary Tree) 완전 이진 트리: 노드를 삽입할 때 최하단 왼쪽 노드부터 차례대로 삽입하는 트리 힙을 사용하는 이유 배열에 데이터를 넣고, 최대값과 최소값을 찾으려면 O(n) 이 걸림 이에 반해,

선형 시스템(Linear system)

아래 내용은 [김도형 박사님의 선형대수 강의안],(https://datascienceschool.net/view-notebook/04358acdcf3347fc989c4cfc0ef6121c/) edwith의 인공지능을 위한 선형대수 강의와 KOCW의 한양대학교 이상화 교수님의 선형대수학 강의를 보고 정리한 내용이다. 선형 조합 벡터/행렬에 다음처럼 스

선형대수 요소(Elements in linear algebra)

아래 내용은 김도형 박사님의 선형대수 강의안, edwith의 인공지능을 위한 선형대수 강의와 KOCW의 한양대학교 이상화 교수님의 선형대수학 강의를 보고 정리한 내용이다. Linearity(선형성) 행렬로 표현할 수 있는 것들은 기본적으로 다 선형성이라는 것을 만족해야 한다. 선형성은 아래 두 가지 조건을 만족할 때 선형성을 갖는다고 할 수 있다. 1

Ensemble Learning - Bagging, RandomForest

Ensemble Learning이란? 모형 결합(model combining)방법은 앙상블 방법론(ensemble methods)라고도 한다. 이는 특정한 하나의 예측 방법이 아니라 복수의 예측모형을 결합하여 더 나은 성능의 예측을 하려는 시도이다. 모형 결합 방법을 사용하면 일반적으로 계산량은 증가하지만 다음과 같은 효과가 있다. 단일 모형을 사용할

내가 정리하는 자료구조 05 - 트리(Tree)

대표적인 데이터 구조7: 트리1. 트리 (Tree) 구조 트리: Node와 Branch를 이용해서, 사이클을 이루지 않도록 구성한 데이터 구조 트리는 connected acyclic graph구조로 즉, 1개 이상의 노드로 이루어진 유한 집합이다. 루트 노드(root)를 반드시 가진다. 트리를 구성하는 노드 간에 단순 경로가 존재 또는 루트노드를 제외하고

내가 정리하는 자료구조 04 - 해쉬 테이블

대표적인 데이터 구조6: 해쉬 테이블 (Hash Table)1. 해쉬 구조 Hash Table: 키(Key)에 데이터(Value)를 저장하는 데이터 구조 Key를 통해 바로 데이터를 받아올 수 있으므로, 속도가 획기적으로 빨라짐 파이썬 딕셔너리(Dictionary) 타입이 해쉬 테이블의 예: Key를 가지고 바로 데이터(Value)를 꺼냄 보통 배열로 미리

내가 정리하는 자료구조 03 - 시간복잡도

알고리즘 복잡도 표현 방법1. 알고리즘 복잡도 계산이 필요한 이유하나의 문제를 푸는 알고리즘은 다양할 수 있음 정수의 절대값 구하기 1, -1 ->> 1 방법1: 정수값을 제곱한 값에 다시 루트를 씌우기 방법2: 정수가 음수인지 확인해서, 음수일 때만, -1을 곱하기 다양한 알고리즘 중 어느 알고리즘이 더 좋은지를 분석하기 위해, 복잡도를

내가 정리하는 자료구조 02 Linked List

대표적인 데이터 구조: 링크드 리스트 (Linked List)1. 링크드 리스트 (Linked List) 구조 연결 리스트라고도 함 배열은 순차적으로 연결된 공간에 데이터를 나열하는 데이터 구조 그렇기 때문에 미리 연결된 공간을 예약을 해놓아야 한다는 것이 단점! 링크드 리스트는 위와 같은 배열의 단점을 보완하고자 떨어진 곳에 존재하는 데이터를 화살표로

내가 정리하는 자료구조 01 Stack

Stack꼭 알아둬야 할 자료 구조: 스택 (Stack) 데이터를 제한적으로 접근할 수 있는 구조 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조 가장 나중에 쌓은 데이터를 가장 먼저 빼낼 수 있는 데이터 구조 큐: FIFO 정책 -> 줄 세우기 스택: LIFO 정책 -> 책 쌓기 1. 스택 구조 스택은 LIFO(Last In, Fisrt

의사결정나무

Decision tree 배경 의사결정나무의 장점은 해석력이 좋다. 우리가 모델을 만들때 성능이 좋은 것도 중요하지만, 어떻게 사람들한테 메세지를 줄 수 있는가처럼 어떻게 활용할 수 있는가가 더 중요한 경우도 있다. 예측력이 조금 떨어지더라도 이야기로 풀어서 어떠한 근거로 인해 Y는 이렇게 된다는 식으로 풀어서 설명할 수 있다는 의미이다. 결정트리는 매

Support Vector Machine(SVM) - 02

커널 서포트 벡터 머신 - SVM의 심화적 이해 12345678910111213np.random.seed(0)X_xor = np.random.randn(200, 2)y_xor = np.logical_xor(X_xor[:, 0] > 0, X_xor[:, 1] > 0)y_xor = np.where(y_xor, 1, 0)plt.scatter(X_xor

Support Vector Machine(SVM) - 01

Support Vector Machine(SVM) 데이터의 분포가 정규분포를 띈다고 보이지 않는다면 이전에 말했던 LDA나 QDA를 사용하기 힘들다. 이런 경우 클래스간 분류를 하려고 할 때 사용될 수 있는 방법 중 하나가 SVM이다. 아래 그림과 같이 클래스 집단을 분류할 수 있는 벡터를 기준으로 최대한의 마진을 주어 분류하는 방식이다. 아래 그림과

퍼셉트론

퍼셉트론 퍼셉트론(perceptron)은 가장 오래되고 단순한 형태의 판별함수기반 분류모형 중 하나이다. 퍼셉트론은 입력 $x = (1, x_{1}, \cdots, x_{m})$에 대해 $1$ 또는 $-1$의 값을 가지는 $y$를 출력하는 비선형 함수이다. 1을 포함하는 입력 요소 $x_{i}$에 대해 가중치 $w_{i}$를 곱한 값 $a = w^{T

LDA, QDA

LDA(선형판별분석법), QDA(이차판별분석법) 선형판별 분석법(Linear discriminant analysis, LDA)과 이차판별 분석법(quadratic discriminant analysis, QDA)는 대표적인 확률론적 생성모형이다. 가능도 y의 클래스값에 따른 x의 분포에 대한 정보를 먼저 알아낸 후, 베이즈 정리를 사용하여 주어진 x에 대한

K-Nearest Neighbors(KNN)

K-Nearest Neighbors(KNN) k의 개수만큼 주변에 있는 sample들의 정보를 이용해서 새로운 관측치의 종속변수를 예측하는 방법이다. 아래 그림에서 기존의 파란색 네모와 빨간색 세모라는 2가지 클래스를 갖는 데이터 집합이 있다고 할 때, 여기서 새로운 관측치인 녹색에 대해 어떻게 예측할지를 생각해 보자. k=3인 경우(실선): 빨간색 세모

나이브 베이즈 분류모형

분류모형 현실적인 문제로 바꾸어 말하면 어떤 표본에 대한 데이터가 주어졌을 때 그 표본이 어떤 카테고리 혹은 클래스에 속하는지를 알아내는 문제이기도 하다. 흔히들 많이 사용하는 모형들의 분류모형 종류를 아래의 표로 기재해 놓았다. 이전에 기재했던 로지스틱 회귀 분석도 실질적으론 분류문제에 많이 사용된다. 모형 방법론 나이브 베이지안

PCA를 이해하기 위한 기본적 선형대수

차원의 저주 먼저 PCA를 하는 이유에 대해 설명해 볼 것이다. 전에 언급했던 변수(또는 피처)들이 많아질수록 변수들이 있는 공간의 차원수 또한 점차적으로 늘어나게 된다. 차원의 저주는차원이 늘어남에 따라서 같은 영역의 자료를 갖고 있음에도 전체 영역 대비 모델을 통해 변수로 설명할 수 있는 데이터의 패턴은 줄어들게 되는 것을 의미한다. 다른 관점에서

로지스틱 회귀분석

로지스틱 회귀분석 로지스틱(Logistic) 회귀분석은 회귀분석이라는 명칭과 달리 회귀분석 문제와 분류문제 모두에 사용할 수 있다. 로지스틱 회귀분석 모형에서는 종속변수가 이항분포를 따르고 그 모수 $ \theta $ 가 독립변수 $ x $ 에 의존한다고 가정한다. p(y \mid x) = \text{Bin} (y; \theta (x), N) 위 식에