SlideShare a Scribd company logo
1 of 31
Chapter 4   横浜国立大学  D1  柴田泰宙  Parameterization
データに最も当てはまる直線は? Y=a + b*X a, b のような直線 ( モデル ) の形を変える係数を パラメータ と呼ぶ パラメータはどのように決めればよいのか?
数理モデルを構築するに当たっては、 パラメータや定数が必要 それらを得るための方法 4.1.  生データ そのまま 4.2.  生データを 変換 してから 4.3.  生データを 変換 して、モデルも 試行錯誤
4.1.  生データ そのまま 最も直接的 (Y=X なモデル ) ( 当たり前だが ) パラメータは推定されるものであることに留意 4.2.  生データを 変換 してから 先行研究に従って変換 ( 事例では log(Y)=log(X)) しかし、その変換がいつでも最良とは限らない
4.3.  生データを 変換 して、モデルも 試行錯誤 観測値と予測値の差が最小になるように、パラメータを調整 重みつき残差平方和 error は、 i 番目のデータの持つ分散としている (i 番目のデータは j 個のデータの平均値扱い ) データ多 ->分散小-> Cost 大->だから、 ズレちゃだめ (AIC 的には・・・ )
4.3.1  線形回帰 基本形 指数 逆数 指数 2 ( 教科書と違う )
4. 3. 2  非線形回帰 非線形の定義は? 線形でないこと 線形モデルに比べ、最も ModelCost の低い点が見つけにくいので、初期値を変えて試す必要あり 本当に見つけにくい?   ( 例は当てはめただけでつまらないので勝手に ) 初期値を乱数で変えてみた
[198,] 10.435  1.60  209.633 [199,]  45.229 -1.60 -209.632 [200,]  5.284 12.12  -70.093 [201,] 10.435  1.60  209.632 [1,] 10.435  1.60  209.632 [2,] 10.435  1.60  209.633 [3,] 10.435  1.60  209.632 ・・・ ・・・ ← 本 (p125) と一緒の値 初期値が悪いと確かに良くないようだ 4. 4  ケーススタディ 4.4.1 P-I カーブ
4.4.2  線形モデル  vs  非線形モデル P126 の (4. 10) 式を線形モデルと非線形モデル、両方でパラメータ推定します ((4.10) 式の導出は Appendix 1) 線形モデル のモデル式 非線形モデル のモデル式 と置く ただし
sum(LL$residuals^2) [1] 0.1073133 sum(summary(fit)$residuals^2) [1]  0.08434943 残差平方和は非線形回帰の方が小さかった ( 教科書は x 軸と y 軸が逆転してて非常に見にくいので、勝手に変えました .Appendix2) 線形モデル ( 赤 ) 非線形 モデル ( 青 ) 大きな x と小さな x で 当てはまりに差
4.4.3  疑似乱数によるパラメータ探索 手順 1.  たくさんのパラメータ候補を発生させる 2.  それらのパラメータを使った ModelCost を計算 3.  パラメータをいくつか選んでその平均値を計算  4.  もう一つ別のパラメータを選んで、それを軸に対称にあるパラメータを選択 5.  そのパラメータの ModelCost が一番悪い ModelCost より小さければ採択
例 (p133 のやつはコードを打てばできるので ) Y = a + bX のパラメータ a と b を推定してみる (Appendix3) 1.  たくさんのパラメータ候補を発生させる a2 <- runif(100, 0, 10) b2 <- runif(100, 0, 10) 2.  それらのパラメータを使った ModelCost を計算 この場合、 100 個の ModelCost が計算される a <- 5 b <- 3
3.  パラメータをいくつか選んでその平均値を計算  a_mean <- mean(sample(a2, 3)) 4.  もう一つ別のパラメータを選んで、それを軸に対称にあるパラメータを選択 ( 例えば、 a_mean が 5 だったとして、 a_mirror が 3 だとすると、 2*5-3=7 となり、 3 を中心に等しい距離 (2) だけ移動したことになる。局所解にトラップされない工夫だと思われる ) a_mirror <- sample(a2, 1) new_a <- 2*a_mean - a_mirror 5.  そのパラメータの ModelCost が一番悪い ModelCost より小さければ採択 最適解だけ求めようとしていることに留意
真の値 5 真の値 3 Before After
複雑なモデルでも大丈夫 得られるのは点推定値 ただし 教科書のような図に毎度はならない
4.4.4  先ほどのアルゴリズムを使って、微分方程式     のパラメータ推定 http://geos.ees.hokudai.ac.jp/noriki/Trap.html セジメントトラップ 海水中を沈降する粒子を集める装置 今回は、 有機炭素がどのように無機炭素に石灰化していくのかモデリング してみる 有機・無機炭素量 ( flux ) 酸素消費量 ( oxycon ) 上記の時間軸 < 手持ちのデータは 3 つ >
単位時間ごとの flux の変化 矢印が変化量そのもの 無機化した分を抜く 実は過少推定かも
パラメータ推定の流れ 1.  観測値と微分方程式からの予測値の差を最小にするようにパラメータ k, mult を推定する .flux の値は offset のように強制的に与えた 2.  得られたパラメータで、もう一度微分方程式   に当てはめる 3.  予測値をプロットしてみて、実際のものと合っ   ているか確認
ちょっと説明: R で微分方程式 ode 関数 (Ordinary differential equation) を使用 ode( 初期値、時間、微分方程式、パラメータ ) < 用法 > 例 : 個体群増加モデルを解いてみる (Appendix 4) N は個体数、 r は増加率、 K は環境収容力 ロジスティックモデル
Growth_model  <- function ( t , state, pars) { with (as.list(c(state, pars)), { dN <- r * N *(K - N)/K return(list(dN, r * N *(K - N)/K))}) } pars  <- c(r=0.3, K=100) ini  <- c(N=1) times  <- seq(0, 100) out <- as.data.frame(ode(func= Growth_model , y= ini ,  parms= pars , times= times )) 微分方程式作成 初期値とパラメータ 微分方程式解かせる
minmod <- function(t, Carbon, parameters) { with(as.list(c(Carbon, parameters)),  {  minrate <- k*Carbon Depo <- approx(Flux[, 1], Flux[, 2], xout=t)$y dCarbon <- mult*Depo - minrate list(dCarbon, minrate) }) } 時刻 t での flux を与えている costt <- sum((minrate- oxcon$cons)^2) …
コストがどのくらい小さくなったらやめるか コスト分布
第四章のまとめ 線形回帰と非線形回帰 を紹介した 非線形回帰の 初期値依存 の様子を示した コストをあらかじめ計算して、 良さそうなパラメータからスタート する重要性の示唆 ミラー関数 (Price  関数 ) でパラメータ推定することの有効性の示唆
おまけ 統計モデルでは尤度を使ってパラメータ推定 緑の棒線 の長さの合計 ( 積 ) 尤度 尤度 が最も大きくなるように 黄色の線 引く 最尤法 = =
最尤法の弱点 たまに、偽ピークにトラップされてしまう。 これを回避するためには? 最適解を求めようとするため なんで? 最適解を求めようとせず パラメータの分布 ( 事後分布 ) を求めれば良い
誤差を考慮することで、 不確実性を見積もる ことができる おまけのまとめ 最適解を追い求める以外のアルゴリズムでも、 同じ結論 になる 個人的には、 パラメータには誤差があるもの として扱ってほしい こともある 現実的に無理な場合が多々ありますし

More Related Content

What's hot

What's hot (20)

ラビットチャレンジレポート 機械学習
ラビットチャレンジレポート 機械学習ラビットチャレンジレポート 機械学習
ラビットチャレンジレポート 機械学習
 
Study AIラビットチャレンジ 機械学習
Study AIラビットチャレンジ 機械学習Study AIラビットチャレンジ 機械学習
Study AIラビットチャレンジ 機械学習
 
第3回Rを使って統計分析を勉強する会
第3回Rを使って統計分析を勉強する会第3回Rを使って統計分析を勉強する会
第3回Rを使って統計分析を勉強する会
 
型推論
型推論型推論
型推論
 
研究生のためのC++ no.3
研究生のためのC++ no.3研究生のためのC++ no.3
研究生のためのC++ no.3
 
EMアルゴリズム
EMアルゴリズムEMアルゴリズム
EMアルゴリズム
 
PRML 3.3.3-3.4 ベイズ線形回帰とモデル選択 / Baysian Linear Regression and Model Comparison)
PRML 3.3.3-3.4 ベイズ線形回帰とモデル選択 / Baysian Linear Regression and Model Comparison)PRML 3.3.3-3.4 ベイズ線形回帰とモデル選択 / Baysian Linear Regression and Model Comparison)
PRML 3.3.3-3.4 ベイズ線形回帰とモデル選択 / Baysian Linear Regression and Model Comparison)
 
Prml3.5 エビデンス近似〜
Prml3.5 エビデンス近似〜Prml3.5 エビデンス近似〜
Prml3.5 エビデンス近似〜
 
研究生のためのC++ no.4
研究生のためのC++ no.4研究生のためのC++ no.4
研究生のためのC++ no.4
 
Chapter9 一歩進んだ文法(前半)
Chapter9 一歩進んだ文法(前半)Chapter9 一歩進んだ文法(前半)
Chapter9 一歩進んだ文法(前半)
 
論理と計算のしくみ 5.3 型付きλ計算 (前半)
論理と計算のしくみ 5.3 型付きλ計算 (前半)論理と計算のしくみ 5.3 型付きλ計算 (前半)
論理と計算のしくみ 5.3 型付きλ計算 (前半)
 
カステラ本勉強会 第三回 補足
カステラ本勉強会 第三回 補足カステラ本勉強会 第三回 補足
カステラ本勉強会 第三回 補足
 
圏とHaskellの型
圏とHaskellの型圏とHaskellの型
圏とHaskellの型
 
統計的学習の基礎_3章
統計的学習の基礎_3章統計的学習の基礎_3章
統計的学習の基礎_3章
 
統計的学習の基礎 3章前半
統計的学習の基礎 3章前半統計的学習の基礎 3章前半
統計的学習の基礎 3章前半
 
圏論のモナドとHaskellのモナド
圏論のモナドとHaskellのモナド圏論のモナドとHaskellのモナド
圏論のモナドとHaskellのモナド
 
アルゴリズムとデータ構造10
アルゴリズムとデータ構造10アルゴリズムとデータ構造10
アルゴリズムとデータ構造10
 
圏論とHaskellは仲良し
圏論とHaskellは仲良し圏論とHaskellは仲良し
圏論とHaskellは仲良し
 
アルゴリズムとデータ構造9
アルゴリズムとデータ構造9アルゴリズムとデータ構造9
アルゴリズムとデータ構造9
 
カステラ本勉強会 第三回
カステラ本勉強会 第三回カステラ本勉強会 第三回
カステラ本勉強会 第三回
 

Viewers also liked (11)

モデルについて
モデルについてモデルについて
モデルについて
 
100711 3モデル紹介資料
100711 3モデル紹介資料100711 3モデル紹介資料
100711 3モデル紹介資料
 
100711 1 modelling勉強会
100711 1 modelling勉強会100711 1 modelling勉強会
100711 1 modelling勉強会
 
モデル勉強会100710kajiura改
モデル勉強会100710kajiura改モデル勉強会100710kajiura改
モデル勉強会100710kajiura改
 
Chapter 3 rev
Chapter 3 revChapter 3 rev
Chapter 3 rev
 
Model Seminar100710tamaki
Model Seminar100710tamakiModel Seminar100710tamaki
Model Seminar100710tamaki
 
100711 2臨界負荷量算定例
100711 2臨界負荷量算定例100711 2臨界負荷量算定例
100711 2臨界負荷量算定例
 
Model seminar koba_and_student_100710_ch2
Model seminar koba_and_student_100710_ch2Model seminar koba_and_student_100710_ch2
Model seminar koba_and_student_100710_ch2
 
Chap. 6(nakagawa)
Chap. 6(nakagawa)Chap. 6(nakagawa)
Chap. 6(nakagawa)
 
Model sminar100710 iwasaki
Model sminar100710 iwasakiModel sminar100710 iwasaki
Model sminar100710 iwasaki
 
Ise at r2
Ise at r2Ise at r2
Ise at r2
 

Similar to Model seminar shibata_100710

[読会]Logistic regression models for aggregated data
[読会]Logistic regression models for aggregated data[読会]Logistic regression models for aggregated data
[読会]Logistic regression models for aggregated data
shima o
 
パターン認識 04 混合正規分布
パターン認識 04 混合正規分布パターン認識 04 混合正規分布
パターン認識 04 混合正規分布
sleipnir002
 
ISMB読み会 2nd graph kernel
ISMB読み会 2nd graph kernelISMB読み会 2nd graph kernel
ISMB読み会 2nd graph kernel
弘毅 露崎
 

Similar to Model seminar shibata_100710 (20)

みどりぼん読書会 第4章
みどりぼん読書会 第4章みどりぼん読書会 第4章
みどりぼん読書会 第4章
 
NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料
NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料
NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料
 
Hyperoptとその周辺について
Hyperoptとその周辺についてHyperoptとその周辺について
Hyperoptとその周辺について
 
Coursera Machine Learning Week2まとめ 
Coursera Machine Learning Week2まとめ Coursera Machine Learning Week2まとめ 
Coursera Machine Learning Week2まとめ 
 
クラシックな機械学習の入門 4. 学習データと予測性能
クラシックな機械学習の入門  4.   学習データと予測性能クラシックな機械学習の入門  4.   学習データと予測性能
クラシックな機械学習の入門 4. 学習データと予測性能
 
[The Elements of Statistical Learning]Chapter8: Model Inferennce and Averaging
[The Elements of Statistical Learning]Chapter8: Model Inferennce and Averaging[The Elements of Statistical Learning]Chapter8: Model Inferennce and Averaging
[The Elements of Statistical Learning]Chapter8: Model Inferennce and Averaging
 
[読会]Logistic regression models for aggregated data
[読会]Logistic regression models for aggregated data[読会]Logistic regression models for aggregated data
[読会]Logistic regression models for aggregated data
 
EMNLP 2011 reading
EMNLP 2011 readingEMNLP 2011 reading
EMNLP 2011 reading
 
能動学習による多関係データセットの構築
能動学習による多関係データセットの構築能動学習による多関係データセットの構築
能動学習による多関係データセットの構築
 
パターン認識 04 混合正規分布
パターン認識 04 混合正規分布パターン認識 04 混合正規分布
パターン認識 04 混合正規分布
 
ISMB読み会 2nd graph kernel
ISMB読み会 2nd graph kernelISMB読み会 2nd graph kernel
ISMB読み会 2nd graph kernel
 
Yamadai.Rデモンストレーションセッション
Yamadai.RデモンストレーションセッションYamadai.Rデモンストレーションセッション
Yamadai.Rデモンストレーションセッション
 
Analyze by StatsModels or Numpy
Analyze by StatsModels or NumpyAnalyze by StatsModels or Numpy
Analyze by StatsModels or Numpy
 
第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)
 
幾何を使った統計のはなし
幾何を使った統計のはなし幾何を使った統計のはなし
幾何を使った統計のはなし
 
Python for Data Anaysis第2回勉強会4,5章
Python for Data Anaysis第2回勉強会4,5章Python for Data Anaysis第2回勉強会4,5章
Python for Data Anaysis第2回勉強会4,5章
 
Tokyo r7 sem_20100724
Tokyo r7 sem_20100724Tokyo r7 sem_20100724
Tokyo r7 sem_20100724
 
Draftall
DraftallDraftall
Draftall
 
機械学習モデルの列挙
機械学習モデルの列挙機械学習モデルの列挙
機械学習モデルの列挙
 
Sakashita
SakashitaSakashita
Sakashita
 

Model seminar shibata_100710

  • 1. Chapter 4  横浜国立大学  D1  柴田泰宙  Parameterization
  • 2. データに最も当てはまる直線は? Y=a + b*X a, b のような直線 ( モデル ) の形を変える係数を パラメータ と呼ぶ パラメータはどのように決めればよいのか?
  • 3. 数理モデルを構築するに当たっては、 パラメータや定数が必要 それらを得るための方法 4.1. 生データ そのまま 4.2. 生データを 変換 してから 4.3. 生データを 変換 して、モデルも 試行錯誤
  • 4. 4.1. 生データ そのまま 最も直接的 (Y=X なモデル ) ( 当たり前だが ) パラメータは推定されるものであることに留意 4.2. 生データを 変換 してから 先行研究に従って変換 ( 事例では log(Y)=log(X)) しかし、その変換がいつでも最良とは限らない
  • 5. 4.3. 生データを 変換 して、モデルも 試行錯誤 観測値と予測値の差が最小になるように、パラメータを調整 重みつき残差平方和 error は、 i 番目のデータの持つ分散としている (i 番目のデータは j 個のデータの平均値扱い ) データ多 ->分散小-> Cost 大->だから、 ズレちゃだめ (AIC 的には・・・ )
  • 6. 4.3.1 線形回帰 基本形 指数 逆数 指数 2 ( 教科書と違う )
  • 7. 4. 3. 2 非線形回帰 非線形の定義は? 線形でないこと 線形モデルに比べ、最も ModelCost の低い点が見つけにくいので、初期値を変えて試す必要あり 本当に見つけにくい? ( 例は当てはめただけでつまらないので勝手に ) 初期値を乱数で変えてみた
  • 8. [198,] 10.435 1.60 209.633 [199,] 45.229 -1.60 -209.632 [200,] 5.284 12.12 -70.093 [201,] 10.435 1.60 209.632 [1,] 10.435 1.60 209.632 [2,] 10.435 1.60 209.633 [3,] 10.435 1.60 209.632 ・・・ ・・・ ← 本 (p125) と一緒の値 初期値が悪いと確かに良くないようだ 4. 4 ケーススタディ 4.4.1 P-I カーブ
  • 9. 4.4.2 線形モデル vs 非線形モデル P126 の (4. 10) 式を線形モデルと非線形モデル、両方でパラメータ推定します ((4.10) 式の導出は Appendix 1) 線形モデル のモデル式 非線形モデル のモデル式 と置く ただし
  • 10. sum(LL$residuals^2) [1] 0.1073133 sum(summary(fit)$residuals^2) [1] 0.08434943 残差平方和は非線形回帰の方が小さかった ( 教科書は x 軸と y 軸が逆転してて非常に見にくいので、勝手に変えました .Appendix2) 線形モデル ( 赤 ) 非線形 モデル ( 青 ) 大きな x と小さな x で 当てはまりに差
  • 11. 4.4.3 疑似乱数によるパラメータ探索 手順 1. たくさんのパラメータ候補を発生させる 2. それらのパラメータを使った ModelCost を計算 3. パラメータをいくつか選んでその平均値を計算 4. もう一つ別のパラメータを選んで、それを軸に対称にあるパラメータを選択 5. そのパラメータの ModelCost が一番悪い ModelCost より小さければ採択
  • 12. 例 (p133 のやつはコードを打てばできるので ) Y = a + bX のパラメータ a と b を推定してみる (Appendix3) 1. たくさんのパラメータ候補を発生させる a2 <- runif(100, 0, 10) b2 <- runif(100, 0, 10) 2. それらのパラメータを使った ModelCost を計算 この場合、 100 個の ModelCost が計算される a <- 5 b <- 3
  • 13. 3. パラメータをいくつか選んでその平均値を計算 a_mean <- mean(sample(a2, 3)) 4. もう一つ別のパラメータを選んで、それを軸に対称にあるパラメータを選択 ( 例えば、 a_mean が 5 だったとして、 a_mirror が 3 だとすると、 2*5-3=7 となり、 3 を中心に等しい距離 (2) だけ移動したことになる。局所解にトラップされない工夫だと思われる ) a_mirror <- sample(a2, 1) new_a <- 2*a_mean - a_mirror 5. そのパラメータの ModelCost が一番悪い ModelCost より小さければ採択 最適解だけ求めようとしていることに留意
  • 14. 真の値 5 真の値 3 Before After
  • 15. 複雑なモデルでも大丈夫 得られるのは点推定値 ただし 教科書のような図に毎度はならない
  • 16. 4.4.4  先ほどのアルゴリズムを使って、微分方程式     のパラメータ推定 http://geos.ees.hokudai.ac.jp/noriki/Trap.html セジメントトラップ 海水中を沈降する粒子を集める装置 今回は、 有機炭素がどのように無機炭素に石灰化していくのかモデリング してみる 有機・無機炭素量 ( flux ) 酸素消費量 ( oxycon ) 上記の時間軸 < 手持ちのデータは 3 つ >
  • 17. 単位時間ごとの flux の変化 矢印が変化量そのもの 無機化した分を抜く 実は過少推定かも
  • 18. パラメータ推定の流れ 1. 観測値と微分方程式からの予測値の差を最小にするようにパラメータ k, mult を推定する .flux の値は offset のように強制的に与えた 2. 得られたパラメータで、もう一度微分方程式 に当てはめる 3. 予測値をプロットしてみて、実際のものと合っ ているか確認
  • 19. ちょっと説明: R で微分方程式 ode 関数 (Ordinary differential equation) を使用 ode( 初期値、時間、微分方程式、パラメータ ) < 用法 > 例 : 個体群増加モデルを解いてみる (Appendix 4) N は個体数、 r は増加率、 K は環境収容力 ロジスティックモデル
  • 20. Growth_model <- function ( t , state, pars) { with (as.list(c(state, pars)), { dN <- r * N *(K - N)/K return(list(dN, r * N *(K - N)/K))}) } pars <- c(r=0.3, K=100) ini <- c(N=1) times <- seq(0, 100) out <- as.data.frame(ode(func= Growth_model , y= ini , parms= pars , times= times )) 微分方程式作成 初期値とパラメータ 微分方程式解かせる
  • 21.
  • 22. minmod <- function(t, Carbon, parameters) { with(as.list(c(Carbon, parameters)), { minrate <- k*Carbon Depo <- approx(Flux[, 1], Flux[, 2], xout=t)$y dCarbon <- mult*Depo - minrate list(dCarbon, minrate) }) } 時刻 t での flux を与えている costt <- sum((minrate- oxcon$cons)^2) …
  • 23.
  • 25. 第四章のまとめ 線形回帰と非線形回帰 を紹介した 非線形回帰の 初期値依存 の様子を示した コストをあらかじめ計算して、 良さそうなパラメータからスタート する重要性の示唆 ミラー関数 (Price 関数 ) でパラメータ推定することの有効性の示唆
  • 26. おまけ 統計モデルでは尤度を使ってパラメータ推定 緑の棒線 の長さの合計 ( 積 ) 尤度 尤度 が最も大きくなるように 黄色の線 引く 最尤法 = =
  • 27. 最尤法の弱点 たまに、偽ピークにトラップされてしまう。 これを回避するためには? 最適解を求めようとするため なんで? 最適解を求めようとせず パラメータの分布 ( 事後分布 ) を求めれば良い
  • 28.
  • 29.
  • 30.
  • 31. 誤差を考慮することで、 不確実性を見積もる ことができる おまけのまとめ 最適解を追い求める以外のアルゴリズムでも、 同じ結論 になる 個人的には、 パラメータには誤差があるもの として扱ってほしい こともある 現実的に無理な場合が多々ありますし

Editor's Notes

  1. それではよろしくお願いします。本研究では、空間モデルという手法が水産生物の資源量推定法としてどの程度の性能を発揮するのか、比較検討した研究をご紹介いたします。