티스토리 뷰
1. Introduction to Deep Learning / L5. Matrix Math and NumPy Refresher - Data Dimensions
chrisysl 2018. 6. 22. 11:16Introduction
# 딥러닝에서의 행렬
- 딥러닝에서는 행렬 연산 및 행렬 표현식을 매우 많이 필요로 함
- 신경망 구축 전에 적어도 기본적 행렬 표현은 반드시 이해해야한다.
- NumPy 라이브러리를 사용하여 파이썬에서의 행렬을 효율적으로 사용하기 위한 방법을 알아보자
Data Dimensions
- Neural network는 수많은 데이터를 토대로 수많은 수학적 연산을 한다.
- 가장 먼저 이해해야할 부분은 데이터를 어떻게 나타낼 것인지에 관한것이다.
- 특히 데이터가 가질 수 있는 모양(생김새)에 대해서 먼저 알아보자.
- 예를들어 우리는 사람에 대한 데이터를 숫자로 표현 할 수 있다.
- 키가 180cm, 무게가 80kg, 나이가 25살 등..
- 또한 특정 인물에 대한 사진을 찍었을때 이를 픽셀로 나타내어
- 한 픽셀당 RGB값에 해당하는 숫자로도 표현할 수 있다.(ex. R : 255 / G : 84 / B : 131)
- 이러한 묘사된 데이터에 대해 우리는 그것의 차원(dimensions)의 수의 관점에서 살펴보도록 하자.
· Scalars
- 먼저, 가장 작고 간단한 형태인 single value가 있다.(ex. 1, 2.4, -0.3 과 같이..)
- 이것들을 스칼라(scalars)라 부른다.
- 스칼라는 0차원이라 여긴다.
- 따라서 위의 예시에서 키, 무게 나이에 해당하는 정수값들은 스칼라가 될 수 있다.
· Vectors
- 그다음 값들의 리스트(lists of values)인 벡터가 있다.
- 벡터는 행벡터와 열벡터 두종류로 나뉜다.
- 벡터는 1차원이라 불리고 그 길이라고 표현한다.
- 따라서 위 벡터들은 길이가 3이 된다.
- 앞서 언급한 예제를 바탕으로 키, 무게, 나이를 벡터로 표현하면 [180 80 25]와 같이 표현할 수 있다.
· Matrices
- 다음으로 행렬이 있는데, 행렬은 값들을 2차원의 격자형태로 표현한 것이다.
- 우리는 행렬을 열과 행이 개수의 관점에서 설명한다.
- 좌측에 보이는 행렬은 2x3 행렬이 되는것이다.
- 우측에 보이는 이미지의 경우, 픽셀의 값들을 가지고만 있다면 이 픽셀값들을 행렬로 나타내고 저장할 수 있다.
· Tensors
- 마지막으로 Tensors가 있다.
- 앞으로 딥러닝을 진행함에있어서 TensorFlow라는 라이브러리를 엄청나게 사용할 것이기 때문에
- 이 개념에 대해 완벽히 이해해두는것이 중요하다.
- 참고로 TensorFlow는 데이터를 모두 tensor의 형태로 관리한다.
- 예를들어, 스칼라는 0차원 텐서이다.
- 마찬가지로, 벡터는 1차원 텐서, 행렬은 2차원 텐서이다.
- 그 이상의 다차원 값들에 대해선 그냥 텐서라 부른다.
- 문제는 다차원 값들은 그 값을 시각화하여 나타내기가 어렵다는 것이다.
- 3차원의 경우 2차원 행렬을 쌓아놓은 형태로 생각할 수 있다.
- 또는 위와같이 벡터의 형태로 이해할 수 있다.
- 어찌됐건, 3차원은 쉽게 머릿속에 그려질 수 있다고 본다.
- 근데 4차원부터는 머릿속에 형태를 그려넣기가 곤란해진다.
- 행렬의 각 값들 자체가 행렬이라 이해할 수도 있고
- 이렇게 각 층별로 3차원씩 쌍을 이루고 있다고 생각 할 수도 있다
- 어찌됐건, 차원이 더 올라가면 그걸 시각적으로 이해하려는 시도 자체가 너무 곤혹스럽다;
- 여기서 중요한점은, 어떻게 시각화 하여 이해할것인지 가 아니다.
- 데이터가 어떤식으로 배열 또는 나열되었건간에 우리는 어쨌건 수리적 연산을 할 수 있다는것이다.
- 앞의 예시를 다시 들자면, 만약 각각의 컬러채널(R, G, B)값과 각 픽셀에 대한 데이터가 있다면
- 우리는 그 데이터들을 R, G, B값을 각각의 평면으로 3차원 텐서에 저장할 수 있다.
차원에 대한 얘기를 정리하며 마지막으로 짚고 넘어가야할 부분은
- 우리는 원래 행렬을 공부할때 인덱스를 a11과 같이 표시하였으나
- 프로그래머에게 있어 행렬은 이와같이 인덱스가 00부터 시작한다는 점이다.