on
[211026] 인공지능 시각 인지/ CNN의 구조와 특징 분석
[211026] 인공지능 시각 인지/ CNN의 구조와 특징 분석
1. 인공신경망- 인간의 신경 구조를 스위치들이 복잡하게 연결된 네트워크로 표현이 가능하다고 제안
각 세포와 신경, 돌기들은 전기신호를 받아 전달, 전파한다. 이 뇌의 구조를 모사한다.
*신호에 가중치를 곱한다는 것: 신호를 수신한다는 뜻이다. (전부 받을 때: 1, 거의 안 받을 때 0에 가깝게 sigmoid 함수를 이용하여 0~ 1사이로 잘 고정 <선형적 구분- feedforward neural network)
*핵의 u: 모으는 역할 즉 합친다. (x1*w1 + x2*w2+ x3*w3+ b)
*특정값인 편향, bias의 역할: 수신된 신호의 세기를 조절하는 역할 (작으면 키워주고 크면 줄여주는 등)
전기신호가 임계치(threshold)인 -55mv가 넘으면 전달이 되고 넘지 못하면 전달되지 않는다.
단순히 강아지 고양이 구분이 아닌 더 복합적인 문제를 해결하고 싶다면? >multi layer perceptron (인풋 아웃풋 사이의 층이 3개 이상일 경우)
2. 위의 MLP는 parameter(w, b) 개수가 많아지며 적절한 weight와 bias를 찾는 것이 굉장히 힘들어졌기에 backpropagation algorithm이 등장했다. (위에서 나왔듯 정방향- feedforward) 연산 이후 예측 값과 정답 값간의 오차인 error를 후방에 다시 보내주는 것을 통한다. 이를 위해서는 미분하여 기울기를 구해야 한다.)
*기울기가 없다= 값이 같다. 오차가 발생할 때만 기울기 역시 발생한다.
단 vanishing gradient problem이 발생하며 한계에 부딪혔다. (0점일 때 100점을 맞고 싶다면 100점만큼을 더 공부해야 한다고 전달해줘야 하는데, 어떤 노드에서는 80점만 더 맞으면 된다고 전달이 되었고 또 그 앞의 노드에서는 50점, ... ... 등)
perceptron의 구조 때문에 gradient가 소실되는 등 잘 전달되지 못했다. (학습이 계속 진행되며 점차 0에 수렴)
결국 SVM과 같은 kernel method의 등장에 인해 MLP는 점차 보이지 못하게 되었다.
3. gradient 소실 문제 해결을 위해 ReLU 등장
소실 없이 값을 온전히 전달 가능하다.
4. batch normalization
*데이터의 묶음: 배치 batch
정규화 시 학습이 더 잘 된다.
5. dropout for sparsity (희소성)
무작위 노드 누락 시 틈이 생겨 희소성을 가지게 되었다.
응용이 쉽게, 배운 내용 말고도 이외의 새 내용을 잘 학습할 수 있게 해준다. (0을 곱해줘 연결선을 끊어준다.)
6. segmentation- 분할, 영역화, 관심있는 구조를 나눈다.
semantic- pixel별 (사진) detection 뿐만 아닌, 그 물체에 대한 분할까지 해주고 있다.
의료계에서 분할을 주사용하는데 구조 파악이 필요하기 때문이다. 입력이 들어오면 그에 해당하는 mask를 만들어준다.
각도별 장기의 이미지. 같은 장기이나 각도별 생김새가 상이하다.
*transformer- 모든 선택지 중 뭐가 중요한지 따져준다. (각 중요도, 연관성을 따져- attention 기반) 언어 영역에서 바탕이 되고 있었는데 비전 분야에 넘어왔다.
이미지 전체를 뜯어보는 것이 아닌 영역을 나눠서 본다.
7. super resolution GAN (초해상도)- 화질 개선을 통한 복원
8. CNN 기본 구조
들어온 이미지에 대해 특징을 뽑은 후 구분하는 네트워크
-주용어
*convolution(합성곱- 곱의 합)
각각 곱하고 그 값들의 총합/ 0.1x10 <연산(곱)이 된 값들은 pixel이 아닌 feature가 된다.
*smoothing spatioal (공간적= 2D 이미지) filters
울퉁불퉁했던 값들이 곱을 통해 평균적인 값을 가지게 되며 완만해진다.
-gaussian smoothing filter- 정규분포를 따른다.
*채널- 데이터가 들어오는 곳. 동일 좌표에서의 선택지
이미지는 각각 R값, g값, b값을 가지고 있다. (나눠서 저장되어 있다)
같은 색상 정보끼리 묶어두었다.
한개의 픽셀에는 r,g,b 3가지 색상 정보값이 들어있다.
대부분 4차원 tensor(데이터)로 설명/ 480, 360, 3= 높이, 폭, 채널(3개의 특징)
(위에서는 저 이미지가 5장이 있다고 가정하여 표현해주었다.)
*필터- 연산을 위한 커널 (필터에 들어가 있는 값들- 가중치, weight)
이미지에 해당하는 가장 최적의 특징값을 찾아내기 위한 공용 parameter.
같은 연산이지만 입력신호가 2차원(왼)인지, 1차원(오)인지의 차이
*2차원 신호: 인접하고 있는 것들에 관한 상관관계가 중요하다.
*strid- 보폭
*feature map- 이미지를 대변하는 특징을 encoding
*activation map
*padding
*pooling- 뽑기. 출력 데이터를 입력으로 받아 출력 데이터 (activation map)의 특정 크기를 조절해준다.
max pooling- 뚜렷한 특징만 선별하기 위해
average pooling- 전반적인 특징을 뽑기 위해
3채널일 시 연산 과정 여기서 (4, 26, 26, 2)는 2장의 26*26이미지가 4덩이가 있다는 뜻이다. (각 끝이 소실되어 28>26)/ 왜 2장, 2채널인가? 필터를 2개 사용하자고 지정해주었기 때문이다.)
from http://devlvup8253.tistory.com/17 by ccl(A) rewrite - 2021-10-27 02:01:00