สุ่มเลขใน 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]];

สมการชูสามนิ้ว

เห็นน้องๆสร้างสมการคณิตศาสตร์กันเป็นรูปมือกันผมเลยลองเล่นบ้าง เป็นรูปมือชู 3 นิ้ว (พระพุทธ พระธรรม พระสงฆ์ หรือเปล่า ?)

สมการที่ผมหามาได้มีหน้าตาตามนี้ครับ *มีคนถามมาว่าหามายังไง เดี๋ยว​มาอธิบายให้ครับหลักๆก็อาศัย Fourier series และภาพต้นฉบับก็เอามาจากเวบ https://www.123rf.com/stock-photo/three_finger.html?sti=lei4tdvr1lskwqekk0| ครับ

h3Function[
  t_] := {((30359/31 - 1/17 Sin[23/15 - 16 t] - 
        4/43 Sin[55/36 - 12 t] - 6/23 Sin[29/19 - 9 t] - 
        13/36 Sin[36/23 - 8 t] - 20/31 Sin[39/25 - 6 t] - 
        33/43 Sin[31/20 - 5 t] - 3091/309 Sin[36/23 - 2 t] - 
        92/29 Sin[36/23 - t] + 27/40 Sin[69/44 + 3 t] + 
        9/44 Sin[29/18 + 4 t] + 8/19 Sin[68/43 + 7 t] + 
        2/35 Sin[164/35 + 10 t] + 4/21 Sin[59/37 + 11 t] + 
        1/78 Sin[151/101 + 13 t] + 4/47 Sin[70/43 + 14 t] + 
        2/29 Sin[55/34 + 15 t] + 2/19 Sin[53/33 + 17 t] + 
        2/27 Sin[18/11 + 18 t] + 1/25 Sin[43/27 + 19 t] + 
        1/31 Sin[41/25 + 20 t] + 2/23 Sin[73/45 + 21 t] + 
        1/52 Sin[45/26 + 22 t] + 1/24 Sin[115/72 + 23 t] + 
        1/29 Sin[49/29 + 24 t] + 2/39 Sin[57/35 + 25 t] + 
        1/81 Sin[37/22 + 26 t] + 1/27 Sin[28/17 + 27 t] + 
        1/49 Sin[77/46 + 28 t] + 1/36 Sin[18/11 + 29 t] + 
        1/131 Sin[33/19 + 30 t] + 1/36 Sin[118/71 + 31 t] + 
        1/95 Sin[37/22 + 32 t] + 1/58 Sin[18/11 + 33 t] + 
        1/148 Sin[85/48 + 34 t] + 1/51 Sin[29/18 + 35 t] + 
        1/223 Sin[50/27 + 36 t] + 1/73 Sin[44/27 + 37 t] + 
        1/183 Sin[66/37 + 38 t] + 1/68 Sin[49/30 + 39 t] + 
        1/373 Sin[44/23 + 40 t] + 1/82 Sin[50/31 + 41 t] + 
        1/222 Sin[19/11 + 42 t]) UnitStep[
       15 \[Pi] - t] UnitStep[-11 \[Pi] + t] + (82913/46 - 
        6/31 Sin[12/25 - 34 t] - 2/17 Sin[45/31 - 28 t] - 
        2/7 Sin[21/16 - 26 t] - 15/22 Sin[26/35 - 17 t] - 
        97/39 Sin[69/44 - 9 t] - 116/31 Sin[19/39 - 8 t] - 
        281/108 Sin[57/41 - 7 t] - 138/31 Sin[20/53 - 6 t] - 
        864/23 Sin[31/21 - 2 t] + 13015/73 Sin[39/17 + t] + 
        2183/38 Sin[231/68 + 3 t] + 473/59 Sin[118/47 + 4 t] + 
        253/35 Sin[53/15 + 5 t] + 88/63 Sin[142/41 + 10 t] + 
        39/77 Sin[103/38 + 11 t] + 61/33 Sin[107/33 + 12 t] + 
        32/23 Sin[17/9 + 13 t] + 2/23 Sin[54/25 + 14 t] + 
        5/16 Sin[451/450 + 15 t] + 5/11 Sin[6/53 + 16 t] + 
        9/29 Sin[37/9 + 18 t] + 3/16 Sin[173/38 + 19 t] + 
        3/7 Sin[198/61 + 20 t] + 8/21 Sin[37/15 + 21 t] + 
        7/26 Sin[59/33 + 22 t] + 7/31 Sin[57/65 + 23 t] + 
        1/6 Sin[14/29 + 24 t] + 9/34 Sin[5/16 + 25 t] + 
        3/32 Sin[445/99 + 27 t] + 13/66 Sin[131/34 + 29 t] + 
        7/29 Sin[103/40 + 30 t] + 3/31 Sin[100/99 + 31 t] + 
        2/41 Sin[37/16 + 32 t] + 3/20 Sin[13/28 + 33 t] + 
        9/50 Sin[23/5 + 35 t] + 2/23 Sin[105/23 + 36 t] + 
        3/28 Sin[310/67 + 37 t] + 2/15 Sin[143/45 + 38 t] + 
        4/33 Sin[48/29 + 39 t] + 1/20 Sin[34/57 + 40 t] + 
        1/32 Sin[125/43 + 41 t] + 3/37 Sin[49/44 + 42 t]) UnitStep[
       11 \[Pi] - t] UnitStep[-7 \[Pi] + t] + (28702/23 - 
        4/39 Sin[33/23 - 42 t] - 53/37 Sin[51/76 - 40 t] - 
        4/21 Sin[26/43 - 38 t] - 77/37 Sin[7/25 - 33 t] - 
        5/41 Sin[77/58 - 32 t] - 106/77 Sin[20/19 - 29 t] - 
        71/19 Sin[23/24 - 27 t] - 97/42 Sin[3/28 - 26 t] - 
        127/17 Sin[11/26 - 20 t] - 42/19 Sin[10/71 - 19 t] - 
        142/31 Sin[49/45 - 17 t] - 465/29 Sin[23/20 - 14 t] - 
        418/37 Sin[1/14 - 13 t] - 51/25 Sin[37/29 - 12 t] - 
        365/53 Sin[34/27 - 9 t] - 6795/137 Sin[19/36 - 7 t] - 
        241/16 Sin[11/28 - 6 t] - 5584/29 Sin[19/39 - 2 t] + 
        21149/52 Sin[49/11 + t] + 1701/17 Sin[29/35 + 3 t] + 
        862/35 Sin[26/9 + 4 t] + 667/28 Sin[92/25 + 5 t] + 
        577/78 Sin[79/44 + 8 t] + 193/18 Sin[1/27 + 10 t] + 
        178/27 Sin[71/19 + 11 t] + 359/57 Sin[34/33 + 15 t] + 
        135/38 Sin[91/24 + 16 t] + 91/44 Sin[111/31 + 18 t] + 
        160/29 Sin[118/27 + 21 t] + 84/29 Sin[9/40 + 22 t] + 
        52/19 Sin[114/37 + 23 t] + 113/46 Sin[161/36 + 24 t] + 
        10/33 Sin[2977/744 + 25 t] + 27/16 Sin[37/11 + 28 t] + 
        39/20 Sin[77/31 + 30 t] + 7/9 Sin[51/13 + 31 t] + 
        47/34 Sin[145/31 + 34 t] + 14/29 Sin[86/39 + 35 t] + 
        29/28 Sin[532/145 + 36 t] + 37/28 Sin[80/43 + 37 t] + 
        3/16 Sin[10/13 + 39 t] + 5/26 Sin[35/17 + 41 t]) UnitStep[
       7 \[Pi] - t] UnitStep[-3 \[Pi] + t] + (40485/29 - 
        255/23 Sin[2/21 - 23 t] - 1023/40 Sin[25/16 - 16 t] - 
        148/11 Sin[47/31 - 15 t] - 1781/43 Sin[27/34 - 10 t] - 
        9508/15 Sin[48/37 - t] + 3391/22 Sin[17/25 + 2 t] + 
        2003/35 Sin[22/19 + 3 t] + 3390/61 Sin[89/21 + 4 t] + 
        3313/25 Sin[82/27 + 5 t] + 671/8 Sin[70/41 + 6 t] + 
        574/13 Sin[58/35 + 7 t] + 1293/16 Sin[78/67 + 8 t] + 
        1462/37 Sin[17/21 + 9 t] + 727/32 Sin[96/23 + 11 t] + 
        1747/37 Sin[367/100 + 12 t] + 68/3 Sin[45/91 + 13 t] + 
        1063/31 Sin[41/35 + 14 t] + 54/11 Sin[55/16 + 17 t] + 
        165/8 Sin[224/225 + 18 t] + 135/38 Sin[1/18 + 19 t] + 
        583/63 Sin[113/24 + 20 t] + 205/23 Sin[220/73 + 21 t] + 
        461/33 Sin[7/18 + 22 t] + 53/5 Sin[99/23 + 24 t] + 
        102/25 Sin[82/47 + 25 t] + 63/11 Sin[31/16 + 26 t] + 
        224/27 Sin[117/25 + 27 t] + 121/16 Sin[58/33 + 28 t] + 
        49/9 Sin[21/17 + 29 t] + 107/50 Sin[3/7 + 30 t] + 
        38/9 Sin[139/34 + 31 t] + 55/23 Sin[46/19 + 32 t] + 
        136/39 Sin[44/29 + 33 t] + 13/7 Sin[14/39 + 34 t] + 
        11/3 Sin[26/15 + 35 t] + 285/89 Sin[118/29 + 36 t] + 
        28/19 Sin[13/17 + 37 t] + 53/35 Sin[89/34 + 38 t] + 
        18/19 Sin[114/47 + 39 t] + 39/44 Sin[9/13 + 40 t] + 
        16/29 Sin[185/52 + 41 t] + 69/26 Sin[56/33 + 42 t]) UnitStep[
       3 \[Pi] - t] UnitStep[\[Pi] + t]) UnitStep[Sqrt[
    Sign[Sin[t/
      2]]]], ((-(248369/91) - 1/102 Sin[127/85 - 28 t] - 
        1/31 Sin[59/38 - 18 t] - 1/110 Sin[71/47 - 12 t] - 
        11/28 Sin[57/37 - 5 t] - 3/5 Sin[69/44 - 4 t] - 
        903/139 Sin[36/23 - 2 t] - 773/119 Sin[47/30 - t] + 
        55/23 Sin[41/26 + 3 t] + 9/64 Sin[57/35 + 6 t] + 
        13/23 Sin[65/41 + 7 t] + 1/21 Sin[71/42 + 8 t] + 
        17/37 Sin[27/17 + 9 t] + 18/47 Sin[29/18 + 10 t] + 
        11/40 Sin[51/32 + 11 t] + 5/19 Sin[53/33 + 13 t] + 
        3/16 Sin[21/13 + 14 t] + 3/35 Sin[71/44 + 15 t] + 
        6/37 Sin[47/29 + 16 t] + 2/9 Sin[21/13 + 17 t] + 
        1/19 Sin[139/87 + 19 t] + 1/13 Sin[41/25 + 20 t] + 
        1/113 Sin[37/24 + 21 t] + 1/231 Sin[55/29 + 22 t] + 
        1/12 Sin[34/21 + 23 t] + 1/213 Sin[119/27 + 24 t] + 
        1/199 Sin[41/29 + 25 t] + 1/131 Sin[71/41 + 26 t] + 
        1/57 Sin[28/17 + 27 t] + 1/45 Sin[57/35 + 29 t] + 
        1/98 Sin[22/13 + 30 t] + 1/69 Sin[28/17 + 31 t] + 
        1/836 Sin[91/20 + 32 t] + 1/53 Sin[18/11 + 33 t] + 
        1/246 Sin[64/35 + 34 t] + 1/79 Sin[51/32 + 35 t] + 
        1/126 Sin[44/25 + 36 t] + 1/54 Sin[18/11 + 37 t] + 
        1/306 Sin[65/34 + 38 t] + 1/66 Sin[18/11 + 39 t] + 
        1/171 Sin[97/54 + 40 t] + 1/80 Sin[77/47 + 41 t] + 
        1/212 Sin[79/45 + 42 t]) UnitStep[
       15 \[Pi] - t] UnitStep[-11 \[Pi] + t] + (-(27062/15) - 
        1/21 Sin[49/39 - 42 t] - 1/12 Sin[29/68 - 36 t] - 
        3/22 Sin[12/19 - 33 t] - 2/33 Sin[16/21 - 30 t] - 
        1/15 Sin[2/19 - 27 t] - 3/35 Sin[1/325 - 24 t] - 
        9/20 Sin[58/37 - 19 t] - 30/89 Sin[59/42 - 16 t] - 
        13/24 Sin[22/19 - 13 t] - 16/21 Sin[32/25 - 10 t] + 
        7171/19 Sin[48/29 + t] + 118/5 Sin[39/14 + 2 t] + 
        8283/202 Sin[49/32 + 3 t] + 276/31 Sin[149/36 + 4 t] + 
        245/19 Sin[71/32 + 5 t] + 116/55 Sin[39/22 + 6 t] + 
        8/13 Sin[68/41 + 7 t] + 51/35 Sin[61/19 + 8 t] + 
        13/14 Sin[29/37 + 9 t] + 35/61 Sin[83/25 + 11 t] + 
        19/22 Sin[37/35 + 12 t] + 14/23 Sin[41/18 + 14 t] + 
        13/30 Sin[10/19 + 15 t] + 7/34 Sin[20/7 + 17 t] + 
        13/38 Sin[4/47 + 18 t] + 13/42 Sin[115/41 + 20 t] + 
        13/40 Sin[25/63 + 21 t] + 5/31 Sin[108/25 + 22 t] + 
        17/67 Sin[103/69 + 23 t] + 2/37 Sin[142/33 + 25 t] + 
        2/23 Sin[72/25 + 26 t] + 5/32 Sin[203/53 + 28 t] + 
        3/22 Sin[29/14 + 29 t] + 3/25 Sin[116/37 + 31 t] + 
        6/41 Sin[20/19 + 32 t] + 1/12 Sin[105/31 + 34 t] + 
        3/29 Sin[28/23 + 35 t] + 3/34 Sin[239/60 + 37 t] + 
        4/33 Sin[67/36 + 38 t] + 2/27 Sin[4/31 + 39 t] + 
        2/41 Sin[35/12 + 40 t] + 2/19 Sin[11/17 + 41 t]) UnitStep[
       11 \[Pi] - t] UnitStep[-7 \[Pi] + t] + (-(256299/275) - 
        7/16 Sin[4/35 - 40 t] - 31/29 Sin[7/22 - 39 t] - 
        16/31 Sin[7/22 - 34 t] - 28/23 Sin[29/32 - 33 t] - 
        34/19 Sin[27/26 - 31 t] - 47/25 Sin[21/37 - 27 t] - 
        183/64 Sin[13/15 - 26 t] - 697/209 Sin[13/16 - 20 t] - 
        103/27 Sin[22/51 - 19 t] - 41/42 Sin[4/23 - 15 t] - 
        271/53 Sin[3/43 - 14 t] - 207/38 Sin[59/60 - 13 t] - 
        286/23 Sin[22/27 - 11 t] - 517/54 Sin[33/65 - 8 t] - 
        171/22 Sin[13/30 - 7 t] - 7885/34 Sin[22/59 - t] + 
        8146/43 Sin[28/27 + 2 t] + 10347/22 Sin[28/13 + 3 t] + 
        7433/38 Sin[11/38 + 4 t] + 3353/72 Sin[37/20 + 5 t] + 
        331/46 Sin[170/37 + 6 t] + 1573/131 Sin[37/27 + 9 t] + 
        1999/41 Sin[63/40 + 10 t] + 173/31 Sin[35/32 + 12 t] + 
        656/101 Sin[49/29 + 16 t] + 437/32 Sin[23/22 + 17 t] + 
        114/23 Sin[4 + 18 t] + 71/20 Sin[3/22 + 21 t] + 
        84/37 Sin[69/32 + 22 t] + 143/43 Sin[61/35 + 23 t] + 
        231/68 Sin[5/22 + 24 t] + 92/55 Sin[112/33 + 25 t] + 
        3/2 Sin[1/7 + 28 t] + 41/18 Sin[55/27 + 29 t] + 
        59/46 Sin[153/76 + 30 t] + 16/35 Sin[1/10 + 32 t] + 
        26/77 Sin[8/33 + 35 t] + 50/41 Sin[45/23 + 36 t] + 
        13/25 Sin[8/3 + 37 t] + 40/37 Sin[346/77 + 38 t] + 
        7/34 Sin[37/30 + 41 t] + 1/3 Sin[46/15 + 42 t]) UnitStep[
       7 \[Pi] - t] UnitStep[-3 \[Pi] + t] + (-(43691/25) - 
        108/35 Sin[30/29 - 40 t] - 118/43 Sin[29/22 - 39 t] - 
        89/25 Sin[6/17 - 35 t] - 278/101 Sin[11/37 - 32 t] - 
        89/24 Sin[11/36 - 30 t] - 338/49 Sin[93/94 - 26 t] - 
        155/14 Sin[1/19 - 23 t] - 520/27 Sin[25/34 - 18 t] - 
        3729/233 Sin[15/13 - 17 t] - 1935/22 Sin[59/38 - 13 t] - 
        1624/33 Sin[31/23 - 9 t] - 299/12 Sin[26/43 - 6 t] - 
        8789/23 Sin[36/37 - 4 t] - 794/7 Sin[15/41 - 3 t] - 
        19163/23 Sin[43/36 - 2 t] + 24528/29 Sin[97/30 + t] + 
        2255/24 Sin[144/37 + 5 t] + 29915/277 Sin[233/58 + 7 t] + 
        1494/35 Sin[71/95 + 8 t] + 991/22 Sin[65/14 + 10 t] + 
        3579/61 Sin[31/27 + 11 t] + 537/32 Sin[106/57 + 12 t] + 
        463/42 Sin[18/55 + 14 t] + 1027/29 Sin[31/35 + 15 t] + 
        362/17 Sin[46/13 + 16 t] + 88/27 Sin[131/28 + 19 t] + 
        91/37 Sin[173/39 + 20 t] + 374/29 Sin[48/25 + 21 t] + 
        253/24 Sin[155/33 + 22 t] + 227/33 Sin[1/608 + 24 t] + 
        75/37 Sin[49/30 + 25 t] + 242/23 Sin[249/56 + 27 t] + 
        133/18 Sin[7/5 + 28 t] + 54/25 Sin[1/358 + 29 t] + 
        49/31 Sin[109/28 + 31 t] + 50/33 Sin[1/22 + 33 t] + 
        7/5 Sin[40/43 + 34 t] + 214/55 Sin[89/24 + 36 t] + 
        241/43 Sin[12/25 + 37 t] + 20/13 Sin[280/279 + 38 t] + 
        105/79 Sin[53/19 + 41 t] + 87/26 Sin[65/37 + 42 t]) UnitStep[
       3 \[Pi] - t] UnitStep[\[Pi] + t]) UnitStep[Sqrt[
    Sign[Sin[t/2]]]]}

ทดลอง plot