From 140ec193853985013b9665d0ea7d58d1a4bcd16d Mon Sep 17 00:00:00 2001 From: Jay Lee Date: Tue, 4 Jun 2024 23:39:33 +0900 Subject: [PATCH] Revert "[ImgBot] Optimize images (#7)" This reverts commit 07a66dfcff7a2dd5a155e4a58ea6bc33ae7c1358. --- lib/evaluator.ml | 142 +++++++++++++++++++++++++++++++++++ samples/normal_bernoulli.png | Bin 9954 -> 23484 bytes samples/simple_itpp.png | Bin 7494 -> 17426 bytes samples/student.png | Bin 7316 -> 16944 bytes 4 files changed, 142 insertions(+) create mode 100644 lib/evaluator.ml diff --git a/lib/evaluator.ml b/lib/evaluator.ml new file mode 100644 index 0000000..7e3391d --- /dev/null +++ b/lib/evaluator.ml @@ -0,0 +1,142 @@ +open! Core +open Program + +exception Unknown_distribution of string + +let sample (dist_name : string) (args : float list) : float = + let open Owl.Stats in + match (dist_name, args) with + | "bernoulli", [ p ] -> Float.of_int (binomial_rvs ~p ~n:1) + | "normal", [ mu; sigma ] -> gaussian_rvs ~mu ~sigma + | "uniform", [ a; b ] -> uniform_rvs ~a ~b + | "exponential", [ lambda ] -> exponential_rvs ~lambda + | "gamma", [ shape; scale ] -> gamma_rvs ~shape ~scale + | _ -> raise (Unknown_distribution dist_name) + +type log_pmdf = float -> float + +let get_log_pmdf (dist_name : string) (args : float list) : log_pmdf = + let open Owl.Stats in + match (dist_name, args) with + | "bernoulli", [ p ] -> fun n -> binomial_logpdf (Int.of_float n) ~p ~n:1 + | "normal", [ mu; sigma ] -> gaussian_logpdf ~mu ~sigma + | "uniform", [ a; b ] -> uniform_logpdf ~a ~b + | "exponential", [ lambda ] -> exponential_logpdf ~lambda + | "gamma", [ shape; scale ] -> gamma_logpdf ~shape ~scale + | _ -> raise (Unknown_distribution dist_name) + +let rec eval (ctx : Eval_ctx.t) (exp : Det_exp.t) : float = + let ev2 f e1 e2 = f (eval ctx e1) (eval ctx e2) in + match Det_exp.eval exp with + | Int n -> float_of_int n + | Real r -> r + | Bool b -> if b then 1. else 0. + | Var name -> + (* It is an error for a variable to be free at this stage. + It should be either observed or set from the sampling process *) + Eval_ctx.find_exn ctx ~name + | Add (e1, e2) -> ev2 ( +. ) e1 e2 + | Radd (e1, e2) -> ev2 ( +. ) e1 e2 + | Minus (e1, e2) -> ev2 ( -. ) e1 e2 + | Rminus (e1, e2) -> ev2 ( -. ) e1 e2 + | Mult (e1, e2) -> ev2 ( *. ) e1 e2 + | Rmult (e1, e2) -> ev2 ( *. ) e1 e2 + | Div (e1, e2) -> ev2 ( /. ) e1 e2 + | Rdiv (e1, e2) -> ev2 ( /. ) e1 e2 + | Neg e -> -.eval ctx e + | Rneg e -> -.eval ctx e + | Req (e1, e2) -> if Float.(eval ctx e1 = eval ctx e2) then 1. else 0. + | Eq (e1, e2) -> if Float.(eval ctx e1 = eval ctx e2) then 1. else 0. + | Noteq (e1, e2) -> if Float.(eval ctx e1 <> eval ctx e2) then 1. else 0. + | Less (e1, e2) -> if Float.(eval ctx e1 < eval ctx e2) then 1. else 0. + | Rless (e1, e2) -> if Float.(eval ctx e1 < eval ctx e2) then 1. else 0. + | And (e1, e2) -> + if Float.(eval ctx e1 <> 0. && eval ctx e2 <> 0.) then 1. else 0. + | Or (e1, e2) -> + if Float.(eval ctx e1 <> 0. || eval ctx e2 <> 0.) then 1. else 0. + | Not e -> if Float.(eval ctx e = 0.) then 1. else 0. + | Prim_call (fn, args) -> + let evaled_args = List.map args ~f:(eval ctx) in + sample fn evaled_args + | If (pred, conseq, alt) -> + if Float.(eval ctx pred <> 0.0) then eval ctx conseq else eval ctx alt + | e -> failwith ("Unsupported expression " ^ Det_exp.to_string e) + +let rec eval_pmdf (ctx : Eval_ctx.t) : Dist.exp -> log_pmdf * float = function + | Dist_obj { dist; args; _ } -> + let args = List.map args ~f:(eval ctx) in + (get_log_pmdf dist args, sample dist args) + | If_de (pred, conseq, alt) -> + if Float.(eval ctx pred <> 0.0) then eval_pmdf ctx conseq + else eval_pmdf ctx alt + | If_pred (_, conseq, One) -> eval_pmdf ctx conseq + +let gibbs_sampling ~(num_samples : int) (graph : Graph.t) (query : Det_exp.t) : + float array = + (* Initialize the context with the observed values. Float conversion must + succeed as observed variables do not contain free variables *) + let ctx = Eval_ctx.create () in + let find_exn name = Eval_ctx.find_exn ctx ~name in + Map.iteri graph.obs_map ~f:(fun ~key:name ~data:value -> + Eval_ctx.set ctx ~name ~value:(Det_exp.to_float value)); + + let unobserved = Graph.unobserved_vertices_pmdfs graph in + List.iter unobserved ~f:(fun (name, _) -> Eval_ctx.set ctx ~name ~value:0.); + + (* Adapted from gibbs_sampling of Owl *) + let a, b = (1000, 10) in + let num_iter = a + (b * num_samples) in + let samples = Array.create ~len:num_samples 0. in + for i = 0 to num_iter - 1 do + (* Gibbs step *) + List.iter unobserved ~f:(fun (name, pmdf_exp) -> + let curr = find_exn name in + let log_pmdf, cand = eval_pmdf ctx pmdf_exp in + + (* metropolis-hastings update logic *) + Eval_ctx.set ctx ~name ~value:cand; + let log_pmdf', _ = eval_pmdf ctx pmdf_exp in + let log_alpha = log_pmdf' curr -. log_pmdf cand in + + (* variables influenced by "name" *) + let name_infl = + Map.filteri graph.pmdf_map ~f:(fun ~key:name' ~data:pmdf_exp -> + Id.(name' = name) || Set.mem (Dist.fv pmdf_exp) name) + in + let log_alpha = + Map.fold name_infl ~init:log_alpha + ~f:(fun ~key:name' ~data:pmdf_exp acc -> + let prob_w_cand = + (fst (eval_pmdf ctx pmdf_exp)) (find_exn name') + in + Eval_ctx.set ctx ~name ~value:curr; + let prob_wo_cand = + (fst (eval_pmdf ctx pmdf_exp)) (find_exn name') + in + Eval_ctx.set ctx ~name ~value:cand; + acc +. prob_w_cand -. prob_wo_cand) + in + + let alpha = Float.exp log_alpha in + let uniform = Owl.Stats.std_uniform_rvs () in + if Float.(uniform > alpha) then Eval_ctx.set ctx ~name ~value:curr); + + if i >= a && i mod b = 0 then samples.((i - a) / b) <- eval ctx query + done; + + samples + +let infer ?(filename : string = "out") ?(num_samples : int = 100_000) + (graph : Graph.t) (query : Det_exp.t) : string = + let samples = gibbs_sampling graph ~num_samples query in + + let filename = String.chop_suffix_if_exists filename ~suffix:".stp" in + let plot_path = filename ^ ".png" in + + let open Owl_plplot in + let h = Plot.create plot_path in + Plot.set_title h (Det_exp.to_string query); + let mat = Owl.Mat.of_array samples 1 num_samples in + Plot.histogram ~h ~bin:50 mat; + Plot.output h; + plot_path diff --git a/samples/normal_bernoulli.png b/samples/normal_bernoulli.png index 75ae913afdd2fcc24438aa824106eacb238df0a9..79822650d5c65853297f752c63d9b0c3e4e00e64 100644 GIT binary patch literal 23484 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

O?ZzP2WrG_Z^GPI3fXkZldow|3d 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 literal 9954 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 K6EBY$-S}VFTV#Cz literal 7494 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 diff --git a/samples/student.png b/samples/student.png index 4303b13694aacb80d680ef2a5c2a02140c98c8a8..38ac022ddab5734c14531c961359124098ed5ec8 100644 GIT binary patch literal 16944 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 Kqe+L)U;96mh+={O literal 7316 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 J)4BTKe*j?EC