สุ่มเลขใน Stan

มีคนถามมาว่าจะรันสุ่มเลขจาก distribution แบบไม่ต้องมีพารามิเตอร์หรือใส่ค่าให้พารามิเตอร์ให้กับ distribution ไปเลยทำยังไงใน Stan

ตัวอย่างcodeนะครับ

### test.stan ##
data {
 real a;
 real b;
 real ab;
 real bb;
}
generated quantities{
  real gm;
  real bt;
  gm = gamma_rng(a,1/b);
  bt = beta_rng(ab,bb);
}



### run the stan code in R
library(cmdstanr)
library(bayesplot)       
library(patchwork)

# the parameters of the distributions are given as the data
data_list <- list(a=1.5,b=0.001,ab=15,bb=1)

#compile the model
mod <- cmdstan_model(test.stan)

#do the sampling
fit <- mod$sample(data = data_list,chains = 1,fixed_param = T)

# draw the histograms
mcmc_hist(fit$draws(c("gm","bt")))

ใช้ neural network ทำ linear regression ง่ายๆใน ภาษา Wolfram

พอดีเมื่อวานมีพูดแนะนำเทคนิค neural network ในที่ทำงาน แล้วมีคนถามว่าใช้ทำ linear regression ได้ไหม ผมก็บอกว่าได้เลยทำให้ดูเป็นตัวอย่าง code ที่แชร์นี้ก็เป็นตัวอย่างที่ผมทำเมื่อวานครับ ซึ่งก็เริ่มด้วยการ generate ข้อมูลที่ดูเหมือนเป็นเส้นตรงมา จากนั้นก็สร้าง neural network โดยใช้ linear layer ที่มี input กับ output ค่าเดียว โดย loss function ที่ใช้คือ mean square จากกนั้นก็ใช้คำสั่ง NetTrain ในการหา weight กับ bias ของ linear layer จากนั้นก็ลอง plot เปรียบเทียบผลที่ได้กับคำสั่ง LinearModelFit

คำสั่ง NetTrain มันก็เหมือนกับ NMinimize กับ FindMinimum ที่จะหาจุดต่ำสุดของ Function ที่เราสนใจซึ่งในกรณีนี้ก็คือ mean square

ให้ค่าตัวแปร array, vector หรือ matrix ใน Stan

ไม่น่าเชื่อว่าจะไม่มีเขียนในเอกสารของ Stan

real x[3] = {1, 2, 3};
vector[3] y = [1, 2, 3];
matrix[3, 3] z = [[1, 2, 3],
                  [4, 5, 6],
                  [7, 8, 9]];

computer scientists vs computational scientists

ไปเจอมา ขำดี แต่มันก็จริงนะครับ 555

Computational scientists solve tomorrow’s problems with yesterday’s computers; computer scientists seem to do it the other way around.

– anonymous