기능 추출에는 관련된 범주 간의 구분을 캡처할 수 있는 원시 픽셀 값에서 더 높은 수준의 정보를 추출하는 작업이 포함됩니다. 이 기능 추출은 이미지의 클래스가 픽셀에서 추출된 정보와 는 아무 상관이 없는 감독되지 않은 방식으로 수행됩니다. 전통적이고 널리 사용되는 기능 중 일부는 GIST, HOG, SIFT, LBP 등입니다. 피쳐를 추출한 후 분류 모듈은 이미지와 관련 레이블로 학습됩니다. 이 모듈의 몇 가지 예는 SVM, 로지스틱 회귀, 랜덤 포리스트, 의사 결정 트리 등입니다. 코드 생성의 경우 구문 그물 = 알렉스넷을 사용하거나 alexnet 함수를 coder.loadDeepLearningNetwork에 전달하여 네트워크를 로드할 수 있습니다. 예를 들어 net = coder.loadDeepLearningNetwork(`알렉스넷`) Alexnet에는 5개의 컨볼루션 레이어가 있으며 그 다음에는 3개의 완전히 연결된 레이어가 있습니다. Alex는 2012년에 전산 용량이 상당히 제한적이었기 때문에 2GPU에서 교육을 했습니다. 레이어 라이브러리에서 캔버스로 새 완전 연결 레이어를 드래그합니다. 이 예제에서는 OutputSize를 새 데이터의 클래스 수로 편집합니다. 192개의 채널을 입력으로 제공하는 예로 GoogLeNet의 첫 번째 시작 모듈을 살펴보겠습니다.
3X3 커널 크기의 필터는 128개, 5X5 크기의 필터는 32개에 불과합니다. 5X5 필터의 계산 순서는 25X32X192이며, 네트워크의 폭과 5X5 필터의 수가 더 늘어갈 때 네트워크 깊숙이 들어갈 수록 폭발할 수 있습니다. 이를 방지하기 위해 시작 모듈은 1X1 컨볼루션을 사용하여 더 큰 크기의 커널을 적용하여 입력 채널의 치수를 줄인 다음 이러한 컨볼루션에 공급합니다. 따라서 첫 번째 시작 모듈에서 모듈에 대한 입력은 먼저 16개의 필터로 1X1 컨볼루션에 공급된 후 5X5 컨볼루션으로 공급됩니다. 이렇게 하면 계산이 16X192 + 25X32X16으로 줄어듭니다. 이러한 모든 변경 사항을 통해 네트워크의 너비와 깊이가 커질 수 있습니다. 입력 이미지가 256×256이 아닌 경우 네트워크를 학습하는 데 사용하기 전에 256×256으로 변환해야 합니다. 이를 위해 더 작은 치수가 256으로 조정된 다음 결과 이미지가 잘라서 256×256 이미지를 얻습니다.
아래 그림은 예를 보여줍니다. 알렉스 크리셰프스키는 2012년 이미지 분류 작업을 위한 컨볼루션 신경망을 사용하여 Imagenet에 도전하면서 세상을 바꿨습니다. Alexnet은 분류 작업에서 84.6%의 상위 5개 정확도를 달성했으며, 2위를 차지한 팀은 73.8%의 정확도로 기록적인 차이를 보였습니다. 이 전에는 CNN(그리고 그 작업을 하던 사람들)이 컴퓨터 비전 커뮤니티에서 그다지 인기가 없었습니다. 그러나 테이블은 이후에 설정되었습니다. 곧, 컴퓨터 비전 연구원의 대부분은 CNN에서 일하기 시작하고 정확도는 지난 4-5 년 동안 크게 향상되었습니다. 적대적인 예 (종이)는 확실히 많은 연구자들을 놀라게했고 빠르게 관심의 주제가되었습니다. 이제 생성적 적대적 네트워크에 대해 이야기해 보겠습니다. 생성 모델과 차별 모델이라는 두 가지 모델을 생각해 봅시다. 판별 모델은 지정된 이미지가 자연적으로 보이는지(데이터 집합의 이미지) 인위적으로 생성된 것처럼 보이는지 여부를 결정하는 작업을 수행합니다. 생성기의 작업은 판별자가 올바른 출력을 생성하도록 교육을 받을 수 있도록 이미지를 만드는 것입니다.
이것은 제로 섬 또는 미니 맥스 두 플레이어 게임으로 생각할 수 있습니다. 이 논문에서 사용되는 비유는 생성 모델이 “가짜 통화를 생산하고 사용하려는 위조자 팀”과 같으며 차별적 모델은 “위조 통화를 감지하려는 경찰”과 같다는 것입니다. 판자가 생성기에 속지 않으려고 하는 동안 생성기가 판화기를 속이려고 합니다.