본문 바로가기

전체 글

(57)
Module Module built-in module 같은 위치에 있는 .py 파일을 import해서 사용 Package module을 모아 놓은 하나의 프로그램 __init__.py 파일로 초기화 해야 함(3.3+부터는 필수 x) Namespace import a as b from a import b 상대 경로로 호출 가능 Virtual Environment virtualenv, conda 등
Object Oriented Programming Class - Instance snake_case : 함수/변수명 CamelCase : class명 class ClassName(object): def __init__ (self, name, age): self.name = name # self = 생성된 instance self.age = age Mangling Inheritance - Super class의 attr, method를 Sub class가 물려 받음 Polymorphism - 같은 이름의 method를 다르게 구현(overriding, overloading) Visibility(Encapsulation) - Class 간 간섭/정보공유 최소화 Property decorator First-class object variable, parame..
RNN RNN - 시 계열(time-series), sequence data 비독립적 데이터 (소리, 문자열, 주가 등) 독립동등분포(i.i.d) 위배, 데이터의 소실이나 순서 변경에 영향 조건부확률 이용 과거의 모든 정보가 필요한 것은 아니다. 가변적인 길이의 데이터를 다루어야 함 고정된 길이 τ 만큼의 sequence만 사용(Autoregressive model) 바로 직전 정보와 그 이전 정보를 잠재 변수로 인코딩하여 활용 (Latent Autoregressive model) 가중치 행렬은 변하지 않음 Backpropagation Through Time 가중치 행렬의 미분값이 너무 크거나 작으면 불안정해짐 긴 시퀀스가 필요한 data는 BPTT를 적용 시 기울기 소실(gradient vanish) 발생 t..
CNN Convolution input data에 대해 일제적으로 고정된 크기의 kernal을 적용 kernal은 정의역 내에서 움직여도 변하지 않음(translation invariant) 주어진 signal(입력)에 대해 국소적으로 적용(locality) input : 30x30, kernal : 3x3 일 시 -> output : (30-3+1)x(30-3+1) 채널이 여러개인 경우 input과 kernal의 채널 수가 같아야 함 커널이 n개 있다면 output의 채널도 n개 Convolution backpropagation 역전파 단계에서도 커널을 통해 gradient가 전달된다 연속적, 이산적일 때 동일
Bayesian Statistic 조건부 확률 조건부확률 P(A|B)는 사건 B가 일어난 상황에서 사건 A가 발생할 확률 조건부확률 P(B|A)는 사건 A가 일어난 상황에서 사건 B가 발생할 확률 조건부확률만 가지고 인과관계(causality)를 추론하는 것은 불가능 중첩요인(confounding factor)를 제거하고 원인에 대한 변수만을 계산해야 함 조정(intervention)을 통해 중첩요인 제거 베이즈 정리 사후확률 : 데이터를 관찰할 시 hyperthesis가 발생할 확률 사전확률 : 데이터 분석 전 설정한 확률 가능도 : 주어진 데이터가 관찰될 확률 evidence : 데이터 전체의 분포 새로운 데이터가 들어오면 사후확률을 사전확률로 사용 가능
Pythonic code Split & join str.split('sep') # sep 기준으로 split 없을 시 공백 기준 "joiner".join(sequential data) # data를 joiner와 함께 concat List Comprehension result = [i for i in range(10)] word_1 = "hello" word_2 = "world!" result = [i+j for i in word_1 for j in word_2] # nested for loop result = [[i+j for i in word_1] for j in word_2] # word_2가 먼저 loop 돎 Enumerate & Zip alist = ['a1', 'a2', 'a3'] blist = ['b1', 'b2',..
Data Structure Stack Last In First Out Queue First In First Out Tuple immutable한 list Set 중복 x, non-sequential union, intersection, difference Dict tuple(Key, Value) Collections built-in 구조 deque, Counter, OrderedDict, defaultdict, namedtuple Deque Linked list 지원 rotate, reverse, appendleft 등 가능 list보다 빠름 Ordered Dict 입력 순서를 보장하는 dict python 3.6이상부터는 기본 dict도 보장 default Dict default value를 지정가능한 dict key가 존재하지..
Statistics 모수(Parameter) 통계적 모델링 : 적절한 가정 위에서 확률분포를 추정하는 것 정확한 분포를 맞히는 것이 아닌 위험을 최소화 모수적(parametric) 방법론 : 특정 확률분포를 따른다고 가정한 후 그 분포의 모수를 추정 비모수적(nonparametric) 방법론 : 데이터에 따라 모델의 구조 및 모수의 개수 변화 모수가 없는 것이 아님! 확률 분포 가정 히스토그램을 통해 관찰 데이터가 0 또는 1 : 베르누이 분포 데이터가 n개 : 카테고리 분포, 다항분포 데이터가 [0.1] 사이 실수 값 : 베타 분포 데이터가 0 이상 : 감마 분포, 로그정규 분포 데이터가 실수 전체 값 : 정규 분포, 라플라스 분포 데이터를 생성하는 원리를 먼저 고려해야 함 모수 추정 후 반드시 검정해야 한다 통계량(st..