2019年を振り返る記事です。
Blog posts
2019年に投稿した記事は13本だった。全体的には Python に関する記事が多かった。また, 会社のテックブログに6本投稿した。
Books read
2019年は本を45冊買った。プログラミング関連では, プログラミングの基礎体力向上のため LeetCode を100 問解いたり, プログラミングコンテストチャレンジブック (通称: 蟻本) を読んだりした。
読了した中で印象に残っている本を挙げて振り返ってみる。
- 『FACTFULNESS (ファクトフルネス) 10の思い込みを乗り越え、データを基に世界を正しく見る習慣』
- 『ビッグ・クエスチョン―〈人類の難問〉に答えよう』
- 『自然言語処理のための深層学習』
- 『つくりながら学ぶ!PyTorchによる発展ディープラーニング』
- 『Kaggleで勝つデータ分析の技術』
『FACTFULNESS (ファクトフルネス) 10の思い込みを乗り越え、データを基に世界を正しく見る習慣』
本書の原著者 Hans Rosling 氏は医師で公衆衛生学の教授でもある。本書は人間の本能 (分断本能, ネガティブ本能, 直線本能, 恐怖本能, 過大視本能, パターン化本能, 宿命本能, 単純化本能, 犯人捜し本能, 焦り本能) が引き起こす思い込みを認識した上で, 事実に基づいた世界の見方を指南するという内容である。
上記の本能のひとつ, ネガティブ本能の例として, 人は以前より悪いニュースが増えてきていると思いやすい例を挙げている。悪いニュースが増えたことは悪い出来事が増えたとは限らない。悪いニュースは良いニュースよりも広まり易いし, IT の発達や報道の自由化などにより監視が行き届いた結果かもしれない。
IT システムの監視においても, 異常や異常の予兆を検知できるのはメトリクスを常時監視しているから可能なのであり, そもそも監視が機能していなければ, 気づいたときには手の施しようがない状況に陥いることも考えられる。また, ロギングしていなければ異常がどのように発生したかの手がかりも得られないだろう。
事実に基づいた世界の見方をするために, データを正しく読み解くことは重要である。データ分析においてもデータ収集の過程が適切であったか調べることは分析の信頼性にも繋がる。機械学習サービスが普及しても, データの背景を読み解くのはあくまで人間なので客観的で謙虚な分析を心がけたいと思う。
『ビッグ・クエスチョン―〈人類の難問〉に答えよう』
本書は 2018 年に亡くなった Stephen Hawking 氏が, 生前に「宇宙の始まり」や「地球外の知的生命」,「ブラックホールの内部」などの人類の難問について答えたものを, 娘の Lucy Hawking 氏がまとめた本 (原著: 『Brief Answers to the Big Questions』) である。
私は理論物理学は全くと言っていいほど知識がない素人であるが, 本書を読むにあたっては高校生くらいの知識があれば充分だと思う。
特に印象的だったのは, 宇宙に関する理論は私たちが現に存在する事実と両立しなければならないという”人間原理”という考えであった。人間原理は, この宇宙が生命に適さないものだったら宇宙はなぜこれほど人間に都合よくできているかと問う我々も存在しなかったという論理に基づくものである。
『自然言語処理のための深層学習』
本書の原著は Yoav Goldberg 氏による『Neural Network Methods for Natural Language Processing』である。本書は, 機械学習とニューラルネットワークの基礎から, テキストデータの素性 (BOW, TF-IDF, n-gram etc), CNN/RNN, 単語埋め込み, 自然言語分野における応用タスクまで丁寧に解説されている。
夏頃に文書類似度や文書要約について調べた際に重宝した。一方, 原著刊行後に, アテンション機構や Transformer, BERT といった進展があった点には注意が必要。
『つくりながら学ぶ!PyTorchによる発展ディープラーニング』
2019 年 12 月に PFN が Chainer の開発を終了し PyTorch に移行すると発表した。Google Trends で主要な深層学習フレームワークの検索数の推移を確認すると PyTorch が伸びてきており TensorFlow との差は縮まってきていることがわかる。
本書は PyTorch の基本となる Dataset/DataLoader クラスの作成やモデルの定義だけでなく, 以下の深層学習の応用領域も扱っているので実装したいときの参考になりそう。
- 物体検出 (SSD)
- セマンティックセグメンテーション (PSPNet)
- 姿勢推定 (OpenPose)
- GAN による画像生成 (DCGAN, Self-Attention GAN)
- GAN による異常検知 (AnoGAN, Efficient GAN)
- 自然言語処理による感情分析 (Transformer, BERT)
- 動画分類 (3DGAN, ECO)
本書のような実践本と合わせて流行り廃りに依りにくい理論本を読んでおくとバランスが良いと思う。また, 深層強化学習については著者の前書『つくりながら学ぶ!深層強化学習 PyTorchによる実践プログラミング』がある。
『Kaggleで勝つデータ分析の技術』
本書は Kaggle コンペで, どのようなデータセットに対してどのようなテクニックが使われたかを事例を交えて整理した本である。2章以降は, タスクと評価指標, モデルの評価とチューニング, 不均衡データや欠損値の扱い方, アンサンブルなど Kaggle に限らずデータ分析の実務でも役立つ内容となっている。
テーブルデータを対象とした Kaggle コンペで主役となる GBDT では特に特徴エンジニアリングが重要となるが, 実務で GBDT を使う際,「第3章 特徴量の作成」は豊富なテクニックやアイデアが書かれており重宝しそうだ。また, 「第5章 モデルの評価」の stratified k-fold, 時系列データのバリデーション法, adversarial validation, テーブルデータにおけるデータ拡張は特に勉強になった。アンサンブル法の理論的側面は『アンサンブル法による機械学習: 基礎とアルゴリズム』も参考になりそうだと思った。
Seminars
2019年に参加したイベントの中で, 印象に残っているイベントは以下。
- ステアラボ人工知能シンポジウム2019
- 産総研 人工知能研究センター 国際シンポジウム 2019
- AWS Summit Tokyo 2019
- LINE DEVELOPER DAY 2019
- NHN FORWARD 2019
Movies
2019年に観た映画のうち印象に残っている映画。
- SYCHO-PASS サイコパス Sinners of the System Case.1 罪と罰
- スター・ウォーズ/スカイウォーカーの夜明け
PSYCHO-PASS サイコパス の新作アニメ『PSYCHO-PASS サイコパス 3』が 10/24 から放映され 12/12 に最終回を迎えた。来春には新作映画も公開されるようなので期待したい。
『スター・ウォーズ/スカイウォーカーの夜明け』は, レイを主人公とする三部作の完結編である。スター・ウォーズ三部作の中でも完結編は完成度が高く, 個人的に満足度も高い。新たな三部作が 2022 年から公開予定とのことでこちらも楽しみである。スター・ウォーズはこれからも王道のストーリーを貫いて欲しい。
余談になるが, スター・ウォーズのオープニングの「A long time ago, in a galaxy far, far away….」のフォントカラー が昔から好きで, RGB値 (R: 75, G: 213, B: 238) を調べていたところ, オープニングを HTML/CSS で再現する Developing the Star Wars opening crawl in HTML/CSS というサイトを発見し何度も再生してしまった。