본문 바로가기

Research/Deep Learning & Application16

Forward Looking Problem, Omniscient(Oracle) Forward Looking Problem기본적으로 time-series데이터를 이용한 future forecasting task에서는 절대적으로 미래의 정보가 예측 모델(함수)의 input으로 들어가는 것이 엄격히 금지된다.특히 금융 모델의 경우, 미래 주가를 validation셋으로 사용하고, 여기서 구한 단순 1차 통계(mean값)를 사용해 과거의 데이터인 training셋을 normalize하기 위해서 사용하는 것 만으로도 엄청난 문제가 된다. 그 정도로 future 정보는 엄격히 사용이 금지되어야 하는 것이 원칙적으로는 맞다. Time-series Cross-validation그래서 이러한 종류의 time-series forecasting하는 task에서 cross-validation을 할 때에.. 2020. 3. 16.
Graph Neural Networks 0. Convolutional Neural Networks의 Graph 해석Karate club graph, colors denote communities obtained via modularity-based clustering (Brandes et al., 2008) 위와 같은 그래프 형태의 데이터를 학습하기 위한 가장 좋은 네트워크 아키텍쳐는 무엇일까? 바로 Graph Convolutional Networks이다. GCN은 널리 알려진 Convolutional Neural Networks에 Adjacency Matrix를 도입하여 보다 데이터의 structure를 보다 일반화된 형태의 그래프로 정의한 것이다. Adjacency Matrix란 아래와 같은 graph가 있을 때, 각 node간에 연결(e.. 2020. 1. 30.
다양한 Convolution Layer Convolution기본적으로 convolution layer는 fully connected layer에서 spatial(이미지의 가로세로) 영역을 잘게 쪼개고, 그만큼 weight sharing을 시킨 아키텍쳐이다.그러나 feature dimension(=channel, depth)에 대해서는 여전히 fully connected를 유지하고 있다. 즉 모든 input channel을 섞어서 각각의 output channel로 연결하는 과정이 fully connected라는 의미이다. 수식으로 말하자면 input channel이 256 dim이고 output channel이 128 dim이라면, feature dim에 대한 weight matrix는 [256x128]로 fully connected 이다. .. 2020. 1. 30.
Residual connection 2019. 10. 22.
각종 Normalization technique • Batch Normalization: 개별 input feature에 대한 통계를 구한다.(mini-batch내의 모든 데이터와 모든 시공간 dimension을 across out) • Layer Normalization: 개별 instance에 대한 통계를 구한다.(모든 feature와 모든 시공간 dimension을 across out) 특히 각 seq마다 input feature의 스케일이 다를때 유용하다. ex) 시끄러운 wav 파일, 조용한 wav 파일 • Instance Normalization: 개별 instance에서, 개별 input feature의 통계를 구한다.(모든 시공간 dimension을 across out) 이것은 사실 통계라고 말하기 힘듦. 그냥 그 값 1개를 가져오는 것.. 2019. 10. 22.
딥러닝에서 쓸만한 다양한 Ensemble Method # 앙상블- Soft voting: 각 Softmax확률의 평균을 낸다음 argmax- Hard voting: 각 softmax에서 argmax한 다음 아래와 같은 방법으로 voting* Unanimous voting: 만장일치일 때만 decision함* Majority voting: 다수결로 선택된 decision이 전체의 50%를 넘어야됨.* Plurality voting: 각각의 softmax에대해 argmax한다음 가장 다수의 의견을 따름.(50%를 넘지 않아도 됨)- Weighted voting: Soft 혹은 Hard voting에서 각 softmax에 임의의 weight를 주어서 사용.(확률에 대해선 weighted sum, Hard에 대해서는 2표를 행사할 수 있음)- Staking: 각각.. 2018. 11. 1.
Computer Vision Techniques Superpixel이미지 segmentation에서 사용되는 방법으로, 기계학습관점에서 직관적으로 설명하면 한마디로 RGB색상에 대해 K-means 클러스터링을 하는 것이라 말할 수 있다. 예를 들어 포토샾에서 영역선택 툴을 사용하는 것과 동일한 메커니즘으로, SLIC라는 방법에서는 K-means의 변형을 사용한다. 물론 이외에도 graph-based 기반의 superpixel 알고리즘도 존재한다. 각 superpixel 클러스터의 크기는 평균적으로 비슷하지만, 다를 수 있다.https://infoscience.epfl.ch/record/177415/files/Superpixel_PAMI2011-2.pdf Lab Color spaceLab Color space는 XYZ 색 공간보다 균일한 색 체계를 목표.. 2017. 3. 15.
Word2Vec, Bag-Of-Words, 최신 word embedding - Word2Vec의 배경 Word2Vec는 원래 인공 신경망 연구에서 태어났으며 같은 맥락을 지닌 단어는 가까운 의미를 지니고 있다는 전제에서 출발한다. Word2Vec는 텍스트 문서를 통해 학습을 진행하며, 어떤 단어에 근처(전후 5-10단어 정도)에서 등장하는 다른 단어들의 출현 빈도를 이용한다. 이는 유사한 의미의 단어들은 문장의 가까운 위치에서 함꼐 출현할 가능성이 높기 때문에, 학습을 반복해 나가는 과정에서 같이 나오는 단어들이 가까운 좌표(벡터)를 갖도록 학습해나간다. Word2Vec 개발에 주도적인 역할을 담당한 Mikolov는 14년 8월 구글을 퇴사하고 페이스북으로 이적한 것으로 보이며, 벡터 해석을 단어에서 구문까지 확장시킨 Paragraph2Vec의 구현에 주력하고 있다고 한다. P.. 2015. 8. 3.
RNN의 Vanishing Gradient와 Exploding Gradient Spectral radius : 아이겐 벨류의 절대값중 가장 큰 것https://en.wikipedia.org/wiki/Spectral_radius RNN의 gradient가 0에 가깝게 사라저기나, 폭발적으로 발산하는 이유는 hidden to hidden Weight가 time unfolding을 하는 bptt의 과정에서 반복해서 곱해지기 때문이라고 한다. 만약 이 weight의 spectral radius가 1보다 작으면 결국엔 vanishing을 하게 되고, 1보다 크면 exploding을 하게 된다. 이를 해결하기 위해 L1, L2 norm regularization을 weight에 적용하여 exploding을 막거나 하는 방법 등이 사용된다.그러나 gradient vansihing 문제는 해결하.. 2015. 7. 8.
Performance Measure of Natural Language Processing Natural Language Generation참고할 글: https://stats.stackexchange.com/questions/242617/comparing-perplexities-with-different-data-set-sizes Log Likelihood: log P(x|θ), 감독학습인 경우 log P(y|x, θ)일반적으로 라이클리후드를 서로 다른 크기의 데이터 셋에 대해서 쓰려면 기하평균을 취해야한다.왜냐하면 라이클리후드의 절대값은 항상 증가하는 방향이기 때문에 데이터의 크기가 같이 않으면 성능 비교가 의미가 없다. 따라서 마찬가지로 분류 문제에서의 -log라이클리후드인 크로스엔트로피는 데이터의 크기 N으로 나누어주면 된다. Log Likelihood per word: { log P(.. 2015. 7. 1.
CNN, Spectrogram 을 CNN으로 학습 CNN(Convolutional Neural Network)model.add(Convolution2D(96, 1, 11, 11, subsample=(4, 4))) number_of_filter / stack_size / row / column size_of_filter / convolution_size(subsample)즉 96개의 피쳐를 추출하는, 11*11*3 사이즈의 filter를 만들것임. 이 filter는 (4,4)간격을 가지며 convolution함stack이란 : 일반 이미지는 (R,G,B)형태의 3차원 vector로 데이터가 구성되어 있음. 따라서 stack_size가 3이어야만 돌아감. 즉 r평면, g평면, b평면이 3층으로 쌓여 있는 3차원 매트릭스임.그래서 이 filter하나에는 11.. 2015. 4. 22.
TDNN, RNN, LSTM, ESN TDNN(Time Delay Neural Network) : 그냥 일반적인 MLP인데, input 데이터로 시간에 대해 (t, t-1, t-2) 인 데이터를 한 번에 넣는 방법. 시간을 고려한 모델이 아닌 데에 discrete 한 시간 데이터를 다룰 때 쓰는 가장 간단하고 대표적인 방법. Continuous 한 시간 데이터의 경우는 위 방법으로 할 수가 없다. 그래서 sliding windowing 방식으로 일정한 길이의 데이터를 일정 부분씩 겹치도록(보통 50%) 전처리 한 뒤 사용한다.(강제로 discrete하게 나누고, 대신 50%씩 겹치도록) 그러나 TDNN 방법은 한정된 데이터의 time sequence만 학습할 수 있기 때문에(예를 들면 t, t-1,t-2 면 third order) 시간데이터.. 2015. 4. 15.
RNN 학습 알고리즘, BPTT BPTT(Backpropagation Through Time) : RNN의 recurrent한 부분을 시간에 대해서 펼치면 2개의 feedforward neural network로 이루어진 구조로 생각할 수 있다. 이렇게 리커런트 노드를 time step에 대해 k 번만큼 펼친 다음, 그대로 백프로퍼게이션 알고리즘을 적용한다.이 때 한가지 헷갈리는 점은, 시간에 대해 펼친 recurrent layer가 각 layer마다 동일한 weight를 가져야한다는 조건이다. 이부분이 조금 어려운데 사실은 하나의 리커런트 엣지를 인위적으로 시간에 대해 펼쳐서 해석한 것이기 때문에, 실제로 모든 layer는 같은 edge인 것이라 weight가 같아야 한다.따라서 똑같이 forward pass로 activation값을.. 2014. 7. 8.
Perceptron, TLU TLU : Threshold Logic Unit / TLU의 다른이름은 Perceptron, Threshold neuron 이라고 함. input의 합(=weighted summation)이 Threshold 이상이면 1을 출력, 그렇지 않으면 0을 출력하는 유닛. if(Sum(input) => Threshold) return 1; if(Sum(input) < Threshold) return 0; AND gate : threshold를 1.5로 잡으면 {0,0} -> 0 {0,1} -> 0 {1,0} -> 0 {1,1} -> 1 OR gate : threshold를 0.5로 잡으면 {0,0} -> 0 {0,1} -> 1 {1,0} -> 1 {1,1} -> 1 XOR gate : threshold를 어떻게.. 2014. 6. 17.
Neural Network의 학습 방법, Gradient Descent, Back-Propagation Gradient descent : 에러를 미분하여 weight를 업데이트 하는 방법. Back-propagation : Hidden node에서 에러를 미분하여 weight를 업데이트 하는 방법. Neural Network 학습 방법 1) Hebbian Learning (Hebbian Rule) 2) Perceptron Rule 3) Gradient Descent (Delta Rule, Least Mean Square) 4) Back propagation 5) 그 이외 응용기법 1) Hebbian Learning 기본 신경망 학습 규칙으로, 원래 무감독 학습 방법에 쓰는 것이었다. * 아이디어 -> 만일 어떤 신경세포의 활성이 다른 신경세포가 활성하는 데 계속적으로 공헌한다면, 두 신경세포 간의 연결 가.. 2014. 6. 17.
Activation Function - Sigmoid 함수 (시그모이드 함수) 대표적인 활성 함수(Activation Function)이다. 뉴럴넷에서 Activation Function 이란, x=Weighted Sum 에대해, y=F(x) 로 output y를 다음 레이어로 보내는 함수 F를 의미한다. 단순히 계단식으로 활성화 함수를 사용할 경우, output이 무조건 0과 1로만 나와, 미분이 불가능하고, 중간 값이 존재하지 않는다.그러나 시그모이드 함수를 쓸 경우, output을 0과 1만이 아니라 [0,1]의 범위로 feature를 나타낼 수 있다. 여기서 분자분모에 e^x 를 곱하면로 바꾸어 표현할 수 있다.(두 표현 다 자주 쓰임) 정확히 이런 모양을 가진 함수를 Sigmoid 함수라고 부름.(logistic 함수라고도 부름).. 2014. 6. 12.