머신러닝을 위한 벡터에 대한 짧은 소개

벡터는 선형 대수학의 기본 요소입니다.

벡터는 머신러닝 분야에서 알고리즘을 훈련할 때 대상 변수(y)와 같은 알고리즘 및 프로세스에 대한 설명에 사용됩니다.

이 튜토리얼에서는 머신러닝을 위한 선형 대수 벡터를 발견합니다.

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

  • 벡터가 무엇이며 NumPy를 사용하여 파이썬에서 벡터를 정의하는 방법.
  • 덧셈, 뺄셈, 곱셈 및 나눗셈과 같은 벡터 산술을 수행하는 방법.
  • 내적 및 스칼라를 사용한 곱셈과 같은 추가 연산을 수행하는 방법.

튜토리얼 개요

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

  1. 벡터란 무엇입니까?
  2. 벡터 정의하기
  3. 벡터 산술
  4. 벡터 도트 곱
  5. 벡터-스칼라 곱셈


벡터란 무엇입니까?

벡터는 스칼라라고 하는 하나 이상의 값으로 구성된 튜플입니다.

벡터는 일반 숫자인 구성 요소로 구성됩니다. 벡터는 숫자 목록으로, 벡터 대수는 목록의 숫자에 대해 수행되는 연산으로 생각할 수 있습니다.

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

벡터는 종종 “v”와 같은 소문자를 사용하여 표현됩니다. 예를 들어:

여기서 v1, v2, v3은 스칼라 값이며 종종 실수 값입니다.

벡터는 수직 표현 또는 열을 사용하여 표시됩니다. 예를 들어:

머신러닝 알고리즘의 학습을 설명할 때 대상 변수를 소문자 “y”가 있는 벡터로 나타내는 것이 일반적입니다.

기하학적 유추를 사용하여 벡터를 도입하는 것이 일반적이며, 여기서 벡터는 n 차원 공간의 점 또는 좌표를 나타내며 n은 2와 같은 차원 수입니다.

벡터는 방향과 크기를 가진 벡터 공간의 원점에서 선으로 생각할 수도 있습니다.

이러한 비유는 출발점으로 좋지만 머신러닝에서 매우 높은 차원의 벡터를 자주 고려하므로 너무 세게 잡아서는 안됩니다. 좌표로서의 벡터는 머신러닝에서 가장 설득력있는 비유라고 생각합니다.

이제 벡터가 무엇인지 알았으므로 Python에서 벡터를 정의하는 방법을 살펴보겠습니다.



벡터 정의하기

파이썬에서 벡터를 NumPy 배열로 나타낼 수 있습니다.

숫자 목록에서 NumPy 배열을 만들 수 있습니다. 예를 들어, 아래에서는 길이가 3이고 정수 값이 1, 2 및 3 인 벡터를 정의합니다.

이 예제에서는 3개의 요소가 있는 벡터를 정의합니다.

예제를 실행하면 정의된 벡터가 인쇄됩니다.


벡터 산술

이 섹션에서는 간단한 벡터-벡터 산술 연산을 보여주며, 여기서 모든 연산은 동일한 길이의 두 벡터 사이에서 요소별로 수행되어 동일한 길이의 새 벡터를 생성합니다.

벡터 추가

길이가 같은 두 벡터를 함께 추가하여 새로운 세 번째 벡터를 만들 수 있습니다.

새 벡터의 길이는 다른 두 벡터와 같습니다. 새 벡터의 각 요소는 동일한 인덱스에서 다른 벡터의 요소를 더한 것으로 계산됩니다. 예를 들어:

또는 다른 방법으로 :

NumPy 배열을 추가하여 파이썬에서 직접 벡터를 추가 할 수 있습니다.

이 예제에서는 각각 세 개의 요소가 있는 두 벡터를 정의한 다음 함께 더합니다.

예제를 실행하면 먼저 두 부모 벡터가 인쇄된 다음 두 벡터가 추가된 새 벡터가 인쇄됩니다.


벡터 빼기

길이가 같은 다른 벡터에서 한 벡터를 빼서 새로운 세 번째 벡터를 만들 수 있습니다.

덧셈과 마찬가지로 새 벡터는 부모 벡터와 길이가 같고 새 벡터의 각 요소는 동일한 인덱스에서 요소를 뺀 값으로 계산됩니다.

또는 다른 방법으로 :

NumPy 배열은 파이썬에서 직접 뺄 수 있습니다.

이 예제에서는 각각 세 개의 요소가 있는 두 개의 벡터를 정의한 다음 두 번째 요소에서 첫 번째 벡터를 뺍니다.

예제를 실행하면 먼저 두 부모 벡터가 인쇄된 다음 첫 번째에서 두 번째를 뺀 새 벡터가 인쇄됩니다.



벡터 곱셈

길이가 같은 두 벡터를 곱할 수 있습니다.

덧셈과 뺄셈과 마찬가지로 이 연산은 요소별로 수행되어 동일한 길이의 새 벡터를 생성합니다.

또는

또는 다른 방법으로 :

이 작업은 NumPy에서 직접 수행 할 수 있습니다.

이 예제에서는 각각 세 개의 요소가 있는 두 벡터를 정의한 다음 벡터를 곱합니다.

예제를 실행하면 먼저 두 개의 부모 벡터가 인쇄된 다음 새 벡터가 인쇄됩니다.



벡터 분할

길이가 같은 두 벡터를 나눌 수 있습니다.

다른 산술 연산과 마찬가지로 이 연산은 요소별로 수행되어 동일한 길이의 새 벡터를 생성합니다.

또는

또는 다른 방법으로 :

이 작업은 NumPy에서 직접 수행 할 수 있습니다.

이 예제에서는 각각 세 개의 요소가 있는 두 개의 벡터를 정의한 다음 첫 번째 벡터를 두 번째 벡터로 나눕니다.

예제를 실행하면 먼저 두 개의 부모 벡터가 인쇄된 다음 벡터 분할 결과가 인쇄됩니다.



벡터 도트 곱

동일한 길이의 두 벡터의 곱한 요소의 합을 계산하여 스칼라를 제공 할 수 있습니다.

이를 내적이라고 하며, 작업을 설명할 때 사용되는 점 연산자 때문에 이름이 지정됩니다.

내적은 벡터 투영, 벡터 분해를 계산하고 직교성을 결정하는 핵심 도구입니다. 내적이라는 이름은 그것을 나타내는 데 사용되는 기호에서 유래했습니다.

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

이 연산은 머신러닝에서 벡터의 가중 합계를 계산하는 데 사용할 수 있습니다.

내적은 다음과 같이 계산됩니다.

또는

NumPy 배열의dot()함수를 사용하여 Python에서 두 벡터 사이의 내적을 계산할 수 있습니다. 파이썬 버전 3.5부터 최신 @ 연산자를 사용하여 계산할 수도 있습니다. 아래 예제에서는 두 가지 방법을 모두 보여 줍니다.

이 예제에서는 각각 세 개의 요소가 있는 두 개의 벡터를 정의한 다음 내적을 계산합니다.

예제를 실행하면 먼저 두 부모 벡터가 인쇄된 다음 스칼라 내적이 인쇄됩니다.


벡터-스칼라 곱셈

벡터에 스칼라를 곱하여 실제로 벡터의 크기를 조정할 수 있습니다.

표기법을 간단하게 유지하기 위해 소문자 “s”를 사용하여 스칼라 값을 나타냅니다.

또는

곱셈은 벡터의 각 요소에 대해 수행되어 동일한 길이의 새 스케일링된 벡터를 생성합니다.

또는 다른 방법으로 :

NumPy 배열을 사용하여 이 작업을 직접 수행 할 수 있습니다.

이 예제에서는 먼저 벡터를 정의하고 스칼라는 벡터에 스칼라를 곱합니다.

예제를 실행하면 먼저 부모 벡터가 인쇄되고 스칼라가 인쇄된 다음 두 벡터를 곱한 결과가 출력됩니다.

유사하게, 벡터-스칼라 덧셈, 뺄셈 및 나눗셈은 동일한 방식으로 수행될 수 있습니다.


확장

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

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


추가 정보

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


API

기사

네피리티
No Comments

Sorry, the comment form is closed at this time.