목록Artificial Intelligence (44)
ROKO
Intersection of union (IoU)IoU = intersection of area / union of area 는 bounding box를 얼마나 잘 맞췄는지에 대한 평가지표로 사용된다.Non-max suppression (NMS)grid cell 을 기준으로 object의 mid point를 찾을때 하나의 object에 여러 bounding box가 중복될 수 있다. 중복된 box들은 계산 복잡도를 증가하고 비효율적이기 때문에 Non-max suppresion으로 중복된 box를 제거한다. 우선 특정 \(p_c\) 값보다 적은 box들을 제거하고 나머지 box들에 NMS를 적용한다.Anchor box하나의 grid cell은 하나의 object밖에 예측하지 못하는건 한계점이다. 같은 gi..
Classification with localization\(y=[p_c, b_x, b_y, b_h, b_w, c_1,c_2, c_3]\)\(y_1=p_c\): 객체가 있는지 없는지에 대한 확률\(b_x, b_y\): 객체의 중심좌표\(b_h, b_w\): bounding box의 높이와 너비\(c_1,c_2,c_3\): 각 클래스에 해당할 확률loss 는 객체가 있을 경우 전부를 고려해서 계산하고, 객체가 없는 경우 객체 확률만 고려한다. (나머지는 객체가 없는 상황에서 무의미하기 때문) bounding box는 squared error, class는 softmax, \(p_c\)는 logisitic regression loss를 사용할 수 있다.Landmark detection객체 탐지를 넘어 특정 ..
LeNet -5활성함수로 ReLU가 아닌 sigmoid/tanh를 썼다. 논문 section 2,3 에 흥미로운 내용을 담고 있으니 읽어보기 추천한다.http://vision.stanford.edu/cs598_spring07/papers/Lecun98.pdf AlexNet당시 자원의 한계로 multi-gpu를 사용해 학습하였다. Local Response Normalization (LRN)을 사용했는데, channel 을 기준으로 정규화하는 방법이다. 현재는 사용하지 않는다. VGG-16적은 parameter를 사용하지만 연산량이 그만큼 늘어난다. 계층적 filter를 통해 recepive field가 filter가 큰 경우를 해결한 논문이다.ResNetsResNet의 motivation은 신경망이 깊을..
컴퓨터 비전의 가장 큰 문제중 하나는 input size가 매우 크다는 것이다. 고화질의 사진일수록 하나의 이미지에 구성되는 화소가 많으므로 많은 연산량이 필요하다. 그러면 가중치는 매우 커지고 모델이 과적합 될 확률이 높아지는데 이를 완화화기 위한 고해상도 이미지 데이터를 모델에 필요한 만큼 구하기는 쉽지 않다. 이미지가 주어졌을때 이미지에 대한 특징을 추출하는 기본적인 방법은 수직 방향, 수평 방향 가장자리 (vertical, horizontal edge)를 구하는 것이다.python 에서는 * (convolution, element-wise multiplication) 연산자로 표현한다.I: height, width sizeF: filter size (위치 파악을 위해 주로 홀수로 사용)P: pad..
Error analysis90%의 정확도를 보이는 고양이 분류기를 만들었다. 그런데 고양이 분류기가 자꾸 강아지를 오분류하자. 동기가 강아지의 경우를 잘 튜닝하도록 모델을 학습하는 것이 어떤지 물었다. 이 과정에 들어간 기회비용을 따졌을때 강아지에 대한 경우에 집중하는게 좋을까? 이를 쉽게 판단하기 위한 방법이 error analysis이다. 100개의 오분류 데이터를 가져와 강아지였던 경우를 센다. 만약 100개의 데이터에서 5개의 강아지 사진이 나왔다면 10% error에서 5/100 만큼의 오류를 해결할 수 있다는 뜻이고 9.5% error로 낮출 수 있다. 이렇게 보면 오른 성능에 대비해 좋은 선택이 아니라는 것을 알 수있다. 만약 50/100 이 강아지였다면 10% error에서 5% error..
Orthogonalization딥러닝 모델을 최적화 하기 위한 hyperparameter들을 한번에 고려하는 것이 아닌 직교화 (orthogonalization)하여 각 hyperparameter를 하나씩 조정하는 것을 의미한다. ex) Chain of assumptions in MLFit training set well on cost function (bigger model, optimizer, early stopping, ...)Fit dev set well on cost function (regularization, bigger train set, early stopping, ...)Fit test set well on cost funtion (bigger dev set, ...)Performs ..
모델을 구성하는 많은 hyperparameter들이 존재하는데 우선순위를 매기면 다음과 같다. 1. learning rate2, moment, #hidden units, mini-batch size3. #layers, learning rate decay4. etc 각각의 hyperparameter는 어떻게 구할 수 있을까?smapling 방식으로 grid search, random search 가 기본적인데 hyperparameter 범위가 아주 작지 않은 한 random search를 추천한다. 그리고 이 sampling을 가지고 coarse to fine 방식으로 hyperparameter를 찾을 수 있다.* sampling을 할때 적절한 hyperparameter 범위를 찾는게 중요하다. ex) ..
vectorization으로 학습 속도를 빠르게 했지만 전체 데이터 크기가 너무 커지면 학습속도가 느려지게 된다. 이때는 전체 학습데이터를 mini-batch로 나누어 학습시키면 속도가 빨라진다. 전체 학습데이터를 사용하는것을 batch gradient descent, 전체 학습데이터를 같은 크기 단위로 나누어 작은 배치를 사용하는것을 mini-batch gradient descent라고 한다. 각 1 epoch당 batch gradient descent는 역전파를 한번 하고 mini-batch gradient descent는 mini-batch 개수 만큼 역전파를 하게 된다. batch 는 cost 가 단조감소하는 모습을 보이는 반면 mini-batch의 경우 전체적으로 감소하는 모습을 보이기는 하지만..
Applied ML is a highly iterative process최적의 hyperparameter를 찾기 위해서는 반복적인 과정이 필요할 수 밖에 없다. Train/dev/test sets예전부터 train:test=7:3 혹은 train:dev:test=6:2:2 로 설정하여 실험을 진행하였지만, 현재 빅데이터의 시대에 들어서면서 굳이 많은 양의 dev, test sets 이 필요하지 않게 되었다. dev, test의 목적은 모델이 잘 학습되었는지 확인하고자 하는 용도이기 때문에 적은 데이터로도 충분하다. 따라서100만개의 매우 많은 데이터가 있다고 가정한다면 train:dev:test=98:1:1 으로 분할하여 사용한다. 만약 100만개 이상이라면 train:dev:test=99.5:0.25:..
NotationL = #layers\(n^{[l]}\) = #units in layer \(l\), (input = layer "0")deep network의 forward propagation을 vectorization으로 표현하면 아래와 같다.\(Z^{[l]}=W^{[l]}A^{[l-1]}+b^{[l]}\)\(A^{[l]}=g^{[l]}(Z^{[l]})\) deep learning 잘되는 이유를 직관적으로 이해해보자. 위 그림은 face detection 을 위한 모델인데, 앞부분에서는 edge 같은 간단한 특징들을 추출하고 이후부터 더 복잡한 눈, 코, 입 마지막은 다양한 사람들의 얼굴 종류를 추출하는것을 알 수있다. 따라서 딥러닝은 간단한 특징으로부터 복잡한 특징을 구현해 학습하는 능력을 가지고 ..