전체 글

바보같은 감자가 이것저것 정리하는 블로그
스택(Stack) 한 쪽 끝(Top)에서만 새로운 항목을 삽입(Push)하거나 기존 항목을 삭제 및 반환(Pop)하는 논리적 선형 구조. 시간 순으로 먼저 삽입된 항목이 나중에 삭제되는 후입선출(LIFO : Last-In, First-Out) 구조. Top에서만 삽입, 삭제가 이루어지는 특수한 리스트.(List) python에서의 스택 python 리스트(동적 배열)에 의한 구현 -> push pop 연산 모두 O(1) 단순 연결 리스트에 의한 구현 -> push pop 연산 모두 O(1) 스택에 적용 가능한 주요 연산 Stack() : 빈 스택 생성 push(item) : 기존 Top 다음 위치에 item 삽입 pop() : Top 위치에 존재하는 item 삭제 및 반환 peek() : Top 위치에 ..
선형 회귀 (Linear Regression) 피처와 연속형 결과값 사이의 관계를 설명하는 선형 방정식(선형결합) 혹은 가중치 합의 함수를 찾는 알고리즘. 입력 피처 벡터 x = (x1, x2, ..., xn)가 있고 이에 대응되는 결과값 y가 있을 때, y를 가능한 잘 맞출 수 있는 선형 방정식을 찾는다. 하지만 실제 데이터가 선형 관계로 딱 표현되지 않을수도 있기 때문에 절편(bias)를 추가해준다. 로지스틱 회귀와의 차이점 위와 같은 과정은 동일하지만, 로지스틱 회귀에서는 위에 과정에 추가로 방정식의 결과값을 로지스틱 함수를 통해 0~1 사이로 변환하는 과정이 더 존재했다. cost function MSE (Means Squared Error) 사용. 결과값과 예측값의 차이! 경사 하강법을 통하여 ..
로지스틱 함수 로지스틱 회귀 분류기는 로지스틱 함수(시그모이드 함수)를 사용하는 분류기이다. 로지스틱 함수 (Logistic Function) 시그모이드 함수 (Sigmoid Function) 입력된 값에 0과 1 사이의 값을 할당하는 함수 피처 변환 로지스틱 회귀에서 함수의 입력인 z는 피처 x의 가중합이다. 즉, 입력 피처들이 선형 변환된 값. 주어진 데이터를 선형 변환만으로 완벽하게 목적하는 공간으로 매핑하는 것은 어렵다. 때문에 보통 절편(=bias)를 식에 추가하여 사용한다. 로지스틱 회귀 분류기 로지스틱 함수를 통한 피처 벡터 x의 클래스 판별 로지스틱 함수가 항상 0과 1 사이의 값을 가지기 때문에 y^를 p(y=1|x)로 생각할 수 있다. 즉, 해당 값을 확률 자체로 판단할 수 있다. ex..
의사결정 트리 분류기 (Decision Tree Classifier) 의사결정 트리 분류기는 트리 모양의 순차형 다이어그램을 통해 주어진 데이터를 분류. 트리의 루트부터 시작해서 모든 중간 노드들은 의사 결정 사항 (조건) 트리의 맨 끝에 있는 리프 노드는 의사 결정 사항에 따른 최종 결과 의사결정 트리 분류기의 동작은 의사결정 트리를 생성하는 학습 단계와 생성된 의사결정 트리에 따라 주어진 데이터를 분류하는 분류 단계로 나눠 볼 수 있다. 대표적인 트리 생성 알고리즘 : ID3, C4.5, CART, CHAID 예시 의사결정 트리는 데이터를 재귀적으로 파티셔닝하여 생성. CART (Classification and Regression Tree) 학습데이터를 사용하여 각 노드를 왼쪽 자식 노드와 오른쪽 ..
RNN (Recurrent Neural Network) RNN은 현재 타임스텝에 대해 이전 스텝까지의 정보를 기반으로 예측값을 산출하는 구조의 딥러닝 모델이다. 예를 들어서, I study math라는 문장이 input이면 x0 = I, x1 = study, x2 = math가 된다. A 모델의 output이 다음 time stemp의 input이 된다. 매 타임스텝마다 동일한 파라미터를 가진 모듈을 사용하므로, 재귀적인 호출의 특성을 보여주어 'Recurrent Neural Network'라는 이름을 가지게 되었다. 계산 방법 변수 설명 t : 현재 타임스텝 (time step) w : 웨이트 (weight) h_(t - 1) : old hidden-state vector x_t : time step ..
SVM (Support Vector Machine) class 별 데이터를 가장 잘 구분하는 최적의 하이퍼플레인(Hyperplane)을 찾는 알고리즘 하이퍼플레인 (Hyperplane) 데이터가 분포되어 있는 n차원 피처 공간을 두 공간으로 나누는 n-1차원의 평면. ex 2차원 피처 공간에서 하이퍼플레인은 '선' (line) 3차원 피처 공간에서 하이퍼플레인은 '형면' (surface) 하이퍼플레인에 의해 양분된 두 공간 내에 있는 가장 가까운 데이터 포인트(벡터) 간의 거리(Margin)가 최대인 상태 가장 가까운 데이터 포인터 : 서포트 벡터(Support Vector) 작동 알고리즘 단계 1 : 하이퍼플레인 표현하기 하이퍼플레인도 부분공간으로 생각하면 된다. (벡터들의 집합) 2차원 공간의 하이퍼..
GloVe : Global Vectors for Word Representation Word2Vec과 더불어 보편적으로 사용되는 word embedding 방법. 각 입력 및 출력 쌍이 같은 window 내에 존재하는지에 대한 확률 p를 사전에 계산한 후에, 입력 word의 임베딩 벡터와 출력 word의 임베딩 벡터의 내적 값과 확률 p에 log를 취한 값이 같아지도록 학습 진행. u_i : 입력 word의 임베딩 벡터 v_i : 출력 word의 임베딩 벡터 word2vec의 경우에는 특정한 입출력 쌍이 자주 발생하는 경우에 계산이 중복되어 진행되지만, 애초에 어떤 단어쌍이 동시에 등장할 횟수를 미리 계산해놓는다는 점에서 차이가 있다. 장점 : 중복 계산을 줄일 수 있어서, 빠르게 학습이 진행 가능하고,..
조건부 확률 사건 (Event) 예시 내일 비가 올 경우 포커 카드팩에서 2장 뽑았는데 둘 다 킹인 경우 어떤 사람이 암에 걸린 경우 조건부 확률 어떤 사건 B가 발생한다는 것을 알았을 때, A가 일어날 (일어났을) 확률 P(B|A) : 사건 A가 주어졌을 때 사건 B가 발생할 확률 P(B)와 P(A) : 각각 사건 A와 B가 발생할 확률 베이즈 정리 (Bayes' Theorem) 용어 설명 P(A) : 사전(prior) 확률 P(A|B) : 사후(posterior) 확률 P(B) : 증거(Evidence) P(B|A) : 유사가능도 (Likelihood) 예시 두 개의 동전 U, F가 있다고 가정하자. 동전 U는 던져서 앞면이 나올 확률이 90%이고, 동전 F는 앞면이 나오르 확률이 50%이다. 두 동..
우당탕탕코린이
코린이의 복습노트