October 29, 2015

생즉사 사즉생 (生卽死 死卽生)

 가끔 주변의 고민을 가만 들어보면 목숨을 건 '위대한 여정'이라기엔 다소 2% 부족한 모두 현실 도피다. 생즉사, 사즉생(生卽死 死卽生). 좋아하는 명언 중에 하나인데, .. 뭔가 갈구함이 있고 대의를 따르는 각오에 어울리는 말이다. 그저 죽자 달린다고 빛이 나는 것이 아니지.

October 26, 2015

A neuron-centric programming model

According to the Google's DistBelief paper, the user defines the computation that takes place at each node in each layer of the model, and the messages that should be passed during the upward and downward phases of computation. They didn't described details about programming APIs, but we can imagine like below:
 class MyNeuron extends Neuron
   method upward(messages [m1, m2, ..., ])
       sum ← 0
       for each w ∈ [m1, m2, ..., ] do
          sum  ← sum + m.input * m.weight
          
       // propagate squashed output value to neurons of next layer
       propagate(squashingFunction(sum));

   method downward(messages [m1, m2, ..., ])
       for each w ∈ [m1, m2, ..., ] do
         gradient  ← this.output * (1 - this.output) * m.delta *  m.weight
         propagate(gradient);

         // weight collections
         w ← w + Δw (α * this.output * m.delta)

       // push updates to parameter server
       push(weights);
The reason I separate it into two methods (unlike Google's Pregel) is that framework can determine whether it's upward or downward phase by message type internally. Moreover, with this, we can reduce the user-side code complexity. The advantage of this is very fit for multi-thread programming and parallel computing of each gradient calculations at neuron level.

Additionally, instead of allowing user to write a formula for some calculations directly within neuron-centric programming model, we abstract some arithmetic operations and generate the code for GPU acceleration internally. With this, we compile it to a GPU-oriented code that batches for speed.

That way the user will not have to think about the specifics of GPU, but instead focus on the algorithm.

October 15, 2015

케플러 망원경이 외계 문명 발견하다? "KIC 8462852"

한국 기사로는 안나온 것 같아 작성.

케플러 미션을 수행하는 도중 지구에서 1500광년 떨어진 KIC 8462852 항성의 밝기가 20%까지 매우 불규칙하게 변하는 것을 발견했다고 한다.


천문학자들은 이를 어떻게 설명하지 못하고 있고, 이를 두고 몇 가지 설이 있는데 혜성이 지나가면서 발생했거나 항성 주변을 돌고 있는 외계 문명 구조물일 가능성이 얘기 되고 있다.

자연 현상일 가능성이 높다고 하나, 항성 주변의 외계 문명의 흔적, 즉 구조물이거나 고대 유물일 가능성도 없지 않다고.

이에 관련한 예일대 포스트닥 페이퍼: http://arxiv.org/pdf/1509.03622v1.pdf 참고