데이터 과학자에서 AI 연구자로 들어서며…

2018년 9월에 5년 넘게 몸담았던 DT조직에서 AI 조직으로 옮기면서 AI 연구자로 새로운 직무를 시작했다. 그동안 이러한 소식을 블로그에 올리지 못한것은 이 발걸음에 불확실함과 기대, 불안이 공존해 있었기 때문이었다. 4개월이 지나고 어느정도 바쁜 적응의 시간을 보내고 펜을 들어 그 소회를 고백해 보고자 한다. 데이터 분석, 기술, 문화 AI 연구자가 되기 전에 6년 넘게 데이터 분석 업무를 […]

계속 읽기

Attention API로 간단히 어텐션 사용하기

GluonNLP NLP쪽에서 재현성의 이슈는 정말 어려운 문제이다. 실제 모형의 아키텍처와 적절한 전처리 로직이 잘 적용 되었을때 성능이 도출되나 대부분 리서치에서는 전처리 로직에 대한 충분한 설명이 되어 있지 않다. 따라서 아키텍처의 이해보다는 전처리에 대한 문제 때문에 후속 연구가 진행되지 못하는 경우가 많다. 전처리의 이슈가 큰 또 다른 이유는 처리 로직의 복잡도 때문에 같은 로직이더라도 다양한 구현 […]

계속 읽기

딥러닝 프레임워크로 임베딩 제대로 학습해보기

“gensim이 아닌 직접 딥러닝 네크워크 구조를 구현해 임베딩을 성공적으로 학습해본 경험이 있는지요?” 이 글은 네트워크 구조의 임베딩 학습을 숫하게 실패해본 분들을 위한 글이다. 많은 온라인 문서에서든 책에서든 word2vec을 설명하는 부분에서 딥러닝 프레임워크 기반 그래프 구조로 설명을 한다. 게다가 코드와 학습까지 Keras와 같은 프레임워크로 동작하는 예제를 제공하나, 추출된 단어 벡터를 기반으로 Word Analogy나 정성적인 평가에 대한 […]

계속 읽기

AI, 빅 데이터 연합 동아리 컨퍼런스 자문 후기

회사 HR의 요청으로 6월 28일 연세대에서 있었던 빅데이터, AI 연합 동아리 컨퍼런스 자문에 참석 중 받았던 질문을 늦었지만 정리해보고자 한다. 바로 정리하려 했으나 개인적인 용무로 좀 늦었고 지금 기억나는 주된 질문 몇가지만 정리한다. 이렇게 정리를 하는 이유는 타 대학에서 관련 연구를 하시는 분들과 정보격차를 해소해드리기 위함과 개인적으로는 추후 비슷한 질문이 나올시 좀더 일관성 있는 답변을 […]

계속 읽기

Text Analysis Developers’ Workshop 2018 참석 후기

작년부터 1년엔 한번씩 Text Analysis Developers’ Workshop에 참석을 하게 되었고 작년 런던 정경대에서의 워크샵 참석 이후 NYU의 워크샵에 다시 초대되었다. 워크샵 참석을 위한 숙박비 및 비행티켓 등은 NYU와 rOpenSci에서 펀딩을 받았다. 기간동안의 일비, 로밍 비용은 SK Telecom에서 지원해주었다. 세계적으로 많이 쓰이는 텍스트 분석 오픈소스 개발자들을 대상으로 초대가 이루어 졌고, 초청받은 사람만 참석 가능한 특징을 가지고 […]

계속 읽기

KoSpacing : 한글 자동 띄어쓰기 패키지 공개

띄어쓰기는 형태소 분석 이전에 반드시 수행해야 되는 중요 전처리 과정중에 하나이며, 이 때문에 공개된 형태소 분석기에는 일종의 자동띄어쓰기 모듈이 숨겨져 있는 경우가 많다. 하지만 그런 띄어쓰기 엔진의 성능이 대부분 좋지 않아 허울뿐인 경우가 많다. 필자가 만든 KoNLP 역시 그중에 하나였다. 물론 띄어쓰기는 형태소 분석 이전에만 사용하는게 아니다. 띄어쓰기 모듈은 Speech To Text 혹은 음성인식 모듈에서 […]

계속 읽기

Gluon으로구현해보는 한영기계번역 모형 – 마이크로소프트웨어 기고문

2월 초에 마이크로소프트웨어에 기고한 원고를 공개한다. 소스코드는 이곳에 공개되어 있다.  Gluon을 공부하면서 코드를 구성하고 모델이 동작 가능하게 하는데 주말 퇴근 후 여가시간을 활용해 약 1.5개월이 소요되었다. 그래도 1.5개월만에 이정도 동작 가능하게 한건  딥러닝 덕분이다. 원고를 청탁 받으면 항상 주제를 상향시켜서 진행하는 습관이 있는데, 신경망 기계번역글도 마찬가지였다. 아무 경험 없는 상태에서 시작해서 글을 마칠때까지 믿고 맡겨준 […]

계속 읽기

신경망 한영 번역기 코드 공개

딥러닝으로 구축한 한영 번역기 코드를 공개한다. 대부분 fixed length로 인코더 디코더를 구현하는 seq2seq 예제모형에서 좀더 나아가서 variable length를 인식해 학습이 되게끔 구현했다. 아마도 Gluon으로 해당 코드는 처음이지 않을까 한다. 모든 코드를 Symbol로 구현해 hybridize 모드로 학습이 될 수 있게끔 했고, 기본적으로 teacher forcing 방식으로 학습을 구성했다. 임베딩 학습도 다소 특이하게 한,영 단어를 모두 하나의 임베딩 […]

계속 읽기

딥러닝이 덧셈을 하는 방법, Attention Mechanism으로 살펴보기

필자가 지난번 seq2seq기반 덧셈 모형 빌드(with Gluon)을 Gluon으로 구축했으며, 잘 동작하는 모습을 보여줬다. 해당 코드를 정리하면서 딥러닝이 어떠한 방식으로 덧셈을 하는지 조금더 엿볼 수 있으면 어떨까 하는 생각이 들었다. 이 글을 보기 전에 이전 포스트를 먼저 읽어보길 권한다. 이 포스트에서 보여줄 두가지 부분은 어텐션 매커니즘(attention mechanism) 구현과 시각화 그리고 Gluon 모델의 학습/예측 퍼포먼스 향상을 할 […]

계속 읽기

seq2seq기반 덧셈 모형 빌드(with Gluon)

필자가 Gluon을 시작한 계기는 바로 Keras로 seq2seq기반의 네트워크를 구축하기가 매우 어렵거나 모호해서 였다. 사실 간단한 영한 기계번역기를 Keras로 만들다가 한계에 부딧혀 포기했다. 그 원인은 아래 도표를 보면 알겠지만 학습과 예측의 네트웍 플로우가 다른데 있는데, 이럴 경우 예측 코드는 Keras에서 작성하기가 어려워진다. 사실 어렵다기 보다는 모호한 코드를 짜게 될 가능성이 많다. 그래서 해당 코드를 작성하고 이틀만 […]

계속 읽기