-
0. 프롤로그(2): 행렬선형대수학 2020. 1. 13. 22:26
이 글에서는 행렬에 관한 기본적인 내용을 정리합니다.
행렬의 개념
행렬(matrix)이란 수, 문자 등을 행(row)과 열(column)로 이루어진 직사각형꼴로 배열한 것으로
- 위와 같이 $m$개의 행과 $n$개의 열로 이루어진 행렬은 '$m \times n$ 행렬'이라 하고,
- $A$의 $i$번째 행, $j$번째 열의 성분은 '$(i, j)-$성분'이라 하고 $a_{ij}$ 또는 $\left( A \right)_{ij}$로 표기하며,
- 행렬 $A$는 그 성분을 써서 $(a_{ij})_{m \times n}$ 또는 $\left(a_{ij}\right)$와 같이 간단히 나타내기도 합니다.
행렬의 기본 연산
크기가 같은 두 행렬 간에는 덧셈(matrix addition)이 정의되는데, 이는 같은 위치에 있는 성분끼리 더하는 것으로
$$\begin{bmatrix}a_{11}&a_{12}\\a_{21}&a_{22} \end{bmatrix} + \begin{bmatrix}b_{11}&b_{12}\\b_{21}&b_{22}\end{bmatrix} = \begin{bmatrix}a_{11}+b_{11}&a_{12}+b_{12}\\a_{21}+b_{21}&a_{22}+b_{22}\end{bmatrix}$$
단순하고 직관적인 정의이기에 받아들이는 데 큰 어려움이 없고, 행렬의 스칼라곱(scalar multiplication)도 단순히 스칼라 $c$를 행렬의 각 성분에 똑같이 곱해주는 것이므로
$$c\begin{bmatrix} a_{11}&a_{12}\\a_{21}&a_{22}\end{bmatrix}=\begin{bmatrix}ca_{11}&ca_{12}\\ca_{21}&ca_{22}\end{bmatrix}$$
어려움 없이 받아들일 수 있습니다.
반면, 두 행렬 간의 곱(matrix multiplication)은 정의가 다소 복잡하여 ① 행렬 $A$의 열의 개수와 행렬 $B$의 행의 개수가 같을 때 두 행렬의 곱 $AB$가 정의되며, 이때 ② $AB$의 $(i, j)-$성분은 $A$의 $i$번째 행 성분들과 $B$의 $j$번째 열 성분들을 차례대로 곱하여 더한 것입니다. 이를 정리해보면 다음과 같습니다.
두 행렬 $A=(a_{ij})_{m \times n}$와 $B=(b_{jk})_{n \times l}$에 대하여,
두 행렬의 곱 $AB$는 $m \times l$ 행렬이며
$$(AB)_{ik} = a_{i1}b_{1k}+a_{i2}b_{2k}+\cdots +a_{in}b_{nk}$$
이다.
행렬의 곱이 왜 이토록 번거로운 규칙을 따르게 되었는지를 이해하려면 먼저 행렬이 도입된 배경을 살펴볼 필요가 있습니다.
연립일차방정식과 행렬
수학의 역사를 보면 행렬은 연립일차방정식(system of linear equations)과 깊은 관련이 있습니다. 사람들이 연립일차방정식의 풀이법을 연구하면서 발견한 방법 중 하나가 행렬을 이용하는 것이었죠.
간단한 예로 다음과 같은 연립일차방정식
$$\begin{cases} a_{11}x + a_{12}y = b_{1} \\ \\ a_{21}x + a_{22}y = b_{2} \end{cases}$$
이 있으면, 미지수 $x$, $y$를 반복해서 적는 수고로움을 피하고자 할 때 자연스럽게
$$\begin{bmatrix} a_{11}\,\,\,\,&a_{12}\,\,\,\,&b_{1}\\a_{21}\,\,\,\,&a_{22}\,\,\,\,&b_{2}\end{bmatrix}$$
와 같은 표기법을 떠올리게 되는데, 여기서 행렬의 기본 형태가 직사각형꼴로 결정됩니다.
연립일차방정식을 단순화하는 또 다른 방법으로
$$\begin{bmatrix} a_{11}&a_{12}\\ a_{21}&a_{22}\end{bmatrix}(x, y) = (b_1, b_2)$$
와 같은 표기도 생각할 수 있는데, 이를 통해 행렬과 벡터 간의 곱이 자연스럽게 다음과 같이 정의됩니다.
$$\begin{bmatrix}a_{11}&a_{12}\\a_{21}&a_{22}\end{bmatrix}(x, y)=(a_{11}x+a_{12}y, a_{21}x+a_{22}y)$$
이제 이로부터 행렬의 곱이 어떤 형태여야 할지를 생각해볼 수 있습니다.
행렬의 곱 유도하기
두 행렬
$$A=\begin{bmatrix}a_{11}&a_{12}\\a_{21}&a_{22}\end{bmatrix}$$
$$B=\begin{bmatrix}b_{11}&b_{12}\\b_{21}&b_{22}\end{bmatrix}$$
와 벡터 $\mathbf{x}=({\color{#ee2323}x}, {\color{#006dd7}y})$에 대하여
$$B\mathbf{x}=(b_{11}{\color{#ee2323}x}+b_{12}{\color{#006dd7}y}, b_{21}{\color{#ee2323}x}+b_{22}{\color{#006dd7}y})$$
이므로, 행렬 $A$와 벡터 $B\mathbf{x}$ 간의 곱은
$$\begin{align}A(B\mathbf{x}) &=(a_{11}(b_{11}{\color{#ee2323}x}+b_{12}{\color{#006dd7}y})+a_{12}(b_{21}{\color{#ee2323}x}+b_{22}{\color{#006dd7}y}),\\ &\quad \,\,\,\, a_{21}(b_{11}{\color{#ee2323}x}+b_{12}{\color{#006dd7}y})+a_{22}(b_{21}{\color{#ee2323}x}+b_{22}{\color{#006dd7}y}))\\ \\&=((a_{11}b_{11}+a_{12}b_{21}){\color{#ee2323}x}+(a_{11}b_{12}+a_{12}b_{22}){\color{#006dd7}y},\\ &\quad \,\,\,\, (a_{21}b_{11}+a_{22}b_{21}){\color{#ee2323}x}+(a_{21}b_{12}+a_{22}b_{22}){\color{#006dd7}y})\\ \\&= \begin{bmatrix}a_{11}b_{11}+a_{12}b_{21}&a_{11}b_{12}+a_{12}b_{22}\\ a_{21}b_{11}+a_{22}b_{21}&a_{21}b_{12}+a_{22}b_{22}\end{bmatrix}({\color{#ee2323}x}, {\color{#006dd7}y})\\ \\ &= \begin{bmatrix}a_{11}b_{11}+a_{12}b_{21}&a_{11}b_{12}+a_{12}b_{22}\\ a_{21}b_{11}+a_{22}b_{21}&a_{21}b_{12}+a_{22}b_{22}\end{bmatrix}\mathbf{x}\end{align}$$
와 같이 계산됩니다. 이제 두 행렬의 곱 $AB$는
$$A(B\mathbf{x})=(AB)\mathbf{x}$$
이 성립하도록 정의하는 게 자연스럽겠죠. 따라서
$$AB=\begin{bmatrix}a_{11}b_{11}+a_{12}b_{21}&a_{11}b_{12}+a_{12}b_{22}\\ a_{21}b_{11}+a_{22}b_{21}&a_{21}b_{12}+a_{22}b_{22}\end{bmatrix}$$
이 됩니다. 이로써 행렬의 곱을 복잡하게 정의하게 된 이유가 일부 설명됩니다.
행렬곱의 또 다른 표현법
이제까지는 행렬의 곱을 얘기할 때 $AB$의 성분 하나하나에 초점을 맞춰
$$\begin{align}(AB)_{ik}&=a_{i1}b_{1k}+a_{i2}b_{2k}+\cdots+a_{in}b_{nk}\\&=\sum_{j=1}^{n} a_{ij}b_{jk}\end{align}$$
로 표현했지만, 이와 다르게 표현하는 방법도 있습니다. 여기에 일부를 소개합니다. (다음에서 $A$는 $m \times n$ 행렬, $B$는 $n \times l$ 행렬입니다.)
1) 행렬 $B$의 $k$번째 열에 해당되는 열벡터를 $\mathbf{b}_k$라 하여
$B=\begin{bmatrix}|&&|\\ \mathbf{b}_1&\cdots&\mathbf{b}_l\\|&&|\end{bmatrix}$
와 같이 표기할 때,
$$AB=\begin{bmatrix}|&&|\\ A\mathbf{b}_1&\cdots&A\mathbf{b}_l\\|&&|\end{bmatrix}$$
입니다.
2) 행렬 $A$의 $i$번째 행에 해당되는 행벡터를 $\mathbf{a}_i$라 하여
$A=\begin{bmatrix}\text{―}&\mathbf{a}_{1}&\text{―}\\&\vdots&\\ \text{―}&\mathbf{a}_{m}&\text{―}\end{bmatrix}$
와 같이 표기할 때,
$$AB=\begin{bmatrix}\text{―}&\mathbf{a}_1B&\text{―}\\&\vdots&\\ \text{―}&\mathbf{a}_mB&\text{―}\end{bmatrix}$$
입니다.
3) 행렬 $A$의 $j$번째 열에 해당되는 열벡터를 $\mathbf{a}_j$, 행렬 $B$의 $j$번째 행에 해당되는 행벡터를 $\mathbf{b}_j$라 하여
$A=\begin{bmatrix}|&&|\\ \mathbf{a}_1&\cdots&\mathbf{a}_n\\|&&|\end{bmatrix}$
$B=\begin{bmatrix}\text{―}&\mathbf{b}_{1}&\text{―}\\&\vdots&\\\text{―}&\mathbf{b}_{n}&\text{―}\end{bmatrix}$
와 같이 표기할 때,
$$\begin{align}AB&=\,\mathbf{a}_1\mathbf{b}_1+\cdots+\mathbf{a}_n\mathbf{b}_n\\&=\sum_{j=1}^{n} \mathbf{a}_j\mathbf{b}_j\end{align}$$
입니다.
여기까지 행렬에 대한 기본적인 내용을 간략하게 정리했습니다. 다음 글에서는 프롤로그에서 다룬 내용을 바탕으로 연립일차방정식을 바라보는 몇 가지 관점을 소개합니다.
더보기참고
(1) 벡터를 $(x, y)$와 같이 표기해도 전혀 문제가 없지만 선형대수학에서는 일반적으로 벡터를 행렬의 형태로 표기합니다. 이때, 행렬과 벡터 간의 곱을 행렬과 행렬 간의 곱으로 변환하는 과정에서 자연스럽게 열벡터(column vector)의 형태를 사용하게 되고, 따라서 위에서 언급한 연립일차방정식은
$\begin{bmatrix} a_{11}&a_{12}\\ a_{21}&a_{22}\end{bmatrix}\begin{bmatrix}x \\ y \end{bmatrix}= \begin{bmatrix}b_1\\ b_2\end{bmatrix}$
로 표현됩니다. (벡터를 오른쪽에 두고 행렬를 왼쪽에서 곱해주는 방식을 취하는 경우, 이 표기를 사용합니다.)
(2) 행벡터(row vector)의 형태를 사용하려면
$\begin{bmatrix}x&y\end{bmatrix}\begin{bmatrix}a_{11}&a_{21}\\a_{12}&a_{22}\end{bmatrix}=\begin{bmatrix}b_1&b_2\end{bmatrix}$
와 같이 표기할 수 있습니다. (단, 이 경우 행렬의 $(i, j)-$성분은 $a_{ji}$이 되죠. 따라서 이 표기법을 사용할 때는 식의 구조가 살짝 달라야 합니다. 위의 연립일차방정식이
$a_{1{\color{#006dd7}1}}x_{{\color{#006dd7}1}}+\cdots+a_{1{\color{#006dd7}j}}x_{{\color{#006dd7}j}}+\cdots+a_{1{\color{#006dd7}n}}x_{{\color{#006dd7}n}}=b_1$
와 같은 형태였다면, 행벡터 표기법은
$a_{{\color{#ee2323}1}1}x_{{\color{#ee2323}1}}+\cdots+a_{{\color{#ee2323}j}1}x_{{\color{#ee2323}j}}+\cdots+a_{{\color{#ee2323}n}1}x_{{\color{#ee2323}n}}=b_1$
와 같은 형태의 식을 표현하는 데 적합합니다.)
(3) 행렬의 곱을 왜 다음과 같이 정의하지 않는지 의아할 수도 있습니다.
$\begin{bmatrix}a_{11}&a_{12}\\a_{21}&a_{22}\end{bmatrix}\begin{bmatrix}b_{11}&b_{12}\\b_{21}&b_{22}\end{bmatrix}=\begin{bmatrix}a_{11}b_{11}&a_{12}b_{12}\\a_{21}b_{21}&a_{22}b_{22}\end{bmatrix}$
같은 위치에 있는 성분들끼리 곱해주는 것으로, 계산이 훨씬 간단하고 직관적일 뿐 아니라 교환법칙도 성립하죠. 사실 이는 이미 존재하는 연산으로 '아다마르 곱(Hadamard product)', '슈어 곱(Schur product)' 등의 이름으로 불리며, 실제로 프로그래밍을 할 때 사용되기도 합니다.
이렇게 간단한 정의가 존재함에도 불구하고 복잡한 방식의 정의가 널리 알려진 이유는 (역사적인 이유도 있겠지만) 그 방식이 가진 흥미롭고도 유용한 성질 때문일 것입니다. 행렬이 임의의 '선형변환(linear transformation)'을 나타내는 표현방법이 되는 것도 행렬의 곱을 이렇게 특이한 방식으로 정의했기 때문입니다.
(4) '선형변환(linear transformation)'이란 정의역의 모든 원소 $\mathbf{u}, \mathbf{v}$와 모든 스칼라 $c$에 대해
$$\bbox[#FFFFCC,1pt]{T(\mathbf{u}+\mathbf{v})=T(\mathbf{u})+T(\mathbf{v})}$$
$$\bbox[#FFFFCC,1pt]{T(c\mathbf{u})=cT(\mathbf{u})}$$
이 성립하는 함수를 말합니다. ('transformation'의 첫 글자를 따서 $T$로 표기하는 것이 일반적입니다.)
예를 들어, 함수 $T:\,\mathbb{R}^2 \, \rightarrow \, \mathbb{R}$를
$T(x, y) = a_{11}x+a_{12}y$
로 정의하면, $\mathbb{R}^2$에 있는 임의의 $\mathbf{u}=(u_1, u_2)$, $\mathbf{v}=(v_1, v_2)$와 임의의 실수 $c$ 에 대하여
$$\begin{align}{\color{#006dd7}T(\mathbf{u}+\mathbf{v})}&=T(u_1+v_1, u_2+v_2)\\ \\&=a_{11}(u_1+v_1)+a_{12}(u_2+v_2)\\ \\&=(a_{11}u_1+a_{12}u_2)+(a_{11}v_1+a_{12}v_2)\\ \\&={\color{#006dd7}T(\mathbf{u})+T(\mathbf{v})}\end{align}$$
이고,
$\begin{align}{\color{#006dd7}T(c\mathbf{u})}&=T(cu_1, cu_2)\\ \\&=a_{11}(cu_1)+a_{12}(cu_2)\\ \\&=c(a_{11}u_1+a_{12}u_2)\\ \\&={\color{#006dd7}cT(\mathbf{u})}\end{align}$
이므로, $T$는 선형변환입니다. (선형변환과 행렬 사이의 긴밀한 관계에 대해서는 추후에 다룹니다.)
(5) '행렬곱의 또 다른 표현법'을 이해하는 방법으로 직접 계산해보는 방법도 있지만 다음과 같이 유도하는 방법도 있습니다. 1)의 경우
$(AB)\mathbf{x}=A(B\mathbf{x})$
이 $\mathbf{x}$에 대한 항등식임을 이용하면 됩니다. 중요한 것은 $\mathbf{x}$에 어떤 벡터를 대입해야 원하는 결과를 유도할 수 있는가인데, 이를 위해
$$\mathbf{e}_1=\begin{bmatrix}1\\0\\ \vdots\\0\end{bmatrix}, \,\mathbf{e}_2=\begin{bmatrix}0\\1\\ \vdots \\0\end{bmatrix}, \cdots, \,\mathbf{e}_l=\begin{bmatrix}0\\0\\ \vdots\\1\end{bmatrix}\in \mathbb{R}^l$$
을 정의하고, (보다 정확히는 $\mathbf{e}_k$의 $i$번째 성분을 $(\mathbf{e}_k)_i$라 할 때,
$(\mathbf{e}_k)_i=\begin{cases}0&\text{if}\,\,\,i \neq k\\[5pt]1&\text{if}\,\,\,i = k\end{cases}$
로 정의합니다.) 열의 개수가 $l$인 행렬
$\begin{bmatrix}|&&|\\ \mathbf{v}_1&\cdots&\mathbf{v}_l\\|&&|\end{bmatrix}$
에 대해
$\begin{bmatrix}|&&|\\ \mathbf{v}_1&\cdots&\mathbf{v}_l\\|&&|\end{bmatrix}\mathbf{e}_k=\mathbf{v}_k$
임에 주목합니다. ($\mathbf{e}_k$의 $k$번째 성분만 $1$이고 나머지 성분은 모두 $0$이므로, 행렬의 $k$번째 열만 살아남는 것입니다.) 따라서 $\mathbf{x}=\mathbf{e}_k$를 대입하면 (좌변)은, $AB$의 $k$번째 열에 해당하는 열벡터를 $(AB)_k$로 표기할 때
$${\color{#ee2323}(AB)\mathbf{e}_k=(AB)_k}$$
이고, (우변)은
$${\color{#006dd7}A(B\mathbf{e}_k)=A\mathbf{b}_k}$$
이므로,
$${\color{#ee2323}(AB)_k}={\color{#006dd7}A\mathbf{b}_k}$$
이 성립함을 알 수 있습니다. 이를 하나의 행렬에 정리하면
$$\begin{align}AB&=\begin{bmatrix}|&&|\\{\color{#ee2323}(AB)_1}&\cdots&{\color{#ee2323}(AB)_l}\\|&&|\end{bmatrix}\\[5pt]&=\begin{bmatrix}|&&|\\\,\,\,{\color{#006dd7}A\mathbf{b}_1}\,\,\,&\cdots&\,\,{\color{#006dd7}A\mathbf{b}_l}\,\,\,\\|&&|\end{bmatrix}\end{align}$$
이 되는 것입니다. 2)와 3)도 비슷한 방법으로 유도할 수 있습니다.
(6) 행렬과 벡터 간의 곱과 관련해서 인공신경망(ANN, artificial neural network)에 대해 살짝 언급하고 넘어가고자 합니다. 인공신경망 모델 중 가장 기초적인 것으로 퍼셉트론(perceptron)이 있는데, 이는 대략적으로 다음과 같은 구조를 가집니다.
$k$개의 값 $x_1, x_2, \cdots, x_k$를 입력(input)으로 받아 $\hat{y}$을 출력(output)으로 내도록 구성되어 있는데 그 과정을 들여다보면, 입력값 $x_i$에 가중치(weight) $w_i$ 곱한 것을 다 더해주고
$$w_{1}x_{1}+w_{2}x_{2}+\cdots+w_{k}x_{k}$$
거기에 편향(bias) $b$까지 더해준 뒤,
$$z=\sum_{i=1}^k w_ix_i +b$$
그 값 $z$를 $\sigma$라는 활성화 함수(activation function)에 넣어
$$\begin{align}\hat{y}&=\sigma(z)\\[5pt]&=\sigma(\sum_{i=1}^k w_ix_i +b)\end{align}$$
$\hat{y}$을 출력값으로 얻습니다. 이를 단순화하면 다음과 같이 나타낼 수 있습니다.
(여기서 각각의 원(圓)을 노드(node)라고 하는데, 노드 하나마다 값이 하나씩 배정되는 것으로 생각할 수 있습니다. 왼쪽의 노드들은 입력값 $x_i$에 해당하고, 오른쪽의 노드는 출력값 $\hat{y}$에 해당합니다. 중간의 $z$는 생략됩니다.)
이러한 기본 구조를 여러 개 겹치면 다음과 같은 형태가 만들어집니다.
$k$개의 입력값 $x_1, x_2,\cdots,x_k$로부터 $l$개의 출력값 $\hat{y}_1,\hat{y}_2,\cdots,\hat{y}_{l-1},\hat{y}_l$을 만들어내는 구조인데, $x_i$에서 $\hat{y}_j$로 갈 때 사용되는 가중치(weight)를 ${\color{#006dd7}w_{ij}}$라 하고,
$${\color{#006dd7}w_{1j}}x_1+{\color{#006dd7}w_{2j}}x_2+\cdots+{\color{#006dd7}w_{kj}}x_k$$
여기에 더해지는 편향(bias)을 ${\color{#006dd7}b_j}$라 하고,
$$\sum_{i=1}^k w_{ij}x_i +{\color{#006dd7}b_j}$$
그 값을 ${\color{#006dd7}z_j}$라 하면,
$${\color{#006dd7}z_j}=\sum_{i=1}^k w_{ij}x_i +b_j$$
출력값 ${\color{#006dd7}\hat{y}_j}$는
$$\begin{align}{\color{#006dd7}\hat{y}_j}&=\sigma(z_j)\\&=\sigma(\sum_{i=1}^k w_{ij}x_i +b_j)\end{align}$$
이 되죠. 이때, $x_1, x_2, \cdots, x_k$와 $\hat{y}_1, \hat{y}_2, \cdots, \hat{y}_l$을 각각 하나의 벡터 $\mathbf{x}$, $\mathbf{\hat{y}}$로 묶어서 본다면
$$\begin{align}\mathbf{\hat{y}}&=\begin{bmatrix}\hat{y}_1\\ \hat{y}_2\\ \vdots\\ \hat{y}_l\end{bmatrix}\\[5pt]&=\begin{bmatrix}\sigma(z_1)\\ \sigma(z_2)\\ \vdots\\ \sigma(z_l)\end{bmatrix}\\[5pt]&=\sigma\left( \begin{bmatrix}z_1\\z_2\\ \vdots\\z_l\end{bmatrix} \right)\end{align}$$
이고, (마지막 줄에서 $\sigma$는 의도적으로 표기를 오용한 것인데, $\sigma$는 원래 $\mathbb{R}$에서 $\mathbb{R}$로의 함수이므로 마지막 줄을 엄밀하게 쓰려면,
$$\sigma_{l} \left( \begin{bmatrix}z_1\\z_2\\ \vdots\\z_k\end{bmatrix} \right)=\begin{bmatrix}\sigma(z_1)\\ \sigma(z_2)\\ \vdots\\ \sigma(z_l)\end{bmatrix}$$
와 같은 함수 $\sigma_{l}: \mathbb{R}^l \rightarrow \mathbb{R}^l$를 새로 정의해주어야 합니다. 그러나 이것은 번거로운 작업이고 또 이해하는 데 큰 문제가 되지 않으므로, 종종 표기를 오용하곤 합니다.)
$$\begin{align}\begin{bmatrix}z_1\\[2pt]z_2\\[2pt]\vdots\\[2pt]z_l\end{bmatrix}&=\begin{bmatrix}\sum_{i=1}^k w_{i1}x_i+b_1\\ \sum_{i=1}^k w_{i2}x_i+b_2\\ \vdots\\ \sum_{i=1}^k w_{il}x_i+b_l\end{bmatrix}\\[5pt]&=\begin{bmatrix}\sum_{i=1}^k w_{i1}x_i\\ \sum_{i=1}^k w_{i2}x_i\\ \vdots\\ \sum_{i=1}^k w_{il}x_i\end{bmatrix}+\begin{bmatrix}b_1\\[2pt]b_2\\[2pt]\vdots\\[2pt]b_l\end{bmatrix}\\[5pt]&=\begin{bmatrix}w_{11}&w_{21}&\cdots&w_{k1}\\[2pt]w_{12}&w_{22}&\cdots&w_{k2}\\[2pt]\vdots&\vdots&&\vdots\\[2pt]w_{1l}&w_{2l}&\cdots&w_{kl}\end{bmatrix}\begin{bmatrix}x_1\\x_2\\\vdots\\x_k\end{bmatrix}+\begin{bmatrix}b_1\\[2pt]b_2\\[2pt]\vdots\\[2pt]b_l\end{bmatrix}\\[5pt]&=\begin{bmatrix}w_{11}&w_{21}&\cdots&w_{k1}\\[2pt]w_{12}&w_{22}&\cdots&w_{k2}\\[2pt]\vdots&\vdots&&\vdots\\[2pt]w_{1l}&w_{2l}&\cdots&w_{kl}\end{bmatrix}\mathbf{x}+\begin{bmatrix}b_1\\[2pt]b_2\\[2pt]\vdots\\[2pt]b_l\end{bmatrix}\end{align}$$
이므로,
$$W^{T}=\begin{bmatrix}w_{11}&w_{21}&\cdots&w_{k1}\\[2pt]w_{12}&w_{22}&\cdots&w_{k2}\\[2pt]\vdots&\vdots&&\vdots\\[2pt]w_{1l}&w_{2l}&\cdots&w_{kl}\end{bmatrix}$$
$$\mathbf{b}=\begin{bmatrix}b_1\\[2pt]b_2\\[2pt]\vdots\\[2pt]b_l\end{bmatrix}$$
로 정의하면
$$\mathbf{\hat{y}}=\sigma(W^{T}\mathbf{x}+\mathbf{b})$$
이 됩니다. (여기서 행렬과 벡터 간의 곱을 볼 수 있죠. 행렬과 선형변환 간의 관계를 알면 이 식의 의미를 한층 더 깊이 이해할 수 있습니다.)
'선형대수학' 카테고리의 다른 글
1. 관점(2): 첨가행렬 (1) 2020.06.01 1. 관점(1): 소개 (0) 2020.01.26 0. 프롤로그(1): 벡터 (0) 2020.01.11