본문 바로가기

책읽기

[프로그래머를 위한 선형대수 (오디오클립)] (히라오카 카즈유키 & 호리 켄, 2017. 이창신, ~2019)

  • 데이터 분석, 또는 머신러닝을 하려면 분야별 전문 지식, 컴퓨터를 다루는 능력, 수학 능력이 모두 필요하다고 한다.
    • 분야별 전문 지식 (domain knowledge)이 부족하면 무의미한 숫자놀음을 하고,
    • 컴퓨터를 다루는 능력 (hacking skill)이 부족하면 전통적인 연구의 틀에 갇히며
    • 수학 능력이 부족하면 남의 코드를 갖다 쓰기는 하는데 문제를 해결하지 못한다.
  • 어떤 분께서는 다음과 같이 간결하게 표현해 주시기도 했다.

    "통계적 지식이 결여된 도메인 전문가 못지않게 도메인 지식이 결여된 통계 전문가 역시 위험합니다. 전자가 문제를 잘못 푸는 경향이 높다면, 후자는 잘못된 문제를 푸는 경향이 높습니다."

  • 접근성을 기준으로 따지면 이렇다.
    • 전문 지식은 해당 학과를 졸업하지 않으면 접근하기 힘든 경우가 많지만, 옆자리 사람에게 배울 수 있다.
    • 코딩은 라이브러리의 발달과 수많은 강의, 책들로 인해 독학이 쉬워지고 있다.
    • 수학 역시 교재와 강의가 많지만 수학을 일찍 놓은 사람일수록 벽이 높아지고, 무엇보다 전문 지식, 코딩과 연결시켜 생각하기 어렵기 때문에 공부를 하면서도 대체 이거 배워서 어따 쓰나하는 동기 손실이 크다.
  • 데이터를 다루려면 선형대수의 개념이 필요하다.
    • 차원 변형을 이용한 정보의 암호화encoding, 복호화decoding가 선형대수를 활용하며
    • 어려운 데이터를 해석하기 위해 데이터가 위치한 공간 자체를 뒤트는데 선형대수가 쓰인다.
    • 선형대수를 모르면, 가장 기초 중 하나인 주성분분석PCA: principal component analysis조차 외워서 사용할 뿐이다.
  • 그나마 접근하기 쉬운 책을 찾았다: 프로그래머를 위한 선형대수
    • 예제 애니메이션이 포함되어 행렬연산을 통한 공간 벡터의 변형을 눈으로 볼 수 있게 해주고,
    • 책을 읽는 목적에 따라 어떤 챕터를 읽고 어디는 넘기면 좋을지 안내되어 있다.
    • "컴퓨터에서의 계산"이라는 챕터를 통해 이산discrete공간에서 어떻게 계산되는지 설명해준다.
  • 하지만 모두 마음에 드는 것은 아니다.
    • Ruby로 짜여진 시각화가 마음에 들지 않았다: 그림이 직관적이지 않았다. interactive했으면 더 좋았을 것 같다.
    • 대뇌 스위칭이 잘 되지 않았다: 바쁜 현업을 하다 갑자기 수학책을 펴들어도 머리에 들어오지 않는다.
    • 글이 불편하다: 원 저자들이 사용한 일본식 용어가 어색했고, 번역투의 말에 내가 과민하게 반응한다.
  • 기껏 산 책을 한동안 묵혀두다 대안을 찾았다: 오디오 클립
    • 출퇴근 시간을 이용해 400 페이지 가까운 진도를 한달만에 나갔다.
    • 운전하느라 본격적으로 집중하지 못했고 수식을 귀로 듣는다는 한계가 있었지만, 중요한 부분은 역자가 자연스레 반복하고 강조해주어서 기억에 남았다.
    • 불편한 일본식 용어에 대한 역자의 해명을 듣는 재미가 있다. 때로는 강의보다 이 해명 부분이 더 길기도 했지만 결과적으로는 이 용어를 나만 불편해했던 것은 아니라는 공감과 이게 무슨 뜻인지 영어로, 우리말로 풀어서 설명해 준 덕에 이해력이 조금은 늘었다.
  • 잊혀지기 전에 한번쯤 끄적여 봐야겠다.
    • 수식도 손으로 다시 전개해보고, 그림도 내가 직접 그려보고.
    • 분명히 또 튀어나올 무지는 검색으로 메우고.