お正月読書感想文
1月も12日目ですが、あけましておめでとうございます。
インシリコ創薬に興味を持ち勉強を始めてみましたが、そもそもインフォマティクス(?)に関する知識が全然無い・・・ということで、年末年始の休暇を利用して数冊本を流し読みしてみました。
コードも数式も理解できないので読み飛ばしてしまいましたが、折角なので、備忘録を兼ねて感想を書きます。
- 1冊目:よくわかるバイオインフォマティクス 入門
- 2冊目:Pythonデータサイエンスハンドブック
- 3冊目:PythonとKerasによるディープラーニング
- 4冊目:データ解析のための統計モデリング入門
- 5冊目:これならわかる最適化数学
- 6冊目:プログラミングのための線形代数
- まとめ
1冊目:よくわかるバイオインフォマティクス 入門
よくわかるバイオインフォマティクス入門 (KS生命科学専門書)
- 作者: 岩部直之,川端猛,浜田道昭,門田幸二,須山幹太,光山統泰,黒川顕,森宙史,東光一,吉沢明康,片山俊明,藤博幸
- 出版社/メーカー: 講談社
- 発売日: 2018/11/19
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
ケモインフォマティクス についての入門書はどれを読めば良いか分からなかったので、まずはバイオインフォマティクス の本をということでTwitterでオススメされていたこちらの本を購入しました。*1
目次をご覧いただくのが一番早いと思うので講談社サイエンティフィク さんのページより拝借・・・
1章 配列解析
2章 分子進化
3章 タンパク質の立体構造解析
4章 ncRNA解析
5章 NGSデータ概論
6章 ゲノム解析
7章 トランスクリプトーム解析
8章 エピゲノム解析
9章 メタゲノム解析
10章 プロテオーム解析
11章 データベース
12章 バイオのための機械学習概論
バイオインフォマティクスに関し全くの門外漢だったのですが、分子生物学を中心として、遺伝子(上流、1次元)からタンパク質の構造・機能解析(下流、3次元)まで、さまざまな段階においてデータ解析を活用した研究を行うといった印象でした。
各トピックに関して「そもそもそれをなぜ研究したいのか」という分野の意義の説明から、その分野において「インフォマティクスの技術はどう使えるか」、また「実際に使うにはどうすれば良いか」という具体的なデータベースのアクセス・解析の原理と方法についてカラーの図で解説してあり非常に面白かったです。
ところで、分子生物学というと細胞内部や、個体内部といったミクロな視点がメインという印象を勝手にいだいていたのですが、こちらの本ではよりマクロな視点も取り扱われていました。具体的には、「1章 配列解析」における、生物種間でのタンパク質の差異の検証に基づき進化の分岐点を探る、といった歴史を辿るような試みや、「9章 メタゲノム解析」における、ある場所に存在する多種多様な微生物の集まりをひとまとめにして、遺伝子プールという観点からその集団の持つ特性を評価する、という群としての取り扱いなども取り上げられています。
私は薬学部出身なのですが、大学に進学した際に「高校の生物学ではエンドウ豆のシワの話やら、淡水魚・海水魚と浸透圧、みたいな話をしていてわかりやすかったのに、なぜ大学はタンパク質の話しかしないんだ??? もっとマクロな話はどうなった??」と、「生体内分子の機能を明らかにすることで生物を理解する」という趣旨を理解するのにとても時間がかかったダメ学生でした・・・農学部や理学部に行ったら違ったのかも。なので、この本を読んで「マクロな生物学の解析にこんな風に進んでいたのか!」と非常に面白かったです。*2
個人的に最もオススメしたいのは「6章 ncRNA解析」です。セントラルドグマのせいかRNAに対して「DNAとタンパク質の間をつなぐ影の存在」的な印象を抱いていたので、タンパク質には翻訳されずRNA自身が生体内で機能する(noncoding RNA: ncRNA)の研究が近年急速に進歩していること、機能と結びつくRNAの2次・高次構造解析、RNA-RNA / RNA-タンパク質 相互作用解析 といった研究が広がっていることを知りませんでした。20ページもありませんが、その中でncRNAの基礎から最新の研究への流れと、今後の展望について一気に語られており、「急速に知識を詰め込まれていく感じとても気持ち良い!」*3という感じです。
総じて、各章「そもそもそれをなぜ研究したいのか」という分野の意義の説明から、その分野において「インフォマティクスの技術はどう使えるか」、また「実際に使うにはどうすれば良いか」という具体的なデータベースのアクセス・解析の原理と方法についてカラーの図で解説してあり非常に面白かったです。カラーなのでお値段高めですが、理工書としてはお手頃ですしこれから入門したいという方にはオススメ!
2冊目:Pythonデータサイエンスハンドブック
Pythonデータサイエンスハンドブック ―Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習
- 作者: Jake VanderPlas,菊池彰
- 出版社/メーカー: オライリージャパン
- 発売日: 2018/05/26
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
過去の記事でPandasのdataframeを使ってみたりしましたが、「そもそもPandasって何だ?ハードル高いエクセルか?もうエクセルでよくない???」ぐらいの低レベルなので購入してみました。 エクセルもsumしか使えないんですけどね・・・
原書は無料で公開されているそうですが、英語だと多分1年かかるし紙の本じゃないと140字以上読めない・・・。
*こちらブログの書評が素晴らしいので有用な情報が欲しい方はこちらをお読みください。
→ 『Pythonデータサイエンスハンドブック』は良書(NumPy, pandasほか) | note.nkmk.me
目次はこんな感じ
1章 IPython : Pythonより優れたPython
2章 NumPyの基礎
3章 pandasを使ったデータ操作
4章 Matplotlibによる可視化
5章 機械学習
Pythonを使ってデータ解析を行う際に基礎となるライブラリが紹介されているそうです。データ解析をやったことないのでよくわかりませんが、とりあえず素人理解では、
・IPython → インタラクティブに検証可能なので解析が捗る
・NumPy → 科学計算でPythonを扱うのに有用な数値配列のパッケージ
・Pandas → NumPyの上に構築されたデータ操作に有用なパッケージ
・Matplotlib → 綺麗なグラフ描ける
・機械学習 → scikit-learnを使えば原理をよくわからなくても試すことができる
ということみたいです。
章を読み進めるに従って、
・NumPyがPythonの配列よりもなぜ効率がよく効果的か
・NumPyの制限をPandasがいかに解決したか
・Pandasで扱うデータをMatplotlibを使えばどう効果的にビジュアル化できるか
順番に理解していくことができるため、初心者にとって非常にわかりやすい構成になっていました。 (読み飛ばしましたが)コピペして使えそうなコードが多数あり、また「4章 Matplotlib」では描きたグラフを描くための細かな調整の方法が詳しく書いてあるので、手元に置いておいて困った時に参照しよう、という内容になっています。
また、先の「よくわかるバイオインフォマティクス 入門」の「12章 バイオのための機械学習概論」は名前の通り概論で機械学習の具体的な内容まではよくわからなかったのですが、こちらの「Pythonデータサイエンスハンドブック」ではデータサイエンスを謳っているだけあり、機械学習の事例・実行するためのコードについて多数紹介されていて先の補完の意味でもとても勉強になりました。
とりあえず大きなデータを扱ってやりたい分析をできるようにするには、この本で紹介されているような内容を把握なければいけなさそう・・・ということで出発点として非常に良い本なのかな、という感想です。
3冊目:PythonとKerasによるディープラーニング
- 作者: Francois Chollet,巣籠悠輔,株式会社クイープ
- 出版社/メーカー: マイナビ出版
- 発売日: 2018/05/28
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
やはりディープな話題にも触れてみなければならないのではないのか、ということで購入。ネットで購入して届いたら予想以上に分厚くて読む前から挫折しそうになったのですが、非常に読みやすくなんとか読み通すことができました。
まあ、コードを読まずに、図を追いかけただけなんですけどね。何となく雰囲気はつかめたので良し。
目次をマイナビブックスさんから・・・(サポートサイトへのリンクもあります)
Part 1 ディープラーニングの基礎
1章 ディープラーニングとは何か
2章 予習:ニューラルネットワークの数学的要素
3章 入門:ニューラルネットワーク
4章 機械学習の基礎
Part 2 ディープラーニングの実践
5章 コンピュータビジョンのためのディープラーニング
6章 テキストとシーケンスのためのディープラーニング
8章 ジェネレーティブディープラーニング
9章 本書のまとめ
ディプラーニングの基礎的な話から、具体的に行うにはどうすれば良いのかKerasを使って説明されてます。原書の著者はKerasの作成者(!)だそうで、「LEGOブロックを組み立てる」ように簡単な「ユーザーフレンドリなライブラリ」により「ディープラーニングが大衆化」し、新規参入者が増えたことが分野を後押ししている、とのことです。もちろん作成者だけに現状での限界や、できないことについても記述してあり、その点が非常に良いと思いました。
ケモインフォマティクス の分野から勉強を始めたため、あまり認識していなかったのですがディープラーニングの強い分野はやはり画像認識、ということで様々な興味深い事例が紹介されていました。悪夢的な画像を生成するDeepDreamや、任意の画像をゴッホが描いたかのように変換するニューラルスタイル変換など、やはり画像に関する技術はビジュアル的なインパクトが強く、門外漢にとっては読んでいてワクワクする純粋に楽しめる内容でした。
また、ケモインフォ の記事をみていて見かける化合物生成に関連する技術、変分オートエンコーダ(VAE)や敵対生成ネットワーク(GAN)についてもとりあげられており、元々はこういう技術だったのか!と出所がわかり面白かったです。
とりあえず、ネットワークの損失関数をオプティマイズすれば良いってさ (←よくわからなかった)
4冊目:データ解析のための統計モデリング入門
データ解析のための統計モデリング入門――一般化線形モデル・階層ベイズモデル・MCMC (確率と情報の科学)
- 作者: 久保拓弥
- 出版社/メーカー: 岩波書店
- 発売日: 2012/05/19
- メディア: 単行本
- 購入: 16人 クリック: 163回
- この商品を含むブログ (29件) を見る
流行りのディープラーニングについて浅すぎる理解ができたので、次は機械学習に関連して各所でオススメされている本を・・・ということで緑本(で、あってます?)を購入しました。ハードカバーと難しそうな単語が並ぶタイトルからしてハードルが高かったのですが、驚くほど分かり易く読み易い語り口で一気に読み通すことができました。いろいろなブログでオススメされているのも納得という良書・・・もちろんコードは追えていない
著者の久保拓弥先生のページで出版のもとになった講義のーと が公開されており、章立てと全体の流れの解説図があるため目次は割愛します。
さて、先の「PythonとKerasによるディープラーニング」の中で、ディープラーニングと従来のシャローラーニング(表層学習)との違いとして、ニューラルネットワークは生のデータから有益な特徴量を自動的に抽出できるため、特徴エンジニアリング(特徴量をより単純な方法で表現することで、問題を容易にすること)を必要とせずに行うことができる、ということが挙げられていました(4章 p.106)。だからと言って特徴エンジニアリングを疎かにすべきではないし、重要性として
・リソースの消費を抑えた上で問題を的確に解決できる
・より少ないデータで解決できる
があげられていましたが、やはりディープラーニングの大きな長所として特徴抽出に関して何度も述べられていました。
他方、「データ解析のための統計モデリング入門」はまさに上記と対になるような内容という印象でした(間違ってたらすみません)。与えらえれたデータをもとにどのようにしてモデルを構築すれば良いか? 最小二乗法によるシンプルな線形モデルから、より高度な一般化線形モデル、階層ベイズモデルへと順をおってより複雑なモデルが説明されています。データのバックグラウンドを考慮しながら、複雑な自然のデータを解釈するためのモデルを作り上げていく流れは、”ドメイン知識に基づく特徴の抽出”といった感じで、研究者の思考をたどるような面白さがありました。
残念ながらベイズ統計(というより統計全体)を理解していないため、後半、話の流れを追えなかった部分もあるのですが、とりあえず初心者でも一度は目を通した方が良い本だ、と思いました。
5冊目:これならわかる最適化数学
統計モデリング入門は大変分かりやすかったのですが、やはり数学的素養があまりにもなさすぎてところどころ理解できない部分がありました。そこで「化学の新しいカタチ」さんのこちらの記事 でDr. Tomさんがオススメされていた、こちらの本を購入しました。
目次はこのような感じ・・・
第1章 数学的準備
第2章 関数の極値
第3章 関数の最適化
第4章 最小二乗法
第5章 統計的最適化
第6章 線形計画法
第7章 非線形計画法
第8章 動的計画法
やはりDr. Tomさんがオススメされているだけあって非常に良い本で、読み進めるための数学的基礎の準備から、いかに関数を処理し最適化を行えば良いか、非常に分かりやすく解説されています。特にたまに見かけるけどもよくわからないまま放置していた「ラグランジュの未定乗数法」についても取り扱われていたので、個人的にはそれだけで読む価値がありました(・・・普通の理系なら当たり前の知識かも)。
私の浅い理解では、機械学習は「モデルの作成 → 最適化問題を解く」という感じなので、これから勉強する上で色々と役に立ちそう・・・と思っています。また、本書のまえがきで述べられているところによると、最適化数学(数理計画)は「経営学やオペレーションズリサーチ(OR)の分野の中心テーマ」ということのようなので、「ある制約の下で、できるだけ最大限の利益を得る(= 損失を最小にする)ための最適な解を求める」という考え方は、機械学習に限らず様々な局面で役立ちそうです。
・・・っていうか大学で教えて欲しかった
6冊目:プログラミングのための線形代数
さて、「これなら分かる最適化数学」は大変良い本だったのですが、致命的に数学ができない私はこれでもわからない・・・。「今、何で行列のカッコ取れた?」「転置どこいった?」という調子で、とにかく式変形が追えない。これはダメだ・・・ということで線形代数に再入門すべくこちらの本を購入しました。
amazonの評価が高いだけあって、またしても良書でした! 本書の「はじめに」で述べられているように、
・「数学のプロではない」読者を対象に
・「数学のための数学ではなく」
・「何の役にたつのか」の説明に気を配った
との言葉通り、多数の図を使って線形代数の様々な操作がどういう意味をもつのか説明されていて、私でも「線形代数が何をしたいのか」わかった気になりました。
目次は割愛し、重要なメッセージを!
・「行列は写像だ!」
・「行列は写像だ!」
・「行列は写像だ!」
そして、
・「空間で発想だ!」
・「たいていのものはズームアップすればほとんどまっすぐだ!」
以上!
まとめ
コツコツと読み進めるといった計画的な勉強ができないダメ人間なので、長期休暇を活用すべく思い切って6冊も本を購入してしまいました。しかも、どうしても電子書籍に馴染めないという旧世代の人間なので全て紙版・・・。正直、金銭的にかなり辛かったのですが、各所でオススメされている本を中心に購入しただけあって、どの本も大変素晴らしく読んでよかった!と、思える本ばかりでした。
やはり「3日で分かる・・・」とかそんなタイトルにつられて何冊も購入するよりも、評価の高い本を腰を据えて読むのが大事だなあ、と今更ながらに実感した次第です。
当初は「大学で統計や線形代数は一度勉強してるしー」みたいな軽い気持ちだったのですが、思った以上に何も理解していなかっです。大学院まで行ってこの低レベルの私は一体・・・。というよりジョルダン標準形やらラグランジュの未定乗数法やらやった記憶が一切ないんですが、私は本当に理系なのか???
・・・
というわけで、本年も雰囲気理系として、ぼちぼちやっていきたいと思いますのでどうぞよろしくお願いいたします。