딥러닝을 맨 처음 시작 할때, 배우는 것이 이것이 아닐까? 선행대수학의 기초가 되는 것이지만, 케라스 창시자에게 배우는 딥러닝에서는 수학공식을 기록하지 않고, 데이터만 표현 하였다. 여기에서는 수학적인 해석까지 덧붙여 표현 할 것이다.
여기에서 핵심 키워드를 이야기 하면 아래와 같다.
텐서는 임의의 차원 개수를 가지는 행렬의 일반화된 모습이다. (텐서에는 차원(dimension)을 종종 축(axis)이라고 부른다.
신경망 표현의 기하학적인 해석
벡터의 정의
변위, 속도, 가속도와 같이 크기와 방향을 갖는 양
스칼라의 정의
길이, 면적, 질량과 같이 크기만 갖는 양
아래의 정의는 벡터의 기하학적인 설명을 한다.
벡터와 스칼라의 정의 |
벡터에 관한 문제를 취급 할 때에는 직교 좌표계를 도입하는 것이 매우 편리하다.
벡터의 직교좌표계 표현 |
선형대수학에서는 3차원을 설명 하였지만, 신경망에서는 N차원을 설명 할수 있다.
신경망의 데이터 표현
스칼라텐서
하나의 숫자만 담고 있는 텐서를 스칼라(scalar) 또는 스칼라텐서, 0차원 텐서 0D 텐서라고 부른다. 넘파이에서는 float 32나 float 64타입의 숫자가 스칼라 텐서 이다.
스칼라의 정의는 N 차원 공간에서 N의 0승개로 표현할수 있는 물리량이다.
전산학에서 스칼라는 단순히 '하나의 수'를 가리키는 말로 쓰인다.
스칼라 텐서 |
벡터 텐서
숫자의 배열을 벡터(vector) 또는 ID 텐서라고 부른다. 숫자 벡터는 딱 하나의 축을 가진다.
벡터 텐서 |
여기까지는 텐서의 의미를 부여 할 뿐 실제로는 많이 쓰이지 않는다.
행렬(2D 텐서)
벡터의 배열 행렬(matrix) 또는 2D 의 텐서이다. 행렬에는 2개의 축이 있다.
행(Row),와 열(column) 이 있다.
행렬 2D 텐서 |
3D 텐서와 고차원 텐서
이런 행렬들을 하나의 새로운 배열로 합치면 숫자가 채워진 직육면체 형태로 해석 할 수 있는 3D 텐서가 만들어 진다. 아래는 2차원 행렬 3개를 표현한 것이다.
댓글 없음:
댓글 쓰기