빅데이터 분석

딥러닝_CNN

asu2880 2022. 9. 24. 10:22

MLP 이미지 분석

- MLP은 층이 깊어지고 뉴런의 수가 많아지면 가중치 수가 급격히 늘어난다

- MLP 신경망을 이미지 처리에 사용한다면 이미지의 어떤 특성 패턴이 존재하는 위치에 민감하게 동작하며 패턴의 위치에 종속적인 결과를 얻는다

- MLP는 아래 세 개의 5는 패턴이 다르다고 판단한다

- MLP로 이러한 숫자 인식을 하려면 숫자의 크기를 비슷하게 맞추어야 한다.

 

CNN(Convolution Neural Network)

- 1998년 Yann Lecun 교수에 의해 19950년대 수행했던 고양이의 뇌파 실험에 영감을 얻어 이미지 인식을 획기적으로 개선할 수 있는 CNN 제안

 

- 고양이의 눈으로 보는 사물의 형태에 따라 뇌의 특정영역(뉴런)만 활성화 된다는 결과를 기반으로 제안

 

CNN 구조

- Conv Layer : 사물의 특징을 찾는다

- Polling Layer : Conv Layer에서 찾은 특징 중에서 불필요한 부분을 제거한다

 

특징을 찾아서 학습시키기

 

CNN 기본 구조

 

CNN

- CNN은 입력된 이미지에서 특징을 추출하기 위해 마스크(필터)를 도입하는 방법

- 이미지 전체 영역에 대해 서로 동일한 연관성(중요도)로 처리하는 대신 특정 범위에 한정해 처리한다면 훨씬 효과적일 것이라는 아이디어 제시

 

CNN

- 합성곱 계층의 입출력 데이터를 특성맵이라고 한다

- 특성맵은 평면을 구성하는 2차원으로 구성된다(채널이라고도 부른다)

- 흑백으로 코딩된 경우(MNIST처럼) 흑백의 그레이 스케일만 나타내면 되므로 깊이는 1이 된다

- 입력신호가 RGB 신호로 코딩된 경우, 깊이 축의 차원은 세가지 색을 각각 나타내는 3이 된다(데이터의 형상 정보를 유지 할 수 있다)

 

필터 사용하기

 

풀링(Pooling)

- 풀링이란 CNN에서 합성곱 수행 결과를 다음 계층으로 모두 넘기지않고, 일정 범위내에서(예를 들면 2*2 픽셀 범위) 가장 큰 값을 하나만 선택하여 넘기는 방법을 사용한다

- 이렇게 지역내 최대 값만 선택하는 풀링을 최대풀링이라고 한다 => 최대 풀링을 하면 작은 지역 공간의 대표 정보만 남기고 나머지 신호들을 제거하는 효과를 얻는다

 

패딩(Padding)

- 필터의 크기는 5*5나 7*7 등 임의의 크기로 정할 수 있다

- 필터의 크기로 인해 가장자리 부분의 데이터가 부족해서 입력과 출력의 크기가 달라지게 되는데

- 이를 보정하기 위해서 입력신호의 가장자기 부분에 0을 미리 채워넣는 것을 패딩이라고 한다

- Conv2D 계층에서는 padding 인자를 사용하여 패딩을 지정할 수 있다. valid로 설정하면 패딩을 사용하지 말라는 뜻이다 => same을 지정하면 출력의 차원이 입력과 같아지도록 적절한 수의 패딩을 자동으로 입력하라는 것이다.

 

스트라이드(Stride)

- 축소 샘플링에는 크게 나누어 스트라이드와 풀링 등 두 가지 기법이 있다

- 스트라이드는 합성곱 필터링을 수행할 때 패치를(예를 들면 3*3 크기) 한 픽셀씩 옆으로 이동하면서 출력을 얻지 않고, 2 픽셀씩 또는 3 픽셀씩 건너 뛰면서 합성곱을 수행하는 방법이다 = > 이를 스트라이드 2 또는 스트라이드 3이라고 하는데, 이렇게 하면 출력 특성맵의 크기를 1/4 또는 1/9로 줄일 수 있다

 

축소샘플링

- 합성곱을 수행한 결과 신호를 다음 계층으로 전달할 때, 모든 정보를 전달하지 않고 일부만 샘플링하여 넘겨주는 작업을 축소 샘플링이라고 한다

- 축소 샘플링을 하는 이유는 좀 더 가치 있는 정보만을 다음 단계로 넘겨주기 위해서이다

- 커널 수를 늘리면 특성맵의 숫자가 점차 커지게 된다. 머신러닝의 최종 목적은 정보를 결국 줄여나가야 하며 따라서 핵심 정보만 다음 계층으로 전달하는 장치가 필요하다

 

신경망 성능 개선

- 과대적합 피하는 방법 : dropout : 드롭아웃은 학습을 하는 동안에만 적용되고 학습이 종료된 후 예측을 하는 단계에서는 모든 유닛을 사용하여 예측한다

 

728x90
반응형