반응형

전체 글 115

[Deep Learning] 딥러닝 디버깅 툴 Tensorwatch

참고 자료 Github : https://github.com/microsoft/tensorwatch Youtube : https://www.youtube.com/watch?v=MSWCQ9lRA1Y&feature=youtu.be&list=PL0oFI08O71gKEXITQ7OG2SCCXkrtid7Fq Facebook : https://ko-kr.facebook.com/groups/TensorFlowKR/permalink/937082699966122/ "기교가 끝나는 순간 예술이 시작된다" 딥러닝은 내가 가지고 있는 데이터를 가지고 최신 네트워크에 적용해서 단순히 정답을 얻어내는 것이 아니다. 디버깅을 통해 점진적으로 발전시켜가는 것이다. "블랙박스에 맡기는 것이 아니라 하나씩 처방해 가는 것이다", 이 말에..

[Deep Learning] 배치 정규화

참고자료 : [1] https://shuuki4.wordpress.com/2016/01/13/batch-normalization-%EC%84%A4%EB%AA%85-%EB%B0%8F-%EA%B5%AC%ED%98%84/ [2] https://astralworld58.tistory.com/65 배치 정규화 배치 정규화는 Gradient Vanishing/Exploding과 같은 문제를 해결하기 위해 나온 방법이다. 지금까지는 이 문제를 활성화 함수(ReLU, Tanh, Sigmoid 등)의 변화, 가중치 초기화 방법, 작은 학습률등으로 해결했지만 이 논문에서는 가중치 초기값이나 학습률에 의존하지 않고 전체적으로 해결하고자 하였다. 미니 배치(mini-batch) 단위로 학습 바로 전,후 데이터를 정규화 하는 ..

딥러닝 모델 경량화 기술

참고자료 [1] 경량 딥러닝 기술 동향, ETRI 2019, 이용주, 문용혁, 박준용, 민옥기, DOI: 10.22648/ETRI.2019.J.340205 최근 GPU기반의 컴퓨팅 기술을 활용하여 다양한 딥러닝 모델이 만들어지고 있다. 하지만, 실제 디바이스나 IoT 센서에서 활용하기에는 모델이 무겁고 연산량이 많다. 경량 딥러닝 연구는 기존의 학습된 모델의 정확도를 유지하면서 크기가 작고 연산을 간소화하는 기술로 알고리즘 자체를 효율적으로 설계하거나 만들어진 모델의 파라미터를 줄이는 방법으로 나뉜다. 경량 알고리즘 : 컨볼루션 신경망의 경우, 주로 합성곱 연산량을 줄이기 위한 방법을 사용한다. Resnet, Densenet : 기존 신경망 모델 구조에서 단일 층별 정보만을 사용하는 것이 아닌 다양한 계..

[객체 탐지] Focal Loss for Dense Object Detection

참고 자료 Paper : https://arxiv.org/pdf/1708.02002.pdf [1] https://towardsdatascience.com/neural-networks-intuitions-3-focal-loss-for-dense-object-detection-paper-explanation-61bc0205114e One Stage Object Detector의 경우 속도는 빠르지만, R-CNN 계열의 Two Stage Object Detector 보다 성능이 낮다. R-CNN 계열은 RPN과정을 통해 전경과 배경을 어느정도 분류하지만, One stage의 경우 특징맵의 그리드를 활용하기에 배경영역이 상대적으로 많이 포함되어 있다. 이러한 오류는 데이터의 클래스 불균형(Class - imba..

[객체 탐지] Selective Search for Object Recognition

[참고 자료] Paper : http://www.huppelen.nl/publications/selectiveSearchDraft.pdf [1] https://donghwa-kim.github.io/SelectiveSearch.html Selective Search for Object Recognition 방식은 R-CNN 계열의 논문에서 이미지 후보 영역을 추천할 때 사용하는 알고리즘이다. Segmentation과 Exhaustive search 두가지 방법을 결합하여 후보영역을 추천한다. Segmentation : 이미지 구조를 사용하여, 샘플링 프로세스를 안내 Exhaustive Search : 모든 객체의 위치(Locations)를 찾아내는 것 object detection 분야에서 R-CNN, ..

[객체 탐지] Feature Pyramid Networks for Object Detection

[참고 자료] Paper : https://arxiv.org/pdf/1612.03144.pdf Feature Pyramid 방식은 기존의 성능을 개선시키기 위해 많이 사용해왔던 방식이다. 하지만, 딥러닝 방법에서 적용해오지 않았던 이유는 많은 양의 계산과 메모리가 필요했기 때문이다. 이러한 문제를 해결하기 위해 "Lateral Connection" 이라 불리는 측면 연결 방식을 이용하여, 과도하지 않은 추가 연산량을 통해 성능을 개선시키고자 하였다. 색이 진할수록 압축된 정보를 의미한다.(컨볼루션 연산이 많이 진행) (a) Featurized image pyramid : 기존의 Hand-crafted 방식에서 많이 사용해왔으며, 각 계층에서 대해 독립적으로 연산하기 때문에 느리다. (b) Single f..

[Python] 경로명 분리하기

참고 자료 [1] https://wikidocs.net/3717 디렉토리로 부터 파일명을 분리할 때 유용한 코드 입니다. filename = '/data/others/yun/shadow/image.png' 라는 경로가 있을 경우 1. os.path.basename(filename) - 파일명만 추출하게 된다.image.png 2. os.path.dirname(filename) - 디렉토리 경로 추출/data/others/yun/shadow 3. os.path.split(filename) - 경로와 파일명을 분리('/data/others/yun/shadow/', 'image.png') 4. os.path.splitdrive(filename) - 드라이브명과 나머지 분리(Ms windows의 경우)('', ..

Annotation Tool 소개

학습데이터 및 테스트 데이터를 라벨링 할때 사용하는 툴을 소개합니다. 상황에 맞게, 목적에 맞게 사용하시면 될거 같습니다. Github [1] https://github.com/wkentaro/labelme [2] https://github.com/AKSHAYUBHAT/ImageSegmentation [3] https://github.com/kyamagu/js-segment-annotator [4] https://github.com/CSAILVision/LabelMeAnnotationTool [5] https://github.com/lzx1413/labelImgPlus [6] https://github.com/seanbell/opensurfaces-segmentation-ui

[Deep Learning] 훈련, 검증 정확도를 통한 최적 모델얻기

참고 자료 : http://aikorea.org/cs231n/neural-networks-3/ 훈련/ 검증 정확도는 학습 시 최적의 모델을 얻기 위해 참고해야 하는 또다른 지표이다. 이 그래프는 훈련데이터에 과도하게 피팅된 과적합(Over-fitting) 중인지 발견할 수 있다. 빨간색 : 학습 데이터에 대한 정확도, 초록색 : 검증 데이터 정확도(약한 오버피팅), 파란색 : 검증 데이터 정확도(강한 오버피팅) 파란색 그래프는 빨간색 그래프(훈련 그래프)에 비하여 매우 낮은 검증 정확도를 보이고 있으며, 강한 오버피팅임을 보여주고 있다. 어느 시점 이후에 검증 정확도가 급격하게 떨어졌는지 확인함으로써, 최적의 모델 값을 찾을 수 있다. 또한, 정규화(Regularization)방법 - (L2 Loss, ..

[Deep Learning] 손실 함수를 통한 학습률 최적화 방법

참고 자료 : http://aikorea.org/cs231n/neural-networks-3/ 손실함수는 신경망이 학습할 수 있도록 나타내는 지표를 의미하며, 모델의 출력 값과 정답 값 간의 오차를 말한다. 딥러닝 모델에 대한 학습을 진행하다 보면, 학습률(Learning Rate)에 따라서 전역 최적값이나 지역 최적값에 도달하게 된다. 왼쪽 그림은 학습률에 따른 에폭 당 손실함수를 나타낸다. 적당한 학습률은 전역 최적 손실값을 얻기 때문에 낮은 값으로 수렴하게 되고, 너무 낮거나 높을 경우 지역 최적값에 빠지게 된다. 오른쪽 그림은 적당한 손실함수의 형태를 보이고 있으며, 위아래로 진동하는 이유는 배치 사이즈가 너무 낮기 때문이다. 그 이유는 모든 데이터에 대하여 그래디언트 업데이트가 수행되면 손실 함..

Squeeze-and-Excitation Networks

참고자료 [1] 논문 : https://arxiv.org/pdf/1709.01507.pdf 기존의 CNN(Convolution Neural Network) 선행 연구에서는 공간적인 관계(Spatial)를 가지는 특징들을 개선시키기 위해 노력해왔다. 본 논문에서는 공간적인 관계가 아닌 채널간의 관계를 재조정(Recalibrate)시켜주는 "Squeeze-and-Excitation Block"을 통해 성능을 개선시키고자 한다. SE-block은 구조가 간단하고 가볍기 때문에, 효율적으로 성능을 높여줄 수 있다. 1. Squeeze-and-Excitation Blocks 전체적인 구조는 다음과 같다. 1. 입력 특징 맵으로 부터 Squeeze 연산을 통해, 각 채널 별로 공간 차원(H x W) 특징맵을 모아서..

Conditional Generative Adversarial Nets

GAN(Generative Adversarial Networks)는 최근 생성적 모델을 학습시키는 새로운 방법으로 소개되었다. GAN은 생성기와 분류기의 경쟁적 학습에 의해 실제 이미지와 유사한 가짜 이미지를 만들어 내지만, 어떤 이미지를 만들어 낼지는 알 수 없었다. 이러한 문제를 해결하고자 조건을 추가하였다. 1. Conditional GAN z는 Latent vector(잠재 변수- 100차원의 정규화된 모델에 의한 랜덤변수), y는 조건, x는 생성된 데이터초록색 부분(y = Condition)을 제외하면, GAN과 동일하다.조건 데이터는 이미지 뿐만 아니라 다양한 형태(one-hot vector, image, word..)를 가질수 있다.생성기와 분류기에서 입력 데이터로 Concatenation..

NMS(Non-Maximum Supression)

참고 자료 [1] https://ballentain.tistory.com/12 [2] https://study-grow.tistory.com/27 [3] https://dyndy.tistory.com/275 [4] https://towardsdatascience.com/non-maximum-suppression-nms-93ce178e177c Non-Maximum suppression는 영상처리 분야에서 엣지(edge)를 얇게 만들어주는 것을 말한다. 중심 픽셀을 기준으로 8방향의 픽셀 값들을 비교하여 중심픽셀이 가장 클 경우 그대로 두고 아닐 경우 제거해 주는 과정입니다. 쉽게 말해서, 영상안의 edge가 뭉개져 있을때 더욱 선명한 선을 찾기 위해 수행하는 과정이다. 이와 비슷하게 딥러닝의 객체 탐지 분..

[객체 탐지] DSSD : Deconvolutional Single Shot Detector

참고자료 논문 : https://arxiv.org/abs/1701.06659 [1] https://towardsdatascience.com/review-dssd-deconvolutional-single-shot-detector-object-detection-d4821a2bbeb5 기존의 SSD(Single Shot MultiBox Detecotr)에서 성능 향상을 위해, Context 특징들을 더하기 위해 Deconvolution 연산을 추가하였다. 기존의 SSD에 Deconvolution 연산을 추가함으로써, 속도를 상대적으로 유지하면서 탐지 성능을 높이고자 하였다. (특히 작은 객체들(small object)에 대하여)SSD의 앞 부분에서 사용되었던 VGG network를 Resnet기반의 Resid..

[Deep Learning] 선형 회귀(Linear Regression)

선형 회귀(Linear Regression)는 주어진 데이터 x에 해당하는 목표값 y를 예측하는 문제를 해결하는 데 주로 사용됩니다.예를 들어, 투자한 시간에 대비하는 성적을 예측하는 문제나 사람의 몸무게를 통해 키를 예측하는 문제처럼 현실적인 문제를 선형적으로 데이터를 처리하여 해결하는 경우가 많습니다. ex 1) x = [1,2,3] y = [3,5,7] 과 같은 데이터가 있다고 할때, x의 값이 4이면 y는 어떤값을 가지게 될까?ex 2) x를 공부한 시간, y는 성적이라 할때 x의 값이 5이면 y는 어떤 값을 가지게 될까? 이러한 문제들은 간단한 선형회귀모델을 추론하여 해결할수 있습니다. 1. x와 y를 추론하기 위해 가설(Hypothesis)을 세운다. H(w,b) = wx+b2. 임의의 값 (..

[객체 탐지] Fast-RCNN

참고 자료 youtube : https://www.youtube.com/watch?v=kcPAGIgBGRs&feature=youtu.beGithub(Caffe) : https://github.com/rbgirshick/fast-rcnn [1] https://blog.lunit.io/2017/06/01/r-cnns-tutorial/ [2] https://m.blog.naver.com/PostView.nhn?blogId=laonple&logNo=220776743537&proxyReferer=https%3A%2F%2Fwww.google.com%2F [3] http://openresearch.ai/t/fast-r-cnn/240 Fast R-CNN은 기존의 R-CNN 계열에서의 문제점이였던 속도를 개선하고자 하였..

[Deep Learning] 입력 데이터에서 데이터 정규화를 하는 이유

입력 데이터에 대하여 데이터 정규화(Normalization)를 하는 이유 신경망의 학습을 빠르게 할수 있는 하나의 기법은 입력데이터를 정규화 하는 것이다. 초기 입력데이터의 산포도가 1번 그래프와 같다고 가정해보자. 데이터를 3과 같이 정규화 하기 위해 다음과 같은 과정을 거치게 된다. 먼저, 평균을 빼는 것이다. 1번의 그래프는 2와 같이 0으로 옮겨지게 된다.다음으로, 분포를 일정하게 해준다. 2번 그래프에서 x1의 범위가 x2의 범위보다 비 정상적으로 크기 때문이다.결과적으로 3과 같은 데이터 분포를 얻게 된다.이와 같은 과정을 학습데이터 뿐만 아니라, 테스트 데이터에도 동일하게 적용해야 한다. 그렇다면, 왜 입력 특성을 정규화 해야하는 것일까? 비용함수에 대한 정의는 다음과 같다. 그래프는 최적..

[선형 대수학] 4.3 공간의 직선과 평면

방향벡터, 벡터방정식, 법선벡터, 점과 평면사이의 거리 좌표공간의 점 A(x1, y1, z1)를 지나고 영벡터가 아닌 벡터 v = (a,b,c)에 평행한 직선 위의 임의의 점 P (x,y,z)에 대하여 = tv라 한다. 이때, v를 이 직선의 방향벡터(direction vector)라 한다. 따라서, 벡터방정식 는 다음과 같은 매개방정식으로 나타낼 수 있다. abc는 0이 아닐때, t를 소거하여 정리하면 직선의 대치방정식을 얻는다. 즉, A(x1,y1,z1)을 지나 xy평면에 평행인 직선이다. 방향 벡터가 u와 v인 공간의 두 직선이 이루는 각 는 이 두 직선의 방향벡터가 이루는 각과 같으므로, 로 하고, 이 를 구하려면 이다. 따라서, 로 나타낼 수 있다. 점 A(x1, y1, z1)를 지나, 영벡터가..

Mathmatics 2020.01.06

[객체 탐지] SSD: Single Shot MultiBox Detector

참고 자료 YouTube : https://www.youtube.com/watch?v=ej1ISEoAK5gGit-Hub : https://github.com/amdegroot/ssd.pytorch[1] https://arxiv.org/abs/1512.02325[2] https://towardsdatascience.com/review-ssd-single-shot-detector-object-detection-851a94607d11[3] https://taeu.github.io/paper/deeplearning-paper-ssd/ SSD는 이전의 State-Of-Art인 yolo보다 속도가 빠르고, RPN(Region Proposal Network)방법 중 하나인 Faster R-CNN보다 성능이 뛰어나다...

[객체 탐지] YOLO

참고 자료 YouTube : https://www.youtube.com/channel/UC7ev3hNVkx4DzZ3LO19oebg Git-Hub : https://github.com/pjreddie/darknet/wiki/YOLO:-Real-Time-Object-Detection [1] https://curt-park.github.io/2017-03-26/yolo/[2] https://zzsza.github.io/data/2018/05/02/YOLO-You-only-look-once-review/ Yolo는 기존연구에 비해 여러가지 특징들을 가진다. 속도(45 FPS-Frame Per Seconds) 네트워크는 일반화된 추론 성능(General Representations)을 지닌다. (실제 이미지로 훈..

반응형