태그 보관물: Quora

Quora Dataset: Question Pairs

quora-question-pairs

질문, 대답 사이트로 유명한 쿠오라(Quora)에서 머신러닝 데이터셋을 공개하였습니다. 이 데이터는 위 이미지에서 볼 수 있듯이 두개의 질문이 같은 질문인지 아닌지를 구분하는 과제입니다. is_duplicate 에 1이면 두 질문은 동일한 것입니다. 왼쪽 열에는 두질문 묶음에 대한 id 와 각 질문별 아이디 qid 가 있습니다. 쿠오라는 사람들이 동일한 질문을 많이 생성하여 정보가 단편화되는 것을 막기 위해 이 문제가 아주 중요하다고 생각합니다. 쿠오라는 동일한 질문을 구분할 수 있는 효과적인 접근 방법을 찾기를 원하고 있습니다. 질문 묶음이 40만개가 넘으며 이 중에서 중복된 질문 묶음은 대략 15만개, 서로 다른 질문은 25만개 정도입니다. 이 파일의 사이즈는 58메가 정도이며 다운로드는 여기에서 받을 수 있습니다.

Rajat Monga’s Quora Session

rajat-monga

텐서플로우 엔지니어링 디렉터인 라잣 몽가(Rajat Monga)의 쿠오라 세션이 열립니다. 라잣 몽가는 텐서플로우 페이퍼의 공동 저자이며 텐서플로우 엔지니어링 팀을 이끌고 있어 텐서플로우에 관한 질문이 많이 올라올 것으로 보입니다. 질문은 지금부터 등록이 가능하며 대답은 다음주 목요일 오전 4시(한국 시간)에 시작됩니다.

Andrej Karpathy’s Quora Session

andrej-quora

OpenAI의 안드레이 카패시(Andrej Karpathy)가 쿠오라(Quora) 세션에 참여합니다. 질문은 지금 부터 등록이 가능하며 대답은 태평양 서머타임시간(PDT)으로 다음주 목요일 오후 12시 부터 입니다. 우리시간으로는 금요일 아침 4시가 될 것 같습니다.

(업데이트) 안드레이 카패시가 많은 질문에 응대를 해주진 못했지만 답변한 몇몇 내용을 요약해 보았습니다.

학교에 있을 때는 방해받지 않고 작업할 수 있는 밤 시간을 좋아해서 새벽 5시에 자서 정오에 일어났다고 합니다. OpenAI에 오면서 8시 퇴근 10시 기상을 하고 있습니다. 가끔 해커뉴스, 레딧, 트위터를 보지만 많이 하지는 않습니다. 하루에 한두개의 페이퍼를 읽고 있고 OpenAI에서 매일 오후 3시에 리딩 그룹(아마도 페이퍼를 읽는다는 거겠죠) 모임이 있다고 합니다.

스탠포드의 CS231n이 MOOC로 제공될 수 있는지에 대한 대답은 약간 회의적이네요. MOOC로 제공하기 위해서는 또 다른 많은 노력이 필요하다고 합니다. 강의 노트나 숙제 등이 많이 공개되어 있어서 굳이 그럴 필요가 없을 것 같긴한데 무엇보다도 이제 안드레이는 스탠포드를 떠났기 때문에 이 강의를 MOOC로 공개하는 것은 전적으로 후임인 저스틴 존슨(Justin Johnson)에게 달렸다고 합니다.

구글에 인턴으로 일했었는데 2011년에는 비감독학습(unsupervised learning)이 사람들의 관심사였고 2013년에는 감독학습(supervised learning), 2015년에 방문했을 때는 강화학습이 유행이었다고 합니다. OpenAI에 끌린 이유는 초기 멤버로 참여할 수 있다는 것도 매력적이고 학교와 스타트업의 하이브리드 성격을 가지고 있는 구성이 맘에 들었다고 합니다. 현재 OpenAI에서 진행하고 있는 여러 프로젝트 중에 안드레이를 포함해서 많은 사람들이 참여하고 있는 프로젝트가 있다고 합니다. 아직은 자세히 말할 순 없지만 진일보된 무엇인 것 같습니다. 곧 발표를 한다니 기대가 됩니다.

강화학습에 대한 도서로는 서튼의 책(Reinforcement Learning: An Introduction)을 추천했고 머신러닝에 관한 책으로는 비숍의 책(Pattern Recognition and Machine Learning)을 추천했습니다. 특별히 강화학습은 비교적 최근에 성장하고 있는 분야라 일목요연하게 정리된 자료가 부족하다고 생각하고 있습니다. 이전에는 NLP, 컴퓨터 비전 등 각 분야가 독립적으로 발전되어 하나의 인공지능 에이전트(agent)로 합쳐질 것이라 생각했지만 지금은 모든 문제를 아우르는 에이전트(full-stack agent)로 귀결될 것으로 내다 보고 있습니다.

이 분야의 발전을 위해 필요한 것은 하드웨어, 데이터, 알고리즘, 소프트웨어(인프라스트럭처) 네가지로 꼽았습니다. 이 중에서 지금 하드웨어의 발전은 반복된 실험을 빠르게 할수 있게 도와줄 뿐입니다. 특별히 소프트웨어 인프라스트럭처의 중요성이 과소 평가되었다고 생각합니다. 이러한 면은 최근 OpenAI가 블로그에 올린 ‘Infrastructure for Deep Learning‘에서도 느낄 수 있습니다. 안드레이도 깃, 도커, 쿠버네티스(kubernetes) 등을 배우고 있다고 합니다.

안드레이는 처음엔 매트랩(Matlab)을 썼다가 파이썬과 넘파이(numpy)를 사용했고 그 이후에는 토치(Torch)를 사용했다고 합니다. 지금은 텐서플로우를 사용하고 있고 OpenAI의 다른 사람들도 텐서플로우를 사용한다고 합니다. 텐서플로우와 토치는 장단점이 있지만 간단하고 빠르게 실험을 해보기에는 토치를 추천하고 있습니다. 하지만 텐서플로우가 향후 이 분야의 표준이 될 것으로 보고 있습니다. 무엇보다도 머신러닝과 딥러닝을 배우는 가장 좋은 방법은 직접 알고리즘을 코드로 작성해 보는 것이라고 강조하고 있습니다.

Ask Jeff Dean

Quora에는 ‘어떻게 하면 머신러닝 전문가가 될 수 있나요?’ 나 ‘데이터 과학자가 되려면 PhD가 필요한가요?’ 같은 질문들과 답변이 종종 올라오곤 합니다. 좀 오래됐지만 재미있는 질문과 답변이 있어 소개해 드립니다.

제프딘은 어떻게 그렇게 빨리 인프라와 시스템 엔지니어링에서 딥러닝 분야 전문가가 된건가요?

이 질문은 2014년 12월 경에 시작되었습니다. 사실 제프딘은 구글 빅데이터, 분산환경의 전문가로 잘 알려져 있습니다. 특히 맵리듀스, 빅테이블, 스패너 등을 만든 것으로 유명하죠. 그런데 언제부터인가 구글 머신러닝의 최고수가 되어 있으니 이런 질문이 나올법 합니다. 예상되는 답변이라면 제프딘은 원래 똑똑한 사람이라든가, 딥러닝이나 뉴럴 네트워크의 이론이 사실상 그리 어려운게 아니라던가 등이 있을 것 같습니다. 어쨋든 제프딘이 딥러닝에 대해 아는 척 하는 수준은 분명히 아닙니다. 그는 구글 브레인 팀의 리더이며 구글 IO 2016의 머신러닝 세션의 패널로 참석했었고 딥마인드의 알파고와 이세돌 바둑 대국 때 한국에 왔었습니다. 또 텐서플로우 페이퍼의 주요 저자임은 물론이고 스탠포드 CS231n 강의의 마지막 시간에 초청되어 강의와 질의 응답을 하는 것으로 보아 충분히 짐작할 수 있습니다.

그런데 2015년 3월에 재미있는 답변이 올라왔습니다. 펜실베니아주 스와스모어 대학의 한 학생이 직접 제프딘에게 물어보았다고 합니다.

ask-jeffdean

“저는 이 분야가 잠재력이 많고 흥미로운 분야라고 생각했습니다. 뉴럴 네트워크게 대해 많이 알지 못했지만 분산환경에 대해서는 잘 알고 있었죠. 그래서 주방이던 어디던 사람(전문가)들에게 다가가 그들과 대화를 했습니다. 전문가들과 대화하고 함께 일하면 여러가지 어려운 문제도 해결할 수 있고 정말 빠르게 배울 수 있을 겁니다.”

제프딘의 솔직하고 명료한 대답이네요. 제프딘이 앤드류 응(Andrew Ng) 스탠포드 교수와 함께 구글 브레인 팀을 만든 것은 2011년 경으로 그 즈음부터 본격적으로 딥러닝 분야에 대한 지식을 쌓지 않았을까 합니다.

그럼 싸리문 밖에서 고개만 내밀고 있는 제가 들어갈 수 있는 부엌은 어디에 있는 걸까요? 🙂