[영화] 레디 플레이어 원

게임 오덕들의 감성을 자극 하는 영화. 오아시스의 창조자 할리데이의 ‘내 게임을 해줘서 고맙다’는 마지막 메시지가 내 마음을 크게 흔들었다.

[영화] 램페이지

옛날에 나도 즐겨 했던 게임(아래 링크)에서 모티브를 따서 만든 영화. 드웨인 존슨 나온다길래 생각 없일 볼 수 있는 시원 시원하게 깨부수는 영화라고 믿고 봤는데, 과연 그랬다.

그런데 드웨인 존슨이 격투 액션을 펼칠만한 대상이 딱히 없어서 –원흉으로 나오는 CEO는 격투 상대가 아니고, 그렇다고 괴물이랑 다이다이를 뜰 수는 없으니– 그 부분은 심심하게 느껴졌다. 이런 영화에 개연성과 스토리를 기대하는 것은 우물가서 숭늉 찾는 일이니 생략.

왜 우리는 집단에서 바보가 되었는가

제목만 보고 처음에는 구조적인 관점에서 집단지성을 까는 내용인 줄 알았는데, 막상 읽어보니 그냥 많은 큰 집단 속에서 일어나는 바보 같은 의사결정에 대해 까는 약간 에세이 같은 느낌의 책이라 그냥 저냥 했다. 굳이 비교해 보자면 예전에 읽었던 <빈 카운터스> 와 비슷한 듯.

호황 vs 불황

경제의 호황과 불황기에 일어나는 현상에 대해 이야기하는 책. 처음 제목만 보고 무엇이 호황과 불황을 만드는가에 대한 구조적인 이야기가 나올 줄 알았는데, 그런 내용은 안 나와서 개인적으로는 그냥 저냥 이었다.

책의 원전이 나온 2008년 금융위기를 전후하여 이른바 주류 경제학을 한창 까고 새로운 경제학 이론들이 주목 받던 시기 –지금은 행동 경제학이 주류 경제학에 대비될만큼 커진 듯– 였음을 생각하면 당시에는 흥미로운 내용일 수 있겠지만, 지금 읽기에는 사실 그렇게 새로운 내용은 아니다.

요즘 책을 읽는 눈이 까다로워져서인지 읽다가 중간에 마는 책이 좀 많은데, 이 책은 그래도 중간에 잠깐 쉬기는 했지만 끝까지 읽기는 했다.

모든 진화는 공진화다

제목부터 내 마음을 사로잡아서 읽게 된 책인데, 내용 또한 그러했다. 지구 탄생 이후 생명의 진화 과정에 대한 꼼꼼한 설명과 잘 읽히는 문장 덕분에 단숨에 읽을 수 있었음.근래 꽤 많은 책을 읽다가 중간에 말았는데, 간만에 내 머리를 청량하게 해 주었다. 아주 훌륭한 책.

 

C# 6.0 완벽 가이드/ .NET Framework 개요

  • .NET Framework의 거의 모든 능력은 다종다양한 ‘관리되는 형식(managed type)’들을 통해 제공된다. 이 형식들은 계통구조(hierarchy) 형태의 이름공간들로 조직화되어 있으며, 일단의 어셈블리 파일들로 배포, 설치된다. 이들과 CLR(공용 언어 런타임)을 합친 것이 바로 .NET 플랫폼이다.
  • .NET Framework의 형식들 일부는 CLR이 직접 사용한다. 이들은 관리되는 호스팅 환경에 필수적인 형식들로, mscorlib.dll 이라는 어셈블리 안에 들어 있다.
    • C#의 내장 형식들과 기본 컬렉션 클래스들, 그리고 스트림 처리나 직렬화, 반영(reflection), 스레드 적용, 네이티브 상호운용성을 위한 형식들이 여기에 속한다.
  • 이보다 한 수준 위에는 CLR 수준의 기능성에 살을 붙이는 추가적인 형식들이 있다. 이들은 이를테면 XML 처리나 네트워킹, LINQ 같은 기능을 제공한다.
  • .NET Framework의 그 나머지 부분은 응용 API 들로 구성되어 있는데, 이들 대부분은 크게 다음과 같은 3가지 기능 영역으로 분류된다.
    • 사용자 인터페이스 기술
    • 뒷단(backend) 기술
    • 분산 시스템 기술
  • .NET Framework 4.6의 새로운 기능
    • 쓰레기 수거기가 수거를 실행하는 시점을 좀 더 세밀하게 제어할 수 있는 새 메서드들이 GC 클래스에 추가되었다.
    • 새롭고 더 빠른 64비트 JIT 컴파일러가 도입되었다.
    • System.Numerics 이름공간에 하드웨어 가속 행렬 및 벡터 형식들이 추가되었다.
    • 라이브러리 작성자를 위해 System.AppContext라는 새로운 클래스가 추가되었다. 이를 이용해 라이브러리를 작성하면 라이브러리 사용자가 새로운 API 기능들을 선택적으로 전환할 수 있다.
    • Task 인스턴스 생성시 현재 스레드의 문화 설정과 UI 문화 설정이 반영된다.
    • 더 많은 컬렉션 형식들이 IReadOnlyCollection<T>를 구현한다.
    • WPF가 개선되었다. (더 나은 터치 및 고 DPI 처리 등)
    • ASP.NET이 HTTP/2와 Window 10의 TBP(Token Binding Protocol)를 지원한다.
  • .NET Framework 4.5의 새로운 기능
    • Task를 돌려주는 메서드들을 통한 광범위한 비동기성 지원
    • ZIP 압축 프로토콜 지원
    • 새로운 HttpClient 클래스를 통한 HTTP 지원 개선
    • 쓰레기 수거기와 어셈블리 자원 조회 성능 향상
    • WinRT 상호운용성 및 Windows 스토어 모바일 앱 구축을 위한 API 지원
    • 새로운 TypeInfo 클래스 추가
    • 정규 표현식 부합시 만료 시간을 지정하는 능력 추가
    • 병렬 컴퓨팅 부분에서 생산자-소비자 스타일의 네트워크 구축을 위한 Dataflow라는 특화된 라이브러리가 추가

Continue reading

송민령의 뇌과학 연구소

제목 그대로 뇌에 대한 교양 과학 이야기. 읽기 전에 개인적으로 신뢰하는 사람들이 이 책을 추천하는 글을 많이 봐서 기대를 많이 했었는데, 과연 그만큼 추천을 받을만한 책이었다고 생각 했음.

예전에 한겨레의 사이언스온에서 읽고 충격을 받았던 ‘파도는 어디서부터 시작되서 어디까지인지 경계를 지을 수 없지만, 그것은 실재하는 현상이다’라는 내용을 포함하여 –이 책은 그 연재글을 모아낸 책이다– 뇌에 대한 다양한 최신의 내용을 접할 수 있어서 참 좋았다. 많이 배웠음. 추천.

박시백의 조선왕조실록

제목 그대로 조선왕조실록을 만화로 엮어낸 책. 시리즈 전체 20권인데, 만화라서 금방 읽었다. 다만 생각보다 글이 많아서 –특히 상소 올리는 부분– 작은 사이즈의 화면으로 보는데 눈이 좀 아팠음.

실록이다보니 아무래도 정치와 인물 중심으로 –민중의 생활상, 경제 등의 이야기는 비중이 낮음– 이야기가 흐르는데,  그러다 보니 대형 사건일 수록 재미있는 반면 그 외의 경우는 그냥 저냥 이었던 것 같다. 창업부터 세조까지 재미있고, 임진왜란-병자호란이 좀 재미있고, 마지막의 망국이 재미있는데, 그 사이의 이야기들은 정치 싸움 정도라 그냥 저냥.

실록을 기반한 실제 역사에 집중하여 드라마나 야사로 알려진 우리의 상식과 다른 논의가 나오는 부분은 흥미로웠다. 개혁 군주로 알려진 영조-정조에 비해 실제 개혁을 많이 한 사람은 흥선대원군이었다는 논의 등.

아는 만큼 재미있는 책이기 때문에 조선 역사에 관심 있는 사람이시라면 추천.

 

Machine Learning/ 적용 사례

Recommender Systems

https://www.coursera.org/learn/machine-learning/

  • 사용자 정보를 Matrix로 구성하여 사용자의 선호에 맞는 컨텐츠나 유사한 컨텐츠를 추천하는 추천 시스템.
  • 이하 시스템에 대한 내용은 다음의 조건을 따른다.
    • 사용자는 각각의 영화에 대해 1-5개의 별점을 줄 수 있음.
    • 별점을 매기지 않았다면 ?로 표시
    • 유저 수는 nu로 표기, 영화 수는 nm으로 표기
    • 유저 j가 영화 i에 대해 평점을 주었다면 r(i, j) = 1이라고 표기
      • r 행렬은 별점을 주었는지 안 주었는지만 판별
    • 유저 j가 영화 i에 부여한 별점은 y(i, j) 로 표기

Continue reading

Machine Learning/ 알고리즘 발전 시키기

Vectorize

  • Σ로 표현되는 식을 벡터로 표현할 수 있는 경우 –벡터는 n x 1 행렬이므로 사실상 행렬– 벡터로 변환하여 계산하면 식 자체가 간편해 질 뿐더러, 행렬의 병렬처리를 지원하는 프로그램을 사용하면 성능에서도 유리하다.
    • 예컨대 아래의 식을
      • h_{\theta}(x) = \theta_0 + \theta_1 x_1 + \theta_2 x_2 + \theta_3 x_3^2 + ...
    • 벡터화 하면 아래와 같이 표현 가능하다.
      • \theta = [ \theta_0; \theta_1; \theta_2;  ... \theta_n ]
      • X = [ x_0; x_1; x_2; ... x_n ]
        • x0는 정의상 1과 같다.
      • h_{\theta}(x) = \theta^T X
  • hθ(x)를 Vectorize 했다면 비용함수 J(θ)도 벡터로 간단하게 할 수 있다.
    • 아래의 기존 식을
      • J(\theta) = \frac{1}{2m} \sum_{i=1}^m (h_\theta (x_i) - y_i)^2
    • 벡터화하면 아래와 같이 표현 가능하다.
      • y = [ y_1; y_2; ... y_n ]
      • J(\theta) = \frac{1}{2m} ((\theta^T X - y)^2)
        • 행렬의 제곱은 .^ 이라는 연산을 이용한다. 프로그램적으로 ‘.’ 은 element 연산을 의미한다.
  • 프로그램상 Σ 연산은 for 문을 도는 형식이 되며, 행렬 연산을 지원하는 프로그램의 경우 Vector 연산은 병렬로 처리가 된다.
  • 물론 행렬 계산은 역행렬 계산과 같은 상황에서 부하가 많이 걸리지만, Octave와 같은 프로그램에서는 pinv 와 같은 함수로 계산해 pseudo 값을 계산해 주므로 행렬 계산에 익숙해질 필요가 있다.

Continue reading