본문 바로가기

전체 글112

# 17. 군집화 평가 지표 (실루엣 계수, 응집도) 이번 포스트에서는 저번 포스트에서 다루었던 군집화 알고리즘이 잘 수행되었는지 판단하기 위한 지표에 대해 알아본다. 이번에 알아볼 지표로는 두 가지로 실루엣 계수와 응집도가 있다. 실루엣 계수 (silhouette score) 실루엣 계수는 각각의 데이터가 해당 데이터와 같은 군집 내의 데이터와는 얼마나 가깝게 군집화가 되었고, 다른 군집에 있는 데이터와는 얼마나 멀리 분포되어 있는지를 나타내는 지표이다. 실루엣 계수가 가질 수 있는 값은 -1~1이며, 1에 가까울수록 군집화가 잘 되었음을 의미한다. 하지만, 데이터 하나에 대한 실루엣 계수만 좋다고 군집화가 잘 이루어졌다고 일반화를 할 수 없다. 각 군집별 데이터의 수가 고르게 분포되어야 하며, 각 군집별 실루엣 계수 평균값이 전체 실루엣 계수 평균값에 .. 2021. 12. 21.
# 16. 군집화 알고리즘 (K-Means Clustering) 이번 포스트에서는 저번 포스트에서 다루었던 군집화 알고리즘 중 대표적인 방법인 K-Means Clustering에 대해 알아보겠다. K-Means Clustering 알고리즘은 이름에서 알 수 있다시피 K개의 군집을 정하며, 데이터들의 평균 중심(거리의 평균)을 각 군집의 중심점으로 삼는다. STEP 1 : 군집의 갯수만큼 임의의 위치에 중심점을 정한다. STEP 2 : 각 데이터를 가장 가까운 중심점에 해당하는 군집에 소속시킨다. STEP 3 : 각 군집에 속해있는 데이터들의 평균 거리를 갖는 중심위치로 군집의 중심점을 이동시킨다. STEP 2~3의 과정을 반복하고, 중심점의 위치에 변화가 없을 경우 군집화 과정을 멈춘다. 알고리즘 자체는 단순하지만, 피처 수가 많아지면 기하급수적으로 느려지는 현상이 .. 2021. 12. 9.
# 5. Long Short-Term Memory (LSTM) - Theory 지난 포스트에서는 순환 신경망 (RNN)에 대해 다루었다. RNN은 시퀀스 데이터를 처리하기에 적합하지만, Gradient vanishing 현상이 존재한다. Gradient vanishing은 신경망에서 은닉층을 거칠수록 (역전파를 통해 가중치를 편미분한) 기울기가 소실되어 학습이 느려지는 현상을 말한다. RNN에서 Gradient vanishing을 직관적으로 설명하면 문장이 길어질수록 앞의 내용을 잊어버리고 뒤에서 엉뚱한 추론을 한다는 의미이다. (역전파와 Gradient vanishing에 관련된 내용은 추후에 포스트에서 자세하게 다루겠다.) RNN의 Gradient vanishing 문제를 보완하기 위해 메모리 셀에 단순히 은닉 상태(hidden state)뿐만이 아닌 셀 상태(cell stat.. 2021. 12. 9.
# 4. Recurrent Neural Network (RNN) - Code 이번 포스트에서는 지난 포스트에서 다루었던 RNN의 이론을 바탕으로 코드로 직접 구현해본다. RNN의 은닉층 연산에 대해 간단히 복습을 해보자. $h_{t} = tanh(W_{x}x_{t} + W_{h}h_{t-1} + b)$ 위 식은 이전 메모리 셀의 은닉 상태($h_{t-1}$)와 현재 시퀀스의 입력 데이터($x_{t}$)를 바탕으로 현재 메모리 셀의 은닉 상태를 연산하는 식을 의미한다. $D_{h}$ : 은닉층의 크기 $d$ : 입력 벡터의 크기 (피처 수, 단어의 종류 수) Numpy를 통한 구현 import numpy as np # sequence data : N x T x D (샘플 수 x 시퀀스 수 x 차원 수) time_steps = 10 # T (시퀀스 수) input_dim = 4 # .. 2021. 12. 7.
# 3. Recurrent Neural Network (RNN) - Theory Sequence Data (시퀀스 데이터) 이번 포스트에서는 순환 신경망(Recurrent Nerual Network, RNN)에 대해 다룬다. RNN은 입출력을 시퀀스(=시간) 단위로 처리하는 모델이다. 고로, 시계열 데이터를 처리하는데에 적합하다. RNN을 다루기 이전에 시퀀스에 대해 간략하게 짚고 넘어가자. 이전에 다루던 데이터는 시간을 고려하지 않은 데이터들이었다. Tabular 데이터는 $N \times D$의 모양을 가지고 있다. 이때, $N$은 데이터 샘플의 수, $D$는 피처의 수다. 여기에 시간을 고려한 데이터를 하나의 배열에 표현하려면 $N \times T \times D$로 표현할 수 있다. 그리고 RNN의 각 시퀀스의 입력에 대입되는 모양은 $N \times 1 \times D$가 .. 2021. 12. 7.
# 0. Waymo Open Dataset Motion Overview The motion dataset is provided as sharded TFRecord format files containing protocol buffer data. The data are split into training, test, and validation sets with a split of 70% training, 15% testing and 15% validation data. 모션 데이터 세트는 protocol buffer 데이터를 포함한 분할된 TFRecords 포맷의 파일들로 제공된다. 데이터들은 70% 훈련, 15% 검증, 15% 테스트 세트로 나뉜다. The dataset is composed of 103,354 segments each containing 2.. 2021. 12. 6.