CNN(시각 지능 딥러닝) -(3)

Gyeunggeun Lee·2023년 3월 28일
0

CNN

목록 보기
3/3

📰 Non-Maximum Suppression (NMS)

개요
Non-Maximum Suppression(NMS)은 객체 탐지 알고리즘에서 사용되는 중요한 후처리 기술입니다. 객체 탐지 알고리즘이 이미지 내의 객체를 탐지하고자 할 때, 종종 동일한 객체에 대해 다중 경계 상자(Bounding Box)를 예측하는 경우가 발생합니다. NMS는 이러한 다중 경계 상자를 처리하고, 중복되는 경계 상자를 제거하여 최종적으로 가장 확실한 경계 상자만을 남기는 역할을 합니다.

작동 원리
NMS는 다음과 같은 단계로 수행됩니다.

객체 탐지 알고리즘이 이미지에서 객체와 해당 객체에 대한 경계 상자를 예측합니다.
각 경계 상자에 대해 예측된 객체의 신뢰도(Confidence Score)를 얻습니다. 신뢰도는 해당 경계 상자가 실제 객체를 포함할 확률을 나타냅니다.
설정된 신뢰도 임계값을 기준으로, 신뢰도가 낮은 경계 상자를 제거합니다.
남은 경계 상자 중에서 가장 높은 신뢰도를 가진 경계 상자를 선택하고, 이를 최종 결과로 사용합니다.
선택된 경계 상자와 다른 남은 경계 상자 간의 IoU(Intersection over Union)를 계산합니다. IoU는 두 경계 상자가 얼마나 겹치는지를 나타내는 지표입니다.
IoU 임계값을 기준으로, 선택된 경계 상자와 겹치는 경계 상자를 제거합니다.
남은 경계 상자가 있으면 4번 단계로 돌아가고, 없으면 알고리즘이 종료됩니다.

장점
NMS를 사용하면 객체 탐지 알고리즘이 생성하는 중복되는 경계 상자를 효과적으로 제거할 수 있습니다. 이를 통해 객체 탐지 알고리즘의 정확성과 성능이 향상되며, 객체의 위치를 보다 정확하게 예측할 수 있습니다.

결론
Non-Maximum Suppression(NMS)은 객체 탐지 알고리즘에서 중복되는 경계 상자를 제거하는 데 사용되는 중요한 기술입니다. 이를 통해 알고리즘의 정확성과 성능이 향상되며, 객체의 위치를 보다 정확하게 예측할 수 있습니다. NMS는 이미지 처리 및 컴퓨터 비전 분야에서 객체 탐지와 관련된 다양한 애플리케이션에 활용됩니다. 예를 들어, 자율 주행 자동차, 보안 카메라, 로봇 비전 시스템, 얼굴 인식 등에서 객체 탐지가 중요한 역할을 하며, 이러한 분야에서 NMS는 중복되는 경계 상자를 제거하여 객체 탐지의 정확성을 높이는 데 기여합니다. 따라서 NMS는 객체 탐지 기술이 적용되는 다양한 분야에서 그 중요성을 지속적으로 확인할 수 있는 기술입니다.

ANN(인공신경망) 복습

ANN
인공신경망은 시냅스의 결합으로 네트워크를 형성한 인공뉴런(노드)이 학습을 통해 시냅스의 결합 세기를 변화시켜, 문제 해결 능력을 가지는 모델 전반을 가리킨다.

쉽게 설명하자면,

신경망은 다수의 입력 데이터를 받는 입력층(Input), 데이터의 출력을 담당하는 출력층(Output), 입력층과 출력층 사이에 존재하는 레이어들(은닉층)이 존재합니다. 여기서 히든 레이어들의 갯수와 노드의 개수를 구성하는 것을 모델을 구성한다고 하는데, 이 모델을 잘 구성하여 원하는 Output값을 잘 예측하는 것이 우리가 해야할 일인 것입니다. 은닉층에서는 활성화함수를 사용하여 최적의 Weight와 Bias를 찾아내는 역할을 합니다.

ANN의 문제점

1. 학습과정에서 파라미터의 최적값을 찾기 어렵다.
출력값을 결정하는 활성화함수의 사용은 기울기 값에 의해 weight가 결정되었는데 이런 gradient값이 뒤로 갈수록 점점 작아져 0에 수렴하는 오류를 낳기도 하고 부분적인 에러를 최저 에러로 인식하여 더이상 학습을 하지 않는 경우도 있습니다.

2. Overfitting에 따른 문제

3. 학습시간이 너무 느리다.
은닉층이 많으면 학습하는데에 정확도가 올라가지만 그만큼 연산량이 기하 급수적으로 늘어나게 됩니다.

하지만 이는 점점 해결되고 있습니다. 느린 학습시간은 그래픽카드의 발전으로 많은 연산량도 감당할 수 있을 정도로 하드웨어의 성능이 좋아졌고, 오버피팅문제는 사전훈련을 통해 방지할 수 있게 되었습니다.

ANN의 Layer
인공신경망은 크게 세 가지 계층으로 구성됩니다:

입력층(Input Layer): 입력 데이터를 받아들이는 역할을 합니다. 입력층의 뉴런 개수는 데이터의 특성 개수와 일치해야 합니다.

은닉층(Hidden Layer): 입력층과 출력층 사이에 위치하며, 여러 개의 층으로 구성될 수 있습니다. 은닉층에서는 입력 데이터의 특성을 추출하고 변환하는 역할을 합니다.

출력층(Output Layer): 마지막 은닉층의 결과를 바탕으로 최종적인 예측 결과를 생성합니다. 출력층의 뉴런 개수는 예측하고자 하는 클래스 개수와 일치해야 합니다.

ANN의 학습 과정
인공신경망의 학습 과정은 다음과 같습니다:

순전파(Forward Propagation): 입력 데이터를 입력층에서 받아 은닉층을 거쳐 출력층까지 전파하는 과정입니다. 이 과정에서 각 층의 뉴런에서 가중치와 활성화 함수를 사용해 출력 값을 계산합니다.

손실 함수(Loss Function): 실제 값과 예측 값 사이의 차이를 계산하여 모델의 성능을 평가합니다. 손실 함수를 최소화하는 것이 인공신경망의 학습 목표입니다.

역전파(Back propagation): 손실 함수의 값을 최소화하기 위해 가중치를 업데이트하는 과정입니다. 출력층에서 입력층 방향으로 손실 함수의 기울기를 계산하며, 경사하강법(Gradient Descent)와 같은 최적화 알고리즘을 사용해 가중치를 업데이트합니다.

ANN과 CNN에서 Feature Representation의 차이

ANN의 feature representation:

ANN에서 feature representation은 전체 입력 데이터를 노드에 할당된 가중치와 편향을 사용하여 변환합니다. 이 변환은 각 뉴런이 활성화 함수를 통과한 다음 다음 레이어로 전달됩니다. 그러나 ANN에서는 공간 정보가 고려되지 않기 때문에 이미지와 같은 공간적인 데이터에서는 비효율적일 수 있습니다.

CNN의 feature representation:

CNN에서 feature representation은 합성곱 레이어를 통해 이루어집니다. 합성곱 레이어에서는 입력 데이터에 필터(또는 커널)를 적용하여 공간적인 패턴을 학습합니다. 이 필터를 사용하여 이미지의 특성 맵을 생성하고, 이 특성 맵은 다음 레이어로 전달됩니다. 이 과정은 여러 합성곱 레이어를 거쳐 반복되며, 점점 더 복잡한 특징을 추출할 수 있게 됩니다.

결론적으로, ANN과 CNN의 feature representation 차이점은 다음과 같습니다:

  • ANN은 공간 정보를 고려하지 않고 모든 입력 데이터에 대해 가중치와 편향을 사용하여 변환합니다.
  • CNN은 합성곱 레이어를 사용하여 공간적인 패턴을 학습하고, 입력 데이터의 공간 정보를 보존합니다. 이를 통해 이미지와 같은 공간적인 데이터를 처리하는 데 더 효과적입니다.

    따라서 ANN과 CNN의 feature representation 차이점은 다음과 같습니다:

    ANN은 공간 정보를 고려하지 않고 모든 입력 데이터에 대해 가중치와 편향을 사용하여 변환합니다.

    CNN은 합성곱 레이어를 사용하여 공간적인 패턴을 학습하고, 입력 데이터의 공간 정보를 보존하면서 특징을 추출합니다. 이로 인해 이미지와 같은 공간적인 데이터 처리에 더 효과적입니다.
profile
데이터 분석가, 데이터 사이언티스트 공부중인 이경근입니다

0개의 댓글