【書評】機械学習の炊いたん3
技術書典9でサークルml-titansさんの機械学習の炊いたん3を読んだので、感想を書く。
こんな感じのパッケージ。
いろんな内容が盛りだくさん。一つでも興味があれば、ポチってみるといいと思う。
感想
sonodanoさん、emergentさん、kirikeiさん、 tomo_makesさん、timさんの5名による作品。個人的には、emergentさんの「Spleeter と音声認識を使って空耳検出器をつくる」、データサイエンティスト観点から、kirikeiさんの「データで見てみるプロ野球 −スクレイピングから可視化まで」tomo_makesさんの「データサイエンティスト、AI エンジニアのための経営学‧ソフトウェア工学」が特に気になって購入した。全体的に非常に面白い内容で、実際に手を動かしながらやることで、さらにその面白さを体感できる一冊だった。
本書の概要と感想
各章についてそれぞれ書く。
1 ファイル強化学習
内容としては、筆者の方針で、わかりやすさを重視して、Classはなるべく使わず、GPU対応も省略、理論もそこそこにという形で、実際に本章と以下用意されているipynbを実行しながら、強化学習を体感できる。一部、Pythonで学ぶ強化学習 [改訂第2版] 入門から実践までのfrozen_lake_util.pyを使っているので、見慣れた図があった。
github.com
アルゴリズムとしては、以下が紹介されている。
• SARSA
• Q-Learning
• Deep Q-Learning
• Vanilla Policy Gradient
• Vanilla Actor Critic
• Deep Deterministic Policy Gradient
実際にコードを実行しながら体感できるのだが、強いて言えば、これらの違いが図や表でまとまっていると、初学者にはよりわかり良いのではないかと思った。(一通りさらっている人には問題ないとは思う。)
Spleeterと音声認識を使って空耳検出器をつくる
あの「実践 Rust プログラミング入門」の共著者の一人であるemergentさんの章。
Spleeterというのを知らなかったのだが、楽曲音源分離のツールでこれは非常に面白い。 github.com
書籍通りに行えば十分にできるが、GPUがないと少し重いのと、Dockerに明るくないと少し導入が難しいようにも感じた。自分はColabで実行できるように少し書き直しながら試した。
とtweetしたら、すかさずtomo_makesさんがフォローしてくれました。ありがとう!Spleeterおもろい。GPUないとちょっと遅いな
— くろたんく@激しく多忙 (@black_tank_top) 2020年9月13日
音楽(mp3)を最大5トラック(ボーカル/ピアノ/ドラム/ベース/その他)に分離できるSpleeter。conda/pipいずれかで入れ、すぐに使える。https://t.co/epmzY2lzfB
— tomo-makes@技術書典9「機械学習の炊いたん3」 (@tomo_makes) November 3, 2019
想像以上にしっかり分離され驚きます。すぐ試せるColabノートブックを作りました。https://t.co/B2B52Iry0h
著作権等の問題があるような気がするので、uploadはしないが、結構綺麗に音源が分離される。空耳についてはあまり面白いのはまだできていないが、引き続き色々試してみたいと思う。
データで見てみるプロ野球 −スクレイピングから可視化まで−
最近だと、u++さんが企画・運営しているSports Analyst Meetupをみていると、スポーツの分析は比較的ホットで、面白い内容が多い。Sports Analyst Meetupの資料を見ればその面白さは伝わってくる。 spoana.connpass.com
本章では、スポーツの分析を行うのに、まず行き詰まるデータの取得を簡単にスクレイピングしてきて、セイバーメトリクスを可視化するという流れだ。正直、野球に疎いので、NPBでやってくれたのはありがたい。海外だとさらによくわからないし。ただ、以前挑戦したことがあるのだが、NPB のページは残念ながら URLの整理が微妙で、結構めんどくさい。しかし、この章に説明があるが、この図がめっちゃわかりやすくてなるほどスクレイピングのコツまでわかりやすかった。
また、セイバーメトリクスと可視化という節でカラムの説明がまとまっており、これは「野球に明るくない私には」非常に助けになった。打者指標のOPS, IsoDや投手指標のWHIPについても細かな説明があり、あーこんな風に考えるのね、っていう形で野球ドメインが低い私にも理解できたし、むしろこんな風に考えると野球が面白いと思い始めた。
また、全体のコードは以下のexampleにnotebookがあるので、ぽちぽちしながら試すことができて楽しい。 github.com
データサイエンティスト‧AI エン ジニアのための経営学‧ソフトウェア工学
AI、データ分析の社会実装の難しさをどうやって解決していくべきかがうまく整理されて書かれている。 これからAI、データ分析を始めて行こうっていう人、もしくは、すでに始まっているけれど、自分がデータサイエンティスト、機械学習エンジニアでプロジェクトリーダーでなんか偉い人に視座が低いとか言われて、うまくいってないんだよなっていう状態の人に読んでほしい章っていう感じ。というのも、データ分析したり、AIを作っても、相手が望む形で使われて、行動変容が起きなければ、正直意味がないと自分は思っている。本章でも述べられているが縦割りが行われていてもそれぞれが「ビジネスからソフトウェア工学までの知識」をもって、適切にうごかないとうまくいかないことが多いのは経験則的に理解できる。さらに現場的には「データサイエンティストだから」「MLエンジニアだから」といって、ビジネスの構成要素や性質・経営戦略について考えたくない、考えるのはビジネスプランナーや経営層であるっていうギャップが現実的によくあって、これで辞めたりする。どちらかというと、アサインされた役割とは無関係に「ビジネスからソフトウェア工学までの知識」をもってしてプロジェクトを進めていってもらいたいっていうのが、プロダクトオーナー的視点になるんだけど、専門家意識というか機械学習だけしたい。与えられた分析だけしたいっていうパターンはよくある話だ。(もしそんな風に働きたいなら、最初に会社と握っておくことが肝心。)
話が逸れたので、話を本章に戻して、 BABOK DMBOK PMBOKについても触れていて、AI・データ分析プロジェクトをリードしていったり、マネージメントする人はこれらにも目を通すことをオススメする。やはり先人の知恵は重要で、そこから自分の会社の方針ややり方に合ったものを組み立てていくのが即効性が高いと思う。
IT システムによる改革‧改善の生まれ方という節に、
- 経営戦略
- ビジネスモデル
- ビジネスプロセス
- エンジニアリング
のゴール設定についても言及がありこれが非常に整理されていて、自分自身の知識と新たな知識が頭の中で整理されて、どのように進めていくのがいいのかという地図をうまく設計できるようになると感じた。
解析力学は伊達じゃない!
ハミルトン力学もHamilton Neural Networkもよく知らない状態で読んだが、導入のニュートン力学やラグランジュ力学に関する、図や式が豊富でめちゃくちゃわかりやすかった。 本章では、実装は本家に任せている状態で、とりあえず以下を試してみた。 github.com 力学系とDeepをうまく組み合わせることによって、物理現象の挙動をうまく表現できているように見える。これは非常に面白いとおもった。この分野に明るくないので、応用先がぱっとは思いつかないが、引き出しの一部が増えるいい内容だった。
終わりに
tomo_makesさんとは、Colabが流行りだすちょい前で、秒速DEEP LEARNINGがでたときからお世話になっていて、そのあとに、図解速習DEEP LEARNINGというColabを解説した商業本も出されて、同人誌から商業本になってすげーっていう感じ。文章もすごくわかりやすいし、たまに困って相談するとものすごく親切に対応してくれていつも助かっている。
今回の機械学習の炊いたん3は、かなり内容が多岐に渡っていた。全体を通して頭が整理されたし、読みながら実装して楽しい本だった。
以前出されたどの本も非常に有益なことが書かれているので、気になる項目があれば、一読してみると良いかと。
お願い(欲しい書籍リスト)
ずうずうしいのですが、ブログを続けるのも大変で、基本自分の学習メモのためですが、サポーター募集です。ポチッとしてくれると嬉しいです。
https://www.amazon.jp/hz/wishlist/ls/2EDNNTYRW2BJE?ref_=wl_share
もしくは、レビューなど書くので、献本していただけたらものすごく喜びます(お問い合わせ or TwitterのDMからお問い合わせ下さい。)