바뀜

2,601 바이트 추가됨 ,  2021년 12월 7일 (화) 13:53
잔글
편집 요약 없음
1번째 줄: 1번째 줄:  
== 개요 ==
 
== 개요 ==
 
합성곱 신경망. convolutional neural network.
 
합성곱 신경망. convolutional neural network.
 +
 +
일반적인 MLP는 이미지 처리에서 사용해선 안된다. MLP에서 이미지를 받으면 노드의 수가 어마어마해지고, 1차원 배열을 다루기 때문에 이미지가 조금만 바뀌어도 완전히 달리 반응하게 된다.
    
이미지 인식, 음성인식 등 다양한 곳에서 사용. 특히 이미지 인식 분야에서 강력하게 쓰인다.
 
이미지 인식, 음성인식 등 다양한 곳에서 사용. 특히 이미지 인식 분야에서 강력하게 쓰인다.
9번째 줄: 11번째 줄:     
=== 개념 ===
 
=== 개념 ===
완전계층 연결에서의 문제가 있다. 완전연결을 위해 데이터를 1차원 평면화 해주는데, 이때 데이터의 형상이 무너진다. 각 데이터의 거리, 색 조합 등의 정보가 중요할 수도 있는데, 완전연결에선 이를 그냥 한 줄로 세워버리기 때문이다.
+
완전계층 연결에서의 문제가 있다. 완전연결을 위해 데이터를 1차원 평면화 해주는데, 이때 데이터의 형상이 무너진다. 각 데이터의 거리, 색 조합 등의 정보가 중요할 수도 있는데, 완전연결에선 이를 그냥 한 줄로 세워버리기 때문이다. 반면 CNN은 3차원 형상 자체를 다룬다.
    
때문에 이미지를 그대로 기입할 방법이 필요하게 되었고, 특징 맵이라는 개념으로 입력과 출력을 처리한다.
 
때문에 이미지를 그대로 기입할 방법이 필요하게 되었고, 특징 맵이라는 개념으로 입력과 출력을 처리한다.
    
기본적으로 입력데이터에 필터를 씌워 연산하여 대략적인 형태정보를 뽑아낸다. 이 필터가 매개변수(가중치)에 해당하게 된다. 필터를 여러개 사용하여 다음 층으로 넘기는 것이 일반적이다.
 
기본적으로 입력데이터에 필터를 씌워 연산하여 대략적인 형태정보를 뽑아낸다. 이 필터가 매개변수(가중치)에 해당하게 된다. 필터를 여러개 사용하여 다음 층으로 넘기는 것이 일반적이다.
 +
 +
다음의 두 층으로 이루어져 있다.
 
{| class="wikitable"
 
{| class="wikitable"
 
!용어
 
!용어
20번째 줄: 24번째 줄:  
|합성곱 계층
 
|합성곱 계층
 
|특징을 추출하기 위한 계층. 특징 맵을 뽑아낸다.
 
|특징을 추출하기 위한 계층. 특징 맵을 뽑아낸다.
 +
패딩을 사용하는데, 여기에서 사용하는 필터가 가중치가 된다.
 
|-
 
|-
 
|풀링 계층
 
|풀링 계층
|세로, 가로 방향의 공간을 줄이는 연산.
+
|이미지는 서로 접한 픽셀이 비슷하다는 특징이 있다. 때문에 픽셀수준이 아니라 영역 수준에서 표현하는 것이 맞다.
 +
세로, 가로 방향의 공간을 줄이는 연산.
 
해당 공간에서 가장 큰 데이터만 남기는 최대풀링과
 
해당 공간에서 가장 큰 데이터만 남기는 최대풀링과
   36번째 줄: 42번째 줄:     
연구에 따르면 층이 깊어질수록 저수준 시각정보 > 추상적 특성을 추출하게 된다. 점차 사물의 의미를 이해해가는 듯한 것처럼 보인다.
 
연구에 따르면 층이 깊어질수록 저수준 시각정보 > 추상적 특성을 추출하게 된다. 점차 사물의 의미를 이해해가는 듯한 것처럼 보인다.
 +
 +
3차원 연산에 대해서도 필터를 적용해 1차원으로 줄일 수도 있다.
 +
 +
==== 기원. 사람의 눈 ====
 +
1950년대 데이비드 허블과 토르스텐 비셀이 고양이실험을 통해 일정량의 신경세포가 영역 단위로 활성화하는 방식으로 이미지의 외각선 특징을 인식하고 이들이 모여 전체 시야를 형성한다는 것을 밝혔다. 일차 시각피질 시신경에 전극을 꽂아 어떤 자극이 시신경을 활성화하는지 실험. => 고양이의 시신경은 edge에 대해 반응하고 정보가 취합되어 더 복잡한 시각을 인식한다는 것을 알게 되었다. CNN은 합성곱 연산을 통해 사람의 눈을 훌륭하게 모방해내었다.
 +
 +
이후 Yann LeCun 등이 처음으로 CNN이라고 언급하고 난 후 빠르게 발전함.
    
=== 용어 ===
 
=== 용어 ===
67번째 줄: 80번째 줄:  
</syntaxhighlight>
 
</syntaxhighlight>
   −
= CNN 예시 =
+
= CNN 기법을 사용한 사례들 =
    
== LeNet ==
 
== LeNet ==
81번째 줄: 94번째 줄:     
활성화함수로 ReLU 사용, LRN(Local Response Nomalization)으로 국소정규화, 드롭아웃을 사용하여 모델을 개선시켰다.
 
활성화함수로 ReLU 사용, LRN(Local Response Nomalization)으로 국소정규화, 드롭아웃을 사용하여 모델을 개선시켰다.
 +
 +
== VGG ==
 +
합성곱 계층과 완전연결 계층을 섞어 16층이나 19층으로 심화했다. 작은 필터를 사용한 합성곱 계층을 연속으로 거치는 것과 풀링계층으로 점차 크기를 줄여나가는 것이 특징이다.
 +
 +
2014년 ILSVRC 대회에서 2등을 차지했으나, 구성이 간단하여 자주 사용되는 기법이다.
 +
 +
== GoogLeNet ==
 +
2014년 ILSVRC 대회에서 1등. 계층이 한 방향으로만 깊은 것이 아니라 '폭'이 있다. 이를 인셉션 구조라 하는데, 이는 앞 계층의 데이터를 서로 크기가 다른 필터, 풀링을 여러개 적용하여 그 결과를 결합하는 방식이다.
 +
 +
== ResNet ==
 +
마이크로소프트의 팀에서 개발한 네트워크. 층이 너무 깊어지면 학습이 잘 되지 않는 단점이 있는데, 이 문제를 해결하기 위해 스킵연결을 도입.
 +
 +
입력값을 다음 층으로 넘기기도 하지만, 몇 층을 스킵하여 다시 넘긴다. 즉, 해당 층에선 앞 층에서 온 신호와 스킵층에서 온 신호를 동시에 받는 것. 상류의 기울기를 그대로 흘려보내 기울기 소실 문제를 어느 정도 해소한다.
 
[[분류:딥러닝 기법]]
 
[[분류:딥러닝 기법]]