本のメモ

読んだ本の内容をメモしていきます。たまに数式が読み込めないことがあるので、その時にはリロードしてみてください。

【遺伝統計学の基礎】第1章を読みました

【これならわかる深層学習】は少しお休み。

山田亮 【遺伝統計学の基礎】を読んでいこうと思います。

f:id:seirosoba:20171228184954j:plain

『遺伝統計学の基礎』オーム社 - StatGenetKyotoU

受講生から遺伝統計学について教えてほしいという依頼があったので読んでみることに。教えるというより、一緒に学ぶ感じでも良いということだったので引き受けました。まずは、遺伝子について知らないと・・・。

形質の観察データ=フェノタイプ(表現型) 染色体 = DNA分子 + それを取り巻くタンパク質 染色体 = 核染色体とミトコンドリア染色体 核染色体 = 常染色体22本 + 性染色体1本(XX母由来, XY父由来)

#染色体の長さ
chromLen <- c(247249719,242951149,199501827,191273063,180857866,170899992,158821424,146274826,140273252,135374737,134452384,132349534,114142980,106368585,100338915,88827254,78774742,76117153,63811651,62435964,46944323,49691432,154913754,57772954)

#棒グラフ
barplot(chromLen, names=c(1:22, "X", "Y"), col="black")

f:id:seirosoba:20171228194342p:plain

染色体の特定の部位が持つ情報 = 遺伝子座(ローカス)

DNA分子は、4種類の塩基(A,T,G,C)と呼ばれる部分が線状に並んだ構造をしている。 長さ1の塩基部分を遺伝子座とみなした時、1塩基多型(SNP)と呼び、その座を占める塩基のバリエーションをアレルという。

ある長さに渡っての遺伝子座とみなして考える時はハプロタイプという。 →ちょっとテキストは日本語怪しくない?

ある形質に関するDNA上の情報が連続してコードされている場合と不連続にコードされている場合がある。 不連続の場合は、1つ1つをエクソン、その間をイントロンという。

【これならわかる深層学習入門】Chapter2を読みました 1

ちょっと忙しかったので久しぶりの更新。

www.kspub.co.jp

Chapter2 機械学習と深層学習

2.1 なぜ深層学習か?

[p.6]

[参考 2.1 ] ノーフリーランチ定理

特化してチューニングしたアルゴリズムには勝てない。汎用アルゴリズムは存在しないが、我々が解きたい問題をだいたい良い性能で解けるものはあるかも。証明は結構難しい。矢吹先生、伊庭先生のこのpdfが証明の概要について書かれている。

2.2 機械学習とは何か

[p.7] 

学習とは、あるタスク T について、そのパフォーマンス評価尺度  P で測られたタスクの実行能力が経験  E を通じて向上していくこと。

2.2.1 代表的なタスク

[p. 7,8]

(1) クラス分類

 \mathrm{x} \longrightarrow y(\mathrm{x}) \in \{0, 1\}

(2) 回帰

 \mathrm{x} \longrightarrow \mathrm{y} (\mathrm{x}) \in \mathbb{R}

2.2.2 さまざまななデータセット

[p.9,10]

(1)MNIST

MNISTを使ったtensorflowの初心者向けチュートリアル

http://tensorflow.classcat.com/2016/03/09/tensorflow-cc-mnist-for-ml-beginners/

MNIST

http://yann.lecun.com/exdb/mnist/

(2)ImageNet(重くて開かないかも)

http://www.image-net.org/

2.3 統計入門

2.3.1 標本と推定

[p.11]

母集団の性質はデータ生成分布 P_{data} (x) に特徴付けられているとする。

普通統計ではこれを母集団分布と言うけど、確かにこの呼び方の方がイメージがわきやすいかも。

[p.12]

 P_{data} (x) をよく近似出来る分布をモデル分布といい P(x; \mathrm{\theta}) で表す。

2.3.2 点推定

[p.13] 推定量の満たすべき性質

(1) バイアスが小さい

 b(\hat{\mathrm{\theta}}) = E[\hat{\mathrm{\theta}} ] - \mathrm{\theta^{*}}

バイアスが0なら不偏推定量 \lim_{N \to \infty} b(\hat{\mathrm{\theta}}) = 0 なら漸近不偏推定量

ここ教科書は b(\mathrm{\theta}) になってるけど間違いだと思う。

(2) 分散が小さい

(3) 一致性

[p.14]

ここからはガウス分布とベルヌーイで具体的に計算。

2.3.3 最尤推定

[p. 18]

本来は尤度 L(\mathrm{\theta}) を最大化するのだが、機械学習では最小化問題を扱うことが多いので、負の対数尤度 - \log L(\mathrm{\theta}) を最小化すると表現することが多い。

2.4 機械学習の基礎

ここ長いので次回。

【これならわかる深層学習入門】 Appendix B を読みました

www.kspub.co.jp

Appendix B 変分法

[B.1] 汎関数

[p.328]

汎関数とは、関数を変数として関数を数値に写像するもの。 →初めはだいたいこの理解でいいかな。ここの説明に近い。

[B.2] オイラーラグランジュ方程式

[p.329]

次のような  f f' に依存する汎関数

 L[f, f'] = \displaystyle \int l(f(x), f'(x)) \; \mathrm{d}x

を考える。 f(x)を微小変動させて、 f(x) + \delta f(x)とした時の汎関数の変化量をみる。テイラー展開の1次項までで近似して、

 L[ f + \delta f, f' + \delta f' ] - L[ f, f' ]  \approx \displaystyle \int (\frac{\partial l}{\partial f} - \frac{\mathrm{d}}{\mathrm{d} x} \frac{\partial l}{\partial f'}) \; \delta 
 f(x) \; \mathrm{d} x

ここの導出は久しぶりにやった。こんなにめんどくさかったっけ。これがとても参考になる。

[公式B.1] オイラーラグランジュ方程式

 \displaystyle \frac{\partial l (f(x), f'(x))}{\partial f(x)} - \frac{\mathrm{d}}{\mathrm{dx}} \frac{\partial l (f(x), f'(x))}{\partial f'(x)} = 0

感想

  1. 変分法の復習。解析力学で昔やった。

  2. AppendixはAもBもここだけで理解するのは厳しいので、ここが後々クリティカルになるのなら他の本で学習する必要があるかも。

【これならわかる深層学習入門】Appendix Aを読みました

www.kspub.co.jp

Appendix A 確率の基礎

[A.1] 確率変数と確率分布

[p.318]

確率と確率分布のはなし。離散確率変数と連続確率変数は区別しない。

[p.319]

[例A.1カプセルの中のコインの例]で同時確率分布(joint probability distribution)を定義。

周辺化

 P(X = x) = \displaystyle \sum_{y} P(X = x, Y = Y) \
[p.320]

[A1.1] 独立性

 P(x, y) = P(x) P(y)

[A1.2]ベルヌーイ分布

 P(X= x) = p^{x} (1-p)^{1-x} xは0か1
[p.321]

[A.2] 連続確率変数と確率質量関数

確率分布に対応するものは確率密度(probability density)

やっぱりこの辺りが曖昧なのは、なんかモヤモヤする。

[A2.1]ガウス分布

ガウス分布は代表的な確率質量関数

本当は確率密度関数。そもそも確率質量関数の定義ってどこかでしてあるのかな?

[p.322]

[命題A.6]多変数の条件付き確率

 P(x | y, z_{1}, z_{2}, \cdots ) = \displaystyle \frac{ P(x, y | z_{1}, z_{2}, \cdots )} {P(y | z_{1}, z_{2}, \cdots) }
[p.324]

[A.2.4]確率の連鎖律

 P(x_{1}, x_{2}, \cdots, x_{M} ) = P(x_{1})  \displaystyle \prod_{m=2}^{M} P(x_{m} | x_{1} \cdots x_{m-1})

例えば3変数の時は

 P(x_{1}, x_{2}, x_{3}) = P(x_{1}, x_{2}) P(x_{3} | x_{1}, x_{2})  = P(x_{1})P(x_{2}|x_{1})P(x_{3} | x_{1}, x_{2})

[A.3] 期待値と分散

[p.324]

[A.3.1]期待値

正規分布の期待値・分散計算 →途中の式変形なんか追えてない。もっと簡単にできると思う。ガウス積分を仮定するなら、 x = x-\mu + \muとして素直に積分するのがいい気がする。

[p.326]

一様分布の期待値計算 →間違えてる。正しくは (a + b)/2

[A.4] 情報量とダイバージェンス

[p.326]

[定義A.9] 自己情報量

 I(x) = - \log P(x)

[定義A.10] シャノンエントロピー(平均情報量)

 H(P) = E_{P} [ I(X) ] = - \displaystyle \sum_{x} P(x) \log P(x)
[p.327]

[定義A.11] 交差エントロピー

 H(P, Q) = E_{P} [ - \log Q(x) ] = -\displaystyle\sum_{x \sim P(x)} P(x) \log Q(x)

[定義A.12] カルバックライブラーダイバージェンス

 D_{KL}(P||Q) = E_{P} \log \displaystyle \frac{P(x)}{Q(x)} = \sum_{x \sim P(x)} P(x)( \log P(x) - \log Q(x))

初心者がこの辺りの定義をこの本の説明だけで納得するのは厳しいかも。甘利先生の情報理論とかがおすすめ。

感想

  1. いくつか誤りや手筋が悪いものもある。一様分布の期待値・分散・・・。

  2. 情報量については、先に何かの本で学んでおく方がいいかも。例えば簡単に読めるものなら甘利先生の情報理論

【これならわかる深層学習入門】Chapter1を読みました

www.kspub.co.jp

Chapter1 はじめに

 ここには、この本の基本的な読み方が書いてある。

簡単なまとめ

[p.1]

 [図1.1本書の構成]には章の流れが書いてある。 →付録A,Bから始まってるがここから読んだ方がいいのかな?

[p.2]

 数学的記法の注意点。

・ベクトルは基本的に全て縦ベクトル。

 
v = \begin{bmatrix} v_{1} \\ v_{2} \\ v_{3} \end{bmatrix} ,  

v^{T} = \begin{bmatrix} v_{1} & v_{2} & v_{3} \end{bmatrix}

・ベクトルの長さ(の2乗)については、単純にv^{2}で表す。

・確率変数は X で、確率変数の実現値については x で表す。

・離散確率変数と連続確率変数を区別しない。これらの従う分布を P(X)とかく。 →違和感あるけど、そういうもの?

 P(X)から一つの実現値を生成する作業を「 Xをサンプリングする」と呼んでそれを  x \sim P(X) と表記する。 →普通は確率変数がある分布に従う時に X \sim p.d.みたいに書くけど、ここでは違うのかな。

・近似的に値が等しいの記号は \approx

・確率分布 Pに関する期待値は E_{P} [\cdots ] と表す。誤差関数 E[\cdots ] を混同しないように注意。

感想

  1. 離散と連続の確率変数をきちんと分けておかないと、そのうちめんどくさいことになる予感。

  2. ちょっと記法に違和感があるが、そのうち慣れるのかも。

  3. 付録は簡単な内容だけど、一応ここから読んだ方が良いのかな。

【これならわかる深層学習入門】を読み始めます

 記念すべき第一冊目。

 機械学習の本といえば、講談社機械学習プロフェッショナルシリーズ(MLP)が有名ですが、そのシリーズの入門書的な位置づけとして、新しく機械学習スタートアップシリーズ(MLS)というものが最近発売されました。

 その中の一冊で、瀧雅人先生の【これならわかる深層学習入門】

www.kspub.co.jp

という本をこれから読んできます。

 普段は私は、数学を大人に教える仕事をしているのですが、この本を講義してほしいというご依頼がありまして、それで勉強も兼ねてメモをつけてみようと思った次第です。

 まえがきの情報によると、著者の瀧雅人先生のご専門は、実は素粒子超弦理論らしい!!!のですが、個人的に深層学習(ディープラーニング)について勉強され、この本の出版に至ったとのことでした。個人的に蓄えていた勉強ノート(これとかがそうなのかも)がこの本の出版の土台となっているそうです。

 深層学習の本といえば先に述べた、MLPシリーズの岡谷貴之先生の【深層学習】や、WEB上に公開されているIan Goodfellow, Yoshua Bengio, Aaron Courvilleの【Deep Learning】(東大の松尾豊先生のゼミが中心となった翻訳も公開されています。)が非常に有名ですが、この2つは機械学習について全然知らない人が読める本ではないと個人的には思うので(【Deep Learning】はかなり丁寧に書かれているんですが、いかんせん厚いんですよね)、その2つの本の前に読む本として推薦できるものがあればと常々思っていました。そういった期待を込めて読んでみようと思います。