適切なクエリを思いつくスキル

午前4時に起きてメール処理をしたり論文にコメントを入れたり。じっくり時間が取れるときに、いつでもできるメール処理をするのはもったいないのだが、大学にいる時間はほぼミーティングや委員会や勉強会で埋まっているので、相対的に大学でなくてもできる仕事を家ですることになるのである。究極的には通勤時間にメールの読み書きをするのが最適解だと思うのだが……。(そうするとこの日記を書く時間が消滅する)

朝は日野市の企業の方と研究の打ち合わせ。せっかく近くにいるので一度お話でも、ということで、自然言語処理のトピックについてお話し、企業内でどういう課題があり、それに自然言語処理の研究がどう役に立ちそうか、というお話をフリーディスカッション。基本的には企業の方から新規の問い合わせで直接お会いすることはほぼないのだが、このケースのように物理的に歩いて行ける距離で、長期的にはお互いに Win-Win になりそうなお話であれば、種をまく意味でも時間を取ってお話したいと考えている。

午前中からお昼休みを30分挟んで5人の進捗報告。サーベイをするのはしんどいのだが、ある程度の分量を読まないと研究のおもしろさも分からないので、しばらくはひたすら多読してもらいたい。逆に、実験中の人や論文執筆中の人はあまり毎回の進捗が目に見えないこともあるが、時間を使えば時間を使った分は確実に前進しているので、焦らず続けていってほしい。

午後は教授会。この時期の教授会は特に重たいトピックはなく、学部の教授会と大学院の教授会の間に休憩を挟まなかったので、1時間で終了。すばらしい。毎回これくらいだと嬉しい(博士論文の審査が入ると長くなるのは仕方ない)。

夕方に Theano を使った実装のデバッグ、というかそもそもまだ一度も期待通りに動いていないので、デバッグではなくトラブルシュートというのが正確である。解決までに30分くらいかかったが、何をしたいのか、現在どうなっているのかを説明してもらって、ソースコードと入出力を見せてもらい、適切な検索キーワードを思いついて検索したら一発で解決策が書かれた文書(Theano の Google Groups)が見つかった。

結局のところ、答えが書かれていそうな文書を見つけるにはどのような検索クエリを入れればいいか、というのは一つのスキルかなと思うのだが、これをするには英語の専門用語を知っていることが大前提で、かつこういう問題はこういうエラーメッセージになるはず、というエラーモデルを脳内に持っていないといけないので、意外と厳しいのかもしれない。端的に言うと、経験がないと難しい、ということなのだが、適切なクエリでウェブ検索すると答えが見つかることが多い、という信念があるかないかが重要で、答えはどこかに書かれているがクエリを思いつけないので到達できない、と考えていれば、いろいろ試してみるだろうし、そのうちたまたま成功すればクエリの発想モデルが更新されるのだが、調べても分からない、と思い込んでいる人はそもそも試そうともしないので、大きく差がついてしまうのである。

もちろん、高度な内容はウェブに書かれていなかったり、あるいは書かれていても抽象的な話で検索では到達しにくかったりするのではあるが、プログラムが期待通りに動かない、というのは、割と他にも困っている人がウェブに投稿していて、解決策を知っている人が答えてくれていたりすることが多いので、ウェブ検索とは相性がよいと思う。