머신러닝을 위한 행렬 연산에 대한 짧은 소개

행렬 연산은 많은 머신러닝 알고리즘에 대한 설명에 사용됩니다.

일부 연산은 주요 방정식을 푸는 데 직접 사용할 수 있는 반면, 다른 연산은 설명 및 더 복잡한 행렬 연산 사용에 유용한 팁 또는 기초를 제공합니다.

이 자습서에서는 머신러닝 방법 설명에 사용되는 중요한 선형 대수 행렬 연산을 알아봅니다.

이 자습서를 완료하면 다음을 알 수 있습니다.

  • 행렬의 차원을 대칭 이동하기 위한 행렬전환(Transpose) 작업입니다.
  • 선형 방정식 시스템을 푸는 데 사용되는 역연산(Inversion)입니다.
  • Trace 및 결정자 연산은 다른 행렬 연산에서 약식 표기법으로 사용됩니다.

튜토리얼 개요

이 튜토리얼은 다음과 같이 다섯 부분으로 나뉩니다.

  1. 행렬 전환(Transpose)
  2. 반전(Inversion)
  3. 추적(Trace)
  4. 행렬식(Determinant)
  5. 순위(Rank)

행렬 전환(Transpose)

정의된 행렬을 전치하여 열과 행의 개수가 대칭 이동된 새 행렬을 만들 수 있습니다.

이것은 행렬 옆에있는 위 첨자 “T”로 표시됩니다.

보이지 않는 대각선은 매트릭스를 통해 왼쪽 상단에서 오른쪽 하단으로 그릴 수 있으며 매트릭스를 뒤집어 전치를 제공 할 수 있습니다.

행렬이 대칭 인 경우, 예를 들어 보이지 않는 대각선의 양쪽에서 동일한 위치에 동일한 수의 열과 행과 동일한 값을 갖는 경우 연산은 효과가 없습니다.

A^T의 열은 A의 행입니다.

— 109페이지, 선형 대수학 입문, 제5판, 2016.

T 속성을 호출하여 NumPy에서 행렬을 전치 할 수 있습니다.

예제를 실행하면 먼저 정의된 대로 행렬이 인쇄된 다음 전치된 버전이 인쇄됩니다.

전치 연산은 많은 행렬 연산에서 요소로 사용되는 짧은 표기법을 제공합니다.


반전(Inversion)

행렬 반전은 행렬을 곱하면 항등 행렬이 되는 다른 행렬을 찾는 프로세스입니다.

행렬 A가 주어지면 AB 또는 BA = In이 되도록 행렬 B를 찾습니다.

행렬을 반전시키는 작업은 행렬 옆에 -1 위 첨자로 표시됩니다. 예를 들어 A^-1입니다. 연산의 결과를 원래 행렬의 역행렬이라고 합니다. 예를 들어, B는 A의 역수입니다.

항등 행렬을 생성하는 다른 행렬이 있는 경우 행렬은 반전할 수 있으며, 여기서 모든 행렬이 반전될 수 있는 것은 아닙니다. 반전할 수 없는 정사각 행렬을 단수라고 합니다.

A가 무엇을 하든 A^-1은 실행 취소됩니다.

— 83페이지, 선형 대수학 입문, 제5판, 2016.

행렬 반전 연산은 직접 계산되지 않지만 오히려 반전 행렬은 수치 연산을 통해 발견되며, 여기서 종종 행렬 분해 형태를 포함하는 효율적인 방법 모음을 사용할 수 있습니다.

그러나 A^−1은 주로 이론적 도구로 유용하며 대부분의 소프트웨어 응용 프로그램에서 실제로 사용해서는 안 됩니다.

— 37페이지, 딥러닝, 2016.

행렬은 inv() 함수를 사용하여 NumPy에서 반전될 수 있습니다.

먼저 작은 2×2 행렬을 정의한 다음 행렬의 역행렬을 계산한 다음 원래 행렬을 곱하여 역행렬을 확인하여 항등 행렬을 제공합니다.

예제를 실행하면 원본, 역행렬 및 항등 행렬이 인쇄됩니다.

행렬 반전은 미지의 벡터를 찾는 데 관심이있는 행렬 방정식으로 구성된 방정식 시스템을 푸는 작업으로 사용됩니다. 좋은 예는 선형 회귀에서 계수 값의 벡터를 찾는 것입니다.


추적(Trace)

정사각형 행렬의 trace은 행렬의 주 대각선에 있는 값의 합입니다(왼쪽 위에서 오른쪽 아래로).

trace 연산자는 행렬의 모든 대각선 항목의 합계를 제공합니다.

— 46페이지, 딥러닝, 2016.

정사각 행렬에서 trace을 계산하는 연산은 “tr(A)” 표기법을 사용하여 설명되며, 여기서 A는 연산이 수행되는 정사각 행렬입니다.

trace은 대각선 값의 합으로 계산됩니다. 예를 들어, 3×3 행렬의 경우 :

또는 배열 표기법을 사용합니다.

trace()함수를 사용하여 NumPy에서 행렬의 trace을 계산할 수 있습니다.

먼저 3×3 행렬이 만들어진 다음 trace이 계산됩니다.

예제를 실행하면 먼저 배열이 인쇄 된 다음 trace이 인쇄됩니다.

trace 작업은 흥미롭지 않지만 더 간단한 표기법을 제공하며 다른 키 행렬 작업의 요소로 사용됩니다.

행렬식(Determinant)

정사각 행렬의 행렬식은 행렬 부피의 스칼라 표현입니다.

행렬식은 행렬의 행을 구성하는 벡터의 상대적 기하 도형을 설명합니다. 보다 구체적으로, 행렬 A의 행렬식은 A의 행으로 주어진 변을 가진 상자의 부피를 알려줍니다.

— 페이지 119, 선형 대수학에 대한 좋은 가이드, 2017

“det(A)” 표기법 또는 | A|, 여기서 A는 행렬식을 계산하는 행렬입니다.

정사각 행렬의 행렬식은 행렬의 요소에서 계산됩니다. 보다 기술적으로 행렬식은 행렬의 모든 고유값의 곱입니다.

행렬식에 대한 직관은 행렬이 함께 곱해질 때 다른 행렬을 스케일링하는 방식을 설명한다는 것입니다. 예를 들어, 행렬식 1은 다른 행렬의 공간을 유지합니다. 행렬식 0은 행렬을 반전시킬 수 없음을 나타냅니다.

정사각 행렬의 행렬식은 단일 숫자입니다. […] 행렬이 반전 가능한지 여부를 즉시 알려줍니다. 행렬식은 행렬에 역행렬이 없을 때 0입니다.

— 247페이지, 선형 대수학 입문, 제5판, 2016.

NumPy에서 행렬식은 det() 함수를 사용하여 계산할 수 있습니다.

먼저 3×3 행렬이 정의 된 다음 행렬의 행렬식이 계산됩니다.

예제를 실행하면 먼저 정의된 행렬이 인쇄된 다음 행렬의 결정자가 인쇄됩니다.

trace 연산과 마찬가지로 결정자 연산만으로는 흥미롭지 않지만 더 간단한 표기법을 제공하며 다른 키 행렬 연산의 요소로 사용됩니다.


매트릭스 순위(Rank)

행렬의 순위는 행렬에서 선형적으로 독립적인 행 또는 열의 개수를 추정한 것입니다.

행렬 M의 랭크는 종종 함수 rank()로 표시됩니다.

순위에 대한 직관은 행렬 내의 모든 벡터에 걸쳐 있는 차원의 수로 간주하는 것입니다. 예를 들어, 순위 0은 모든 벡터가 한 점에 걸쳐 있음을 나타내고, 순위 1은 모든 벡터가 한 선에 걸쳐 있음을 나타내고, 순위 2는 모든 벡터가 2차원 평면에 걸쳐 있음을 나타냅니다.

순위는 종종 행렬 분해 방법을 사용하여 수치로 추정됩니다. 일반적인 접근 방식은 특이값 분해 또는 SVD를 줄여서 사용하는 것입니다.

NumPy는 배열의 순위를 계산하기 위한 matrix_rank() 함수를 제공합니다. SVD 방법을 사용하여 순위를 추정합니다.

아래 예제에서는 스칼라 값이 있는 행렬과 모두 0 값이 있는 다른 벡터의 순위를 계산하는 방법을 보여 줍니다.

예제를 실행하면 첫 번째 벡터와 차수 1, 두 번째 0 벡터와 차수 0이 차례로 인쇄됩니다.

다음 예제에서는 순위가 행렬의 차원 수가 아니라 선형적으로 독립적 인 방향의 수임을 분명히합니다.

2×2 행렬의 세 가지 예가 랭크 0, 1 및 2인 행렬을 보여 줍니다.

예제를 실행하면 먼저 0 2×2 행렬과 순위가 차례로 인쇄되고 랭크가 1인 2×2 행렬이 인쇄되고 마지막으로 랭크가 2인 2×2 행렬이 인쇄됩니다.


확장

이 섹션에는 탐색할 수 있는 자습서를 확장하기 위한 몇 가지 아이디어가 나열되어 있습니다.

  • 사용자 고유의 데이터로 각 작업을 사용하여 5개의 예제를 만듭니다.
  • 목록 목록으로 정의된 행렬에 대해 각 행렬 연산을 수동으로 구현합니다.
  • 머신러닝 문서를 검색하고 사용 중인 각 작업의 예제 1개를 찾습니다.


추가 정보

이 섹션에서는 더 자세히 알아보려는 경우 주제에 대한 더 많은 리소스를 제공합니다.


API


기사


요약

이 자습서에서는 머신러닝 방법의 설명에 사용되는 중요한 선형 대수 행렬 연산을 발견했습니다.

특히 다음 내용을 배웠습니다.

  • 행렬의 차원을 대칭 이동하기 위한 Transpose 작업입니다.
  • 선형 방정식 시스템을 푸는 데 사용되는 역연산입니다.
  • trace 및 결정자 연산은 다른 행렬 연산에서 약식 표기법으로 사용됩니다.

네피리티
No Comments

Sorry, the comment form is closed at this time.