다니엘 라시먼(Daniel Julius Lasiman)은 트래블로카(Traveloka)에서 머신러닝 엔지니어로 일하며 숙박업소의 이미지에 설명을 넣는 작업을 하고 있었다. 그는 이미지에서 문장을 자동으로 생성할 수 있는 엔진을 만들어 업무효율을 높이고 싶었다. 그는 커패시(Karpathy) 스탠퍼드대 교수가 2016년 발표한 이미지 자동 캡션에 대한 논문을 접한 후 본격적으로 머신러닝 연구를 시작했다.

다니엘 엔지니어는 인공지능이 딥러닝(Deep Learning)의 등장으로 빠르게 발전하고 있다고 보고 논문과 추천 글을 읽으며 독학을 시작했다. 그 후 오리올 빈얄스의 이미지 자동 캡션 논문에서 영감을 받아 논문의 방법론을 구현하는 데 노력을 기울였다. 마소 391호에서는 다니엘 엔지니어의 재구현 과정 및 사례를 '이미지를 문장으로 설명해주는 딥러닝 모델'에서 볼 수 있다.

빈얄스의 논문 예시 / 마이크로소프트웨어 391호 발췌
빈얄스의 논문 예시 / 마이크로소프트웨어 391호 발췌
다니엘 엔지니어는 머신러닝 모델 훈련에 플리커 8K 데이터셋을 이용했다. 이 데이터셋에는 학습셋 6000장, 검증셋 1000장, 테스트셋 1000장으로 총 8000장이 준비돼 있다. 빈얄스가 사용했던 'Inception v1' 대신 'Inception v3'를 사용해 CNN(Convolutional Neural Networks)을 구현했고, RNN(Recurrent Neural Networks)은 'singled-layered' LSTM 대신 'multi-layered' LSTM을 사용해 성능을 높였다.

이미지 자동 캡션에 대한 다니엘 엔지니어의 머신러닝 모델 개발기는 '마이크로소프트웨어 391호(www.imaso.co.kr/archives/1301)'에서 확인할 수 있다.