「異例中の異例? モノをつくらずに受賞」(Hack Day最優秀賞編)

「異例中の異例? モノをつくらずに受賞」(Hack Day最優秀賞編)

7月に開催したHack Dayでは、最優秀賞、投票で選ばれるHappy Hacking(社内限定・公開)賞、技術賞、UX賞、課題解決賞、メディアアート賞の7つの賞が各チームに送られました。

今回は、最優秀賞を受賞したチームのメンバーに話を聞きました。実は受賞にとても戸惑ったとのこと。その理由は……?
(左から菅原、石橋、山田、鈴木)


「モノづくり」をしなかったのに最優秀賞?


-表彰式でチーム全員が「なんで?」という表情でしたが、みなさん同じ気持ちですか?

(全員うなずく)

鈴木:
まず、Hack Dayのルールである「動くプロトタイプ」を一切作っていないので、選考対象になっていること自体にびっくりしました。このチームは24時間ひたすら機械学習して、その評価結果について淡々と発表しただけなので。

image

(表彰式で)

- 今回のテーマである、日米為替における予測モデルの提案と評価–機械学習による為替予測AIの実装」。これはどのように決めたのですか?

鈴木:
とりあえず、機械学習の最近流行ってるアルゴリズムやツールを使ってなにかやろう、という話だけしてたよね。

山田:
私たちは新卒同期で、入社以来Hack Dayはほとんど参加しているのですが「使う技術」が決まったあとで実際にテーマを決めることがほとんどです。
この2つを使う前提に24時間で学習データの準備も含めてなんとかなりそうなテーマを検討した時に、石橋と菅原が最近投資に興味があるということで、為替予想をテーマにしました。

菅原:
そうですね、そんな感じだと思います。
普通Hack Dayって、チームで何か1つのプロダクトを作ると思うんですが、我々は今回、データセットだけは全員同じものを使い、使うライブラリやサーバ、アルゴリズムは各自それぞれで好きにやるという(笑)

image

(左が鈴木)

- ということは……今回のHack Dayの24時間は、チーム全員での作業はしていないということですか?

鈴木:
はい、一人ひとり別々に作業しました(笑)

石橋:
機械学習は、アルゴリズムやパラメータ、使うデータの前処理等、相当泥臭い試行錯誤が必要ですからね。
今回は24時間で僕たちが「アンサンブル学習」した感じでしたね。僕は残念ながら良い結果が出なかったんですが(笑)

鈴木:
そもそも、24時間の時間的な制約で機械学習で何か結果を出すというのは、ほとんど運頼みなことなんです。技術力が高いから結果が出せるというわけでもないですし。
実際、メンバーの中で私が最も為替についての知識がないのに、みんなにデータの数字の意味を教えてもらいながら作ったモデルが1番予測精度が高いという(笑)

山田:
(鈴木)周くんは前回のHack Dayで、「学習用の画像データはHadoop回して大量に集めました。でも何も出ませんでした。ごめんなさい!」って発表してたよね?
今回は24時間で結果が出た、という点を評価していただいたのかもしれません。

鈴木:
そうだね、今回は一応ちゃんと結果が出て、予測精度の評価もしたし。

石橋:
数値検証の可視化まで行ったのも大きい気がするね。

菅原:
たしかに。「予測しました」だけじゃなくて予測と実測をグラフで出したり、推定誤差平均(MAE)で評価したりできたのは良かったね。

image

(左から山田、菅原)

みなさんが Hack Day に出場する理由を教えてください。

鈴木:
「業務で使うまではいかないけれど、ちょっと気になっている」技術を、何かを作りながら試してみる良い機会だからですかね。

石橋:
入社してから毎年出ているので、もう習慣になっているのかもしれません。
このメンバーの特徴は、どうでもいいところをすごく作りこむところなので、その点も楽しいです。みんなバックエンドのエンジニアだということもあり、見た目よりも裏側の仕組みを重視することが多いです。

Hack Dayは東京モーターショーみたいなものなのではないかと最近思っていて。モーターショーは「カッコイイ車」を見せる場所で、使える車を見せる場所ではないんですよね。それで言うと、私たちは Hack Day で「すごく使える車」を作ろうとしているんだと思います。

鈴木:
すごく使える車って言うより、「最近の論文で出てた技術を使って、パーツ作りました」くらいな感じな気がする。エンジンとか、ブレーキとか、タイヤとか。

石橋:
たしかに。今回は車作るところまでやってないね(笑)
エンジンだけ作ってポンって置いてある感じ。「こんなにハイスペックなエンジンです」っていう、数値データが飾ってあるみたいな。

image

(石橋)

- 今回、特に大変だったのはどんなところですか?

菅原:
(モデルが)上手く学習できるまでひたすらトライ・アンド・エラーし続けたことでしょうか。Hack Dayにかぎらず、この手の予測モデルを機械学習で作るときには避けては通れないところですが、Hack Dayだと時間の制限がキツいですからなおさら大変でした。

鈴木:
アプリを作っているなら、残り時間に間に合わなそうであれば「機能を削る」という対応ができます。でも、機械学習の場合、学習が進むのを「結果が出たらいいなあ~! 」とただひたすら祈りながら眺めるくらいしかできないですから(笑)

前回「何も出ませんでした」って謝った時は、学習に数時間くらいかかるモデリングをしていたので、1日目の12時間を過ぎた時点で、これは明日だけじゃ無理だってなってましたね。あと3回しかパラメータいじれないんじゃ絶対無理だっていう。

石橋:
それもあって、今回は各人独自にアンサンブル学習をしたと。

菅原:
でも、Hack Dayでやることじゃないですよね(笑)

今回、特に印象に残っていることは?

菅原:
業務であまりやっていなかったことができたので、単純に機械学習のノウハウが溜まったことがよかったです。 Hack Dayで得たノウハウを業務で使うこともできるので。

山田:
過去何度か機械学習をテーマにしたことがありますが、これまで一度も結果を出せなかったので、今回は結果が出たことがよかったですね。
そして、今回のHack Day では、プレゼンをする90秒間だけではなく、私たちの作品に興味を持ってくれた人に直接、成果物の展示や説明ができる時間があったので、発表だけではないコミュニケーションの時間を楽しむことができました。

一度最優秀賞をとってしまうと、今後のHack Day ではハードルが上がると思いますが……次はどんなことをやりたいですか?

鈴木:
絶対に賞をとることはないと思って安心して好きにやってたんですが……賞をいただいたので、今後は芸風? を変えないといけないなと(笑)
でも、見た目や機能を作りこむ気はないですね。自分たちがその時興味があるテーマで、自分たちが面白いと思うことに技術的なチャレンジをすると。

以前、使い捨てのチャットが立ち上げられるフレームワークを開発したのですが、その時はいかにコマンドが少なくチャットがインターネットに公開されるか、消す時もコマンド一発でDBもろとも消えるとか、そういう点にこだわりました。見た目のテンプレートもコマンド1発だったかな。
ターミナルから「コマンド一発」でできることが大切。

石橋:
普通は、「コマンド一発で」ではなく、本当は「ボタン一発(1タップ)」ですよね(笑)

山田:
今回は自分たちが深めていきたいと思う分野、楽しいと思うものをやって賞をもらえたので、それはよかったなって思います。今後もHack Dayには同じ気持ちでのぞむつもりです。
ただ、 機械学習はかなり泥臭い作業ですし、結果も出たり出なかったりということもあって、 Hack Day のテーマとしては不向きだと思いますけどね。

石橋:
Hack Dayで受賞するのであれば、オンラインのテストをしていい数値の結果をきちんと出せた、くらいまでできて受賞したかった、という少し悔しい思いがあります。まだオフラインテストしかできていないので。
そういう意味でも、まだ最優秀賞をいただくのは早いと思っていて、「功労賞」くらいでよかったような気がします。

鈴木:
「はじめて結果が出ておめでとう賞」くらいでよかったよね(笑)

image

【関連リンク】
「テクノロジーを楽しむイベント」Yahoo! JAPANでHack Day Sparksを開催しました
「テクノロジーを楽しむイベントに」Yahoo! JAPANのHack Day Sparks 2016