AI로 논문을 한줄요약하기

MIT Technology Review에 실린 기사에 따르면 Allen Institute for AI이라는 연구소에서 논문 검색 엔진 Semantic Scholar를 개발했다고 한다. (근데 이전에도 있던것 같다. 아마 이번에 새로 기능을 추가한 듯.) 이 검색엔진의 핵심은 논문에 소개되어 있듯 AI를 이용해서 TL;DR (Too long, didn’t read), 즉 한줄 요약을 만들어 준다는 것. 예시는 아래와 같다.

Image
Taken from 논문

아주 간단하고 강렬한 기능이다 ㅋㅋ 시험삼아 RSA를 검색해보니 다음과 같이 아주 잘 요약해준다.

Image

근데 논문이 좀 깊은 분야를 다루면 논문의 내용이 아닌 분야의 일반적인 내용을 TL;DR로 내는 경우가 있는듯 하다. 또한 검색엔진 자체가 검색어에 가장 어울리는 논문말고 다른 논문을 상위로 올리는 경우가 있는듯. 또 다른 한계로는 지금은 CS계열 논문에만 TL;DR을 제공한다고 한다. 잘 모르는 분야 논문, 특히 머신러닝쪽 검색할때나 가끔 쓸듯하다 ㅋㅋ

국제적으로 인터넷 검열이 증가하고 있다

국제적으로 인터넷의 검열이 증가하고 있음을 밝힐 수 있는 자동화된 툴이 개발되었다는 (ACM TechNews에서 들고 온) 미시간 뉴스의 소식. 미시간 대학의 연구자들은 CensoredPlanet이라는 툴을 개발해 2000여개의 사이트를 20달간 다양한 방식으로 검열이 있는지를 모니터링한 듯 하다. 총 데이터는 200억개정도 된다는 듯. 기존에 비해 훨씬 큰 데이터라고 한다. 논문ACM CCS 2020에 얼마전에 발표되었다고. CCS가 이런 논문을 받는건 또 처음 알았네.

기술적인 측면을 제외하면 사실 뻔한 발견들을 자동적으로 밝힌 것 같기도 하다. 사람들이 직접 업데이트를 해주지 않으면 잘 알기 어려운 소식들을 자동적으로 밝히는 데 의의가 있지 않나 생각함. 특히 공개적인 이유 없이 갑자기 차단하는 것도 알게 될 수 있을듯.

대표적인 발견으로는 최근 2년간 15개의 국제적으로 있었던 큰 검열을 발견했고, 그중 10개는 기존에 정확히 리포트가 되어있지 않던 것이라고. 그리고 그 검열에는 Freedom House에 의해 “가장 자유로운 국가”들로 분류되던 노르웨이, 일본 (?), 이탈리아, 인도 (?), 이스라엘, 폴란드 등도 포함되어 있다고 한다.

Image
논문에서 들고온 최근 발견한 검열 사건들.

또한 저자들은 100여개 이상의 국가에서 DNS 검열의 증가 추세를 발견하여, https만으로는 인터넷 검열을 피할 수 없을것이라고 지적하고 있다. 중국과 투르크메니스탄이 가장 심각하다고.

우리나라도 2019년 인터넷 검열 논란 (한글위키 별도 페이지가 없어 불가피하게 나무위키를 링크했다 -_- 나무위키가 역사를 기록하고 있다…)에서 DNS차단이 크게 비판받은 적 있는데, 위 큰 사건의 리스트에서 빠진건 아마 2000개의 사이트와 대한민국에서 차단한 사이트의 교집합이 적었던게 아닐까 싶다.

기존에 OONIICLab등의 사이트도 있다고 해서 들어가보려 했는데 -_- 안랩이 OONI를 유해사이트라고 판단한다. 뭘까…

라마누잔의 “가장 쉬운 공식”

John Baez 교수님의 블로그 Azimuth흥미로운 식이 올라와서 한번 요약해본다. 오랜만이 수학글 ㅋ

π는 3보다 약간 크고, e는 3보다 약간 작다. 그 평균은? 기하평균은 다음과 같다.

\sqrt{\pi e}= 2.92228236...

식 자체로는 딱히 흥미로워보이지 않는데, 라마누잔이 1914년 The Journal of the Indian Mathematical Society에 다음 식의 증명을 묻는 퍼즐을 냈다고 한다.

\displaystyle \left(\frac 1 1 + \frac 1 {1\cdot 3} + \frac1{1 \cdot 3 \cdot 5} + \cdots\right) + \frac 1{1+\frac 1{1+\frac 2{1+\frac 3{1+ \frac 4{1+ \frac 5{\ddots}}}}}} = \sqrt{\frac{\pi e}2}

와 그냥 뭔가 싶다 -_-!! 이것이 바로 어릴 때 매료되었던 수학의 아름다움이 아닌가 ㅋㅋㅋ 라마누잔이 하디에게 자신을 처음 소개하는 글에 이 식도 있었다고.

John Baez 교수님은 이 식을 라마누잔의 “가장 쉬운 공식” (Ramanujan’s easiest formula)이라고 불렀다. 이 글에서는 이 식의 간략한 증명을 다루고자 한다.

계속 읽기

드론택시가 서울을 날다

드론택시 시험 비행을 했다는 블룸버그지의 소식. 조선일보 기사도 있다. 서울과 대구에서 중국 이항(EHang)사에서 3억원에 구매한 제품인 모양. 생각보다 싼 것 같은데, 시제품이여서 그런게 아닐까 싶다. 실제로는 2인승인데, 안전 등의 문제로 80kg의 쌀포대를 실어 운행해본 모양. 운전자도 없이 아마 자동으로 움직이는 듯하다.

서울의 복잡한 교통상황을 생각하면 굉장히 빠르지만 비싼 교통수단이 될 수 있지 않을까 싶다. 약간 걱정은 많은 드론이 뜰 경우 충돌이나 사고(버드스트라이크 등)의 위험을 관리할 수 있을지. 그리고 이착륙을 할 정류장을 많이 확보할 수 있을지 등이다.

또다른 우려는 왜 중국회사의 제품을 쓰냐는 것인데, 연합뉴스의 우려를 다룬 기사를 보면 한국에는 그런 드론을 만드는 제품이 없다는듯.

난독화 이야기 (2) 가장 좋은 난독화란?

난독화 이야기 (1) 에서 가상 블랙박스 난독화, 즉 임의의 프로그램을 인풋-아웃풋만 알 수 있도록 일종의 “프로그램을 암호화”하는 난독화 기술이 불가능함을 설명했다. 그렇다면 자연스러운 질문은 얼마나 강력한 난독화가 가능한지, 가장 좋은 난독화가 무엇인지에 관한 것이다. 한참 쉬었는데, 난독화에 관한 콴타매거진 기사가 올라와서 다시 돌아와서 조금 더 써봄ㅋ


사실 2001년의 가상 블랙박스 난독화 불가능성 논문에서 이미 제시한 개념이 있다. 바로 구별불가능성 난독화, indistinguishability obfuscation, 소위 “IO”라고 불리는 난독화이다. 구별불가능성 난독화는 두 동등한 프로그램, 즉 크기가 같고 입출력이 같은 프로그램 A와 B를 난독화한 결과 O(A)와 O(B)가 구별 불가능하게 만들어준다.

[정의]구별불가능성 난독화 O는 프로그램 P를 인풋으로 받아 다른 프로그램 O(P)를 아웃풋으로 내는 효율적인 컴파일러로써 다음을 만족한다.

  1. (정확성) P의 입출력을 그대로 보존하여 O(P)(x)=P(x)를 만족한다
  2. (안전성) 크기가 같고 입출력이 같은 프로그램 A,B에 대해 O(A)와 O(B)가 구별 불가능하다.

여기서 구별불가능하다는 것은 임의의 효율적인 알고리즘을 들고와도, X=A 또는 B에 대해 O(X)에서 X가 A인지 B인지 결정할 확률이 맞출 확률이 1/2, 즉 찍는 것에 가깝다는 것.처음 보면 이게 뭔 의미인가 싶다. 나도 그랬다 -_- 하지만 이 정의만으로도 꽤 많은 프로그램의 정보를 숨길 수 있다. 다음 예시를 보자.

은행 등의 앱을 편리하게 이용하기 위해서는 일부 개인정보, 예를 들어 계좌번호와 비밀번호 등을 앱에 저장해놓는 것이 편리하다. 이를 가장 효율적으로 구현하는 방식은 그냥 비밀번호와 계좌번호를 그대로 앱에 저장해놓는 것. 근데 이건 앱을 뜯어볼 수 있으면 비밀번호와 계좌번호를 그대로 볼 수 있고, 바로 개인정보의 유출로 이어진다.

그렇지만 만약 발전한 암호기술을 바탕으로 계좌번호와 비밀번호를 암호화한 상태로 똑같은 태스크를 할 수 있다면? 이 경우에는 앱을 뜯어도 얻을 수 있는 정보가 없다. 바로 IO가 말하는 것은, 이 두 프로그램을 IO로 난독화 한 경우 구별이 불가능하고, 따라서 단순히 구현한 프로그램을 난독화하는 것만으로 프로그램을 뜯어보는 것에 대한 강력한 보안을 얻을 수 있다는 것.


잠깐, 우리는 난독화된 프로그램의 안전성을 논하기 위해 다른 안전한 프로그램을 들고왔다. 이 생각을 천천히 살펴보면 다음과 같은 직관을 얻을 수 있다.

IO를 이용해 난독화한 프로그램은 모든 입출력이 같은 프로그램 중 가장 안전하다!

이런 직관에 착안하여 2007년 골드와서 교수님과 그 제자였던 Guy Rothblum이 Best-possible obfuscation이라는 개념을 제안했다. 즉 난독화된 프로그램이 동등한 프로그램 중 가장 안전해지는 난독화 기술이 무엇인지에 대해 질문을 제시한 것.

저자들의 대답은 다음과 같다.

[정리] 컴파일러 O가 효율적인 IO 방법인 것과 효율적인 Best-possible 난독화인 것은 동치이다.

아주 간단하고 깔끔하다. 이 정리를 조금 더 엄밀하게 말하기 위해 Best-possible obfuscation (BPO)의 정의를 다음과 같이 살짝 정의하자.

[정의] Best-possible 난독화 O는 프로그램 P를 인풋으로 받아 다른 프로그램 O(P)를 아웃풋으로 내는 효율적인 컴파일러로써 다음을 만족한다.

  1. (정확성) P의 입출력을 그대로 보존하여 O(P)(x)=P(x)를 만족한다
  2. (안전성) 임의의 알고리즘 L에 대해서, 그리고 임의의 크기가 같고 입출력이 같은 프로그램 A,B에 대해 다음을 만족하는 효율적인 알고리즘 S가 존재한다:

L(O(A))와 S(B)의 결과 분포가 구별 불가능하다.

정확성은 IO와 정확히 같고, 안전성은 언뜻 봐서는 무슨 뜻인지 꽤 헷갈린다. 대충 그 뜻을 해석해보자면, 난독화 결과 O(A)에서 얻을수 있는 결과는 사실 임의의 다른 동등한 프로그램 B에서 얻을수 있었다는 뜻. 다시 말하면 O(A)에서 유출되는 정보는 다른 모든 동등한 프로그램에서 이미 유출되고 있다는 것.

이제 위 정리는 다음과 같이 증명할 수 있다.

[BPO=>IO] O가 BPO라고 하자. L을 identity, 즉 O(A)의 결과를 그대로 내는 알고리즘이라고 하면 임의의 동등한 두 프로그램 A,B에 대해 (O(A), S(A)), (S(A),O(B))가 각각 구별 불가능하고, 따라서 O(A)와 O(B)도 구별 불가능하다.
[IO=>BPO] O가 IO라고 하자. 임의의 L에 대해 S를 잡아줘야 한다. S(*)=L(O(*))로 정의하면 O(A)와 O(B)가 구별 불가능한 것에서 L(O(A))와 L(O(B))도 구별 불가능.

아주 간단하고 쉽다. 이 논문 이후 난독화의 이론적 연구는 IO가 옳은 목표라는 것에 많이들 동의하게 되었고, 이후 수년간 정체되어 있다가 2013년에 처음으로 그럴듯한 일반적인 난독화 기술이 나온다. 이는 다음 글에서 다룰 예정.

마지막으로 이 논문의 독특한 결과는 다음과 같다.

[정리] P=NP라면 BPO가 존재한다.

암호학적으로는 굉장히 어이없는 결과인게, 암호 시스템이 안전하다는 것은 보통 P≠NP보다도 강력한 결과이다. (즉, 암호가 (다른 가정 없이) 안전하면 P≠NP가 성립한다.) 증명은 자세히는 조금 복잡하고, 대충 아래와 같다.

P=NP라면 임의의 프로그램에 대해 동등한 프로그램 중 "가장 짧은" 프로그램을 효율적으로 찾을 수 있다. 그리고 이 가장 짧은 프로그램은 동등한 두 프로그램 A,B에 대해 같으므로, 이 과정은 IO이고 따라서 BPO이다.

CS대학들의 랭킹 사이트

CSRankings.org이라는 사이트가 있다. 이 사이트에서는 대부분의 대학들의 CS계열 랭킹을 확인할 수 있고, 분야별로 정리해서 볼 수도 있다. FAQ페이지를 보니 US News이나 World Report에서 제공하는 순위는 굉장히 명성(reputation)에 의존하니 좀 더 객관적인, 수치에 기반한 랭킹을 제공하고자 하는듯.

대충 확인해보니 거의 최고의 학회/학술지에 출판한 수로 metric을 주는듯. 정확하게는, 최고 학회에 제출한 페이퍼 하나를 저자 수로 나누어서 카운트하는듯 하다. metric에 citation을 포함하지 않은 것에도 FAQ페이지에 조금 설명이 되어있다.

대충 몇가지 랭킹을 확인하여 알게된 결과는 다음과 같다.

  • 이론계열은 확실히 한국이 약하다. 카이스트/서울대/포스텍 모두 연구자 수도, 논문도 적다. 사실은 미국,유럽+이스라엘 정도가 상위권을 대부분 차지한다.
  • AI계열은 서울대/카이스트도 각각 50/30위권으로 꽤나 연구자도 많고 논문, 연구자도 꽤나 많은듯하다. 이 분야에서 1위는 CMU이다. 2,3위는 칭화대와 베이징대학인데, 카운트되는 연구자 수만 각각 100명가까이 된다 ㅋㅋㅋ
  • 전체 분야는 CMU가 1위인데, 연구자만 160명이 넘는다고 한다 -_-.. 카이스트, 서울대는 각각 19위, 41위.
  • Academia Sinica와 같은 기관이 몇몇 빠져있는 경우도 있는듯.

물론 당연히 재미로만 봐야할 결과. 다만 대학원 지원할때는 꽤나 쓸만한 정보일듯 ㅋㅋㅋ

기침 소리를 통한 COVID-19의 감별

BBC에 보도된 기사에 따르면 COVID-19의 감별을 기침소리로 할 수 있다고 한다! MIT와 하버드의 연구자들이 진행한 연구 결과. MIT News 기사가 비교적 자세한듯.

이 결과에 따르면 2660명의 양성, 2660명의 음성으로 이루어진 총 5320명의 사람들의 핸드폰을 통해 녹음한 기침 소리의 풀에서 4256명의 데이터로 CNN을 통한 학습을 진행해 1064명의 나머지 데이터에 대해 진단을 내려보니 다음과 같은 결과를 얻었다고 한다.

  • 증상이 있는 환자들에게 98.5%의 민감도와 94.2%의 특이도를 (즉, 양성 환자를 98.5%확률로 정확히 판단하고, 음성인 환자를 94.2%의 확률로 정확히 판단) 가지고,
  • 증상이 없는 환자에게도 100%의 민감도와 83.2%의 특이도를 가진다.

그 소리의 차이는 사람이 듣고 판단하기는 어려운듯 하고, 뭔가 푸리에변환을 통해 Mel-Frequency Cepstrum이라는 것으로 변환시켜 CNN으로 학습한듯.

굉장히 신기하다. 이 결과는 IEEE Open Journal of Engineering in Medicine and Biology에 실렸다. 근데 걱정되는 점은 데이터 수가 너무 작은게 아닌가 -_-.. 기계학습을 정말 잘 몰라서 판단이 불가능하다. 저널도 처음 들어보았는데, 이 기사에 따르면 작년에 새로 생긴 IEEE 오픈억세스 저널인듯. 얼마나 믿을 수 있는지는 잘 모르겠지만, (논문에 주장하는대로) 학교 등의 검사가 아주 자주 필요한 곳에서는 유용한 검사로 쓸 수 있을듯하다.