[딥러닝수학] 행렬과벡터

Deok Jong Moon·2022년 1월 6일
0
post-thumbnail

book title : 머신러닝, 딥러닝에 필요한 기초 수학 with 파이썬
pages : 177 ~ 197
key concepts :

  • 벡터의 내적

    • a\cdotb = |a||b|cosθ\theta
    • 이거 왜 그런지 좀 이해가 필요함...
    • θ\theta에 따라 내적 값(a\cdotb)이 >0, 0, <0이 된다는데 더 공부 필요
    • 0일 때는 직교
    • 내적의 결과는 scalar
  • 벡터의 외적

    • 외적의 결과는 matrix
    • 열벡터와 행벡터의 행렬곱
    • a\otimesb = a bT
  • 행렬을 이용한 데이터 표현

    • 테이블형 데이터
      : 습관적으로 행 우선 방식 사용(원래 벡터는 요소가 열로 표시되지만, 행으로 표시되는 방식)

      • 이 경우 x 벡터말고 각 feature를 벡터로 나타낼 수 있음
      • 행렬 X는 (N - 벡터 갯수,D - 특징의 수)행렬임
    • 이미지
      :(갯수, 세로, 가로, 차원)

    • 문서
      : 문서 -> 줄 -> 단어로 쪼개고 그것을 숫자로 매칭시킨 후 행렬 모양으로 나타냄
      : 한 줄의 단어 수가 제각기 다르니, 긴 부분을 자르거나 모자란 부분은 <NULL>로 채움
      : 그리고 이것을 다시 길이 10인 벡터로 쓰고 단어 숫자 자리만 1로 바꾸는 식으로 사용

  • Numpy

    • 1차원 vector는 사실 행벡터처럼 보이지만, 여기선 방향을 고려하지 않음(1차원이기에 방향 개념이 없음)
    • 실제에서는 벡터를 열벡터로 씀
    • 만약 방향성을 부여하려면 (N,) -> reshape으로 (1, N)으로 해줘서 열벡터로 해줘야 함
    • 근데 또 이렇게 (1, N)이 된다는 건 사실 행렬(행 또는 열이 하나 뿐인)임.(그냥 정확한 개념만 알자!)
    • 축이 늘어날 때마다 그 축이 0번째임
    • 파이썬은 행우선방식! -> 그래서 2차원 행렬이 되면 세로가 0번 axis임
    • 브로드캐스팅
      : 저차원 ndarray를 고차원으로 올려주고, 새로 생긴 차원을 다른 행렬의 행 또는 열의 수에 맞춰서 늘리는 것
      1) 굳이 한 쪽에서만 일어나는 것 아님
      2) A(4,1) * B(3,)하면
      • 1) (3,) -> (1,3)로 차원이 높여지고
      • 2) 1인 차원이 서로 확장되어 (4,3) * (4,3) - position wise가 된다.
profile
'어떻게든 자야겠어'라는 저 아이를 닮고 싶습니다

0개의 댓글

관련 채용 정보