머신러닝 용어집: 이미지 모델

이 페이지에는 이미지 모델 용어집 용어가 포함되어 있습니다. 모든 용어집을 보려면 여기를 클릭하세요.

A

증강 현실

#image

사용자의 실제 모습을 토대로 컴퓨터 생성 이미지를 겹쳐서 합성 뷰를 제공하는 기술입니다.

B

경계 상자

#image

이미지에서 관심 지역 주변의 직사각형 (x, y) 좌표(예: 아래 이미지의 강아지)

소파에 앉아 있는 강아지의 사진입니다. 왼쪽 상단의 좌표가 (275, 1271)이고 오른쪽 하단 좌표가 (2954, 2761)인 녹색 경계 상자가 반려견의 몸을 우회합니다.

C

컨볼루션

#image

수학에서는 간단히 말해 두 함수가 섞여 있습니다. 머신러닝에서 컨볼루션은 가중치를 학습시키기 위해 컨볼루셔널 필터와 입력 행렬을 혼합합니다.

머신러닝에서 '컨볼루셔널'이라는 용어는 일반적으로 컨볼루셔널 연산이나 컨볼루셔널 레이어를 지칭하는 간단한 방법입니다.

컨볼루션이 없으면 머신러닝 알고리즘은 큰 텐서의 각 셀에 대해 별도의 가중치를 학습해야 합니다. 예를 들어 2K x 2K 이미지를 대상으로 하는 머신러닝 알고리즘 학습은 4백만 개의 개별 가중치를 찾아야 합니다. 컨볼루션이 있기 때문에 머신러닝 알고리즘은 컨볼루셔널 필터에 있는 모든 셀의 가중치만 찾아도 되므로 모델을 학습시키는 데 필요한 메모리가 크게 줄어듭니다. 컨볼루셔널 필터가 적용된 경우 전반적으로 셀 전체에 복제되어 각 필터가 필터를 곱합니다.

컨볼루셔널 필터

#image

컨볼루셔널 작업의 두 행위자 중 하나. 다른 배우는 입력 행렬의 슬라이스입니다. 컨볼루셔널 필터는 입력 행렬과 순위는 동일하지만 형태는 더 작은 행렬입니다. 예를 들어 28x28 입력 행렬에 대해 필터는 28x28보다 작은 2D 행렬일 수 있습니다.

사진 조작에서 컨볼루셔널 필터의 모든 셀은 일반적으로 1과 0으로 구성된 일정한 패턴으로 설정됩니다. 머신러닝에서 컨볼루셔널 필터는 일반적으로 난수로 시드된 다음 네트워크가 이상적인 값을 학습시킵니다.

컨볼루셔널 레이어

#image

컨볼루셔널 필터가 입력 행렬을 따라 전달하는 심층신경망의 레이어입니다. 예를 들어 다음과 같은 3x3 컨볼루셔널 필터를 사용해 보세요.

다음 값을 가진 3x3 행렬: [[0,1,0], [1,0,1], [0,1,0]]

다음 애니메이션은 5x5 입력 행렬과 관련된 9개의 컨볼루셔널 작업으로 구성된 컨볼루셔널 레이어를 보여줍니다. 각 컨볼루셔널 작업은 입력 행렬의 서로 다른 3x3 슬라이스에서 작동합니다. 결과로 나오는 3x3 매트릭스 (오른쪽)는 9개의 컨볼루셔널 연산으로 구성된 결과로 구성됩니다.

두 행렬을 보여주는 애니메이션 첫 번째 행렬은 5x5 행렬입니다. [[128,97,53,201,198], [35,22,25,200,195],
 [37,24,28,197,182], [33,28,92,195,119], 077], 7
          두 번째 행렬은 3x3 행렬입니다.
          [[181,303,618], [115,338,605], [169,351,560]].
          두 번째 행렬은 5x5 행렬의 여러 3x3 하위 집합에 컨볼루셔널 필터[[0, 1, 0], [1, 0, 1], [0, 1, 0]] 를 적용하여 계산됩니다.

컨볼루셔널 신경망

#image

하나 이상의 레이어가 컨볼루셔널 레이어신경망. 일반적인 컨볼루셔널 신경망은 다음 레이어의 조합으로 구성됩니다.

컨볼루셔널 신경망은 영상 인식과 같은 특정 종류의 문제에서 큰 성공을 거두었습니다.

컨볼루셔널 연산

#image

다음 2단계 수학 연산:

  1. 컨볼루셔널 필터와 입력 행렬의 슬라이스의 요소별 곱셈입니다. (입력 행렬의 슬라이스는 컨볼루셔널 필터와 순위 및 크기가 동일함).
  2. 결과 제품 매트릭스의 모든 값의 합계입니다.

예를 들어 다음과 같은 5x5 입력 행렬을 생각해 보세요.

5x5 행렬: [[128,97,53,201,198], [35,22,25,200,195],
          [37,24,28,197,182], [33,28,92,195,179], [31,40

이제 다음과 같은 2x2 컨볼루셔널 필터가 있다고 가정해 보겠습니다.

2x2 행렬: [[1, 0], [0, 1]]

각 컨볼루셔널 작업에는 입력 행렬의 단일 2x2 슬라이스가 포함됩니다. 예를 들어 입력 행렬의 왼쪽 상단에 있는 2x2 슬라이스를 사용한다고 가정해 보겠습니다. 따라서 이 슬라이스의 컨볼루션 작업은 다음과 같습니다.

입력 행렬의 왼쪽 상단 2x2 섹션인 [[128,97], [35,22]] 에 컨볼루셔널 필터 [[1, 0], [0, 1]]을 적용합니다.
          컨볼루셔널 필터는 128과 22는 그대로 유지하지만 97과 35는 0이 됩니다. 결과적으로 컨볼루션 작업의 값은 150 (128+22)입니다.

컨볼루셔널 레이어는 일련의 컨볼루셔널 작업으로 구성되며, 각 컨볼루셔널 입력은 서로 다른 입력 행렬에서 작동합니다.

D

데이터 증강

#image

기존 예시를 변환하여 추가 예시를 만들어 학습 예시의 범위와 개수를 인위적으로 늘립니다. 예를 들어 이미지가 특성 중 하나인데 모델에 유용한 연결을 학습하기에 충분한 이미지 예시가 데이터 세트에 포함되어 있지 않다고 가정합니다. 모델이 충분히 학습할 수 있도록 데이터 세트에 라벨이 지정된 이미지를 충분히 추가하는 것이 가장 좋습니다. 이것이 불가능하다면 데이터 증강을 통해 각 이미지를 회전하고 확대하고 반사하여 원본 사진의 다양한 변형을 생성할 수 있습니다. 그러면 우수한 학습이 가능할 만큼 라벨이 지정된 데이터가 충분히 쌓일 수 있습니다.

깊이 분리형 컨볼루셔널 신경망 (sepCNN)

#image

컨볼루셔널 신경망 아키텍처는 Inception을 기반으로 하지만 Inception 모듈이 깊이 분리 가능한 컨볼루션으로 대체됩니다. Xception이라고도 합니다.

깊이 분리 가능한 컨볼루션 (분리 가능한 컨볼루션이라고도 함)은 표준 3D 컨볼루션을 더 효율적인 두 가지 컨볼루션으로 분해합니다. 첫 번째는 깊이별 컨볼루션으로, 깊이는 1 (n n n x 1)이고, 다음으로 너비가 1인 포인트 컨볼루션 (1)입니다.

자세한 내용은 Xception: Deep Learning with Depthward Separable Convolutions를 참고하세요.

다운샘플링

#image

다음 중 하나를 의미할 수 있는 오버로드된 용어입니다.

  • 모델을 더 효율적으로 학습시키기 위해 특성에서 정보의 양을 줄입니다. 예를 들어 영상 인식 모델을 학습시키기 전에 고해상도 이미지를 저해상도 형식으로 다운샘플링합니다.
  • 과소 표현된 클래스에 대한 모델 학습을 개선하기 위해 과도하게 과대 표현된 클래스 예시의 지나치게 적은 비율에 대한 학습. 예를 들어 클래스 불균형 데이터 세트에서 모델은 주요 클래스에 관해 많은 것을 알아내는 경향이 있으며 다수의 클래스에 대해서는 충분히 학습하지 않는 경향이 있습니다. 다운샘플링은 대부분의 클래스와 소수 클래스에 대한 학습 양의 균형을 맞추는 데 도움이 됩니다.

I

이미지 인식

#image

이미지의 객체, 패턴 또는 개념을 분류하는 프로세스입니다. 영상 인식을 이미지 분류라고도 합니다.

자세한 내용은 ML 연습: 이미지 분류를 참조하세요.

유니온 위의 교차로 (IoU)

#image

두 집합을 합집합으로 나눈 교집합입니다. 머신러닝 이미지 감지 작업에서는 IoU를 사용하여 지면-정답 경계 상자와 관련하여 모델의 예측 경계 상자 정확도를 확인합니다. 이 경우 두 상자의 IoU는 겹치는 영역과 전체 영역 간의 비율이며 값 범위는 0 (예측된 경계 상자와 지상 진실 경계 상자 겹치지 않음)에서 1 (예측된 경계 상자와 지상 진실 경계 상자는 정확하게 동일한 좌표임)입니다.

예를 들어 아래 이미지에서,

  • 예측된 경계 상자 (그림에서 그림이 야간 테이블을 예측하는 위치를 구분하는 좌표)는 보라색 윤곽선으로 표시됩니다.
  • 정답 정보 상자 (그림에서 야간 테이블이 실제로 배치되는 위치를 구분하는 좌표)는 녹색 윤곽선으로 표시됩니다.

반 고흐의 그림은 침실 옆 탁자 둘레에 서로 다른 경계 상자 두 개가 그려진 알레스의 침실입니다. 지상 진실의 경계 상자 (녹색)는 야간 테이블을 완벽히 우회합니다. 예측된 경계 상자 (보라색)는 지상 진실 경계 상자의 오른쪽 아래 50% 오프셋되어 있습니다. 즉, 야간 테이블의 오른쪽 아래 사분면을 둘러싸지만 테이블의 나머지 부분을 놓칩니다.

여기서 예측과 정답의 경계 상자(왼쪽 하단)의 교집합은 1이고 예측과 정답에 대한 경계 상자의 합집합은 7이므로 IoU는 \(\frac{1}{7}\)입니다.

위와 동일한 이미지를 사용하지만 각 경계 상자는 4개의 사분면으로 나뉩니다. 총 7개의 사분면이 있습니다. 지면 진실 경계 상자의 오른쪽 하단 사분면과 예측된 경계 상자의 왼쪽 상단 사분면이 서로 겹칩니다. 이 겹쳐지는 섹션 (녹색으로 강조표시됨)은 교차점을 나타내며 영역이 1입니다. 위와 동일한 이미지를 사용하지만 각 경계 상자는 4개의 사분면으로 나뉩니다. 총 7개의 사분면이 있습니다. 지면 진실 경계 상자의 오른쪽 하단 사분면과 예측된 경계 상자의 왼쪽 상단 사분면이 서로 겹칩니다.
          두 경계 상자로 둘러싸인 전체 내부(녹색으로 강조표시됨)는 합집합을 나타내며 영역이 7입니다.

K

주요 사항

#image

이미지에 있는 특정 지형지물의 좌표입니다. 예를 들어 꽃의 품종을 구분하는 이미지 인식 모델의 경우 키포인트는 각 꽃잎의 중심, 줄기, 지름 등이 될 수 있습니다.

L

landmarks

#image

핵심 사항의 동의어입니다.

M

MNIST

#image

LeCun, Cortes, Burges에서 수집한 60,000개의 이미지가 포함된 공개 도메인 데이터 세트입니다. 각 이미지는 사람이 0~9 사이의 특정 숫자를 수동으로 입력한 방식을 보여줍니다. 각 이미지는 28x28 정수 배열로 저장되며, 각 정수는 0~255 사이의 그레이 스케일 값입니다.

MNIST는 머신러닝의 표준 데이터 세트로, 새로운 머신러닝 접근 방식을 테스트하는 데 자주 사용됩니다. 자세한 내용은 필기 입력 숫자의 MNIST 데이터베이스를 참고하세요.

P

풀링

#image

이전의 컨볼루셔널 레이어로 인해 만들어진 행렬을 더 작은 행렬로 줄입니다. 풀링을 하면 보통 풀링된 영역에서 최댓값이나 평균값을 구하게 됩니다. 예를 들어 다음과 같은 3x3 행렬이 있다고 가정해 보겠습니다.

3x3 행렬 [[5,3,1], [8,2,5], [9,4,3]].

풀링 연산은 컨볼루셔널 작업과 마찬가지로 행렬을 슬라이스로 나눈 다음 스트라이드를 기준으로 컨볼루셔널 작업을 슬라이드합니다. 예를 들어 풀링 연산에서 컨볼루셔널 행렬을 1x1 스트라이드가 있는 2x2 슬라이스로 나눌 수 있습니다. 다음 다이어그램과 같이 4개의 풀링 작업이 실행됩니다. 각 풀링 작업이 해당 슬라이스의 네 값 중 최댓값을 선택한다고 가정해 보겠습니다.

입력 행렬은 3x3이며 값은 [[5,3,1], [8,2,5], [9,4,3]]입니다.
          입력 행렬의 왼쪽 상단 2x2 하위 행렬은 [[5,3], [8,2]]이므로 왼쪽 상단 풀링 연산은 8 (최대 5, 3, 8, 2)의 값을 산출합니다. 입력 행렬의 오른쪽 상단 2x2 하위 행렬은
          [[3,1], [2,5]]이므로 오른쪽 상단 풀링 작업은
          값 5를 얻습니다. 입력 행렬의 왼쪽 아래 2x2 하위 행렬은
          [[8,2], [9,4]]이므로 왼쪽 하단 풀링 작업은
          9 값을 생성합니다.  입력 행렬의 오른쪽 아래 2x2 하위 행렬은
          [[2,5], [4,3]]이므로 오른쪽 하단 풀링 작업은
          5 값을 생성합니다.  요약하면 풀링 작업으로 2x2 행렬 [[8,5], [9,5]]가 생성됩니다.

풀링을 사용하면 입력 행렬에서 변환 불변을 적용할 수 있습니다.

공식적으로 비전 공간 풀링을 공간 풀링이라고 합니다. 시계열 애플리케이션에서는 일반적으로 풀링을 일시적 풀링이라고 합니다. 비공식적으로 풀링을 서브샘플링 또는 다운샘플링이라고 하는 경우가 많습니다.

R

회전 불변

#image

이미지 분류 문제에서는 이미지의 방향이 변경되더라도 이미지를 성공적으로 분류하는 알고리즘 기능이 있습니다. 예를 들어 알고리즘은 테니스 라켓이 위쪽을 향하고 있는지, 옆으로 또는 아래로 향하고 있는지 여부를 식별할 수 있습니다. 회전 불변은 바람직하지 않습니다. 예를 들어 거꾸로 된 9는 9로 분류되지 않아야 합니다.

변환 불변크기 불변도 참조하세요.

S

크기 불변

#image

이미지 분류 문제에서는 이미지 크기가 변경되더라도 이미지를 성공적으로 분류하는 알고리즘 기능이 있습니다. 예를 들어 알고리즘은 2M 픽셀 또는 200K 픽셀을 소비하는지와 관계없이 여전히 고양이를 식별할 수 있습니다. 최고의 이미지 분류 알고리즘도 크기 불변에 대한 실질적인 제한이 있습니다. 예를 들어 알고리즘 (또는 인간)은 20픽셀만 소비하는 고양이 이미지를 정확하게 분류할 가능성이 낮습니다.

변환 불변회전 불변도 참조하세요.

공간 풀링

#image

풀링을 참고하세요.

스트라이드

#image

컨볼루셔널 작업 또는 풀링에서 다음 입력 슬라이스의 각 차원에 있는 델타. 예를 들어 다음 애니메이션은 컨볼루셔널 작업 중 (1,1) 스트라이드를 보여줍니다. 따라서 다음 입력 슬라이스는 이전 입력 슬라이스의 오른쪽에서 한 위치를 시작합니다. 작업이 오른쪽 가장자리에 도달하면 다음 슬라이스가 왼쪽 끝까지 진행되지만 한 위치 아래로 이동합니다.

입력 5x5 매트릭스 및 3x3 컨볼루셔널 필터 스트라이드가 (1,1)이므로 컨볼루셔널 필터가 9번 적용됩니다. 첫 번째 컨볼루셔널 슬라이스는 입력 행렬의 왼쪽 상단 3x3 하위 행렬을 평가합니다. 두 번째 슬라이스는 상단 중간 3x3 하위 매트릭스를 평가합니다. 세 번째 컨볼루셔널 슬라이스는 오른쪽 상단 3x3 하위 매트릭스를 평가합니다.  네 번째 슬라이스는 왼쪽 중간 3x3 하위 매트릭스를 평가합니다.
     다섯 번째 슬라이스는 중간 3x3 하위 행렬을 평가합니다. 여섯 번째 슬라이스는 오른쪽 중간 3x3 하위 매트릭스를 평가합니다. 7번째 슬라이스는 왼쪽 하단 3x3 하위 행렬을 평가합니다.  여덟 번째 슬라이스는 하단 중간 3x3 하위 행렬을 평가합니다. 아홉 번째 슬라이스는 오른쪽 하단 3x3 하위 행렬을
     평가합니다.

앞의 예는 2차원 스트라이드를 보여줍니다. 입력 행렬이 3차원이라면 스트라이드도 3차원이 될 것입니다.

서브샘플링

#image

풀링을 참고하세요.

T

번역 불변

#image

이미지 분류 문제에서는 알고리즘 내에서 이미지 내 객체의 위치가 변경되더라도 이미지를 성공적으로 분류할 수 있습니다. 예를 들어 알고리즘은 강아지가 프레임의 중앙에 있는지 아니면 프레임의 왼쪽 끝에 있는지 여전히 식별할 수 있습니다.

크기 불변회전 불변도 참고하세요.