Loading...
2022. 2. 7. 17:06

VGGNet는 왜 3*3 convolution을 사용했을까?

1. VGGNet 요즘도 많이 쓰인다 AlexNet보다 더 깊은 16층 19층 (11층도 있는듯?) 그런데 AlexNet보다 더 간단한 구조를 사용했다. 구체적으로 Local Response normalization을 사용하지 않았고 비교적 작은 3*3 convolution layer와 2*2 max pooling layer만 사용했다 작은 size의 filter를 더 깊게 쌓으면서 input image의 receptive field를 더욱 크게 가져갔다. 심지어 filter size가 작아지면서 AlexNet보다 parameter가 작아졌다 그런데 더 깊게 쌓으면서 더 복잡한 non linear 함수관계를 학습할 수 있게 되었다 이 말은 image의 많은 영역을 고려하여 output을 출력한다는 것 더..

2022. 2. 7. 15:48

유사도(similarity)와 거리(distance)는 무슨 차이가 있을까?(+ cosine distance vs. euclidean distance)

유사도와 거리는 밀접한 관계가 있다고 생각할 수 있다. 거리가 클 수록 유사도는 떨어진다. 비교하는 특징은 같으나 측량하는 관점에서는 서로 반대라는 것이다. 두 데이터 X,Y의 거리함수(distance function) d는 수학적으로 다음과 같이 정의한다. 위 식을 모두 만족하는 d가 거리함수다 유사도함수 s(X,Y)는 실수값을 출력하는 함수로 특별한 정의는 없다. 그래서 조금 더 일반적이다(general) 유사도함수가 특별히 [0,1]내에서 값을 가진다고 하면 두 함수 의미의 서로 반대의미와 identity-discening에 주목하여 유사도함수가 위의 거리함수의 공리를 모두 만족한다면 완벽하게 혼용해서 사용할 수 있다. 그런데 모든 유사도함수가 위의 조건을 만족할까? 그렇지도 않다. 지금 당장 생각..

2022. 2. 6. 21:55

Word2Vec의 기본 알고리즘

1. idea I study math라는 입력문장을 unique한 단어들의 vocabulary로 변환하면 {‘I’, ‘study’,’math’} 사전의 각 단어는 vocab size만큼 차원을 갖는 one hot vector이다. ‘I’는 [1,0,0] ‘study’는 [0,1,0] ‘math’는 [0,0,1] sliding window라는 기법은 한 단어를 중심으로 앞 뒤로 나타난 단어들과 (중심단어,주변단어) 입출력쌍을 구성하는 기법이다. 이 단어 쌍에서 중심단어를 input으로 두고 주변단어를 output으로 두는 예측 task를 수행하는 2-layer neural network를 구성한다. one hot vector의 차원이 3차원이니 input과 output layer의 차원은 3차원 hidde..

2022. 2. 5. 21:03

Word2Vec의 핵심 아이디어

1. word embedding sequence data의 정보단위인 단어들을 특정한 공간 상의 한 점, 벡터로 표현하는 기법 써야 하는 이유는 위에서도 서술했지만 딥러닝 모델들이 수치를 다루니까, 단어 그대로 넣을 수 없어서 그렇다 word embedding은 그 자체로도 하나의 머신러닝 기술이다. 텍스트 데이터, 공간상 차원 등을 학습 데이터로 주고 학습 후 다른 단어의 최적의 embedding vector를 구한다. 모든 embedding 기법을 관통하는 핵심아이디어는 비슷한 의미를 가지는 단어들은 공간 상에서 비슷한 위치에 두고 그렇지 않은 단어들은 먼 거리에 두어 단어들의 의미 유사도를 반영한 벡터 표현을 제공하는 것이다. ‘cat’ 과 ‘kitty’는 의미상 비슷하므로 서로 비슷한 위치에 두고..

2022. 2. 4. 22:15

convolution 연산의 stride와 padding

1. stride filter가 매 스텝 convolution할 때마다 다음회에 얼마나 이동할지 2차원의 경우 stride는 2차원이다, (옆으로 얼마나 이동할지 * 아래로 얼마나 이동할지) 2. padding 일반적으로 input, output은 convolution 연산으로 크기가 서로 달라짐 보통은 output이 input보다 차원이 줄어든다 보통 convolution을 하면 input의 가장자리 빨간색 부분의 정보가 짤린다 그렇지만 input의 모든 정보를 가져오는게 좋지 않겠는가 그래서 input과 output의 크기가 동일했으면 하는 마음이 있다 가장자리 주변에 padding을 하여 모든 정보를 가져오도록 만든다 stride=1인 경우 적절한 크기의 패딩을 사용하면 반드시 input과 outp..

2022. 2. 4. 21:52

naive bayes classifier의 문제점을 보완하는 Laplace smoothing

1. naive bayes classifier의 문제점 만약 test sentence d내에 존재하는 특정 단어 $w_{i}$가 train data에서 특정 class C=c내에 1번도 존재하지 않으면 $P(w_{i}|c)$는 0이므로 test의 sentence d는 다른 단어의 조건부확률과 무관하게 무조건 P(c|d)=0이다. 다른 단어는 다 존재하지만 단 하나의 단어만이라도 이런 경우가 발생하면 무조건 예측확률이 0이라는 사실이 굉장히 억울한 부분이다. 2. laplace smoothing 특정 class C=c에 test내 특정 단어 $w_{i}$가 속할 조건부확률을 laplace smoothing을 이용하여 구하면 그러니까 원래 구하는 식에 smoothing 상수 k를 더해준 것 상수 k는 확률에..