본문 바로가기
  • 데이터야 놀자
데이터 분석 환경

CNN 분석에서 합성곱 Concolution 과 Feature Map ?

by 데이터랑 2023. 4. 19.
728x90

최근 무료 온라인 강의를 통해 빅데이터 분석 관련 교육을 듣다 보니

일단 2가지를 테스팅해봐야겠다는 생각이 들었다. 

 

첫 번째는 이미지 분석  CNN모델을 적용해 패턴을 분석해 보는 것

두 번째는 회사 업무에 유용할 것 같은  텍스트 분석 RNN모델을 적용해 보는 것이다.

 

개인적으로는 CNN을 통한 패턴 분석을 테스트해보는 것이 더 필요 한지라

일단 CNN 모델 적용부터 시작해 보려고 한다.

 

CNN(Convolutional Neural Network)은 이미지를 처리하는 딥러닝 모델 중 하나!

 

CNN  (Convolutional Neural Network) 용어 정의

 

  • Convolution(합성곱): 입력 데이터와 필터(커널)를 곱한 후 합산하는 연산으로, 이미지에서 특징을 추출하는 데 사용
  • Feature Map(특징 맵): 합성곱 레이어에서 출력된 결과물로, 입력 이미지에서 추출된 특징

 

  • Stride(스트라이드): 필터(커널)가 이동하는 간격으로 값이 크면 특징 맵이 작아지고, 작으면 특징 맵이 커짐
  • Padding(패딩): 합성곱을 하면 결과(특징맵) 사이즈가 작아지므로 이를 방지하기 위하여 지정한 수만큼 가장자리에 0 값을 가진 행과열을 추가하여, 출력 크기를 조정하거나 경계 특징을 추출하는 데 사용
  • Pooling(풀링): 합성곱 계층의 출력 데이터를 입력으로 받아서 최대 풀링(Max Pooling)이나 평균 풀링(Average Pooning)하여 출력 데이터의 크기를 줄이거나 특정 데이터를 강조하는 용도로 사용
  • Activation Function(활성화 함수): 특징 맵의 비선형성을 증가시키는 함수로, ReLU(Rectified Linear Unit) 등이 사용
  • Fully Connected Layer(완전 연결 레이어): 추출된 특징들을 분류, 검출, 생성 등의 작업을 위해 연결하는 레이어

 

  • Loss Function(손실 함수): 모델의 출력값과 실제값 차이를 계산하는 함수로, 예측 성능을 평가하고 모델 학습에 사용
  • Backpropagation(역전파): 손실 함수를 최소화하는 방향으로 모델의 파라미터를 업데이트하는 알고리즘
  • Epoch(에포크): 전체 데이터셋에 대해 학습을 수행하는 것으로  성능이 향상될 때까지 에포크를 반복

 

 

Convolution(합성곱)으로 Feature Map(피쳐맵) 생성

 

합성곱은 n*m 크기의 행렬을(이미지픽셀로 가정할 수 있음)  w*h 행렬을 가진 필터(=커널)로 처음부터 끝까지 겹치며 훑으면서 크기의 겹쳐지는 부분원소의 값을 곱해서 모두 더하는 것을 의미하고 이과정을 거친 결과값을 Feature Map이라 함.

 

합성곱 과정을 이해하기 쉽게 표현한 이미지가 있어 인용했다. (감사 ^^)

 





 

 

최대 풀링(Max Pooling)이나 평균 풀링(Average Pooning) 적용

 

계산소요시간이나 성능을 고려하여 최대 풀링은 주로 사용되며, 가장 큰 값만을 선택하여 다음 계층으로 전달하는 방식입니다. 이를 통해 이미지나 특징 맵에서 가장 중요한 정보를 추출하고 사이즈를 줄이는 효과 기대

 

Max Pooling
Max Pooling

 

 

 

CNN (Convolutional Neural Network) 처리 구성도

 

CNN (Convolutional Neural Network) 처리 구성도
출처 :https://www.quora.com/What-is-max-pooling-in-convolutional-neural-networks


파이썬에서 직접 CNN을 적용하는 것도 가능하지만 더 쉽게 분석모델을 만들기 위하여 텐서플로우나 Keras를 사용하는 것이 좋다고 하니 다음에는 텐서플로우를 공부해 봐야겠다.  Go.  Go ~~

 

 

 

728x90
728x90

댓글