Slack Variable 이란? SVM에서는 일반적으로 분류를 위한 마진(Margin)을 설정하게 되는데, 이 때 마진과 학습 오류의 개수는 반비례 관계를 가지며 어떻게 분류할 것인지는 목적에 따라 결정된다. 여기서 선형적으로 분류할 수 없는 경우에는 분류를 위해 오차를 허용할 수 있다. 이 때 제약조건(constrraint)를 완화하여 오차를 허용할 때 사용하는 변수를 Slack Variable 이라고 한다. 즉 어느정도 에러가 발생하는 것을 허용하면서 초평면(hyperplane)을 찾는 방법을 말한다. Slack Variable은 각 관측치의 에러 정도를 나타내는 역할을 하게 되는데 각 관측치 마다 Slack Variable이 하나씩 존재한다. 분류가 올바르게 된 경우 Slack Variable =..
최근 3개월 간 공부하면서 수식을 볼 일이 굉장히 많았는데, 여기에 나와있는 수식 80%는 모두 본 듯 하다.. 그래서 수학기호를 정리해보려고 했는데 리브레 위키에 정말 잘 설명되어있다. 리브레 위키 페이지에 들어가면 의미 부분에 관련된 항목에 대한 링크들이 모두 있어서 좋다. 참고자료 : https://librewiki.net/wiki/%EC%88%98%ED%95%99_%EA%B8%B0%ED%98%B8 수학 기호 수학에서 쓰이는 약어와 기호들을 모아놓은 문서. 수학 증명에서는 기호가 많이 나오기 때문에 기호의 의미를 알지 못한다면 증명을 이해할 수 없다. 반대로, 기호를 알지 못하면 증명이 쓸데없 librewiki.net 순서는 아래와 같다. 1. 수학에서 사용하는 약어 2. 수학에서 사용하는 알파벳 ..
Norm 은 절대값에서 출발하여 추상화된 개념으로 벡터의 길이 혹은 크기를 측정하는 방법이라고 할 수 있다. Norm 이 측정한 벡터의 크기는 원점에서 벡터 좌표까지의 거리 혹은 Magnitude 라고 한다. 선형대수학에서의 Norm의 정의는 아래와 같다. $ V $를 $ F $상에서의 벡터공간이라고 하면, $ \left \| \cdot \right \| :V \rightarrow F $ 가 $ u, v\in V $ 와 $ k\in F $ 에 대해서 다음 세 조건을 만족시키면 $ \left \| \cdot \right \| $ 을 $ V $ 상에서 Norm 이라고 정의한다. (i) 정부호 : $ \left \| u \right \| \geq 0 $ 이고, $ u = 0 \Leftrightarrow \le..
최대 우도 추정 (aximum Likelihood Estimation) 최대 우도 추정 (aximum Likelihood Estimation) 은 모수 (parameter)가 미지의 θ 인 확률분포에서 뽑은 표본 x 들을 바탕으로 θ를 추정하는 기법이다. 여기서 우도(likelihood)란 이미 주어진 표본 x 들에 비추어 봤을 때 모집단의 모수 θ 에 대한 추정이 그럴듯한 정도를 말한다. 우도 L( θ | x ) 는 θ 가 전제되었을 때 표본 x 가 등장할 확률인 p( x | θ ) 에 비례한다. 동전 던지기 100번을 수행하는 예시에서 반복적인 동전던지기는 성공 확률이 p 인 베르누이 시행을 n 번 반복 시행할 때 성공 횟수의 분포인 이항분포(binomial distribution)를 따른다. 이 예..
답이 YES 아니면 NO로 반환되는 문제를 결정 문제라고 한다. 예를 들어, 'a는 b의 배수인가?'와 같은 질문은 결정 문제이다. P와 NP 모두 결정 문제의 분류에 해당한다. P 문제는 결정 문제들 중에서 쉽게 풀리는 것을 모아 놓은 집합이다. 어떤 결정 문제가 주어졌을 때, 다항식(Polynomial) 시간 이내에 그 문제의 답을 YES와 NO 중의 하나로 계산해낼 수 있는 알고리즘이 존재한다면, 그 문제는 P 문제에 해당된다. n자리 이하의 수 a와 b가 주어졌을 때, a가 b의 배수인지를 판정하는 것은 유클리드 호제법을 사용하면 n에 대한 다항식 시간에 계산할 수 있으므로, 'a는 b의 배수인가?'하는 문제는 P 문제에 해당된다. 위의 정의는 결정적 알고리즘(deterministic algori..
논문 읽다가 PPCA Model 이라는 개념이 나와 정리해보고자 한다. 간단히 말하자면 PPCA는 Probablistic PCA(Principal Component Analysis) 이다. 영문에서도 알 수 있듯이 확률적으로 주성분 분석을 하겠다는 것이다. PPCA 를 위해 PCA 개념부터 차근차근 설명해보도록 한다. 1. 데이터 분석에서 차원 감소(Dimensionality Reduction)가 필요한 이유 데이터 분석과 관련된 학문에서는 차원의 저주 라는 문제가 있다. 차원의 저주는 관측한 데이터의 벡터 공간 차원이 엄청나게 크지만, 실제로 필요한 True Data는 작은 차원의 공간으로 표현해도 충분한 경우에 사용되는 용어이다. 차원의 저주는 데이터 과학에서는 차원이 증가함에 따라 차원 내의 부피도..
논문을 보다보면 아래와 같은 argmin, argmax 함수들이 나오는데 이 함수들의 의미는함수 f(x)를 최솟값으로 만들기 위한 x 값을 구한다 또는 함수 f(x)를 최댓값으로 만들기 위한 x 값을 구한다 라고 할 수 있다. 함수 f(x)가 무엇이냐에 따라 x 값이 달라지게 되며, 만족하는 값이 여러 개 일 수도 있다. 예를 들어 함수가 cosx 함수라면 이를 만족시키는 값은 pi, 3pi, 5pi, ... 이며이를 만족시키는 최솟값은 -1 이고, 최댓값은 1이다. 또한 argmin 값은 pi, 3pi, 5pi, ... 가 되며argmax 값은 0, 2pi, 4pi, ... 이다.
놈(노름) 이라고 읽는 Norm은 함수 f가 임의의 벡터 x, y 에 대해 아래와 같은 조건을 만족할 때 이 함수 f = ||x|| 를 놈 이라고 한다. 쉽게 말해서 벡터나 행렬의 크기를 일반화 시킨것이다. 일반적으로 부르게 되는 Norm은 L2-Norm 이고, 절대값 |.| 의 합이 L1-Norm 이다. 예를 들어, 벡터 x가 [1, -10, 2] 라고 하면, N1-Norm 은 |1| + |-10| + |2| = 13 이 된다. L2-Norm은 원점과의 거리를 말하고, 제곱값의 합에 루트를 취해 계산한다. 예를 들어, 아래와 같이 계산된다. 그러므로 Frobenius Norm (Euclidean Norm) 은 대표적으로 L2-Norm 의 형태는 다음과 같다. 서로 다른 노름 공간에서 정의된 단위원.임의..
참고자료 1 : https://swalloow.github.io/map-reduce참고자료 2 : http://sycros.tistory.com/5 구글 파일 시스템 (GFS, Google File System) Google File System은 2003년 논문을 통해 소개되었다. 이전에 구글에서 사용하던 파일 시스템은 Big File 이었는데, 구글의 데이터가 급격히 늘어남에 따라 핵심 데이터 스토리지와 구글 검색 엔진을 위해 최적화 된 파일 시스템이 필요하게 된 것 이다. GFS는 크게 하나의 master node와 여러 개의 slave node로 구성되어 있다. 기능으로 보면 Master, Chunk Server, Client로 이루어져 있다. Master: GFS 전체를 관리하고 통제하는 중앙 ..
참고자료 1 : https://aws.amazon.com/ko/emr/details/hadoop/참고자료 2 : http://over153cm.tistory.com/entry참고자료 3 : https://www.facebook.com/참고자료 4 : http://12bme.tistory.com/70참고자료 5 : http://yookeun.github.io/java/2015/05/24/hadoop-hdfs/ 하둡이란? 대용량 데이터를 분산 처리할 수 있는 자바기반의 오픈소스 프레임 워크이다. Apache™ Hadoop®은 대규모 데이터 세트를 효율적으로 처리하는 데 사용할 수 있는 오픈 소스 소프트웨어 프로젝트이고, 하나의 대형 컴퓨터를 사용하여 데이터를 처리 및 저장하는 대신, 하둡을 사용하면 상용 하..
간단히 말하면 SQLD는 SQL 개발자 자격 시험이고, 접수비는 5만원, 1년에 시험 4번(3, 6, 9, 12월 시행), 필기 1번으로 끝, 합격자 발표 시험 보고 한달 후 발표, 책도 5만원, 자격증 발급 따로 없음(2016년도부터 온라인 자격증으로 대체), 정보처리기사보다 어려운 시험, 전공자라면 짧게는 2주, 넉잡아 4주 공부하길, 시험은 서울지역의 경우 동국대에서 봄, 수원사는데도 동국대가 제일 가까웠던 듯, 객관식 1과목 10문제 2과목 40문제, 그 중 주관식 8문제, 총 50문제 객관식+주관식 형식으로 출제된다. SQLD 시험 후기SQLD 시험을 본지도 어언 한달이 지났다. 개강하고서 9월 10일에 동국대(서울 지역)로 시험을 보러 갔는데 지하철에 사람이 어쩜 그렇게 많은지 지옥같다고 생각..
제 3절 조인 수행 원리 조인이란 두 개 이상의 테이블을 하나의 집합으로 만드는 연산이다. SQL 문에서 FROM 절에 두 개 이상의 테이블이 나열될 경우 조인이 수행된다. 조인 연산은 두 테이블 사이에서 수행된다. 만일 FROM 절에 A, B, C 테이블을 조인할 경우, A,B를 먼저 조인하고 그 결과와 C를 조인하게 되는 과정을 거친다. 또한 각 조인을 수행할 때 기법을 달리하여 수행할 수 있다. 대표적인 조인 기법은 세가지가 있다. - NL Join- Sort Merge Join- Hash Join 1. NL Join - NL Join은 프로그래밍에서 사용하는 중첩된 반복문과 유사한 방식으로 조인을 수행- 반복문의 외부에 있는 테이블을 선행 테이블 또는 외부 테이블(Outer Table)이라 함- ..
제 2절 인덱스 기본 1. 인덱스 특징과 종류 인덱스는 원하는 데이터를 쉽게 찾을 수 있도록 돕는 책의 찾아보기와 유사한 개념이다. 인덱스는 테이블을 기반으로 선택적으로 생성할 수 있는 구조이다. 인덱스의 기본적인 목적은 검색 성능의 최적화이다. 그러나 Insert, Update, Delete 등과 같은 DML 작업은 테이블과 인덱스를 함께 변경해야 하기 떄문에 오히려 느려질 수 있다. 가. 트리 기반 인덱스- DBMS에서 가장 일반적인 인덱스는 B-트리 인덱스- 브랜치 블록(Branch Block), 리프 블록(Leaf Block), 루트 블록(Root Block)으로 구성 브랜치 블록 1. 분기를 목적으로 하는 블록 2. 다음 단계의 블록을 가리키는 포인터를 가짐 리프 블록 1. 가장 아래 단계에 존..
제 1절 옵티마이저와 실행계획 1. 옵티마이저 옵티마이저(Optimizer)는 사용자가 질의한 SQL문에 대해 최적의 실행방법을 결정하는 역할을 수행한다. 이러한 최적의 실행방법을 실행계획(Execution Plan)이라고 한다. 다양한 실행 방법 들 중에서 최적의 실행 방법을 결정하는 것이 바로 옵티마이저의 역할이다. 관계형 데이터베이스는 옵티마이저가 결정한 실행 방법대로 실행 엔진이 데이터를 처리하여 결과 데이터를 사용자에게 전달할 뿐이다. - 규칙기반 옵티마이저 (RBO, Rule Based Optimizer)- 비용기반 옵티마이저 (CBO, Cost Based Optimizer) 현재 대부분의 관계형 데이터베이스는 비용기반 옵티마이저만을 제공한다. 규칙기반 옵티마이저의 규칙들을 알아두면 보편 타당..
제 8절 절차형 SQL 1. 절차형 SQL 개요 SQL 언어에서도 일반적인 개발 언어처럼 절차 지향적인 프로그램이 가능하도록 DBMS 벤더별로 PL(Procedural Language) / SQL(Oracle), SQL/PL(DB2), T-SQL(SQL Server) 등의 절차형 SQL을 제공하고 있다. 이는 조건에 따른 분기처리를 이용해 특정 기능을 수행하는 저장 모듈을 생성할 수 있고, 절차형 SQL을 통해 생성할 수 있는 모듈인 Procedure, User Defined Function, Trigger에 대해서 간단하게 살펴보도록 한다. 2. PL / SQL 개요가. PL / SQL 특징 Oracle의 PL / SQL은 Block 구조로 되어있고, 블럭 내에는 DML 문장과 QUERY 문장, 그리고..
제 7절 DCL(DATA CONTROL LANGUAGE) 1. DCL 개요 - DDL : 테이블 생성과 조작에 관련된 명령어- DML : 데이터를 조작하기 위한 명령어- TCL : 트랜잭션을 제어하기 위한 명령어 (COMMIT, ROLLBACK, SAVEPOINT 등)- DCL: 유저를 생성하고 권한을 제어할 수 있는 명령어 2. 유저와 권한 데이터베이스 시스템을 운영할 때 새로운 유저를 생성하고, 생성한 유저에게 공유할 테이블이나 기타 오브젝트에 대한 접근 권한만을 부여한다면 문제는 쉽게 해결할 수 있다. 대부분의 데이터베이스는 데이터 보호와 보안을 위해서 유저와 권한을 관리하고 있는데, 오라클에서는 기본적으로 제공되는 유저들인 SYS, SYSTEM, SCOTT 유저에 대해서 간단하게 알아보고자 한다...
제 6절 윈도우 함수(WINDOW FUNCTION) 1. WINDOW FUNCTION 개요 기존 관계형 데이터베이스는 칼럼과 칼럼간의 연산, 비교, 연결이나 집합에 대한 집계는 쉬운 반면, 행과 행간의 관계를 정의하거나, 행과 행간을 비교, 연산하는 것을 하나의 SQL문으로 처리하는 것은 매우 어려운 일이었다. 하지만, 윈도우 함수를 이용한다면 행과 행간의 관계를 쉽게 정의할 수 있게 된다. 분석 함수(ANALYTIC FUNCTION)나 순위 함수(RANK FUNCTION)로도 알려져 있는 윈도우 함수는 데이터 웨어하우스에서 발전한 기능이다. 다른 함수들처럼 중첩해서 사용하지는 못하지만, 서브쿼리에서는 사용할 수 있다. - 그룹 내 순위 관련 함수 : RANK, DENSE_RANK, ROW_NUMBER-..
제 5절 그룹 함수(GROUP FUNCTION) 1. 데이터 분석 개요데이터 분석을 위한 세가지 함수는 다음과 같다.- AGGREGATE FUNCTION- GROUP FUNCTION- WINDOW FUNCTION 1) AGGREGATE FUNCTION GROUP AGGREGATE FUNCTION 이라고도 부르며, GROUP FUNCTION의 한 부분으로 분류할 수 있다. 앞서 포스팅했던 COUNT, SUN, AVG, MAX 와 같은 함수들이 집계함수에 속한다. 2) GROUP FUNCTION 결산개념을 가지는 업무의 경우, 소계, 중계, 합계, 총 합계 등 여러 레벨의 결산 보고서를 만드는 것이 중요 업무 중의 하나이다. 그런데 이러한 레벨별 집계를 위해서는 여러 단계의 SQL을 UNION, UNION ..
제 4절 서브쿼리 서브쿼리(Subquery)란 하나의 SQL문 안에 포함되어 있는 또 다른 SQL 문을 말한다. 서브쿼리는 다음과 같이 메인쿼리가 서브쿼리를 포함하는 종속적인 관계에 놓여있다. - 서브쿼리는 메인쿼리의 칼럼을 모두 사용할 수 있음- 메인쿼리는 서브쿼리의 칼럼을 사용할 수 없음- 서브쿼리 칼럼을 표시해야 한다면 스칼라 서브쿼리, 함수 등을 사용- 서브쿼리는 서브쿼리 레벨과는 상관없이 항상 메인쿼리 레벨로 결과 집합이 생성- 서브쿼리는 괄호로 감싸서 사용- 서브쿼리는 단일행 또는 복수행 비교연산자와 함께 사용 가능- 서브쿼리에서는 ORDER BY 절을 사용하지 못하고, 메인쿼리 마지막 문장에 사용 가능 - 서브쿼리가 SQL 문에서 사용 가능한 곳SELECT절, FROM절, WHERE절, HA..