픽셀이 실제로 가진 구조
이미지는 일렬로 늘어놓은 벡터가 아냐. 가까운 픽셀끼리는 서로 연관되어 있고, 같은 물체가 화면의 다른 위치에 나타나기도 해. 유용한 특징은 전체에 퍼지기 전에 2-D 격자의 작은 영역에서 먼저 드러나. 이미지를 단순히 평탄화해서 MLP에 넣으면 이런 구조를 모두 잃게 돼. CNN은 이 구조를 직접 활용하려고 만들어졌어.
중요한 속성은 3가지야. 지역성은 특징이 픽셀 주변의 작은 영역에 존재한다는 뜻이고, 평행이동 불변성은 화면 어디에 나타나도 고양이는 여전히 고양이라는 뜻이야. 조합성은 저수준 특징이 중간 수준 특징으로 합쳐지고, 다시 물체를 이루는 성질을 말해.
이미지를 일렬 벡터로 다루는 비용
224×224 RGB 이미지를 MLP에 넣으면 3 * 224 * 224 = 150,528개의 입력 특징이 생겨. 첫 번째 은닉층에는 은닉 유닛 하나마다 대략 그만큼의 매개변수가 필요해. 너비가 256인 첫 번째 층만 해도 매개변수가 38M개야. 작은 CNN보다 많을 뿐 아니라, (입력 픽셀, 은닉 유닛) 쌍마다 고유한 가중치를 학습해야 해. 이렇게 많은 매개변수로 위치 변화를 외우는 일을 3×3 합성곱은 9개의 가중치로 포착해.
앞으로 배울 것
다음 레슨부터는 도구 모음을 차례로 쌓아갈 거야. 먼저 합성곱으로 지역성과 평행이동을 다루고, pooling으로 크기를 줄여. 이어서 고전 CNN의 계보인 AlexNet → VGG → ResNet → ConvNeXt를 살펴본 뒤, Transformer가 비전까지 다루는 ViT로 넘어가. 그다음에는 시퀀스 모델, 어텐션, Transformer 블록을 배워. 핵심 패턴은 하나야. 각 아키텍처는 데이터에 관한 가정을 담고 있으니, 데이터에 맞는 가정을 가진 아키텍처를 골라야 해.