多くの人にとって、人生で最も高価な買い物はおそらくマイホームの購入だろう。大きな金額がかかる住宅の建築だが、その費用は使用される床材やドア部材の量に左右される。戸建て住宅1軒であってもその使用量は膨大であり、使用量の正確な算出には多くの時間を要するだけでなく、知識や経験も求められる。こうした状況下でもミスなく、正しい価格をスムーズに顧客に伝えるために、間取り図画像から住宅ごとの床材やドア部材の量を算出するアルゴリズム開発コンペティションが開催される運びとなった。 本コンペティションで2位に入賞したkazuki_yさんは、通信会社勤務。住宅に関する専門的な知識もなく、AIに触れたのも社会人になってからだという。そんなkazuki_yさんがいかにして今回の結果を勝ち取ったのか。コンペティションへの参加経緯や、取り組みにおける工夫について率直にお話しいただいた。
「習うより慣れろ」の精神で、学習開始からわずか2カ月でコンペティションに参加。
本格的にAIを学び始めたのは、2019年の1月頃。業務でデータ分析を行うこととなったのがきっかけです。業務でAIを使うため、急ぎでスキルを身につける必要があり、必死に勉強しました。統計やプログラミングに関する知識はあったので、専門書を頭から一冊読んで基礎はある程度理解できたのですが、実装で少してこずりました。最初は専門書に書いてあるものをそのまま実装していたものの、今思うと特徴量を何千個も作成してしまうなど、無駄に時間をかけていた気がします。これでは実践的なスキルが身につかないと思い、目をつけたのがコンペティションでした。 基礎をすぐに掴めたこともあって、学習を始めてから約2カ月後にはコンペティションに参加していました。「習うより慣れろ」ではないですが、失敗してもいいからとにかく手を動かしてみようと思ったのです。実際に参加してみると、想像以上に得るものが多くて定期的に参加するようになっていきました。実際のテーマに沿ってアルゴリズムを組むことで経験値が貯まるだけでなく、フォーラムで他の参加者の解法を見るのも勉強になるのです。もともと数学系の分野の出身なので、自分のスコアや順位が数字として結果に表れるのも楽しくて、自分に合った学習法かもしれないと感じましたね。
いざ、用意されたデータに目を通すと一気に不安に。
今回のコンペティションに参加を決めた理由は、大きく2つあります。まず、コンペティション参加へのモチベーションの高さ。先ほどお話ししたように、コンペティションの面白さを知れただけでなく、運も良かったのか参加初期から好成績が残せていたんです。Kaggleでも銀メダルを3つ取れていましたし、少し自信がついてますます参加意欲が高まっていました。 2つ目が、会社の制度。当時所属していたKDDI総合研究所ではミライヲツクルプロジェクトという純粋に自身のやりたい事を業務として追求したり、挑戦するという非常に自由度の高い取り組みがありました。それなら、その時間を使ってコンペティションに挑戦しようと。では、なぜコンペティションの中でもこのテーマを選んだのかというと、物体検出とセグメンテーションはこれまで触れたことがなかったんです。会社の業務でも、過去のコンペティションでも触れたことがなかったので、これを機に基礎的な知見を得られればとの想いがありました。 ところが、実際に参加を決めて概要やデータセットに目を通してみると、思わず「こんなの本当にできるの?」と口にしてしまうほど難しく思えました。間取り図とはいうものの、結局は直線の組み合わせ。和室なのか洋室なのか、リビングなのかダイニングなのか、よく見ないとわかりません。建具に関しても、内装ドアは検出対象で、屋外と接する玄関扉や勝手口は検出の対象外など、人間の目で見ても間違えてしまいそうなほど。このコンペティションに参加して大丈夫だったかなと不安に襲われながらのスタートでした。
自分に経験がないなら、他人の経験を頼ればいい。
しかし、不安だからといって怯えているだけでは前に進みません。自分に経験がないなら、他の人の経験を頼ろうと、過去に開催された似たようなテーマのコンペティションを調べ、流用できそうな解法を探しました。これが功を奏して、ベースモデルの構築までは意外とスムーズに行きましたね。変に意気込んで、自分だけの力でやり切ろうとしなくて正解でした。ただ、難しかったのはここから。ただ過去のモデルを流用しただけでは周りと差が出ませんし、精度も十分ではありません。このテーマに最適な形で、自分ならではの工夫を施す必要がある。頭を悩ませながら思いついたのが、モデルの使い分けとアノテーションでした。 今回のテーマではLDKや廊下、浴室など推定対象がいくつかあったのですが、対象ごとにモデルを分けるようにしました。その方が、それぞれの特徴を拾いやすいのではとの考えのもとです。また、推定対象は大きく部屋と建具に分けられます。そして、建具は四角形なのに対し、部屋は四角形ではない。そこで、部屋はセグメンテーションで、建具は物体検出で対応しました。ほとんどの方がこのやり方をしていたと思いますが、精度向上には寄与したかなと思っています。 アノテーションに関しては、間取り図の中に庭や寸法などの推定対象外の要素が多いなと思ったのをきっかけに、室内領域をアノテーションし、クリッピングしようと考えました。2,000枚近くある学習用画像をアノテーションする地道な作業は大変でした。テスト画像には室内領域を推定するモデルを作成しクリッピングしました。これのおかげで手元のスコアは伸びてくれました。
既存モデルの流用ではなく、ゼロからモデルを設計して結果を出したい。
過去のコンペティションの優秀な解法を参考にさせてもらいながら分析を進め、最終的に2位入賞を果たすことができました。結果も嬉しいですが、当初の目的だった物体検出やセグメンテーションに関する基礎が学べたのが大きな収穫だと思っています。書籍で学ぶのではなく、手を動かしながらモデルを作るところから経験できたので、本業で物体検出やセグメンテーションを使う機会が出てきても応用できる感覚がありますね。 また、他の参加者の解法からの学びもありました。特に印象に残っているのは、3位の方の解法です。フォーラムで公開されていたのですが、物体検出とセグメンテーションを分けない独自のモデルを使いつつ、精度もきちんと出されていました。自分なりのモデルという部分を追いかけつつ、精度もしっかりと担保する姿勢に感銘を受けました。今後参加するコンペティションでは他の方と知見を共有しつつも、私も独自のモデルを組み上げながら、入賞を果たすことができればと思っています。そのためには、モデルへの深い理解が必要不可欠。コンペティションを活用しつつ、業務や自習も交えてもっと理解を深められるよう頑張っていきたいと思います。
今後の目標
今後もコンペティションには参加し続けて、データサイエンスのスキルを磨いていきたいと思っています。ただ、私の本業は新規事業の立ち上げと既存事業のデータ分析支援です。そのため、並行してビジネスをコンサルティングする力も磨いていきたいですね。ロジカルシンキングやデザイン思考など、身につけるべきスキルはたくさんありますが、それらを持ったデータサイエンティストになれれば、視野もさらに広がるはずなので、そこを目指していきたいと思います。 <パナソニック株式会社主催「パナソニック株式会社 間取り図解析アルゴリズム作成」の詳細はこちら>