u++の備忘録

中高生向けに喋った×2

先日、中高生向けに喋る機会が2度ありました。共に光栄なことに母校で話す機会でした。平易な内容で自分語りを極力減らし、できる限り学生にとって「汎化性能」のある有意義な内容にするのに苦心しました。幸い、質疑応答の時間が設けられた前者では10個以上の質問が寄せられ、一定の目的は達せられたのかなと感じています。自分自身にとっても、参加者との対話を通じて、内省し初心に帰る良い機会でした。

関連

upura.hatenablog.com

「4GM本」の翻訳書『Kaggle Grandmasterに学ぶ 機械学習 実践アプローチ』が出版されます

マイナビ出版より8月に『Kaggle Grandmasterに学ぶ 機械学習 実践アプローチ』と題した書籍が出版されることになりました。 世界各国で出版・公開された書籍 "Approaching (Almost) Any Machine Learning Problem" の翻訳書です。 豊富なコード例と機械学習にまつわる基礎的な内容を取り上げています。

f:id:upura:20210703172819p:plain

Kaggle Grandmasterに学ぶ 機械学習 実践アプローチ | Abhishek Thakur, 石原祥太郎 |本 | 通販 | Amazon

"Approaching (Almost) Any Machine Learning Problem"は、国際的なデータサイエンスコミュニティ「Kaggle」で史上初めて全カテゴリで最上位の称号を獲得した Abhishek Thakur さん による書籍です。 日本ではKaggleコミュニティを中心に「4GM本」とも呼ばれ、話題を呼びました。

交差検証や特徴量エンジニアリングなどモデル作成以前の重要な要素にも紙面が割かれ、コードの再現性やモデルのデプロイといった話題にも踏み込みます。 モデル作成では、表形式のデータセットだけでなく、画像認識や自然言語処理に関する内容が具体的なPython実装と共に示されます。

"KaggleのGrandmasterが書いた本"と聞くと高尚な話題が展開される印象を受ける方もいるかもしれませんが、本書の節々からは性能を追求するだけではなく実運用にも重きを置いた著者の姿勢が垣間見えます。 Kaggleコミュニティに限らず機械学習に興味を持つ多くの方に手に取っていただきたい一冊です。

原著のPDFは下記リンクで無料公開されています。日本語への翻訳によって、より多くの方に触れていただく機会になれば嬉しいです。

翻訳では、原著のニュアンスを保持しつつ、日本語として自然になるような訳を心掛けました。訳者の知る限り日本で一般的に浸透している訳語を選択しましたが、一部用語については英語名をそのまま利用しています。原著の出版時からの更新を含む点や日本特有の話題は、翻訳版独自の訳注も付けました。

github.com

出版に向けて校正など一部作業が残っていますが、より一層完成度の高い書籍をお届けできるよう邁進します。

「Sports Analyst Meetup #10」をオンラインで開催しました #spoana

「Sports Analyst Meetup #10」*1を、6月26日に開催しました。第7回以降はオンライン開催に切り替えて、今回で記念すべき第10回を迎えました。

togetter

togetter.com

発表内容

今回はロングトーク1本、LT4本という構成でした。イベント後には、オンライン以降初となる懇親会にも挑戦しました。

ロングトークでは、東京大学運動会ア式蹴球部の木下さんに、データ分析の具体的な事例をご共有いただきました。togetterでも驚きの声がいくつも確認できますが、私自身もかなり高度な取り組みの数に圧倒された発表でした。

LTで扱われた競技はサッカー・テニス・野球でした。1本目はサッカーのチーム守備評価を2つの行動からモデリングした研究の紹介で、チーム成績との相関など興味深い部分が多い内容でした。2本目はテニスの動画からプレイの開始時点を抽出するタスクに取り組んだ発表で、自力でのアノテーションも含めた試行錯誤が印象的でした。3本目の投球フォーム推定は披露してくださったライブデモの正確さに衝撃を受けました。4本目は野球での配球の分析に因果推論を駆使した内容で、因果推論の面白さと奥深さを感じる内容でした。

f:id:upura:20210628195510p:plain

懇親会は、Zoomのブレイクアウトルームを活用して実施しました。実施方法は運営一同、適切な方法を模索中ですが、今回はイベント本番から円滑に移行できるという利点を評価しZoomを選択しました。2020年末のアップデートで、共同ホストに設定しなくても参加者が自由にブレイクアウトルーム間を移動できる設定が追加されていたのも大きかったです。

アーカイブ

オンライン開催の利点を活かして、発表者の許諾が得られた内容については、YouTubeアーカイブを掲載していく予定です。

www.youtube.com

おわりに

今回も多くの方にご参加・ご発表いただき、誠にありがとうございました。 イベントの最後に告知しましたが、次回はデータ分析イベントの企画を進めています。詳細は準備ができ次第公開予定ですので、乞うご期待ください。

【書籍メモ】『教養としてのデータサイエンス』(講談社)

出版社のご厚意でお送りいただいた『教養としてのデータサイエンス』(講談社)を読みました。豪華な著者陣による「文理を問わず、すべての大学生に、数理・データサイエンス・AIを習得させることを目的として編纂された」書籍です*1

書籍情報

内容の概要や目次、著者概要などは以下で確認できます。

bookclub.kodansha.co.jp

所感

平易な文でサクサク読み進められました。カラーの図や、時おり挿入されるコラムも理解の助けとなります。つまみ食いしていける構成になっているので、ある程度この領域への知見があれば、1時間でサラッと読める感じの印象です。昨今のデータサイエンスにまつわるキーワードをどんどん拾っていけるので、今後学びを深めていく上での良い取っ掛かりとなると思います。個人的には第3章のデータや人工知能の取り扱う際の留意事項が特に勉強になりました。k匿名化やEUの一般データ保護規則(GDPR)など、近年議論を呼んでいる話題についてもまとめられています。本書では専門家である著者が、一般向けに可能な限り平易な表現でデータサイエンスの話題を解説しています。自分自身が誰かにデータサイエンスの概要を紹介するときに、参考にできる部分も多いと感じました。

【書籍メモ】『BERTによる自然言語処理入門 Transformersを使った実践プログラミング』(オーム社)

『BERTによる自然言語処理入門 Transformersを使った実践プログラミング』(オーム社)をサラッと読みました。近年の自然言語処理領域の飛躍的発展のきっかけとなった BERT について、理論と実践をバランス良く取り上げた良書だと感じました。

書籍情報

内容の概要や目次、サンプルのPDFは以下で確認できます。

www.ohmsha.co.jp

所感

書名に「実践プログラミング」とある通り、Google Colaboratory 上に用意されているソースコードで BERT を実践していく部分が肝になっている書籍ではありますが、理論的な面も図を駆使してある程度詳細に触れているのが好印象でした。第3章まで機械学習自然言語処理・BERTの一般的な説明をした後、第4章以降から具体的にライブラリを使っていく構成になっており、理論と実践を明瞭に切り分けている部分も親切だと感じます。実践の章でも、適宜 print で途中経過を表示しており、個別の処理の内容を丁寧に説明している印象を受けました。本書で利用している「Huggingface Transformers」は自然言語処理のさまざまな処理に対応するインターフェイスが豊富に用意されている故に、個人的には時にあまり頭を使わずサンプルコードをコピペしてしまいがちです。使ったことがある関数についても、改めて理解を深める良い機会となりました。

実践では、自然言語処理の題材としてイメージしやすい分類だけではなく固有表現抽出・校正・類似文検索の話題も扱っています。初学者の方にとっては、自然言語処理の応用例の幅広さを知るきっかけになりそうです。日本語のデータセットが使われているのも相まって、身近な事例への適用を考えやすくなると思います。サンプルコードも Google Colaboratory 上に用意されており、特別な環境構築も不要で流用しやすくなっています。文書分類などの章では「PyTorch Lightning」が使われています。個人的には最近使っているライブラリなので特に問題なくむしろ望ましいことでしたが、あまり PyTorch 自体や PyTorch Lightning に慣れていない方にとっては、自然言語処理に直接は関係ない部分で理解のための時間を費やしてしまうかもしれません。

自然言語処理の領域は、2018年末の BERT の登場以来、飛躍的な進歩を生み出しています。一方で発展の速さの影響があり、BERT やライブラリの使い方について体系的にまとまった日本語の書籍はあまりありませんでした。本記事の最後に、今回出版までこぎつけた筆者や出版社の方々のご尽力に、お礼申し上げます。

Kaggle「BirdCLEF 2021 - Birdcall Identification」参加録

Kaggle「BirdCLEF 2021 - Birdcall Identification」*1に参加し、102位でした*2。Kaggler の知人が何人か参加していたので興味を持ち、残り9日から参戦しました。

やったことは以下の通りです。音声を題材にしたコンペに初めて取り組みましたが、学習用データセットの構築や拡張に一手間かかる点や、画像変換後は多種多様な選択肢が広がる点など、やることが非常に多い印象を受けました。

  • kkiller さんが公開していたコード*3を軸に調整
  • 学習もいくつか試行錯誤したが、所要時間がかかることから最終的には不採用
  • 手元のデータに対する結果がよくなるような閾値や後処理を検討
  • 最終の推論 https://www.kaggle.com/sishihara/birdclef-2021-inference

*1:www.kaggle.com

*2:本コンペでは100位まで銅メダル

*3:www.kaggle.com

LightGBMの特徴量の順序変更が重要度に与える影響

同一の質問を何度か見かけたので、次回はリンクを貼って解決するためのメモです。

Q: 特徴量の順番を変えたら、重要度や精度が変わりましたが、なぜでしょうか?

A1: 学習時のハイパーパラメータ feature_fraction の影響かもしれません

LightGBMの学習時のハイパーパラメータの一つに feature_fraction があります。高速化や過学習の抑制を目的に、一部の特徴量を選択して学習するための機能です。デフォルトの値は 1.0 ですが、利用する特徴量の割合を 1 未満に設定している場合、選択が実行されます。順番を変えることで、選ばれる特徴量に影響が出る可能性があります。

lightgbm.readthedocs.io

A2: 2つの特徴量で得られる利得が同一の場合、インデックスの小さい特徴量が選ばれる仕様だからです

LightGBM のような決定木系のアルゴリズムでは、与えられたデータセットをより良く表現できるよう、さまざまな特徴量でのデータ分割方法を探索します。その探索において、2つの特徴量で得られる利得が同一の場合は、インデックスの小さい特徴量が選ばれる仕様になっています。順番を変えることで、選ばれる特徴量に影響が出る可能性があります。

github.com