내 세상

케라스 창시자에게 배우는 딥러닝 > 2장 신경망의 수학적 구성 요소 본문

Technical/ML&DL

케라스 창시자에게 배우는 딥러닝 > 2장 신경망의 수학적 구성 요소

sga8 2019. 2. 8. 16:24
728x90
반응형
  • Scalar (0D Tensor)
    • axis = 0
    • 하나의 숫자만 담고 있는 텐서
    • ndim 속성을 사용하면 numpy arraya의 axis 개수를 확인할 수 있음.
    • Tensor의 axis 개수를 rank라고도 부름.
  • Vector (1D Tensor)
    • axis = 1
    • x = np.array([12, 3, 6, 14, 7])
      • 이 벡터는 5개의 원소를 가지므로 5D vector라고 부름. (5D vector/5D Tensor를 혼동하면 안됨.)
  • Matrix (2D Tensor)
    • axis = 2
    • x = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]])
  • 3D Tensor
    • axis = 3


  • Tensor의 3가지 핵심 속성
    • Axis(Rank)
      • Numpy library의 ndim 속성에 저장되어 있음.
      • 3D 텐서에서는 3개의 axis가 있고, 행렬에는 2개의 axis가 있음.
    • shape
      • Tensor의 각 axis에 따라 얼마나 많은 차원이 있는지를 나타낸 Python의 tuple.
      • x = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]])
        • 해당 matrix의 크기는 (3, 5)
    • data type
      • Numpy library의 dtype 속성에 저장되어 있음.
      • tensor의 type은 float32, uint8, float64 등이 될 수 있음.
      • Tensor는 미리 할당되어 연속된 메모리에 저장되어야 하므로 Numpy array는 가변 길이의 문자열을 지원하지 않음.


  • slicing
    • array에 있는 특정 원소들을 선택하는 것
    • example)
      • images[10:100] → 11번째에서 101번째까지 선택(101번째는 포함하지 않음)
      • images[10:100, :, :] → 3D tensor에 대해서 위와 같이 작동함.
      • images[10:100, 0:10, 0:10] → 3D tensor에 대해서 2, 3번째가 각 0번째부터 10번째까지 선택(10번째는 포함되지 않음)


  • Tensor의 실제 사례
    • Vector Data
      • (samples, features) 크기의 2D tensor
    • Sequence Data
      • (samples, timesteps, features) 크기의 3D tensor
    • image
      • (samples, height, width, channels) 또는 (samples, channels, height, width) 크기의 4D tensor
    • video
      • (samples, frames, height, width, channels) 또는 (samples, frames, channels, height, width) 크기의 5D tensor


  • Tensor Operation
    • element-wise operaiton
      • tensor에 있는 각 원소에 독립적으로 적용됨
      • 이 말은 고도의 병렬 구현이 가능한 연산이라는 의미임.
    • broadcasting
      • 크기가 다른 두 tensor가 더해질 때 작은 tensor가 큰 tensor의 크기에 맞추어짐.
      • Process
        • 큰 tensor의 ndim에 맞도록 작은 tensor에 axis가 추가됨
        • 작은 tensor가 새 axis를 따라서 큰 tensor의 크기에 맞도록 반복됨.
    • dot operation, tensor product
      • 점곱, 텐서 곱셈, tensor product ( 원소별 곱셈과 다름 )
      • 2개의 tensor 중 하나라도 ndim이 1보다 크면, dot 연산에 대한 교환 법칙이 성립하지 않음.
    • tensor reshaping
      • tensor의 크기를 변환 = 특정 크기에 맞게 열과 행을 재배열한다는 의미
      • transposition (전치)
        • 자주 사용하는 특별한 크기의 변환
        • 행과 열을 바꾸는 것.
        • x[i, :] → x[:, i]로 변환됨.


728x90
반응형