Data Science

Weight Initialization
신경망 모델 학습의 목적은 Loss(error)을 최소화하는 과정이다. 이를 위해서 loss function에 대해 gradient descent를 수행했다. 만약에 어떤 데이터셋의 loss function 그래프가 아래와 같이 생겼다고 했을때 동일하게 gradient descent를 따라서 내려가더라도 도달하는 최저점이 다른 것을 알 수 있다. 만약에 오른쪽 봉우리 어딘가에서 시작한다면 같은 지점에서 시작한다면 아래 새로 생긴 경로를 따라서 학습될 수도 있다. 이 경로를 따라 나온 최저점은 앞선 두 결과의 최저점보다 훨씬 더 크다. 이처럼 첫 위치를 잘 정하는 것은 좋은 학습을 위한 조건 중 하나이고 가중치의 초깃값은 신경망 학습에서 중요한 요소 중 하나이기 때문에 가중치의 초깃값을 어떻게 설정하는지는..

DBSCAN
K-Means나 Hierarchical 클러스터링의 경우 군집간의 거리를 이용하여 클러스터링을 하는 방법인데, DBSCAN은 점이 세밀하게 몰려 있어서 밀도가 높은 부분을 클러스터링 하는 방식이다. 쉽게 설명하면, 어느점을 기준으로 반경 x내에 점이 n개 이상 있으면 하나의 군집으로 인식하는 방식이다. 먼저 점 p가 있다고 할때, 점 p에서 부터 거리 e (epsilon)내에 점이 m(minPts) 개 있으면 하나의 군집으로 인식한다고 하자. 이 조건 즉 거리 e 내에 점 m개를 가지고 있는 점 p를 core point (중심점) 이라고 한다. DBSCAN 알고리즘을 사용하려면 기준점 부터의 거리 epsilon값과, 이 반경내에 있는 점의 수 minPts를 인자로 전달해야 한다. 아래 그림에서 minPt..

K-means clustering
Clustering 데이터에 label이 붙어 있다면 데이터와 label을 기반으로 예측이나 분류를 수행하는 모델을 만들 수 있고 이를 지도학습이라고 한다. 그러나 실제로는 label이 없는 경우가 더 많다. 비지도 학습은 label이 없는 데이터 안에서 패턴과 구조를 발견하는 머신러닝의 방법 중 하나이다. 그 중 가장 대표적인 비지도 학습 방법이 Clustering이다. Clustering은 지도학습 모델인 Classification과 다르다. Classification은 미리 label이 있는 데이터들을 학습해서 그걸 바탕으로 새로운 데이터에 대해 분류를 수행하지만, Clustering은 label을 모르더라도 비슷한 속성을 가진 데이터들끼리 묶어주는 역할을 한다는 차이점이 있다. K-means cl..

Dimensionality reduction
Curse of dimensionality (차원의 저주) 차원의 저주란 차원이 증가하면서 학습데이터 수가 차원 수보다 적어져서 성능이 저하되는 현상을 말한다. 차원이 증가할수록 변수가 증가하고, 개별 차원 내에서 학습할 데이터 수가 적어진다. 하지만 변수가 증가한다고 반드시 차원의 저주가 발생하는 것은 아니다. 관측치보다 변수 수가 많아지는 경우에 차원의 저주 문제가 발생하는 것이다. 위 그림에서 보는 것과 같이 차원이 증가할수록 빈 공간이 많아진다. 같은 데이터지만 1차원에서는 데이터 밀도가 촘촘했던 것이 2차원, 3차원으로 차원이 커질수록 점점 데이터 간 거리가 멀어진다. 이렇게 차원이 증가하면 빈 공간이 생기는데 빈 공간은 컴퓨터에서 0으로 채워진 공간이다. 즉, 정보가 없는 공간이기 때문에 빈 ..

CNN
CNN은 Convolutional Neural Networks의 약자로 딥러닝에서 주로 이미지나 영상 데이터를 처리할 때 쓰이는 Neural Network 모델이다. CNN이 나오기 이전, 이미지 인식은 2차원으로 된 이미지(채널까지 포함해서 3차원)를 1차원배열로 바꾼 뒤 Fully Connected 신경망으로 학습시키는 방법이었습니다. 이러한 방식은 raw data를 직접 처리하기 때문에 많은 양의 학습데이터가 필요하고 학습시간이 길어진다. 또한 이미지가 회전하거나 움직이면 새로운 입력으로 데이터를 처리해줘야 한다. CNN은 이러한 단점을 보완하여 raw data를 그대로 받음으로써 공간적, 지역적 정보를 유지한 채 특성(feature)들의 계층을 빌드업한다. CNN의 중요 포인트는 이미지 전체보다는..

Gradient Descent (경사하강법)
Optimization 딥러닝에서 Optimization(최적화)란 손실함수(Loss Function) 값을 최소화하는 파라미터를 구하는 과정이다. 딥러닝에서는 학습 데이터를 입력하여 네트워크 구조를 거쳐 예측값(y^)을 얻습니다. 이 예측값과 실제 정답(y)과의 차이를 비교하는 함수가 손실함수이다. 즉, 모델이 예측한 값과 실젯값의 차이를 최소화하는 네트워크 구조의 파라미터를 찾는 과정이 최적화이다. Gradient Descent 경사하강법은 함수의 기울기(=gradient)를 이용해서 함수의 최소값 일 때의 x값을 찾기 위한 방법이다. 기울기가 양수인 경우는 x 값이 증가할수록 함수 값도 증가하고, 반대로 음수인 경우에는 x 값이 증가할수록 함수 값이 감소한다. 그리고 기울기 값이 크다, 기울기가 가..

Backpropagation (역전파)
역전파는 신경망의 각 노드가 가지고 있는 가중치(Weight)와 편향(Bias)을 학습시키기 위한 알고리즘으로, 목표(Target)와 모델의 예측 결과(Output)가 얼마나 차이가 나는지 확인하고 그 오차(error)를 바탕으로 가중치와 편향을 뒤에서부터 앞으로 갱신해가는 것을 의미한다. Back-propagation Process 1) 주어진 입력값에 상관없이, 임의의 초기 가중치(w)를 준 뒤 은닉층을 거쳐 결과를 계산합니다. 2) 계산 결과와 실제 예측하고자 하는 값 사이의 오차를 구합니다. 3) 가중치를 업데이트 합니다. 4) '1~3'의 과정을 오차가 더이상 줄어들지 않을 때까지 반복합니다. 역전파 알고리즘도 한계점은 있다. 은닉층에서 시그모이드(Sigmoid) 함수를 사용하면 가중치 조정을 ..