(논문)Analysis of Convolutional Neural Network based Image Classification Techniques

2023. 7. 11. 20:39VGG16

♣ Purpose

 - 과일 이미지 분류하기(Kaggle Fruits 360 dataset 사용): 아보카도, 바나나, 체리, 코코넛, 키위, 망고, 오렌지

- 입력 이미지에 필터 또는 특징 검출기를 적용하여 이미지의 가장 중요한 특징을 감지함으로써 과일을 분류함

- 이를 통해 활성화 함수를 사용하여 특징 맵 또는 활성화 맵을 생성함

- 특징 검출기나 필터는 에지, 수직선, 수평선, 구부러짐 등 이미지에 존재하는 다양한 특징을 식별하는 데 도움됨

 

♣ Total process

- Resizing: 100X100 사이즈로 만듦

- Augmentation(증강): resizing 이후 이미지 데이터 증강 기술이 사용되어 훈련 데이터셋을 확장하여 성능을 향상시키고 모델의 일반화 능력을 향상시킴 ※

 

 

- Convolution: 합성곱 연산 예시

위의 연산에는 입력 이미지, 특징 검출기(커널, 3*3) 및 특징 맵이라는 세 가지 주요 요소가 포함됨. 

입력 이미지의 행렬 표현은 원소별로 특징 검출기와 곱해져 특징 맵을 얻음.

또 다른 요소는 스트라이드(stride)로, 입력 이미지 상의 픽셀 이동 수를 나타냄.

합성곱과 함께 활성화 함수도 사용됨. 활성화 함수(여기서는 ReLU)를 통해 신경망은 입력과 출력 사이의 복잡하고 비선형적인 매핑을 학습할 수 있음

 

활성화 함수 ReLu

x가 양수라면 ReLu는 x를 출력하고 그렇지 않으면 0을 출력함

 

 

- Convolution: 합성곱 연산 수행 예시

스트라이드 2로 설정된 3x3 필터와의 합성곱 연산

- Pooling: 레이어들을 결합하여 차원을 줄임. 결과적으로, 학습해야 할 매개변수의 수와 네트워크에서 수행되는 계산 양이 감소함. 합성곱 레이어에 의해 생성된 특징 맵의 한 영역에 포함된 특징들은 풀링 레이어에 의해 요약됨.

 

 

♣ VGG16 

- VGG: Visual Gemoetry Group ※

- 16: 16 layers

 

- 모든 합성곱 레이어에서  3*3 필터 사용

- 스트라이드 1로 3*3 합성곱 레이어에 집중하고 항상 동일한 패딩(padding)과 2개의 필터를 가진 2x2 스트라이드의 맥스풀(maxpool) 레이어를 사용한다는 것

- 디자인 전체를 통해 합성곱과 맥스풀 레이어는 동일한 방식으로 배열됨

- 끝에는 완전히 연결된 두 개의 FC 레이어가 있으며, 그 뒤에 출력을 위해 소프트맥스가 따름

 

 

- Conv2D(Convolution 2D)

https://leeejihyun.tistory.com/37

 

Conv1D, Conv2D, Conv3D 차이

말 그대로다. 1차원 배열 데이터에는 Conv1D를, 2차원 배열 데이터에는 Conv2D를 사용한다. 아직까지 Conv3D를 사용해 본 적은 없지만 마찬가지로 3차원 배열 데이터에 사용한다. 즉, Conv1D, Conv2D, Conv3D

leeejihyun.tistory.com

 

 

 

♣ DensNet

 

DenseNet [26]이란 이름은 DenseNet 설계의 각 레이어가 다른 모든 레이어와 연결되어 있기 때문에 사용됨

L개의 레이어에 대해 L(L+1)/2개의 직접적인 연결이 존재함

모든 이전 레이어의 피처 맵은 각 레이어의 입력으로 사용되며, 그들의 피처 맵은 이후의 레이어의 입력으로 사용됨 DenseNet은 매우 쉽게 모든 레이어를 다른 레이어에 연결함. 이것은 중앙 집중적인 개념이며, 또한 무척 강력함

DenseNet 내에서는 이전 레이어의 피처 맵을 이어붙인 것이 각 레이어의 입력으로 간주됨

 

 

Figure 7에서는 각 레이어가 서로 연결되어 있는 것을 확인할 수 있음

제안된 DenseNet 아키텍처에는 총 121개의 레이어가 있음

 

 

♣ 전체 모델 정리

 

제안된 모델은 이러한 모든 레이어를 사용하여 개발됨. 과일 분류 과제는 다중 클래스 분류이므로, 최종 모델은 과일의 가능한 클래스를 출력할 수 있어야 함. 이를 위해 모델의 최종 출력은 소프트맥스 활성화 함수를 사용하여 확률 리스트로 변환됨. 소프트맥스는 가능한 결과 집합의 확률 분포를 포함하는 벡터를 반환함. 

 

소프트맥스 활성화 함수의 수학적 표현

 

옵티마이저

제안된 모델의 주요 목표는 주어진 데이터셋에서 패턴을 학습하는 것임. 이를 통해 모델은 새로운 이미지를 올바른 클래스로 정확히 분류할 수 있게 됨. 이를 위해서는 분류와 관련된 모델 손실을 최소화해야 함. 이는 옵티마이저를 사용하여 제어됨. 옵티마이저는 가중치와 학습률과 같은 신경망 특성을 변경하여 손실을 최소화하기 위해 사용되는 알고리즘 또는 방법을 의미함. 다양한 종류의 옵티마이저가 있으며, 그 중에는 경사 하강법(Gradient Descent), 모멘텀(Momentum), 아다그라드(Adagrad), RMSProp 등이 있음. 이 논문에서는 Adam 옵티마이저가 사용됨.

 

 

평가지표

훈련된 모델은 정확도(Accuracy), 정밀도(Precision), 재현율(Recall), F1 스코어(F1-Score), 혼동 행렬(Confusion Matrix)과 같은 다양한 지표를 사용하여 평가됨. 분류 작업에서 모델 성능을 평가하는 데 가장 중요한 지표 중 하나는 정확도임. 제안된 모델의 정확한 관측률은 백분율로 표현됨

 

정확도

Accuracy 공식(1)

 

 

Accuracy 공식(2)

-TP: True Positive를 나타내며, 실제 클래스와 예측 클래스가 모두 참인 경우

-TN: True Negative를 나타내며, 모델이 실제 값을 참으로 예측하고 실제 값은 부정적인 경우

-FP: False Positive를 나타내며, 모델이 잘못된 값을 예측하고 실제 값도 부정적인 경우

-FN: False Negative를 나타내며, 모델이 잘못된 값을 예측하고 실제 값은 참인 경우

 

 

 

♣ 결과

 

DenseNet, VGG16, VGG19, InceptionV3에 대한 혼동 행렬( Confusion Matrix)

 

DenseNet의 VGG16보다 성능이 좋음

 

평가지표

 

분류기의 성능은 143개의 아보카도, 166개의 바나나, 164개의 체리, 166개의 코코넛, 156개의 키위, 166개의 망고, 160개의 오렌지로 구성된 1121개의 이미지로 분석됨. 

 

 

 

모든 모델 중에서 DenseNet과 VGG16은 모든 네 가지 지표에서 높은 값을 보여 최적의 성능을 발휘하며, VGG19은 가장 낮은 성능을 보임

 

 

♣ 결론

 

제안된 딥러닝 기반 이미지 분류 시스템은 훈련 정확도와 테스트 정확도 각각 99.25%와 100%를 달성하여, 다른 분류기보다 효과적으로 이미지를 분류하기 위해 DenseNet 기반 모델을 제안함. 제안된 방법론은 산업 및 공장에서 카메라 시스템과 통합하여 획득한 이미지를 기반으로 과일 종류를 감지하는 데 사용될 수 있음. 모델의 성능은 대량의 훈련 및 테스트 이미지를 사용하여 최적화될 수 있음. 그럼에도 불구하고 DenseNet 기반 모델은 산업 및 공장에서 사용될 수 있는 최첨단 성능을 제공함

 

 

 

※ 추가 정보

 

1. Augmentation(증강)

- 훈련 데이터셋을 확장하고 다양성을 증가시키기 위해 사용되는 방법. 이미지 데이터 증강은 주어진 이미지에 다양한 변형을 적용하여 새로운 이미지를 생성하는 과정을 의미함. 이를 통해 모델의 성능과 일반화 능력을 향상시킬 수 있음

- 이미지를 무작위로 회전, 확대 또는 축소시키기, 이미지를 좌우로 반전시키거나 밝기를 조절하는 등의 조작을 할 수 있음

- 이러한 변형을 통해 훈련 데이터셋을 다양하게 만들어 모델이 다양한 조건에서도 잘 작동할 수 있도록 도와줌

 

 

2. VGG16

https://jy-deeplearning.tistory.com/3

 

VGG16

VGG16 Architecture 구성 - 13 Convolution Layers + 3 Fully-connected Layers with ReLu (합성곱과 함께 활성함수 ReLu도 사용) - 3*3 convolution filters - stride: 1&padding:1 - 2*2 max pooling(stride:2) => 위의 표에서는 'M'이 MaxPooling임

jy-deeplearning.tistory.com

 

3. 옵티마이저

https://onevision.tistory.com/entry/Optimizer-%EC%9D%98-%EC%A2%85%EB%A5%98%EC%99%80-%ED%8A%B9%EC%84%B1-Momentum-RMSProp-Adam

 

Optimizer 의 종류와 특성 (Momentum, RMSProp, Adam)

Optimizer Optimizer는 딥러닝에서 Network가 빠르고 정확하게 학습하는 것을 목표로 한다. 주로 Gradient Descent Algorithm을 기반으로한 SGD에서 변형된 여러종류의 Optimizer가 사용되고 있다. 아래는 대표적인

onevision.tistory.com

 

 

'VGG16' 카테고리의 다른 글

(개념)VGG16  (0) 2023.07.11