派出所の朝。
両さんが新聞を広げた瞬間、目の色を変えた。
両さん「なにィ!? 鳥の鳴き声を当てるだけで賞金100万ドルだとォ!?」
中川が横から覗き込む。
中川「先輩、それKaggleのBirdCLEFですね。野鳥の音声分類コンペです。世界中のデータサイエンティストが参加しますよ」
両さん「鳥の声だろ? チュンチュンかカーッかピヨピヨか当てりゃいいんだろ! わしの耳にかかれば楽勝だ!」
麗子が呆れた顔で言った。
麗子「そんな単純じゃないわよ。背景ノイズ、録音環境、種の偏り、弱ラベル、疑似ラベル、テスト分布、全部考えないと」
両さん「なにを言っとる! 鳥は鳥だ! わしは子供のころからセミもカエルも聞き分けてきた男だぞ!」
その日の午後。
両さんは派出所の机にノートPCを広げ、目を血走らせていた。
両さん「メルスペクトログラム……EfficientNet……CNN……Transformer……こいつら鳥の声を絵にして判定しとるのか!」
中川「先輩、意外とちゃんと勉強してますね」
両さん「当たり前だ! 100万ドルだぞ! わしは今日から鳥類音響AI研究所所長だ!」
両さんは派出所の壁に紙を貼った。
目標、金メダル。 賞金、100万ドル。 署長には内緒。
麗子「最後の一文が一番問題ね」
それから両さんは、ただ音声を聞くだけでは飽き足らなくなった。
両さん「いちいち音を聞いていては間に合わん! 音声ファイルを入れたら、自動でメルスペクトログラムを作るソフトを作るぞ!」
中川「先輩、自分で作るんですか?」
両さん「当然だ! 名付けて、鳥類音響AI研究所式・全自動メルスペクトログラム生成機だ!」
麗子「名前が長いわね」
両さんはキーボードを叩き続けた。
音声ファイルを読み込み、数秒ごとに区切り、メルスペクトログラムを生成し、鳥らしい音だけを自動で抽出する。
最初はエラーばかりだったが、両さんは妙な執念で直していった。
両さん「よし! これで鳥の鳴き声が全部絵になる! わしはもう耳だけでなく目でも鳥を聞ける男だ!」
中川「先輩、これは普通にすごいですね」
両さん「ふふふ、わしは努力すれば何でもできる男なのだ!」
その夜。
派出所の中で、両さんはヘッドホンをつけたまま、次々に生成されるメルスペクトログラムを眺めていた。
両さん「これはスズメ……これはカラス……これは虫……これは遠くの車……」
両さんの目は完全に据わっていた。
両さん「ふむ。この低周波の周期的なパターン……これは鳥ではないな」
中川「何かわかるんですか?」
両さん「わかる。これは足音だ」
麗子「足音?」
両さんは画面を拡大した。
両さん「この重い革靴の響き、床を踏み抜かんばかりの圧力、そして怒りを含んだ一定のテンポ……」
中川「まさか」
両さん「これは……部長だ!」
その瞬間、派出所の扉が勢いよく開いた。
部長「バカもーん!」
両さん「ぎゃああああ! やっぱり部長だ!」
部長「両津! さっきから勤務中に何をやっとるんだ!」
両さん「いや、部長、これは遊びではありません! 鳥類音響AIの研究でありまして、将来的には日本の科学技術に大きく貢献する……」
部長「黙れ!」
両さん「ひいっ!」
部長は机の上のノートPCと、壁に貼られた紙を見た。
部長「鳥の鳴き声を分類する研究か……」
中川「はい。先輩、かなり本格的にやっています」
麗子「ソフトまで自作してるんです」
部長は少しだけ感心したように腕を組んだ。
部長「ふむ。褒められた趣味だ。そこまで打ち込むのは悪いことではない」
両さん「部長……!」
部長「だがな」
両さんの顔が固まった。
部長「今は勤務中だ!」
両さん「やっぱりそう来たか!」
部長「しかも署長には内緒とは何だ! 署長にもわしにも全部内緒にする気だったのか!」
両さん「いや、これはその、賞金が入ってからサプライズで……」
部長「バカもーん! 仕事中に100万ドルの夢を見るな!」
両さん「部長! もし金メダルを取ったら派出所に最新GPUを寄付します!」
部長「いらん!」
中川「先輩、それ派出所に置いたら電源が落ちます」
麗子「そもそも寄付する前に自分で使い切るでしょ」
部長「両津! そのメルなんとかは家でやれ!」
両さん「メルスペクトログラムです!」
部長「名前などどうでもいい! 勤務に戻れ!」
両さん「くそーっ! 部長の足音まで分類できるようになったというのに!」
部長「そんなもの分類するな!」
その後、両さんは本格的にKaggleへ没頭した。
公開Notebookを読み、ベースラインを動かし、メルスペクトログラムを眺め、学習率をいじり、疑似ラベルを足し、foldを切り、アンサンブルを組む。
最初は音声を画像にするという考え方すら怪しんでいた両さんだったが、数日後にはすっかりKagglerらしいことを言うようになっていた。
両さん「このモデルは過学習しとる! Validationを信じるな! Public LBに踊らされるな!」
中川「先輩、もう完全にKagglerですね」
両さん「わしはAI科学者だ!」
順位はぐんぐん上がった。
そしてついに、銅メダル圏内に入った。
両さん「見たか中川! 銅だ! 銅メダルだ! わしはもうAI科学者だ!」
中川「すごいですね先輩。初参加で銅圏はかなり立派ですよ」
両さん「ふふふ、Kaggleもわしにかかればこんなもんよ!」
しかし、喜びは長く続かなかった。
両さんはランキング画面を睨みつけたまま、顔をしかめた。
両さん「おかしい……金が遠い。上位陣は何をしてるんだ」
中川「それはわかりません。最終的なコードやデータ処理は非公開ですから」
両さん「非公開……?」
両さんの目が怪しく光った。
両さん「つまり、見えなければ見ればいいということだな」
麗子が即座に振り向いた。
麗子「先輩、今ものすごく危ないこと言ったわよ」
両さんはキーボードを叩き始めた。
両さん「ふふふ……Kaggle上位陣の秘密、わしが暴いてやる。上位のコードをのぞければ、金メダルなど一瞬だ!」
中川が慌てて止めた。
中川「先輩! それは完全にアウトです!」
両さん「じゃかあしい! わしはハッキングではなく、上位陣の心理を読んでいるだけだ!」
麗子「それを世間では不正アクセス未遂と言うのよ」
両さん「ならば別の方法だ!」
両さんはKaggleのページを右クリックした。
両さん「ソースを表示!」
中川「先輩、そこに金メダル解法は書いてありません」
両さん「わからんぞ! HTMLの奥深くに、上位陣だけに見える秘密のセルが……」
中川「ありません」
両さんはさらにランキング上位者のアイコンを拡大した。
両さん「この鳥のアイコンの向き……まさかfoldの数を暗号で示しているのでは……」
中川「違います」
両さん「このユーザー名の末尾の数字……学習率か?」
中川「違います」
両さん「コメント欄の“great notebook”……これは暗号だ! GはGPU、NはNoise、BはBird……」
麗子「睡眠不足で陰謀論に入ってるわ」
中川は真剣な顔になった。
中川「先輩、勝ちたい気持ちはわかります。でも、そこを越えたらKagglerではなくなります。ルールの中で工夫するから面白いんです。見えない上位陣を疑うより、自分のデータをもっと見るべきです」
麗子「泥臭くても、自分で見つけた特徴の方が強いこともあるわよ」
両さんはしばらく黙った。
そして、静かに立ち上がった。
両さん「わかった」
中川「先輩……」
両さん「ハッキングはやめる」
中川「よかった」
両さん「その代わり、Kaggleに殴り込みだ!」
中川「ええっ!?」
数日後。
両さん、中川、麗子、本田は、なぜか海外のKaggle本部らしき建物の前にいた。
本田「両さん……BirdCLEFって海外の大会だからって、本当に海外まで来る必要あったんですか……」
両さんは鉢巻を締め、巨大な巻物を抱えていた。
そこには筆文字でこう書かれていた。
公開Notebookだけでメダルを取るな。
中川「先輩、ここでそれを掲げるのはかなり危険です」
両さん「黙れ中川! わしは世界中の泥臭いKagglerを代表して来たんだ!」
受付の人が困惑していた。
受付「ご用件は……?」
両さん「ランキングの上位陣を出せ!」
受付「出せません」
両さん「ではNotebookのコメント欄で“great notebook”とだけ書いてる連中を出せ!」
受付「もっと出せません」
両さん「ではせめて、公開Notebookをコピーしただけでメダルを取った者に、わしの苦労を10分間聞かせろ!」
受付「業務妨害です」
麗子が両さんの襟首をつかんだ。
麗子「先輩、帰るわよ」
両さん「離せ麗子! わしはまだ言いたいことがある!」
そこへ、Kaggleのスタッフらしき人物が現れた。
スタッフ「コンペでは、公開Notebookを活用することも一つの戦略です。ただし、最終的には検証、工夫、安定性、データ理解が差になります」
両さん「そんなきれいごとを言うな! わしは徹夜で鳥の声を聴いとるんだぞ!」
スタッフ「それも、立派なデータ理解です」
両さんは一瞬黙った。
両さん「……立派?」
スタッフ「はい。少なくとも、あなたはデータを見ています。音を聞いています。現場を想像しています。それは、どんな公開Notebookにも最初からは入っていません」
中川「先輩、やっぱり方向性は間違ってなかったんですよ」
麗子「ただ、殴り込みに来る必要はなかったわね」
両さん「うるさい!」
そう言いながらも、両さんは少しだけ嬉しそうだった。
帰国後。
両さんはさらに燃え上がった。
両さん「よし中川! 計算資源を増やすぞ!」
中川「どのくらいですか?」
両さん「H200を1億枚だ!」
中川「1億枚!?」
両さん「100万ドルを取るんだぞ! GPUが1枚や2枚で勝てるか!」
翌日。
中川重工の極秘研究施設。
巨大な扉が開くと、部屋一面にサーバーラックが並んでいた。
水冷GPU。 専用変電設備。 巨大モニター。 床を這う極太ケーブル。
両さんは白衣を着て腕を組んだ。
両さん「ふふふ……これがわしの新しい派出所か」
中川「実際に1億枚は無理ですが、かなり大規模なH200クラスターを用意しました」
両さん「足りん!」
中川「これ以上は国家予算です」
両さん「国家ごと買えばいい!」
中川「買えません!」
両さん「全モデルアンサンブルだ! CNN、Transformer、疑似ラベル、fold違い、背景ノイズ除去、周波数マスキング、時間マスキング、なんでも入れろ!」
学習が始まった。
施設全体が唸り、冷却装置が轟音を上げ、電力計が恐ろしい勢いで回った。
数時間後。
スコアは少し上がった。
しかし、金メダル圏には届かない。
両さんはモニターに向かって震えた。
両さん「なぜだ……なぜ金に届かん……」
麗子「結局、データの質と分布理解が重要なのよ。モデルだけ大きくしても限界があるわ」
そのとき、両さんは黙り込んだ。
画面にはメルスペクトログラムが映っていた。
赤、青、黄色の帯。
鳥の声が、まるで絵のように浮かんでいる。
両さんはじっと見つめた。
両さん「……これは」
中川「どうしました?」
両さん「これは鳥じゃねえ」
中川「え?」
両さん「これはカエルだ」
中川が音声を再生した。
ゲコッ。
中川「本当だ……」
次の画像を開く。
両さんは一瞬で言った。
両さん「これは虫だ。湿った草むらの夜だな」
再生すると、リーリーリーという音が流れた。
さらに次。
両さん「これは遠くのバイクだ。しかも原付だ」
音声から、ブロロロロという音が聞こえた。
中川が目を見開いた。
中川「先輩……メルスペクトログラムを見るだけで音がわかるようになってる……」
麗子「本当に覚醒してるわ……」
両さんは無言で次々と画像を見た。
両さん「風」
両さん「雨」
両さん「人間の咳」
両さん「犬」
両さん「これは鳥だ。だが目的クラスじゃない」
両さん「これはレア種だ。金の匂いがする」
中川「人間メルスペクトログラム分類器……」
両さんはゆっくり立ち上がった。
両さん「わしはわかったぞ。AIに足りないものが」
中川「何ですか?」
両さん「人間力だ」
中川「人間力?」
両さん「鳥を知るには、森を知らねばならん。森を知るには、土を踏まねばならん。土を踏むには、現地へ行かねばならん!」
中川が嫌な予感を覚えた。
中川「先輩?」
両さんは地図を広げた。
両さん「こうなったら……現地で鳥を録る!」
本田が青ざめた。
本田「えええええ!? どこ行くんですか両さん!」
両さん「BirdCLEFは海外の鳥が鍵だ! わしが直接森に入って、鳴き声を録って、データセットを増強する!」
本田「そんなの間に合うんですか!?」
両さん「間に合わせるんだよ! 本田、荷物を持て!」
数日後。
海外の山奥。
両さんは迷彩服に巨大マイク、背中にバッテリー、腰にノートPC、首から双眼鏡という異様な格好で森を歩いていた。
本田はヘロヘロになっていた。
本田「りょ、両さん……もう帰りましょうよ……」
両さん「バカモン! 今の声を聴いたか! あれはレア種だ! 金メダルの鳴き声だ!」
本田「今の、僕のお腹の音です……」
両さん「じゃかあしい! それも録れ! ノイズとして使える!」
両さんは泥だらけになりながら、録音を続けた。
鳥が鳴けば走る。
虫が鳴けば分類する。
風が吹けばノイズプロファイルを取る。
本田が転べば、人間由来ノイズとして保存する。
本田「両さん! これ本当に意味あるんですか!」
両さん「ある! 公開Notebookをコピーしただけの連中には絶対に取れんデータだ! これはわしの足で稼いだデータだ!」
その瞬間、鳥が一斉に鳴き始めた。
森全体が、音で満ちた。
両さんは目を輝かせた。
両さん「来たァ! これだ! これで金メダルだ!」
両さんは巨大マイクを掲げた。
両さん「鳴け! もっと鳴け! わしの100万ドルのために!」
本田「両さん、静かにしないと鳥が逃げます!」
両さん「おっと、そうだった」
両さんは息を殺した。
その静けさの中で、また別の鳥が鳴いた。
今までの録音にはなかった、細く高い声だった。
両さんの目が変わった。
両さん「本田……今のは本物だ」
本田「え?」
両さん「こいつを入れれば、Privateで勝てる。わしにはわかる。これは金メダルの声だ」
両さんはその場で録音データを切り出し、ノートPCに取り込んだ。
山奥の小さな画面で、最後の学習が始まった。
中川から電話がかかってきた。
中川「先輩、締め切りまであと3分です!」
両さん「なにィィィィ!?」
山奥で電波は一本。
ノートPCの画面には、提出ファイルの生成が終わる直前のバーが出ていた。
本田「両さん、もう無理ですよ!」
両さん「無理じゃない! ここまで来て提出せんKagglerがいるか!」
生成が終わった。
両さんは震える手で提出ボタンを押した。
だが、通信が遅い。
送信バーはなかなか進まない。
72%。
83%。
91%。
両さん「行け……行け……わしの100万ドル……!」
本田「両さん、木の上は危ないですって!」
電波を拾うため、両さんは木に登っていた。
片手にノートPC。
片手に巨大マイク。
背中にはバッテリー。
顔には鳥の羽。
完全に何かの密猟者のような格好だった。
そのとき、森の奥から、さっきの鳥がもう一度鳴いた。
両さんの目が光った。
両さん「今のは……!」
本能的に両さんは叫んでしまった。
両さん「金メダルの声だァァァァ!!」
その大声が、巨大マイクに完璧な音質で録音された。
本田が青ざめた。
本田「両さん! 自分の声、入ってます!」
両さん「構わん! これも現地音だ!」
本田「現地音ですけど鳥じゃないです!」
両さん「わしは森の一部だ!」
送信バーは99%。
両さん「あと1パーセント! 行け! 行けェェェ!」
その瞬間、鳥の群れが一斉に飛び立ち、両さんの頭上に大量のフンを落とした。
両さん「ぎゃあああああ!」
ノートPCが大きく揺れた。
本田「両さーん!」
両さんは必死に画面を見た。
Submitted.
両さんは木の上で固まった。
両さん「……入った」
本田「え?」
両さん「提出……できたぞ」
中川の電話越しの声が響いた。
中川「先輩、間に合いました! 最終提出、受理されています!」
両さんは木の上で拳を握った。
両さん「勝った……」
鳥のフンまみれの顔で、両さんは空を見上げた。
両さん「わしは勝ったぞォォォ!」
数日後。
リーダーボード最終結果の発表日。
派出所の全員が、両さんのノートPCを囲んでいた。
両さん「見ろ。あの最終提出は完璧だった。現地データ、疑似ラベル、アンサンブル、そして人間力。これで金が取れんわけがない」
中川「Publicではかなり良かったですからね」
麗子「ただ、Privateは開けてみないとわからないわよ」
両さん「麗子、縁起でもないことを言うな!」
画面が更新された。
両さんの順位が表示された。
銅メダル。
しかし、賞金圏にはほんの少しだけ届いていなかった。
派出所に沈黙が落ちた。
本田「ギリギリ……賞金圏外です……」
両さんは画面を見つめたまま動かなかった。
両さん「……銅」
中川「先輩……」
両さん「……賞金圏外」
麗子「かなり惜しいわね」
中川は詳細を見た。
中川「Publicでは上がっていたのに、Privateで落ちていますね。かなり大きなシェイクダウンです」
両さん「シェイク……ダウン……」
両さんは震える手でエラー分析を開いた。
特定のクラスで、異常な誤判定が出ていた。
中川「このモデル、なぜか一部の鳥を“人間の叫び声”に近い特徴として覚えていますね」
麗子「現地データに、余計な声が入ってたんじゃない?」
全員が両さんを見た。
両さんは目を逸らした。
両さん「……まさか」
中川が録音データを再生した。
森の音。
鳥の声。
風の音。
そして、はっきりと響く両さんの声。
両さんの録音音声「金メダルの声だァァァァ!!」
派出所が沈黙した。
もう一度、再生された。
両さんの録音音声「金メダルの声だァァァァ!!」
両さん「止めろ! 二回流すな!」
中川「すみません、確認のために」
麗子「完全に入ってるわね」
本田「しかも、すごくいい音質で……」
中川「この声がレア種の鳴き声と一緒に入っていたので、モデルが変な特徴を覚えた可能性があります」
両さんの顔が青ざめた。
両さん「つまり……」
中川「はい」
麗子「最後に自分で叫んだせいね」
両さんは頭を抱えた。
両さん「わしが! わし自身が! わしの金メダルを破壊したのかァァァァ!!」
部長が騒ぎを聞きつけてやって来た。
部長「バカもーん! 今度は何を騒いどるんだ!」
両さん「部長! わしは鳥になろうとして失敗しました!」
部長「何を言っとるんだお前は!」
中川「先輩、最終提出には間に合ったんですが、現地録音に先輩の叫び声が入っていて、Privateで順位が落ちたんです」
部長「勤務中に海外へ行って鳥を録り、自分の声で負けたということか」
両さん「簡単にまとめるとそうです」
部長「バカもーん!」
両さん「ひいっ!」
部長は怒鳴ったあと、画面を見た。
銅メダルの表示があった。
部長「しかし……銅メダルは取ったのか」
両さん「え?」
部長「賞金には届かんかったとはいえ、そこまでやった根性は認めてやる」
両さん「部長……」
部長「鳥の声を聞き、データを見て、自分で工夫した。褒められた趣味だ」
両さん「部長!」
部長「だがな」
両さんの顔が固まった。
部長「勤務中にやるな!」
両さん「結局そこか!」
中川が静かに笑った。
中川「でも先輩、初参加で銅メダルは本当にすごいですよ」
麗子「現地データまで取りに行ったKagglerなんて、そういないわよ」
本田「両さん、すごかったですよ。僕、正直ちょっと感動しました」
両さんは黙った。
泥まみれになって、夜中まで音声を聴いて、メルスペクトログラムを睨み、海外の森を走り、鳥を追った日々。
派出所のみんなも、少しだけ両さんを見直していた。
両さんは小さくつぶやいた。
両さん「……そうか。わしも、まあまあやったのか」
中川「はい。先輩はちゃんとデータに向き合っていました」
麗子「ズルいところもあるけど、最後は自分の足で取りに行くのよね。そこは先輩らしいわ」
本田「だから人がついてくるんですよね」
両さんは照れ隠しのように鼻をこすった。
両さん「ふん。まあ、わしほどの男になると、鳥も人間もAIも放っておかんということだ」
そのとき、中川が別の画面を見て「あっ」と声を上げた。
中川「先輩、上位のNotebook公開されています」
両さん「なに?」
中川がランキングを開く。
銅メダル、銀メダル、金メダル。
その中に、公開Notebookのコードをほぼそのまま使い、少しだけ閾値を変えた提出がいくつも並んでいた。
コメント欄には、Thanks for notebook、Only changed threshold、Public notebook is strong、といった言葉が並んでいた。
しかも、そのうちの一人は、両さんのすぐ上。
賞金圏の最後の席に入っていた。
両さんの表情が消えた。
静かだった。
あまりに静かだった。
麗子が一歩下がった。
麗子「先輩?」
両さんはゆっくり立ち上がった。
両さん「わしは……海外に行った」
中川「はい」
両さん「泥をかぶった」
中川「はい」
両さん「鳥のフンもかぶった」
中川「はい」
両さん「Kaggle本部にまで行った」
中川「はい」
両さん「ハッキングも思いとどまった」
中川「そこは最初から思いとどまってください」
両さん「H200を1億枚使う夢も見た」
中川「夢で済んでよかったです」
両さん「最後の最後で提出も間に合わせた」
中川「はい」
両さん「自分の声で順位を落とした」
中川「はい」
両さん「それなのに……」
両さんは画面を指差して絶叫した。
両さん「公開Notebookをコピーして閾値をちょっと変えただけのやつが賞金圏に入っとるじゃねえかァァァァ!!」
派出所の窓ガラスが震えた。
部長「バカもーん! また騒ぐな!」
両さん「部長! これは人類の尊厳の問題です!」
部長「大げさだ!」
両さん「許さん! わしは絶対に許さんぞ! 次のコンペでは、公開Notebookを見た瞬間に警告文を出す!」
中川「それはKaggleの仕様として無理です」
両さん「ならば、わしが公開Notebookを出す!」
中川「え?」
両さん「全員をわしのコードに乗せてやる! そして最後の1セルに罠を仕込む!」
麗子「それは普通に規約違反よ」
両さん「ちっ」
部長「少しは反省しろ!」
そのとき、中川が次のコンペ一覧を見ていた。
中川「先輩、次は宇宙系のデータチャレンジがありますね」
両さんの眉が動いた。
両さん「宇宙?」
中川「はい。アリエル・データチャレンジのような、系外惑星の観測データから大気成分を推定する大会です。ノイズの多い時系列スペクトルを解析して、惑星の大気を読むような内容ですね」
両さんはしばらく黙った。
そして、ゆっくり目を見開いた。
両さん「スペクトル……ノイズ……未知の信号……」
中川が嫌な予感を覚えた。
中川「先輩?」
両さん「鳥の次は惑星か」
麗子「まさかとは思うけど……」
両さん「わしは今回、重要なことを学んだ」
本田「何をですか?」
両さん「データは現場にある」
中川「まさか」
両さんは地球儀を回した。
いや、地球儀を放り投げ、今度は太陽系の模型を掴んだ。
両さん「本田!」
本田「はい……」
両さんの目がギラリと光った。
両さん「今度は宇宙に行くぞ!」
本田はその場にへたり込んだ。
本田「勘弁してくださいよォォォ!!」
部長「バカもーん! まず勤務に戻れ!」
両さん「部長、宇宙も勤務区域に入れましょう!」
部長「入るか!」
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme