December 4, 2017

AWS re:Invent 2017 참관기


바로 지난 주, 나와 클라우드플랫폼팀장 제임스 동행으로 여기어때 R&D센터에서 AWS 2017 행사를 참관했다. 덴버/샌프란시스코와는 전혀 다른 라스베가스 스트립의 좌우로 초대형 호텔과 카지노가 즐비한 풍경에 한번 놀랬고, Registration Booth 부터 그 큰 규모에서 두번 놀랬다. 참고로 라스베가스는 이렇게 사람이 많이 모일수 있는 환경을 가지고 있어 대형 세미나가 지속적으로 열린다고 한다 (CES도 동시에 개최된 걸로 안다). 4만 명이 넘는 참가자가 라스베가스 전역에 있는 호텔 행사장에 모였고, 우버 드라이버들은 AWS 컨퍼런스 왔냐고 자연스레 안부 인사를 묻더라. 뭐 이미 잘 알려져 있듯이 한국에 많은 기업이 AWS를 사용하고 있다. 나는 참고로 re:Play 행사에서 오다가다 과거 네이버 동료도 거의 10년만에 만나기도 하였다. :-)

기술 세션들에 대한 리뷰는 모두 참석하지 못했기 때문에 내 눈이 정확하다 말할 순 없지만, 두 가지로 요약된다. Serverless 그리고 AI 다.


Serverless는 프로그래밍 패러다임을 송두리째 바꾸고 있으며, 더 이상 풀스택 엔지니어, 그들의 인프라 노하우와 경험적 스킬은 (희박한 오픈소스 해커 수준 아니고서야) 대우받기 힘든 세상이 되었다.

AI 분야도 마찬가지인데, 이미 학습능력이 클라우드 안으로 들어가기 시작했다.


  • 넷플릭스의 데이터 엔지니어로 유명한 배재현님의 글도 읽어볼 필요가 있음  https://www.facebook.com/jaehb/posts/10214839335118339?pnref=story 


 내 눈에 들어온 슬라이드 한장 … 내가 가장 열성적으로 들었던 딥 러닝 서밋은 장장 4시간 연짱 세션이었고, 그중에 눈에 너무 꽃힌 장표 한장이 있으니 … 주로 내가 많이 얘기하던 내용과 비슷한 면이 있어 그럴수도 있는데, 사용자 경험은 OS에서 웹으로, 웹에서 모바일, 그리고 이제 AI로 넘어가는 과정이라고 볼 수 있다. 우리 IT 기술은 현재 어디에 머물고 있는가? :-)


 여러가지 생각들을 뒤로하고 귀국 바로 전 그랜드 캐년에 들러 광활한 세상을 느끼고 그렇게 한국에 돌아왔다 …

October 11, 2017

조직 관성(Organizational Inertia)

최근 들어던 세미나에 의하면 자연 법칙으로 존재하는 관성은 조직에도 존재한다.

다소 철학적 고찰이긴 한데, 우선,  관성(inertia)부터 알아보자.

관성이란 버스가 급출발 할 때 뒤로 쏠리는 그 힘이 바로 관성이다.  관성은 원래 상태를 유지하려는 성질에 불과하니 진짜힘이 아니다. 그래서 관성을 가짜힘이라고 한다. 진짜힘은 버스를 급출발 시키는 힘이다.

몸이 뒤로 쏠리는 가짜힘의 크기는 버스를 급출발 시키는 진짜힘의 크기에 의해서만 결정된다. 이게 관성과 운동의 상대성이다.

관성과 운동의 상대성을 생각하면, 조직의 관성은 변화의 크기에 의해서 결정되므로 그것은 요주의 대상이 아니라 오히려 변화의 파도라고 볼 수 있겠다.

February 21, 2017

텍스트 분류를 위한 Adversarial Training

 최근 뉴럴 네트워크 모델 중에 가장 흥미롭다고 극찬받는 GAN 이라는게 있다. discriminator와 generator networks 두 개를 가지고 학습하는데, 하나는 더 잘 분류하기 위한 네트워크이고 하나는 더 잘 속이기 위한 네트워크로 이를 동시에 학습하면서 정확도를 높인다.

 이 모델을 텍스트 분류에도 적용해봤다는 논문이 바로 Adversarial Training Methods for Semi-Supervised Text Classification [link]. 방식은 다음과 같이 LSTM 네트워크 (분류니까 many-to-one) 두 개를 놓는다:


 (a) 네트워크는 원래대로 실제 데이터를 학습하고,(b) 네트워크는 속이기 위한 가짜를 생성하는데, 논문 Eq.(2) 수식을 보면 \(y\)가 레이블이고 \(x\)는 입력이며 \(r_{adv}\) 이 adversarial noise 값이다.

 이 때 adversarial noise 값은 \(\epsilon\) 보다 작은 범위의 변화이나, 이게 왜 잘 작동할 것 같냐면 원본 텍스트에서 의미는 달라지나 기계가 봤을 땐 거의 똔똔일 것 같은 가짜를 만드는거다. 이걸 보자마자 상당히 가치있는 내용이라는 생각이 들었다. 그 다음으로 semi-supervised learning을 위한 virtual adversarial training이 Eq.(3)(4)(5) 등에 소개되어 있다.


 테스트 데이터는 영화 리뷰 데이터를 사용하였는데 이게 텍스트에 감성이 담겨있어 기계가 해결하기 묘한 데이터라 실험에 적합하다 판단했기 때문이라고 추측한다. 코드나 그런건 Github에 공개되어있진 않다.

February 20, 2017

평균, 분산, 그리고 표준편차

이산확률변수 \(X = x_1, x_2, \cdots, x_n\) 일 때, 각 확률 \(P = p_1, p_2, \cdots, p_n\)의 합은 \(\displaystyle\sum_{i=0}^n p_i = 1\) 이 된다. 이산확률변수의 평균(기대값)은 \(E(x) = \displaystyle\sum_{i=0}^n x_ip_i\)로 정의된다. 보통 통계에서는 mean 이라고 하며 우리가 아는 그 평균이다. 가령, 10, 20, 30의 평균을 구해라 이러면 각 변수의 확률은 1/3이 되니까, \(\frac{10 + 20 + 30}{3}\)과 같이 식이 간소화 된다. 분산은 각 변수에 mean 값을 뺀 제곱에 확률 값을 곱한 것의 합으로 정의되는데 \(V(x) = \displaystyle\sum_{i=0}^n (x_i - m)^2p_i\), 값이 작으면 조밀하고 크다면 퍼져 있다라고 이해할 수 있다. 마지막으로 표준편차는 분산에 sqrt를 씌우면 되는데 \(\sigma(x) = \sqrt{\displaystyle\sum_{i=0}^n (x_i - m)^2p_i}\) 평균으로부터 얼마나 떨어져 있는지를 나타내는 값이 된다.

그러면 예를 들어보자, 웹사이트 방문자 모집단 체류 시간을 모아서 2d plotting 하면 분포를 눈으로 볼 수 있겠고 (이것만 보더라도 알 수 있는게 많음), 평균, 분산, 표준편차를 구하면 어떤 사용자가 이질적인 성향을 보이는지 등을 추적 할 수 있게 된다.

January 31, 2017

(딥 러닝) 자연어 처리의 4가지 주요 공식: Embed, Encode, Attend, Predict

자연어 처리 관련 딥 러닝 아키텍처를 보면 대게 Embed, Encode, Attend, Predict 4가지로 구성된다. 때문에 이 4가지만 제대로 알아도 이해가 가능하다.

 그러면, 제일 먼저 Embed. 단어를 n차원 실수 공간으로 옮기는 작업을 말한다. Image 따위를 vector로 변환하는건 다른 위상 공간으로 embedding하는 것이 아니므로 그냥 encoding이라는 표현을 쓴다. 여튼 수학표기는 다음과 같지:

\(W: \mathrm{words} \to \mathbb{R}^n\)


 다음은 Encoding 작업인데, "embedded vectors"를 sentence matrix로 계산하는 과정이다. 여기서 s는 (zero-padded) sentence length이고, d는 embedding의 dimensionality를 뜻한다:

sentence matrix \(A \in \mathbb{R}^{s×d}\)


 다음으로 Attend. "attended vector" 라는 표현을 자주 볼 수 있는데, 이는 행렬이 다시 single vector로 차원 축소되었다는 얘기다. max-pooling, sum-pooling 뭐 그런 방법을 사용하는데, MathJax에 익숙치 않아서 대강 적어보면 요정도 되시겠다:

attention vector \(σ\) = SumPool\((A_{i,1})\), ..., SumPool\((A_{i,K})\)


 마지막으로 Predict. 위 단계에서 구한 "attended vector"가 출력층에 전달되는 과정이다. SoftMax 뭐 그런 확률 모델 등이 있는데 너무 많으니 생략. NLP 모델은 대게 feed-forward 구조라서 보통 이 4가지의 단계를 따른다. Training은 back propagation이 있겠는데 최적화 이론은 조금 긴 얘기라 역시 생략. 

 그림으로 표현해서 구독자들께 전달하고 싶긴하나 귀찮고 어려운 작업이라 .. 검색한 이미지를 가져다 붙이면 대략 이런 느낌이다:


 최근 논문 중 paraphrase detection, factoid Q&A, 기타 등등 대부분은 이 4가지로 끝나는걸 볼 수 있다.