DNN의 한계점:
-2D 데이터를 1D로 평탄화하여 DNN 적용가능
-위치에 상관없이 동일한 수준의 중요도를 갖음
-용어정리 : DNN=Multi-layer Perceptron = Feedforward NN = Fully Connected Layer(FC):모든노드가 모든 노드에 연결
-전체 글자가 2픽셀만 이동하더라도 새로운 학습 데이터로 처리해야함 (translation invariance 특성이 보장되지 않음)
-글자크기(scale)가 달라지거나, 글자가 회전(rotation)하거나, 글자에 변형(distortion)이 생겨도 좋은 결과를 기대하기 어려움 (scale/rotation/distortion특성이 보장되지 않음)
입력데이터는 1D 데이터. 각각의 특성을 나타내는 값들이 채워져 있음
입력데이터로 영상을 넣고 싶은 경우 연결하기 쉽지 않다! -> MNIST예제 28x28데이터를 784데이터로 평탄화하여 풀이함. 2D영상을 NN레이어에 집어넣을 수 있는 방법을 1D로 평탄화하는 방법이 있었음
DNN모델은 위치에 상관없이 동일한 수준의 중요도를 갖는데 2D 데이터의 경우 위치정보가 중요한 역할을 함.ex) 6!=9
2D데이터를 1D로 평탄화할경우 위치정보가 사라짐
fully conected layer로만 이루어져있는 DNN구조 의 단점 :
-학습시간(training time)이 오래걸린다 : 크기, 회전, 이동등 모든 데이터를 학습해야함. 학습해야하는 데이터가 많아짐
-DNN 모델의 크기 : 입력영상이 커지면 연결짓는 노드의 개수가 기아급수적으로 늘어나 모델이 커짐. 모델이 커지고 Layer이 깊어지면 학습해야하는 파라미터의 수도 많아짐
-변수의 개수(number of parameters)
----> 문제를 어떻게 해결하면 좋을까? 특히 영상, 2D도메인 : 공간상의 위치정보가 중요함.
새로운 CNN방법론 : 최근 딥러닝이라는 기술의 발전에 힘입어 가장 많이 발전한 기술중 하나
CNN을 이용한 영상, 카메라를 이용한 다양한 응용을 다루는 컴퓨터 비전분야가 각광받게되었음
CNN(convolutional Neural Network)
: 합성곱 신경망은 시각적 이미지를 분석(영상, 사진 데이터 혹은 비디오 데이터)하는데 사용되는 깊은 인공신경망(RNN등 인공신경망이 있다-> 사진 ,비디오에 적합하도록 설계된 것은 CNN)의 한 종류
-CNN은 변환 불변성(크기, 회전, 변형 등에 강인하다/ 글씨체가 다른 A를 피쳐로 기술하면 거의 유사하다) 특성에 기초하며, 이미지 및 비디오 인식, 추천 시스템, 이미지 분류, 의료 이미지 분석에 응용됨.
-CNN은 다른 이미지 분류 알고리즘(CNN기반이 아닌 알고리즘들)에 비해 상대적으로 전처리를 거의 사용하지않음 (2D 데이터는 nan값 데이터 등 전처리가 필요하지 않음-> DNN모델보다 CNN모델의 장점에 해당함). 이는 네트워크가 기존 알고리즘에서 수작업으로 제작된 여러 필터 역할을 스스로 학습한다는 것을 의미
Convolution이란 무엇인가? 영상처리 혹은 컴퓨터 비전에서의 컨볼루션이란? 주로 필터영상에 사용된다. convolution은 주로 filter연산에서 사용되며, 영상으로부터 특정 feature를 추출하고 싶을때 사용한다.
convolution을 영상데이터에 적용했을때 어떻게 계산할 수 있을까?
이미지 데이터를 픽셀로 이루어져 있음.
컨볼루션이라고 하는 영상은 원본영상위에다가 커널(필터)라고 불리우는 것들을 스캐닝해서 값을 각각의 영상에 채워넣는 과정을 의미함
convolution Neural Network(CNN)
-convolution +Neual Network
: CNN은 convolution 특성을 살린 신경망 연산을 의미함
convolution layer을 여러개 쌓는다는 의미는 CNN레이러를 2개 이상 반복해서 쌓는 경우를 이야기함= 입력영상뿐아니라 중간 Feature map에도 convolution을 적용하는 것이다
Receptive Field(수용영역)란 무엇인가?
-Receptive field는 출력 레이어의 뉴런 하나에 영향을 미치는 입력 뉴런들의 공간 크기.
-외부 자극이 전체 영향을 끼치는게 아니라 특정 영역에만 영향을 미침.
-영상에서 특정 위치에 있는 픽셀들은 그 주변에 있는 일부 픽셀들과만 correlation 높을 뿐이며, 거리가 멀어질 수록 그 영향은 감소하게됨.
CNN의 장점 :
- conv layer는 형상을 유지한다
-즉, 입/출력 모두 3차원 데이터로 처리하기 때문에 공간적 정보를 유지할 수 있다
:DNN은 2D 영상데이터를 1D로 만들었었다. CNN을 사용할 경우 평탄화하지 않고 그대로 사용할 경우 공간정보를 유지할 수 있다 (6과 9가 헷갈릴 일이 없다)
DNN과 CNN을 비교해보면 실제 필터의 크기가 많이 차이 난다는 것을 알 수 있음
DNN:
3072라는 입력데이터가 있다고 가정해보면 출력이 10개의 Class이므로 최종출력을 10으로 만들어야됨
중간의 w는 3072를 10으로 만드는 가중치 w를 가져야함
CNN:
32x32x3이라고 하는 입력데이터가 있을떄 Receptive field를 커버할 수 있는5x5x3 필터를 내가 임의로 정의한 다음 스캐닝 해서 사용. 즉 한번에 영상 전체를 커버하려는게 아니라 부분부분연산을 통해 판단을 하는 디자인 설계기법.
장점 : 적은수의 가중치, 적은 수의 파라미터/ 컨볼루션뉴럴네트워크의 컨볼루션커널은 실제 사람이 부분의 합으로 판단하는 인간의 브레인을 모사한 방식에 해당함
CNN : Conv+relu+conv+relu+...+FC
<입력영상의 커널 동작>
칼라영상은 3채널 : R,G,B (1채널은 흑백)
32x32 영상 사이즈가 28x28로 줄어들었고 필터가 6개 를 쓰기 떄문에 6개로 바꼈다
activation map=Feature map : 입력영상에 컨볼루션 레이어를 통과시키고 나서의 결과물. 피쳐 맵에 또 컨볼루션레이어를 통과시켰을 때의 결과물
stride는 센터 중심이 움직이는 정도
output size: (N-F)/stride+1
영상사이즈를 유지할 수 있는 방법= padding
zero pad: 0으로 영상을 주변 값을 채움
커널 사이즈 3x3 : 패딩사이즈 1/ 5x5: 2/ 7x7 3 : 사이즈의 패딩구하는 방법은 커널 /2하고 올림
레이어를 설계하는데 필요한 파라미터의 수개산::
'5x5x3의 conv filter이 필요.-> 그만큼의 w필요 +1(bias) ' 가 10개
스트라이드나 패딩이 관장하는 애들은 파라미터가 아님! ->파라미터의 개수는 가중치인 w, bias 뿐
실제로 어떻게 계산을 할 수 있는지-t사이즈가 wxhxd일때 커널(k),패딩(p),스트라이드(s)에 따라 ouput출력이 어떻게 결정지어지는가!
CNN은 해석가능한 네트워크를 설계하기 위해 연구중
pooling layer : 피쳐맵을 리사이징하는 것
1. Max Pooling
• (2x2 filter를 사용하는 경우) 전체 데이터의 75%를 버리고 25%만 선택
• Computational Complexity 감소
• Filter 내에서 가장 큰 값을 선택(Average Pooling은 평균값을 선택./Average Pooling은 Spatial Structure를 보존하되 이미지가 smooth해짐./ Max Pooling은 더 강한 특징만 남기는 방식)
• Depth를 줄이지 않고 Spatially하게만 줄임(Height & Width) (32x32x3->16x16x3)
Q) stride와 pooling 모두 down-sampling인데 어떤 것을 사용해야 하나요?
A) 최근 CNN 아키텍쳐는 stride를 사용하는 편이 많습니다. stride 추천합니다
Fully connected layer
: 모두 다 연결되어있는 NN layer
pooling layer를 통과한게 1x1024 피켜 개수를 가지고 있을떄 1x5가 되어야함
1024를 1x5로 줄이기 위한 w ;1024x5가 FC layer layer에 해당함.
'AI' 카테고리의 다른 글
합성곱신경망 2 이론 (0) | 2022.12.01 |
---|---|
합성곱 신경망 실습 (0) | 2022.11.30 |
[심층신경망2] 이론 (0) | 2022.10.15 |
심층신경망-실습2 (0) | 2022.10.12 |
심층신경망 (실습) (0) | 2022.10.05 |