SlideShare a Scribd company logo
1 of 40
Download to read offline
Optimization in R
                                 id:syou6162




Saturday, March 27, 2010
Agenda
                    •
                           •   GSoC    Tsukuba.R
                    • Optimization in R(R              )
                     •
                     •                             R
                     •
Saturday, March 27, 2010
•                (id:syou6162 @syou6162)

                           • http://syou6162.sakura.ne.jp/
                    •              =>

                    •                     &



Saturday, March 27, 2010
Google Summer of
                                Code
                    • 3/29
                    • NoSQL interface for R
                      • Dirk Eddelbuettel
                    •

Saturday, March 27, 2010
Tsukuba.R
                    •      (      )                R



                           •          R

                           •              (Tokyo Osaka Nagoya)



                    •      2008   7           #6


Saturday, March 27, 2010
(1)
                    •
                           •                            plot

                           •
                           •   R

                    •
                           •             apply family

                           •   ggplot2 animation




Saturday, March 27, 2010
(2)
                           •
                               •   R   C

                                   •   openCV C   R

                               •   R

                           •
                               •   Twitter




Saturday, March 27, 2010
Tsukuba.R


Saturday, March 27, 2010
Saturday, March 27, 2010
Saturday, March 27, 2010
Saturday, March 27, 2010
Saturday, March 27, 2010
Saturday, March 27, 2010
•
                           Tsukuba.R



                    •

Saturday, March 27, 2010
Optimization in R
                                 id:syou6162




Saturday, March 27, 2010
R

                    •                      2      !!
                    • optim optimize
                      • optim          optimize   1

                    •                  ?



Saturday, March 27, 2010
?
                    •R
                     •                  =>
                               !!

                    •
                           •        ?


Saturday, March 27, 2010
:

                           (=       )
                                    !!




                                         http://ja.wikipedia.org/wiki/

Saturday, March 27, 2010
•          (   )

                    •
                           •
                           •           !!


Saturday, March 27, 2010
> f <- function (x) (x - 1 / 3)^2
                     > (xmin <- optimize(f, c(0, 1), tol =
                     0.0001)
                     $minimum
                     [1] 0.3333333

                     $objective
                     [1] 0




Saturday, March 27, 2010
•
                    •
                    •      (   )



                    •

Saturday, March 27, 2010
R
                    •

                    •R
                           log_likelihood_for_norm <- function(x){
                             return(function(par){
                                mu <- par[1]
                                sigma2 <- par[2]
                                - length(x) / 2 * log(sigma2) - 1 / 2 *
                           sum((x - mu)^2) / sigma2
                             })
                                                      (x)        μ σ
                           }


Saturday, March 27, 2010
:
                    •R
                    •
                           •
                    •R                            : apply family
                     • apply
                       tapply
                                sapply mapply
                                 rapply eapply
                                                 lapply



Saturday, March 27, 2010
: sapply&rapply
                           > invisible(sapply(1:3, function(x) { cat("x
                           is", x, fill=TRUE) }))
                           x is 1
                           x is 2
                           x is 3

                           > rapply(list(list(c("a", "b"), list(1:10)),
                           matrix(1:10, 2, 5)),
                           +   function(x) {
                           +     class(x)
                           +   }
                           + )
                           [1] "character" "integer"   "matrix"



Saturday, March 27, 2010
R
                    •

                    •R
                           log_likelihood_for_norm <- function(x){
                             return(function(par){
                                mu <- par[1]
                                sigma2 <- par[2]
                                - length(x) / 2 * log(sigma2) - 1 / 2 *
                           sum((x - mu)^2) / sigma2
                             })
                                                      (x)        μ σ
                           }


Saturday, March 27, 2010
optim
                    •
                              => cars$speed
                   > optim(par = c(5, 10), fn = log_likelihood_for_norm(cars$speed),
                   control = list(fnscale = -1))
                   $par
                   [1] 15.39812 27.40184                                  (            )

                   $value
                   [1] -107.7636

                   $counts
                   function gradient
                         75       NA
                                             optim
                   $convergence
                                                     fnscale=-1
                   [1] 0

                   $message
                   NULL
Saturday, March 27, 2010
?
                  > optim(par = c(5, 10), fn = log_likelihood_for_norm(cars$speed),
                  control = list(fnscale = -1))
                  $par
                  [1] 15.39812 27.40184

                  $value
                  [1] -107.7636
                                                            > mean(cars$speed)
                                                            [1] 15.4
                  $counts
                                                            > var(cars$speed)
                  function gradient
                                                            [1] 27.95918
                        75       NA

                  $convergence
                  [1] 0                                      !!

                  $message
                  NULL




Saturday, March 27, 2010
!!


                                result <- lm(dist~speed, data=cars)
                                plot(cars)
                                coef <- result$coef
                                abline(coef[1], coef[2], col="red")

Saturday, March 27, 2010
> obj_func <- function(x, y) {
                           +    function(par) {
                           +      a <- par[1]; b <- par[2]
                           +      sum((y - (a + b * x))^2)
                           +    }
                           + }
                           >
                           > result <- optim(par = c(0, 5),
                           fn = obj_func(cars$speed, cars
                           $dist))
                           > result$par
                           [1] -17.579625    3.932217
                           > lm(dist~speed, data=cars)$coef
                           (Intercept)        speed
                                                              !!
                             -17.579095    3.932409
Saturday, March 27, 2010
...

                    • optim         method
                     • CG SANN
                        B
                            BFGS   Nelder-Mead L-BFGS-

                           •


Saturday, March 27, 2010
CG(                                   )
                    •
                           •   2

                           •
                    •              n   2                                   n


                    •                                       CG

                           •
                                           http://ja.wikipedia.org/wiki/
Saturday, March 27, 2010
BFGS
                    •                <=

                    •               =>        2       =>


                           •
                           •   =>         2
                                                  (   )


                    •
                           •
Saturday, March 27, 2010
Nelder-Mead
                    •      N                    N+1


                           •
                           •
                           •
                    •

                                       http://ibisforest.org/index.php?Nelder-Mead
Saturday, March 27, 2010
Nelder-Mead




                              optim (method )

Saturday, March 27, 2010
R
                    • optim

                           •                         etc
                    •          Nelder-Mead    SANN



                    •                  BFGS    CG


Saturday, March 27, 2010
FAQ



Saturday, March 27, 2010
R                                       ?
                    •
                    •
                           •   C   C++

                    •      Tsukuba.R#4

                    •      http://d.hatena.ne.jp/
                           syou6162/20090301/1235890688



Saturday, March 27, 2010
?
                    • CG       BFGS
                     •                (   )
                    • optim
                           •


Saturday, March 27, 2010
•
                    • Writing R Extentions   !!




Saturday, March 27, 2010
•
                           •   GSoC    Tsukuba.R
                    • Optimization in R(R              )
                     •
                     •                             R
                     •
Saturday, March 27, 2010

More Related Content

Viewers also liked

Quasi newton
Quasi newtonQuasi newton
Quasi newton
tokumoto
 
A simplex nelder mead genetic algorithm for minimizing molecular potential en...
A simplex nelder mead genetic algorithm for minimizing molecular potential en...A simplex nelder mead genetic algorithm for minimizing molecular potential en...
A simplex nelder mead genetic algorithm for minimizing molecular potential en...
Aboul Ella Hassanien
 
Comparative study of algorithms of nonlinear optimization
Comparative study of algorithms of nonlinear optimizationComparative study of algorithms of nonlinear optimization
Comparative study of algorithms of nonlinear optimization
Pranamesh Chakraborty
 
Simulated annealing.ppt
Simulated annealing.pptSimulated annealing.ppt
Simulated annealing.ppt
Kaal Nath
 

Viewers also liked (18)

Revista Lanbide 2002
Revista Lanbide 2002Revista Lanbide 2002
Revista Lanbide 2002
 
optim function
optim functionoptim function
optim function
 
Quasi newton
Quasi newtonQuasi newton
Quasi newton
 
A simplex nelder mead genetic algorithm for minimizing molecular potential en...
A simplex nelder mead genetic algorithm for minimizing molecular potential en...A simplex nelder mead genetic algorithm for minimizing molecular potential en...
A simplex nelder mead genetic algorithm for minimizing molecular potential en...
 
Comparative study of algorithms of nonlinear optimization
Comparative study of algorithms of nonlinear optimizationComparative study of algorithms of nonlinear optimization
Comparative study of algorithms of nonlinear optimization
 
Nelder Mead Search Algorithm
Nelder Mead Search AlgorithmNelder Mead Search Algorithm
Nelder Mead Search Algorithm
 
CV TKD
CV TKDCV TKD
CV TKD
 
H2O World - GLM - Tomas Nykodym
H2O World - GLM - Tomas NykodymH2O World - GLM - Tomas Nykodym
H2O World - GLM - Tomas Nykodym
 
Simulated annealing.ppt
Simulated annealing.pptSimulated annealing.ppt
Simulated annealing.ppt
 
Using Gradient Descent for Optimization and Learning
Using Gradient Descent for Optimization and LearningUsing Gradient Descent for Optimization and Learning
Using Gradient Descent for Optimization and Learning
 
OpenFOAM を用いた Adjoint 形状最適化事例1
OpenFOAM を用いた Adjoint 形状最適化事例1OpenFOAM を用いた Adjoint 形状最適化事例1
OpenFOAM を用いた Adjoint 形状最適化事例1
 
科学技術計算関連Pythonパッケージの概要
科学技術計算関連Pythonパッケージの概要科学技術計算関連Pythonパッケージの概要
科学技術計算関連Pythonパッケージの概要
 
Simulated Annealing - A Optimisation Technique
Simulated Annealing - A Optimisation TechniqueSimulated Annealing - A Optimisation Technique
Simulated Annealing - A Optimisation Technique
 
Simulated Annealing
Simulated AnnealingSimulated Annealing
Simulated Annealing
 
負の二項分布について
負の二項分布について負の二項分布について
負の二項分布について
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
 
Simulated annealing -a informative approach
Simulated annealing -a informative approachSimulated annealing -a informative approach
Simulated annealing -a informative approach
 
勾配降下法の 最適化アルゴリズム
勾配降下法の最適化アルゴリズム勾配降下法の最適化アルゴリズム
勾配降下法の 最適化アルゴリズム
 

Similar to Optimization In R (6)

Nagoya.R #1 Part 1
Nagoya.R #1 Part 1Nagoya.R #1 Part 1
Nagoya.R #1 Part 1
 
Nagoya.R #1 Introduction
Nagoya.R #1 IntroductionNagoya.R #1 Introduction
Nagoya.R #1 Introduction
 
Nagoya.R #6 LT Beanplot
Nagoya.R #6 LT BeanplotNagoya.R #6 LT Beanplot
Nagoya.R #6 LT Beanplot
 
Syou6162 Dbcls
Syou6162 DbclsSyou6162 Dbcls
Syou6162 Dbcls
 
HN NL - Haskell
HN NL - HaskellHN NL - Haskell
HN NL - Haskell
 
Hackersnl
HackersnlHackersnl
Hackersnl
 

More from syou6162

Kernel20110619
Kernel20110619Kernel20110619
Kernel20110619
syou6162
 
半教師あり学習
半教師あり学習半教師あり学習
半教師あり学習
syou6162
 
R User Group 2009 Yoshida
R User Group 2009 YoshidaR User Group 2009 Yoshida
R User Group 2009 Yoshida
syou6162
 

More from syou6162 (20)

自分の目的に合った統計量と そのバラ付きを計算しよう ~NPSを例に~(統計学勉強会)
自分の目的に合った統計量と そのバラ付きを計算しよう ~NPSを例に~(統計学勉強会)自分の目的に合った統計量と そのバラ付きを計算しよう ~NPSを例に~(統計学勉強会)
自分の目的に合った統計量と そのバラ付きを計算しよう ~NPSを例に~(統計学勉強会)
 
オープンセミナー岡山 これから始めるデータ活用
オープンセミナー岡山 これから始めるデータ活用オープンセミナー岡山 これから始めるデータ活用
オープンセミナー岡山 これから始めるデータ活用
 
正確な意思決定を阻む 問題・障害との向き合い方
正確な意思決定を阻む 問題・障害との向き合い方正確な意思決定を阻む 問題・障害との向き合い方
正確な意思決定を阻む 問題・障害との向き合い方
 
カスタマーサクセスのためのデータ整備人の活動記録
カスタマーサクセスのためのデータ整備人の活動記録カスタマーサクセスのためのデータ整備人の活動記録
カスタマーサクセスのためのデータ整備人の活動記録
 
Mackerel Drink Up #9 ロール内異常検知の正式化
Mackerel Drink Up #9 ロール内異常検知の正式化Mackerel Drink Up #9 ロール内異常検知の正式化
Mackerel Drink Up #9 ロール内異常検知の正式化
 
Mackerelのロール内異常検知の設計と運用
Mackerelのロール内異常検知の設計と運用Mackerelのロール内異常検知の設計と運用
Mackerelのロール内異常検知の設計と運用
 
教師なし学習によるMackerelの異常検知機能について 〜設計/運用/評価の観点から〜
教師なし学習によるMackerelの異常検知機能について〜設計/運用/評価の観点から〜教師なし学習によるMackerelの異常検知機能について〜設計/運用/評価の観点から〜
教師なし学習によるMackerelの異常検知機能について 〜設計/運用/評価の観点から〜
 
機械学習を活用したサービスにおける工夫紹介
機械学習を活用したサービスにおける工夫紹介機械学習を活用したサービスにおける工夫紹介
機械学習を活用したサービスにおける工夫紹介
 
機械学習を使った趣味サービスにおける工夫紹介
機械学習を使った趣味サービスにおける工夫紹介機械学習を使った趣味サービスにおける工夫紹介
機械学習を使った趣味サービスにおける工夫紹介
 
今日から始める機械学習〜はてなの事例〜
今日から始める機械学習〜はてなの事例〜今日から始める機械学習〜はてなの事例〜
今日から始める機械学習〜はてなの事例〜
 
機械学習を用いたMackerelの異常検知機能について
機械学習を用いたMackerelの異常検知機能について機械学習を用いたMackerelの異常検知機能について
機械学習を用いたMackerelの異常検知機能について
 
Mackerel Anomaly Detection at PyCon mini Osaka
Mackerel Anomaly Detection at PyCon mini OsakaMackerel Anomaly Detection at PyCon mini Osaka
Mackerel Anomaly Detection at PyCon mini Osaka
 
はてなにおける機械学習の取り組み
はてなにおける機械学習の取り組みはてなにおける機械学習の取り組み
はてなにおける機械学習の取り組み
 
はてなにおける機械学習の取り組み
はてなにおける機械学習の取り組みはてなにおける機械学習の取り組み
はてなにおける機械学習の取り組み
 
異常検知ナイト LT登壇資料 はてな id:syou6162
異常検知ナイト LT登壇資料 はてな id:syou6162異常検知ナイト LT登壇資料 はてな id:syou6162
異常検知ナイト LT登壇資料 はてな id:syou6162
 
Duolingo.pptx
Duolingo.pptxDuolingo.pptx
Duolingo.pptx
 
今日からできる構造学習(主に構造化パーセプトロンについて)
今日からできる構造学習(主に構造化パーセプトロンについて)今日からできる構造学習(主に構造化パーセプトロンについて)
今日からできる構造学習(主に構造化パーセプトロンについて)
 
Kernel20110619
Kernel20110619Kernel20110619
Kernel20110619
 
半教師あり学習
半教師あり学習半教師あり学習
半教師あり学習
 
R User Group 2009 Yoshida
R User Group 2009 YoshidaR User Group 2009 Yoshida
R User Group 2009 Yoshida
 

Optimization In R

  • 1. Optimization in R id:syou6162 Saturday, March 27, 2010
  • 2. Agenda • • GSoC Tsukuba.R • Optimization in R(R ) • • R • Saturday, March 27, 2010
  • 3. (id:syou6162 @syou6162) • http://syou6162.sakura.ne.jp/ • => • & Saturday, March 27, 2010
  • 4. Google Summer of Code • 3/29 • NoSQL interface for R • Dirk Eddelbuettel • Saturday, March 27, 2010
  • 5. Tsukuba.R • ( ) R • R • (Tokyo Osaka Nagoya) • 2008 7 #6 Saturday, March 27, 2010
  • 6. (1) • • plot • • R • • apply family • ggplot2 animation Saturday, March 27, 2010
  • 7. (2) • • R C • openCV C R • R • • Twitter Saturday, March 27, 2010
  • 14. Tsukuba.R • Saturday, March 27, 2010
  • 15. Optimization in R id:syou6162 Saturday, March 27, 2010
  • 16. R • 2 !! • optim optimize • optim optimize 1 • ? Saturday, March 27, 2010
  • 17. ? •R • => !! • • ? Saturday, March 27, 2010
  • 18. : (= ) !! http://ja.wikipedia.org/wiki/ Saturday, March 27, 2010
  • 19. ( ) • • • !! Saturday, March 27, 2010
  • 20. > f <- function (x) (x - 1 / 3)^2 > (xmin <- optimize(f, c(0, 1), tol = 0.0001) $minimum [1] 0.3333333 $objective [1] 0 Saturday, March 27, 2010
  • 21. • • ( ) • Saturday, March 27, 2010
  • 22. R • •R log_likelihood_for_norm <- function(x){ return(function(par){ mu <- par[1] sigma2 <- par[2] - length(x) / 2 * log(sigma2) - 1 / 2 * sum((x - mu)^2) / sigma2 }) (x) μ σ } Saturday, March 27, 2010
  • 23. : •R • • •R : apply family • apply tapply sapply mapply rapply eapply lapply Saturday, March 27, 2010
  • 24. : sapply&rapply > invisible(sapply(1:3, function(x) { cat("x is", x, fill=TRUE) })) x is 1 x is 2 x is 3 > rapply(list(list(c("a", "b"), list(1:10)), matrix(1:10, 2, 5)), + function(x) { + class(x) + } + ) [1] "character" "integer" "matrix" Saturday, March 27, 2010
  • 25. R • •R log_likelihood_for_norm <- function(x){ return(function(par){ mu <- par[1] sigma2 <- par[2] - length(x) / 2 * log(sigma2) - 1 / 2 * sum((x - mu)^2) / sigma2 }) (x) μ σ } Saturday, March 27, 2010
  • 26. optim • => cars$speed > optim(par = c(5, 10), fn = log_likelihood_for_norm(cars$speed), control = list(fnscale = -1)) $par [1] 15.39812 27.40184 ( ) $value [1] -107.7636 $counts function gradient 75 NA optim $convergence fnscale=-1 [1] 0 $message NULL Saturday, March 27, 2010
  • 27. ? > optim(par = c(5, 10), fn = log_likelihood_for_norm(cars$speed), control = list(fnscale = -1)) $par [1] 15.39812 27.40184 $value [1] -107.7636 > mean(cars$speed) [1] 15.4 $counts > var(cars$speed) function gradient [1] 27.95918 75 NA $convergence [1] 0 !! $message NULL Saturday, March 27, 2010
  • 28. !! result <- lm(dist~speed, data=cars) plot(cars) coef <- result$coef abline(coef[1], coef[2], col="red") Saturday, March 27, 2010
  • 29. > obj_func <- function(x, y) { + function(par) { + a <- par[1]; b <- par[2] + sum((y - (a + b * x))^2) + } + } > > result <- optim(par = c(0, 5), fn = obj_func(cars$speed, cars $dist)) > result$par [1] -17.579625 3.932217 > lm(dist~speed, data=cars)$coef (Intercept) speed !! -17.579095 3.932409 Saturday, March 27, 2010
  • 30. ... • optim method • CG SANN B BFGS Nelder-Mead L-BFGS- • Saturday, March 27, 2010
  • 31. CG( ) • • 2 • • n 2 n • CG • http://ja.wikipedia.org/wiki/ Saturday, March 27, 2010
  • 32. BFGS • <= • => 2 => • • => 2 ( ) • • Saturday, March 27, 2010
  • 33. Nelder-Mead • N N+1 • • • • http://ibisforest.org/index.php?Nelder-Mead Saturday, March 27, 2010
  • 34. Nelder-Mead optim (method ) Saturday, March 27, 2010
  • 35. R • optim • etc • Nelder-Mead SANN • BFGS CG Saturday, March 27, 2010
  • 37. R ? • • • C C++ • Tsukuba.R#4 • http://d.hatena.ne.jp/ syou6162/20090301/1235890688 Saturday, March 27, 2010
  • 38. ? • CG BFGS • ( ) • optim • Saturday, March 27, 2010
  • 39. • Writing R Extentions !! Saturday, March 27, 2010
  • 40. • GSoC Tsukuba.R • Optimization in R(R ) • • R • Saturday, March 27, 2010