deep learning
컨볼루션층
기계학습에서 주로 이미지와 같은 그리드 형태의 데이터에 대해 특징을 추출하는 레이어입니다.
주로 컴퓨터 비전과 이미지 처리 관련 작업에 사용되며, 이미지의 공간적인 구조를 인식하는 데 특화되어 있습니다.
컨볼루션층의 특징학습은 그 특징이 뭔진모르지만 어떤 커널로 동작을 한 후에 무언가를 가지고있다(결과값). 그리고 이게 조합이되서 무엇을 판별할때 조합이되어서 사용됨.
왜 컨볼루션층이 좋은가?
특징학습을함,
계산량이 절감됨(차원을 줄여주는 역할을함): 하나의 이미지를 예로 들자면 width*height*3(RGB)*weight*n(width*height)의 계산량을 줄여줌,
어떤 오브젝트가 같은것임에도 불구하고 사이즈나 작아지거나 회전이 되면 인식을 못함 근데 컨볼루션을 돌려보면 다 찾아낼수있는 연산자가 됨.
풀링층
입력 데이터의 지역적인 영역을 대표하는 값을 추출하여 출력 데이터를 생성합니다. 일반적으로 최대 풀링(Max Pooling)과 평균 풀링(Average Pooling)이 가장 많이 사용되는데, 최대 풀링은 해당 영역 내에서 가장 큰 값을 선택하여 대표값으로 사용하고, 평균 풀링은 해당 영역 내의 평균 값을 대표값으로 사용합니다.
풀링층의 장점
첫째, 입력 데이터의 공간적인 차원을 줄이기 때문에 다음 층에서 처리할 파라미터 수를 감소시켜 연산 효율성을 향상시킵니다.
둘째, 작은 변위나 노이즈에 대한 로버스트성(Robustness)을 강화시켜 모델의 일반화 성능을 향상시킵니다.
셋째, 중요한 특성을 강조하는 기능을 가지고 있어, 핵심적인 정보를 보존하고 불필요한 정보를 줄이는 효과를 가집니다.
풀링 연산의 특성
- 공간적인 차원 축소: 풀링 연산은 입력 데이터의 지역적인 영역을 대표하는 값을 추출하여 출력 데이터를 생성합니다. 이를 통해 입력 데이터의 공간적인 차원을 축소할 수 있습니다. 주로 이미지 처리에서 이미지의 크기를 축소하는 용도로 사용됩니다.
- 로버스트성 강화: 풀링 연산은 작은 변위나 노이즈에 대해 로버스트성(Robustness)을 강화시킵니다. 입력 데이터의 작은 변동이나 노이즈에 둔감하게 작동하며, 모델의 일반화 성능을 향상시킵니다.
- 파라미터 수 감소: 풀링 연산을 통해 입력 데이터의 공간적인 차원을 축소하면, 다음 층에서 처리할 파라미터 수를 감소시킬 수 있습니다. 이는 연산 효율성을 향상시켜 모델의 학습 및 예측 속도를 개선할 수 있습니다.
- 중요한 특성 강조: 풀링 연산은 입력 데이터의 지역적인 영역에서 중요한 정보를 강조하는 기능을 가지고 있습니다. 최대 풀링(Max Pooling)의 경우 해당 영역 내에서 가장 큰 값을 선택하여 대표값으로 사용하므로, 중요한 특성이 강조되고 불필요한 정보가 감소합니다.
- 공간적인 불변성: 풀링 연산은 입력 데이터의 지역적인 영역에서 특성을 추출하기 때문에, 입력 데이터의 작은 변환에도 불변성을 가집니다. 이는 객체의 크기, 위치, 회전 등의 변화에 둔감하게 작동하여 모델의 일반화 성능을 향상시킬 수 있습니다.
초창기 CNN 사례로서 LeNet-5
- 컨볼루션과 풀링 레이어의 조합: LeNet-5는 컨볼루션(Convolution) 레이어와 풀링(Pooling) 레이어의 조합으로 구성되어 있습니다. 컨볼루션 레이어는 입력 이미지에서 특성을 추출하고, 풀링 레이어는 공간적인 차원을 축소하여 추출된 특성을 보존하면서 정보를 압축합니다.
Convolutional neural network
CNN은 여러 개의 컨볼루션(Convolution) 레이어와 풀링(Pooling) 레이어로 구성되어 있습니다. 컨볼루션 레이어는 이미지의 지역적 패턴을 추출하는 역할을 수행하며, 풀링 레이어는 추출된 특징 맵의 크기를 줄이는 역할을 합니다. 이러한 컨볼루션과 풀링 과정을 반복하여 이미지의 추상적인 특징을 계층적으로 학습합니다.
히든 레이어 에서 실제 representation들임
질감들이 어느정도 나와있음. 엣지에 대한 정보들이 잘 들어와있음.
정보들이 생생하게 남아있을수있는 이유는 도미넌트에대한것들만 모아놓으니까 잘 나올수있었음.
GoogLeNet의 핵심 아이디어는 Inception 모듈을 통한 다양한 크기의 커널을 동시에 사용하여 효율적으로 다양한 크기와 복잡도의 이미지 패턴을 추출하는 것이었습니다. 이를 통해 네트워크가 높은 성능을 유지하면서도 파라미터 수와 연산량을 최소화할 수 있었습니다.
NIN(Neural Network in Network)은 GoogLeNet 이전에 발표된 딥러닝 모델로, 기존의 컨볼루션 연산을 대체하는 MLPconv(다중 레이어 퍼셉트론 컨볼루션) 층을 도입한 것이 특징입니다. MLPconv는 커널을 옮겨가면서 MLP(Multi-Layer Perceptron)의 전방 계산을 수행하므로, 픽셀 간의 비선형성을 높이고 더 복잡한 특징을 추출할 수 있습니다. 이를 통해 NIN은 기존의 컨볼루션 연산보다 더 깊고 더 효율적인 네트워크 구조를 가지게 되었습니다