반응형

Image processing 60

[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과 같은 데이터 분포를 얻게 된다.이와 같은 과정을 학습데이터 뿐만 아니라, 테스트 데이터에도 동일하게 적용해야 한다. 그렇다면, 왜 입력 특성을 정규화 해야하는 것일까? 비용함수에 대한 정의는 다음과 같다. 그래프는 최적..

[객체 탐지] 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)을 지닌다. (실제 이미지로 훈..

[Pytorch] 선형 레이어와 비선형 레이어

참고 자료[1] Pytorch로 시작하는 딥러닝, 비슈누 수브라마니안 지음, 김태완 옮김 딥러닝 학습과정 선형 레이어선형 레이어는 여러가지 이름으로 불린다. 다른 프레임워크에서는 덴스 레이어(dense Layer) 또는 연결 레이어(Fully Connected Layer)라고 부르기도 한다. 다수의 복수 레이어를 사용한다는 개념은 각 레이어 마다 입력 데이터의 패턴을 학습하고, 다음 레이어는 앞에서 학습한 패턴을 기반으로 학습을 이어나간다는 것이다. 그러나, 단순히 선형 레이어를 연속으로 여러 개 쌓게 되면 1개 선형 레이어로 간단하게 표현된 학습 결과와 같다. Y = 2(3X) - 2개의 선형 레이어Y = 6(X) - 1개의 선형 레이어 이러한 문제를 해결하기 위해, 여러 비선형 함수를 사용하게 되며 ..

[Deep Learning] 확률적 경사 하강법(Stochastic Gradient Descent)

참고 자료 [1] https://light-tree.tistory.com/133 딥러닝 용어정리, MGD(Mini-batch gradient descent), SGD(stochastic gradient descent)의 차이 제가 공부한 내용을 정리한 글입니다. 제가 나중에 다시 볼려고 작성한 글이다보니 편의상 반말로 작성했습니다. 잘못된 내용이 있다면 지적 부탁드립니다. 감사합니다. MGD(Mini-batch gradient descent), SGD(st.. light-tree.tistory.com [2] https://twinw.tistory.com/247 수식과 코드로 보는 경사하강법(SGD,Momentum,NAG,Adagrad,RMSprop,Adam,AdaDelta) 1. 개요 가중치를 조절하는 ..

[Deep Learning] 배치 경사 하강법(Batch Gradient Decent)

참고자료 [1] https://ruder.io/optimizing-gradient-descent/index.html#gradientdescentvariants An overview of gradient descent optimization algorithms Gradient descent is the preferred way to optimize neural networks and many other machine learning algorithms but is often used as a black box. This post explores how many of the most popular gradient-based optimization algorithms such as Momentum, Adagr..

Scene Graph Generation 논문에 대한 이해

참고자료 [1] Y. Li, W. Ouyang, B. Zhou, K. Wang, and X. Wang.“Scene graph generation from objects, phrases and region captions.” In ICCV, 2017. 관련 연구 Object Detection Scene Graph Generation Image/Region Captioning 내용 Scene Graph 기술은 주어진 장면에 대하여 객체뿐만 아니라, 객체들 간의 관계를 추론하는 방법으로 입력 영상으로부터 인스턴스(Instance)단위 객체를 분류하고, 연결 그래프를 이용하여 관계를 명시적으로 표현한다. 과 같이, 3가지 단계에 걸쳐 장면에 대한 의미추론을 수행한다. 먼저, 객체탐지(Object Detectio..

[Pytorch] 딥러닝 신경망에서 사용되는 기본 구조

참고 자료 [1] Pytorch로 시작하는 딥러닝, 비슈누 수브라마니안 지음, 김태완 옮김 신경망에서 기본 블록으로 사용되는 주요 컴포넌트를 구현해 보았으며, 대부분의 딥러닝 구조는 이러한 큰 틀을 벗어나지 않는다. 각각의 의미를 파악하고, 구조에 대해 미리 학습해보자. 1. 첫 신경망에서의 데이터 준비, 데이터 로딩 2. 학습 파라미터 생성 3. 신경망 모델(네트워크 구현, 오차함수, 신경망 최적화(옵티마이저)) 1. 첫 신경망에서의 데이터 준비, 데이터 로딩 첫 신경망 코드에서 get_data 함수는 변수 2개를 다음과 같이 생성합니다. def get_data(): train_x = np.asarray([1.1,2.2,3,4,5,6,7,8.999,9.555]) train_y = np.asarray([..

오토 인코더(Auto-Encoder)의 이해

[참고 자료] 1.핸즈온 머신러닝(Hands-On Machine Learning with Scikit-Learning & TensorFlow), 한빛 미디어 2. 오토인코더의 모든 것(naver d2, 발표자 : 이활석님) https://youtu.be/o_peo6U7IRM 1. 오토 인코더의 개념 오토 인코더는 "어떤 감독 없이도(즉, 레이블 되어 있지 않은 훈련 데이터를 사용해서) 입력 데이터의 효율적인 표현인 코드를 학습할 수 있는 인공 신경망"을 말합니다. 여기서 코드는 입력차원의 데이터를 표현할수 있는, 입력보다 낮은 차원의 데이터를 말하므로 종종 차원 축소에 유용하게 사용되기도 합니다. (코딩은 Latent Variable, feature, Hidden representation으로 불리기도 ..

[Pytorch] 차원에 따른 Tensor

참고 자료[1] Pytorch로 시작하는 딥러닝, 비슈누 수브라마니안 지음, 김태완 옮김Pytorch는 데이터를 추상화 하는 Tensor와 Variable 을 제공. Tensor는 파이썬의 numpy 배열과 유사한 클래스를 의미하며, GPU 에서 향상된 성능을 제공하기 때문에 딥 러닝(Deep learning)에서는 Tensor의 형태로 데이터를 변환하여 사용한다.Tensor의 유형 및 연산1. 스칼라(Scalar) : 0차원 Tensor로, 단순하게 하나의 값만 존재한다. 2. 벡터(Vector) : 1차원 Tensor로, 1차원 배열을 의미한다.3. 행렬(Matrix) : 2차원 Tensor로, 행렬의 의미한다.4. 3차원 Tensor : 이미지와 같은 여러 형렬을 결합한 데이터를 의미한다. 이미지의..

GAN(Generative Adversarial Network)의 이해

참고자료 : [1] 1시간만에 GAN(Generative Adversarial Network) 완전 정복하기 [2] https://towardsdatascience.com/understanding-generative-adversarial-networks-4dafc963f2ef [3] https://dreamgonfly.github.io/2018/03/17/gan-explained.html 1. GAN(Generative Adversarial Network)이란? Generative : "생성적인, 생산하는"이라는 뜻으로 GAN모델 안에서의 의미는 이미지를 생성한다라는 의미입니다. Adversarial : "적대적인" 이르는 뜻으로, 서로 경쟁하면서 무엇인가를 좋게하는 의미입니다. 즉, 이미지를 만들긴 하..

반응형