Boltzmann Diagram

graph RestrictedBoltzmannMachine { // Graph styling layout=neato; overlap=false; splines=true; bgcolor="white"; // Define node styling node [shape=circle, style=filled, color=black, fillcolor=lightblue, fontname="Arial", fontsize=12, width=0.8, fixedsize=true]; // Define edge styling for connections edge [color="#888888", penwidth=1.0]; // Define visible and hidden units // Visible units (v) v1 [label="v₁", pos="2,1!", fillcolor="#90EE90"]; // Light green v2 [label="v₂", pos="4,1!", fillcolor="#90EE90"]; v3 [label="v₃", pos="6,1!", fillcolor="#90EE90"]; v4 [label="v₄", pos="8,1!", fillcolor="#90EE90"]; // Hidden units (h) h1 [label="h₁", pos="3,4!", fillcolor="#FFA07A"]; // Light salmon h2 [label="h₂", pos="5,4!", fillcolor="#FFA07A"]; h3 [label="h₃", pos="7,4!", fillcolor="#FFA07A"]; // Connections between visible and hidden units (bipartite structure) v1 -- h1; v1 -- h2; v1 -- h3; v2 -- h1; v2 -- h2; v2 -- h3; v3 -- h1; v3 -- h2; v3 -- h3; v4 -- h1; v4 -- h2; v4 -- h3; // Add a legend subgraph cluster_legend { label="Legend"; fontsize=14; fontname="Arial"; style=solid; color=black; bgcolor="#EEEEEE"; legend_v [label="Visible Unit", fillcolor="#90EE90", pos="10,1.5!"]; legend_h [label="Hidden Unit", fillcolor="#FFA07A", pos="10,2.5!"]; legend_vh [shape=plaintext, label="Visible-Hidden\nConnections", fillcolor=white, pos="10,3.5!"]; edge [len=0.5]; dummy_vh1 [shape=point, width=0.2, pos="9.5,3.5!", style=invis]; dummy_vh2 [shape=point, width=0.2, pos="8.5,3.5!", style=invis]; dummy_vh1 -- dummy_vh2 [color="#888888", penwidth=1.0]; } // Title label = "Restricted Boltzmann Machine\n(connections only between visible and hidden layers)"; labelloc = "t"; fontsize = 16; fontname = "Arial Bold"; }