컴퓨터 비전에 대한 기계 학습

완료됨

필터를 사용하여 이미지에 효과를 적용하는 기능은 이미지 편집 소프트웨어를 사용하여 작업하는 것과 같이 이미지 처리 작업에 유용합니다. 하지만 컴퓨터 비전의 목표는 이미지에서 의미, 또는 적어도 실행 가능한 통찰력을 추출하는 것이기도 하며, 이를 위해서는 대량의 기존 이미지를 기반으로 특징을 인식하도록 학습하는 기계 학습 모델을 만들어야 합니다.

이 단원에서는 여러분이 기계 학습의 기본 원칙에 익숙하고 신경망을 사용한 딥 러닝에 대한 개념적 지식을 갖추고 있다고 가정합니다. 기계 학습을 처음 접하는 경우라면 Microsoft Learn의 기계 학습의 기본 사항 모듈을 먼저 완료하는 것이 좋습니다.

CNN(나선형 신경망)

컴퓨터 비전의 가장 일반적인 기계 학습 모델 아키텍처 중 하나는 딥 러닝 아키텍처의 한 유형인 CNN(나선형 신경망)입니다. CNN은 필터를 사용하여 이미지에서 숫자 특징 맵을 추출한 다음, 특징 값을 딥 러닝 모델에 공급하여 레이블 예측을 생성합니다. 예를 들어 이미지 분류 시나리오에서 레이블은 이미지의 주요 주제 즉, 이 이미지가 무엇인지를 나타냅니다. 예측되는 레이블이 한 이미지에서 과일 유형이 되도록 다양한 과일 종류(예: 사과, 바나나, 오렌지)의 이미지를 사용하여 CNN 모델을 학습할 수 있습니다.

CNN 학습 프로세스 중에 필터 커널은 처음에 임의로 생성된 가중치 값을 사용하여 정의됩니다. 그런 다음, 학습 프로세스가 진행됨에 따라 모델 예측이 알려진 레이블 값에 대해 평가되고 필터 가중치가 조정되어 정확도가 향상됩니다. 결국 학습된 과일 이미지 분류 모델은 다양한 종류의 과일을 식별하는 데 도움이 되는 특징을 가장 잘 추출하는 필터 가중치를 사용합니다.

다음 다이어그램은 이미지 분류 모델의 CNN이 작동하는 방식을 보여줍니다.

나선형 신경망의 다이어그램.

  1. 알려진 레이블(예: 사과 0, 바나나 1, 오렌지 2)이 있는 이미지가 네트워크에 공급되어 모델을 학습합니다.
  2. 네트워크를 통해 공급되는 각 이미지에서 특징을 추출하는 데 하나 이상의 필터 레이어가 사용됩니다. 필터 커널은 임의로 할당된 가중치로 시작하고 특징 맵이라는 숫자 값 배열을 생성합니다.
  3. 특징 맵은 특징 값의 1차원 배열로 평면화됩니다.
  4. 특징 값은 완전히 연결된 신경망에 공급됩니다.
  5. 신경망의 출력 레이어는 softmax 또는 유사한 함수를 사용하여 각 가능한 클래스의 확률 값(예: [0.2, 0.5, 0.3])이 포함된 결과를 생성합니다.

학습 동안 출력 확률은 실제 클래스 레이블과 비교됩니다. 예를 들어 바나나(클래스 1)의 이미지는 [0.0, 1.0, 0.0] 값을 가질 것입니다. 예측 클래스 점수와 실제 클래스의 점수 차이는 모델에서 손실을 계산하는 데 사용되며, 완전히 연결된 신경망의 가중치와 특징 추출 레이어의 필터 커널은 손실을 줄이기 위해 수정됩니다.

학습 프로세스는 최적의 가중치 집합이 학습될 때까지 여러 epoch에 걸쳐 반복됩니다. 그런 다음 가중치를 저장하고 모델을 사용하여 레이블을 알 수 없는 새 이미지의 레이블을 예측할 수 있습니다.

참고 항목

CNN 아키텍처는 일반적으로 특징 맵의 크기를 줄이고 추출된 값을 제한하고 특징 값을 조작할 수 있도록 여러 나선형 필터 레이어와 추가 레이어가 포함되어 있습니다. 이 간소화된 예에서는 필터를 사용하여 이미지에서 숫자 특징을 추출한 다음, 신경망에서 이미지 레이블을 예측하는 데 사용되는 주요 개념에 집중하기 위해 이러한 레이어를 생략했습니다.

변환기 및 다중 모달 모델

CNN은 수년 동안 컴퓨터 비전 솔루션의 핵심이었습니다. 앞서 설명한 대로 CNN은 흔히 이미지 분류 문제를 해결하는 데 사용되지만 더 복잡한 컴퓨터 비전 모델의 기초가 되기도 합니다. 예를 들어 개체 감지 모델은 CNN 특징 추출 레이어를 이미지의 관심 영역 식별과 결합하여 같은 이미지에서 개체에 대한 여러 클래스를 찾습니다.

변환기

수십 년 동안 컴퓨터 비전 발전의 대부분은 CNN 기반 모델을 개선함으로써 추진되었습니다. 하지만 또 다른 AI 분야인 NLP(자연어 처리)에서 변환기라 불리는 또 다른 유형의 신경망 아키텍처는 정교한 언어 모델을 개발할 수 있도록 했습니다. 변환기는 대량의 데이터를 처리하고 개별 단어 또는 구를 나타내는 언어 토큰을 벡터 기반 임베딩 (숫자 값 배열)으로 인코딩하여 작동합니다. 임베딩은 각각 토큰의 어떤 의미 체계 특성을 나타내는 차원들의 집합을 대표하는 것으로 생각할 수 있습니다. 임베딩은 동일한 컨텍스트에서 흔히 사용되는 토큰들이 관련 없는 단어들보다 차원적으로 서로 더 가까워지도록 만들어집니다.

간단한 예로 다음 다이어그램은 3차원 벡터로 인코딩되고 3차원 공간에 그려진 몇 개의 단어를 보여줍니다.

3D 공간의 토큰 벡터 다이어그램.

의미상 유사한 토큰들이 비슷한 위치에 인코딩되어 텍스트 분석, 번역, 언어 생성 및 기타 작업을 위한 정교한 NLP 솔루션을 빌드할 수 있는 의미 체계 언어 모델을 만듭니다.

참고 항목

여기서는 시각화하기 쉬운 3차원만 사용했습니다. 실제로 변환기 네트워크의 인코더는 더 많은 차원의 벡터를 만들어 선형 대수 계산을 기반으로 토큰 간의 복잡한 의미 체계 관계를 정의합니다. 관련된 수학은 변환기 모델의 아키텍처와 마찬가지로 복잡합니다. 여기서의 목표는 인코딩이 엔터티 간의 관계를 캡슐화하는 모델을 만드는 방법에 대한 개념적 이해를 돕는 것입니다.

다중 모달 모델

변환기가 언어 모델을 빌드하는 방법으로 성공하자 AI 연구원들은 동일한 접근 방식이 이미지 데이터에도 효과적일 수 있을지를 고려하게 되었습니다. 그 결과 고정된 레이블이 없는 대량의 캡션 이미지를 사용하여 모델을 학습하는 다중 모달 모델이 개발되었습니다. 이미지 인코더는 픽셀 값을 기반으로 이미지에서 특징을 추출한 다음, 언어 인코더에서 만든 텍스트 인베딩과 결합합니다. 전체 모델은 다음과 같이 자연어 토큰 임베딩과 이미지 특징 간의 관계를 캡슐화합니다.

자연어 벡터와 이미지 기능 간의 관계를 캡슐화하는 다중 모달 모델의 다이어그램.

Microsoft의 Florence 모델이 바로 그러한 모델입니다. 인터넷에서 대량의 캡션 이미지로 학습된 이 모델에는 언어 인코더와 이미지 인코더가 모두 포함되어 있습니다. Florence는 기초 모델의 한 예입니다. 즉, 전문가 작업에서 여러 적응형 모델을 빌드할 수 있도록 미리 학습된 범용 모델입니다. 예를 들어 다음을 수행하는 적응형 모델의 기초 모델로 Florence를 사용할 수 있습니다.

  • 이미지 분류: 이미지가 속한 범주를 식별합니다.
  • 개체 감지: 이미지에서 개별 개체를 찾습니다.
  • 캡션: 이미지에 대한 적절한 설명을 생성합니다.
  • 태그 지정: 이미지에 대한 관련 텍스트 태그 목록을 컴파일합니다.

여러 적응 모델이 빌드된 기본 모델인 Florence 모델의 다이어그램.

Florence와 같은 다중 모달 모델은 전반적으로 컴퓨터 비전과 AI의 최첨단에 있으며 AI가 만드는 솔루션 종류의 발전을 이끌어갈 것으로 예상됩니다.