데이터의 기본 표현인 행렬과 벡터
by 이상구 with 이재화
[참고] http://matrix.skku.ac.kr/math4ai/part1/
순서쌍, 벡터
데이터는 순서쌍(ordered pair, -tuple)으로 표현할 수 있다. 예를 들어, 어떤 사람의 키, 몸무게, 연령, 성별 등은 그 사람에 관한 데이터가 될 수 있고, 이는 다음과 같이 순서쌍으로 나타낼 수 있다. 여기서 키, 몸무게, 연령, 성별 각각은 데이터를 이루는 성분이다.
사람 |
키(㎝) |
몸무게(㎏) |
연령(세) |
성별(1:남성, 2:여성) |
|
데이터의 표현 |
김×× |
160 |
80 |
19 |
1 |
→ |
(160, 80, 19, 1) |
이×× |
170 |
70 |
27 |
2 |
→ |
(170, 70, 27, 2) |
박×× |
180 |
56 |
30 |
1 |
→ |
(180, 56, 30, 1) |
특히 성분이 2개(3개)로 이루어진 2차원(3차원) 데이터는 좌표평면(좌표공간)상의 한 점을 나타낸다. 마찬가지로 4차원 이상의 데이터는 우리 눈으로 볼 수 있도록 시각화할 수 없지만, 고차원의 공간상에 놓인 점이라고 볼 수 있다. 예를 들어, 아래에서 ,
를 성분으로 하는 데이터
는 좌표평면 상의 한 점
를 나타낸다. 이때 시작점을 원점
, 끝점을
로 하는 화살표로 나타낸 것을 벡터(vector)라 하고
로 표기한다. 그리고 벡터를 이루는 각각의 성분은 하나의 숫자로 이루어져 있는데 이를 스칼라(scalar)라고 한다.
벡터 연산
벡터에는 다음과 같은 연산이 정의된다.
(1) 실수배(scalar multiple) : 실수 와 벡터
에 대하여
,
(2) 덧셈(sum) : 두 벡터 ,
에 대하여
,
*벡터의 연산법칙
http://matrix.skku.ac.kr/K-MOOC-LA/cla-week-1.html
예제 1. 두 벡터 ,
와 스칼라
에 대하여
와
를 계산하여라.
예제 2. 벡터와 스칼라를 임의로 생성하여 벡터의 덧셈과 실수배를 확인하여라.
행렬, 텐서
앞서 언급한 사람에 대한 데이터를 하나로 모아 다음과 같이 직사각형 모양으로 배열할 수 있다. 이를 행렬(matrix)이라 한다. 즉 행렬은 벡터를 여러 개 쌓아서 만든 것으로 이해해도 된다. 이때 가로를 행(row), 세로를 열(column)이라고 하고, 행의 개수가 , 열의 개수가
인 행렬을 크기가
인 행렬이라고 한다. 따라서 벡터는
행렬(행벡터) 또는
행렬(열벡터)로 이해할 수 있다.
또한 행렬은 디지털 이미지를 유용하게 나타낼 수 있다. 예를 들어, 디지털 이미지를 확대할 때 나타나는 작은 격자를 픽셀(pixel, 화소)이라 하는데, 각 픽셀에는 이미지의 밝은 정도를 나타내는 숫자가 들어 있다고 볼 수 있다. 흑백 이미지는 하나의 행렬로 나타낼 수 있고, 컬러 이미지는 빨강(Red), 녹색(Green), 파랑(Blue), 3개의 채널(channel)로 표현되어 세 개의 행렬이 3차원으로 겹쳐진 모양을 갖는다. 이를 텐서(tensor)라 한다.
[흑백이미지] https://nrsyed.com/2018/02/17/kernels-in-image-processing/
[컬러이미지] https://lisaong.github.io/mldds-courseware/01_GettingStarted/numpy-tensor-slicing.slides.html
행렬 연산
행렬에는 다음과 같은 연산이 정의된다.
(1) 실수배(scalar multiple)
,
(2) 덧셈(sum): 두 행렬의 크기가 같아야 한다.
,
(3) 곱셈(product): 앞의 행렬의 열의 개수와 뒤의 행렬의 행의 개수가 같아야 한다.
*행렬의 연산법칙
http://matrix.skku.ac.kr/K-MOOC-LA/cla-week-3.html
예제 3. 다음 행렬에 대하여 ,
,
를 계산하여라.
,
,
예제 4. 행렬과 스칼라를 임의로 생성하여 행렬의 덧셈과 실수배, 곱셈을 확인하여라.
Copyright @ 2020 SKKU Matrix Lab. All rights reserved.
Made by Manager: Prof. Sang-Gu Lee and Dr. Jae Hwa Lee