컴퓨터 비전을 위한 기계 학습

완료됨

필터를 사용하여 이미지에 효과를 적용하는 기능은 이미지 편집 소프트웨어를 사용하여 수행할 수 있는 것과 같은 이미지 처리 작업에 유용합니다. 그러나 컴퓨터 비전의 목표는 종종 이미지에서 의미 또는 적어도 실행 가능한 통찰력을 추출하는 것입니다. 에서는 많은 양의 기존 이미지를 기반으로 기능을 인식하도록 학습된 기계 학습 모델을 생성해야 합니다.

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

나선형 신경망(CNN)

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

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

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

나선형 신경망 다이어그램

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

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

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

메모

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

변환기 및 다중 모달 모델

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

트랜스 포 머

수십 년 동안 컴퓨터 비전의 대부분의 발전은 CNN 기반 모델의 개선에 의해 주도되었습니다. 그러나 또 다른 AI 분야인 NLP(자연어 처리)에서는 변압기 이라는 또 다른 유형의 신경망 아키텍처를 통해 정교한 언어 모델을 개발할 수 있게 되었습니다. 변환기는 대량의 데이터를 처리하고 언어 토큰(개별 단어 또는 구를 나타낸)를 벡터 기반 포함(숫자 값 배열)로 인코딩하여 작동합니다. 임베딩은 각 토큰의 의미적 속성을 나타내는 여러 차원으로 구성된 집합으로 생각할 수 있습니다. 임베딩은 동일한 컨텍스트에서 일반적으로 사용되는 토큰들이 관련 없는 단어들보다 차원적으로 더 가깝도록 생성됩니다.

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

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

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

메모

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

다중 모달 모델

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

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

Microsoft Florence 모델은 이러한 모델일 뿐입니다. 인터넷에서 엄청난 양의 캡션 이미지를 사용하여 학습된 이 시스템에는 언어 인코더와 이미지 인코더가 모두 포함됩니다. 피렌체는 재단 모델의 예입니다. 즉, 전문가 작업을 위해 여러 적응형 모델을 빌드할 수 있는 미리 학습된 일반 모델입니다. 예를 들어 다음을 수행하는 적응형 모델의 기초 모델로 피렌체를 사용할 수 있습니다.

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

피렌체 모델을 기반으로 구축된 여러 적응형 모델이 있는 기본 모델인 다이어그램입니다.

피렌체와 같은 다중 모달 모델은 일반적으로 컴퓨터 비전과 AI의 최첨단에 있으며 AI가 가능하게 하는 솔루션의 발전에 앞장서야 할 것으로 예상됩니다.