''
Tuning a neural network by hand The essence of neural networks is just simple function fitting. A neural
network is a universal function approximator and given enough data and network parameters it
can
approximate any (continuous) function to any desired accuracy[1 ]. This is immensely powerful given that pretty much any behaviour
(identifying faces, playing chess, holding a conversation) can be defined as a function, and
using the right encoding any function can be described by a mathematical function.
mo.md(%0A%20%20%20%20f%22%22%22%0A%20%20%20%20%23%20Tuning%20a%20neural%20network%20by%20hand%0A%20%20%20%20The%20essence%20of%20neural%20networks%20is%20just%20simple%20function%20fitting.%20A%20neural%20network%20is%20a%20universal%20function%20approximator%20and%20given%20enough%20data%20and%20network%20parameters%20it%20can%20approximate%20any%20(continuous)%20function%20to%20any%20desired%20accuracy%5B%5B1%5D(https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FUniversal_approximation_theorem)%5D.%20This%20is%20immensely%20powerful%20given%20that%20pretty%20much%20any%20behaviour%20(identifying%20faces%2C%20playing%20chess%2C%20holding%20a%20conversation)%20can%20be%20defined%20as%20a%20function%2C%20and%20using%20the%20right%20encoding%20any%20function%20can%20be%20described%20by%20a%20mathematical%20function.%0A%20%20%20%20%22%22%22%0A)
0.0 Input
1.0
4.0 Output
mo.Html(f%22%22%22%7Bstring_nn_schematic_simple%7D%0A%7Bx.center()%7D%0A%22%22%22)
Above is the simplest case of
a
feed-forward neural network, a single hidden layer with a single neuron. Using the
activation
function ReLU this is simply a linear function that has been cut off at zero:
mo.md(%22%22%22Above%20is%20the%20simplest%20case%20of%20a%20feed-forward%20neural%20network%2C%20a%20single%20hidden%20layer%20with%20a%20single%20neuron.%20Using%20the%20activation%20function%20ReLU%20this%20is%20simply%20a%20linear%20function%20that%20has%20been%20cut%20off%20at%20zero%3A%22%22%22)
plt.axhline(0%2C%20color%3D'black'%2C%20linewidth%3D0.5)%20%20%23%20y%3D0%20(x-axis)%0Aplt.axvline(0%2C%20color%3D'black'%2C%20linewidth%3D0.5)%20%20%23%20x%3D0%20(y-axis)%0A%0Aplt.xlim(x_range_start%2C%20x_range_end)%0Aplt.ylim(y_range_start%2C%20y_range_end)%0A%0A%23%20Plot%20zeroes%20nicely%0Aif%20n1_zero%20is%20not%20None%3A%0A%20%20%20%20plt.plot(%5Bn1_zero%2C%20n1_zero%5D%2C%20%5B0%2C%20y_range_start%5D%2C%20'--'%2C%20color%3Dn1_color_hex)%0A%0Aplt.plot(x1_values_plot%2C%20n1_values_plot%2C%20label%3D'ReLU(w1%20*%20x%20%2B%20b1)'%2C%20color%3Dn1_color_hex)%0A%0Aplt.text(0.95%2C%200.32%2C%20f%22w%3D%7Bw1.value%7D%5Cnb%3D%7Bb1.value%7D%5Cn%5CnW%3D1.0%5CnB%3D1.0%22%2C%20%0A%20%20%20%20%20%20%20%20%20transform%3Dplt.gca().transAxes%2C%20fontsize%3D12%2C%20%0A%20%20%20%20%20%20%20%20%20verticalalignment%3D'top'%2C%20horizontalalignment%3D'right')%0A%0A%0A%23%20Show%20the%20plot%0Amo.as_html(plt.gcf()).center()
A simple line segment that
has
been cutoff at zero is of course not that interesting but by adding more nodes one gets more
line segments which, by adjusting the parameters, can be combined to approximate any
function.
Here follows a schematic of a neural network with three nodes in its hidden
layer.
0.0 Input
1.0 1.0 1.0 Hidden
layer
4.0 Output
This corresponds to three line segments
mo.md(%0A%20%20%20%20f%22%22%22%0A%20%20%20%20A%20simple%20line%20segment%20that%20has%20been%20cutoff%20at%20zero%20is%20of%20course%20not%20that%20interesting%20but%20by%20adding%20more%20nodes%20one%20gets%20more%20line%20segments%20which%2C%20by%20adjusting%20the%20parameters%2C%20can%20be%20combined%20to%20approximate%20any%20function.%20Here%20follows%20a%20schematic%20of%20a%20neural%20network%20with%20three%20nodes%20in%20its%20hidden%20layer.%0A%0A%0A%7Bmo.Html(string_nn_schematic)%7D%0A%7Bx.center()%7D%0AThis%20corresponds%20to%20three%20line%20segments%0A%20%20%20%20%22%22%22%0A)
%23%20Plot%0A%0Aplt.axhline(0%2C%20color%3D'black'%2C%20linewidth%3D0.5)%20%20%23%20y%3D0%20(x-axis)%0Aplt.axvline(0%2C%20color%3D'black'%2C%20linewidth%3D0.5)%20%20%23%20x%3D0%20(y-axis)%0A%0Aplt.xlim(x_range_start%2C%20x_range_end)%0Aplt.ylim(y_range_start%2C%20y_range_end)%0A%0Aplt.xlabel('x')%0Aplt.ylabel('y')%0A%0A%0A%0A%23%20Plot%20zeroes%20nicely%0Aif%20n1_zero%20is%20not%20None%3A%0A%20%20%20%20plt.plot(%5Bn1_zero%2C%20n1_zero%5D%2C%20%5B0%2C%20y_range_start%5D%2C%20'--'%2C%20color%3Dn1_color_hex)%0A%0Aif%20n2_zero%20is%20not%20None%3A%0A%20%20%20%20plt.plot(%5Bn2_zero%2C%20n2_zero%5D%2C%20%5B0%2C%20y_range_start%5D%2C%20'--'%2C%20color%3Dn2_color_hex)%0A%0Aif%20n3_zero%20is%20not%20None%3A%0A%20%20%20%20plt.plot(%5Bn3_zero%2C%20n3_zero%5D%2C%20%5B0%2C%20y_range_start%5D%2C%20'--'%2C%20color%3Dn3_color_hex)%0A%0A%0A%23%20Plot%20functions%0Aplt.plot(x1_values_plot%2C%20n1_values_plot%2C%20label%3D'ReLU(w1%20*%20x%20%2B%20b1)'%2C%20color%3Dn1_color_hex)%0Aplt.plot(x2_values_plot%2C%20n2_values_plot%2C%20label%3D'ReLU(w2%20*%20x%20%2B%20b2)'%2C%20color%3Dn2_color_hex)%0Aplt.plot(x3_values_plot%2C%20n3_values_plot%2C%20label%3D'ReLU(w3%20*%20x%20%2B%20b3)'%2C%20color%3Dn3_color_hex)%0A%0Aif%20(check_show_sum.value%20%3D%3D%20True)%3A%0A%20%20%20%20plt.plot(x_values%2C%20y_values%2C%20linewidth%20%3D%203%2C%20color%3D%22%231f77b4%22)%0A%0Aif%20(check_show_target.value%20%3D%3D%20True)%3A%0A%20%20%20%20plt.plot(x_values%2C%20y_values_target%2C%20color%3D%22%23ff7f0e%22)%0A%0A%23%20Show%20the%20plot%0Amo.as_html(plt.gcf()).center()
a%20%3D%20mo.ui.number(value%3D1%2C%20start%3D-10%2C%20stop%3D10)%0Ab%20%3D%20mo.ui.number(value%3D1%2C%20start%3D-10%2C%20stop%3D10)%0Ac%20%3D%20mo.ui.number(value%3D1%2C%20start%3D-10%2C%20stop%3D10)%0Ad%20%3D%20mo.ui.number(value%3D1%2C%20start%3D-10%2C%20stop%3D10)
mo.md(string_sliders)
The output node is the weighted sum
of the hidden nodes and its bias. For simplicity the weights of the final edges have been set to 1.
It is now fairly easy to hand-tune the network parameters to approximate a target function
of: ||[0.012 \cdot x^{2} + 1||]
check_show_sum%20%3D%20mo.ui.switch()%0Acheck_show_target%20%3D%20mo.ui.switch()%0A%0Amo.md(f%22%22%22%0AThe%20output%20node%20is%20the%20weighted%20sum%20of%20the%20hidden%20nodes%20and%20its%20bias.%20For%20simplicity%20the%20weights%20of%20the%20final%20edges%20have%20been%20set%20to%201.%20It%20is%20now%20fairly%20easy%20to%20hand-tune%20the%20network%20parameters%20to%20approximate%20a%20target%20function%20of%3A%0A%0A%24%24%0A0.012%20%5C%5Ccdot%20x%5E%7B%7B2%7D%7D%20%2B%201%0A%24%24%0A%22%22%22)
Show output value
Show target function
mo.Html(%0Af%22%22%22%0A%20%20%20%20%20%20%3Cdiv%20style%3D%22flex%3A%200%3B%20margin-right%3A%2010px%3B%20padding%3A%2010px%3B%20border%3A%201px%20solid%20%23ccc%3B%20border-radius%3A%208px%3B%20display%3A%20inline-block%3B%20text-align%3A%20left%3B%22%3E%0A%20%20%20%20%20%20%20%20%3Cp%20style%3D%22margin%3A%200%3B%22%3E%7Bcheck_show_sum%7D%20Show%20output%20value%3C%2Fp%3E%0A%20%20%20%20%20%20%20%20%3Cp%20style%3D%22margin%3A%200%3B%22%3E%7Bcheck_show_target%7D%20Show%20target%20function%3C%2Fp%3E%0A%20%20%20%20%20%20%3C%2Fdiv%3E%0A%22%22%22).center()
%23%20Functions%0A%0Aimport%20marimo%20as%20mo%0Aimport%20matplotlib.pyplot%20as%20plt%0Aimport%20numpy%20as%20np
def%20ReLU(x)%3A%0A%20%20%20%20return%20np.maximum(0%2Cx)%0A%0Adef%20filter_plot_values(weigth%2C%20x0%2C%20x_values%2C%20y_values)%3A%0A%20%20%20%20if%20x0%20is%20None%3A%0A%20%20%20%20%20%20%20%20return%20x_values%2C%20y_values%0A%0A%20%20%20%20if%20weigth%20%3E%200%3A%0A%20%20%20%20%20%20%20%20x_values_plot%20%3D%20%5Bx%20for%20x%20in%20x_values%20if%20x%20%3E%3D%20x0%5D%0A%20%20%20%20%20%20%20%20y_values_plot%20%3D%20%5Bn2%20for%20x%2C%20n2%20in%20zip(x_values%2C%20y_values)%20if%20x%20%3E%3D%20x0%5D%0A%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20x_values_plot%20%3D%20%5Bx%20for%20x%20in%20x_values%20if%20x%20%3C%3D%20x0%5D%0A%20%20%20%20%20%20%20%20y_values_plot%20%3D%20%5Bn2%20for%20x%2C%20n2%20in%20zip(x_values%2C%20y_values)%20if%20x%20%3C%3D%20x0%5D%0A%0A%20%20%20%20return%20x_values_plot%2C%20y_values_plot%0A%0Adef%20get_edge_thickness(w%2C%20w_min%2C%20w_max%2C%20thick_min%2C%20thick_max)%3A%0A%20%20%20%20w_normalised%20%3D%20(w%20-%20w_min)%20%2F%20(w_max%20-%20w_min)%20%0A%20%20%20%20thickness%20%3D%20w_normalised%20*%20(thick_max%20-%20thick_min)%20%2B%20thick_min%0A%20%20%20%20return%20thickness%0A%0Adef%20function_target(x)%3A%0A%20%20%20%20return%200.012%20*%20np.power(x%2C%202)%20%2B%201
%23%20Variable%20setup%0AW1%20%3D%201%0AW2%20%3D%201%0AW3%20%3D%201%0A%0Aweight_min%20%3D%20-3%0Aweight_max%20%3D%203%0A%0Abias_min%20%3D%20-10%0Abias_max%20%3D%2010%0A%0An1_color_hex%20%3D%20%22%23f5c66e%22%0An2_color_hex%20%3D%20%22%23c8c8f1%22%0An3_color_hex%20%3D%20%22%23bfe6bf%22%0A%0An1_color_hex_dark%20%3D%20%22%237a6337%22%0An2_color_hex_dark%20%3D%20%22%23646478%22%0An3_color_hex_dark%20%3D%20%22%235f725f%22%0A%0An_color_grey_hex%20%3D%20%22%23b3b2b1%22%0A%0Aedge_thickness_min%20%3D%201%0Aedge_thickness_max%20%3D%208%0A%0Ax_range_start%20%3D%20-40%0Ax_range_end%20%3D%2040%0A%0Ay_range_start%20%3D%20-10%0Ay_range_end%20%3D%2020%0A%0Ax_values%20%3D%20np.linspace(x_range_start%2Cx_range_end%2C%20num%3D99)%0A%0Ay_values_target%20%3D%20function_target(x_values)
x%20%3D%20mo.ui.slider(-10%2C%2010%2C%20step%3D0.1%2C%20value%3D0%2Clabel%3D'x'%2C%20show_value%3DTrue)%0Aw1%20%3D%20mo.ui.slider(weight_min%2C%20weight_max%2C%20step%3D0.1%2C%20value%3D1%2Clabel%3D'w1'%2C%20show_value%3DTrue)%0Aw2%20%3D%20mo.ui.slider(weight_min%2C%20weight_max%2C%20step%3D0.1%2C%20value%3D0.5%2Clabel%3D'w2'%2C%20show_value%3DTrue)%0Aw3%20%3D%20mo.ui.slider(weight_min%2C%20weight_max%2C%20step%3D0.1%2C%20value%3D-0.5%2Clabel%3D'w3'%2C%20show_value%3DTrue)%0A%0Aw1.style(%7B%22background%22%3A%20n1_color_hex_dark%7D)%0A%0A%0Ab1%20%3D%20mo.ui.slider(bias_min%2C%20bias_max%2C%20step%3D0.1%2C%20value%3D1%2Clabel%3D'b1'%2C%20show_value%3DTrue)%0Ab2%20%3D%20mo.ui.slider(bias_min%2C%20bias_max%2C%20step%3D0.1%2C%20value%3D1%2Clabel%3D'b2'%2C%20show_value%3DTrue)%0Ab3%20%3D%20mo.ui.slider(bias_min%2C%20bias_max%2C%20step%3D0.1%2C%20value%3D1%2Clabel%3D'b3'%2C%20show_value%3DTrue)%0A%0AB%20%3D%20mo.ui.slider(y_range_start%2C%20y_range_end%2C%20step%3D0.1%2C%20value%3D1%2Clabel%3D'B'%2C%20show_value%3DTrue)
%23%20Calculated%20values%20for%20plot%0An1_values%20%3D%20ReLU(x_values%20*%20w1.value%20%2B%20b1.value)%0An2_values%20%3D%20ReLU(x_values%20*%20w2.value%20%2B%20b2.value)%0An3_values%20%3D%20ReLU(x_values%20*%20w3.value%20%2B%20b3.value)%0Ay_values%20%3D%20n1_values%20*%20W1%20%2B%20n2_values%20*%20W2%20%2B%20n3_values%20*%20W3%20%2B%20B.value%0A%0A%23%20Filter%20out%20zeroes%20for%20nicer%20plot%0An1_zero%20%3D%20None%20if%20w1.value%20%3D%3D%200%20else%20-b1.value%20%2F%20w1.value%0An2_zero%20%3D%20None%20if%20w2.value%20%3D%3D%200%20else%20-b2.value%20%2F%20w2.value%0An3_zero%20%3D%20None%20if%20w3.value%20%3D%3D%200%20else%20-b3.value%20%2F%20w3.value%0A%0Ax1_values_plot%2C%20n1_values_plot%20%3D%20filter_plot_values(w1.value%2C%20n1_zero%2C%20x_values.copy()%2C%20n1_values.copy())%0Ax2_values_plot%2C%20n2_values_plot%20%3D%20filter_plot_values(w2.value%2C%20n2_zero%2C%20x_values.copy()%2C%20n2_values.copy())%0Ax3_values_plot%2C%20n3_values_plot%20%3D%20filter_plot_values(w3.value%2C%20n3_zero%2C%20x_values.copy()%2C%20n3_values.copy())%0A%0A%23%20Calculated%20values%20for%20svg%20image%0An1%20%3D%20ReLU(w1.value%20*%20x.value%20%2B%20b1.value)%0An2%20%3D%20ReLU(w2.value%20*%20x.value%20%2B%20b2.value)%0An3%20%3D%20ReLU(w3.value%20*%20x.value%20%2B%20b3.value)%0Ay%20%3D%20W1%20*%20n1%20%2B%20W2%20*%20n2%20%2B%20W3%20*%20n3%20%2B%20B.value%0A%0Aw1_thickness%20%3D%20get_edge_thickness(w1.value%2C%20weight_min%2C%20weight_max%2C%20edge_thickness_min%2C%20edge_thickness_max)%0Aw2_thickness%20%3D%20get_edge_thickness(w2.value%2C%20weight_min%2C%20weight_max%2C%20edge_thickness_min%2C%20edge_thickness_max)%0Aw3_thickness%20%3D%20get_edge_thickness(w3.value%2C%20weight_min%2C%20weight_max%2C%20edge_thickness_min%2C%20edge_thickness_max)
string_nn_schematic_simple%20%3D%20f%22%22%22%0A%3Ccenter%3E%0A%3Csvg%20width%3D%22100%25%22%20height%3D%22100%25%22%20viewBox%3D%220%200%20800%20200%22%20preserveAspectRatio%3D%22xMidYMid%20meet%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cg%20transform%3D%22translate(0%2C25)%22%3E%0A%20%20%3C!--%20Input%20node%20--%3E%0A%20%20%3Cg%20transform%3D%22translate(308%2C%200)%22%3E%0A%20%20%7Bstring_svg_eq_relu%7D%0A%20%20%3C%2Fg%3E%0A%20%20%3Cg%20transform%3D%22translate(640%2C0)%22%3E%0A%20%20%20%7Bstring_svg_eq_y%7D%0A%20%20%3C%2Fg%3E%0A%20%20%3Cg%20transform%3D%22translate(0%2C%2025)%22%3E%0A%20%20%3Ccircle%20cx%3D%22100%22%20cy%3D%2245%22%20r%3D%2240%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20fill%3D%22white%22%2F%3E%0A%20%20%3Ctext%20x%3D%22100%22%20y%3D%2245%22%20font-family%3D%22Arial%22%20font-size%3D%2230%22%20fill%3D%22black%22%20text-anchor%3D%22middle%22%20dominant-baseline%3D%22middle%22%3E%7Bx.value%7D%3C%2Ftext%3E%0A%20%20%3Ctext%20x%3D%22100%22%20y%3D%22105%22%20font-family%3D%22Arial%22%20font-size%3D%2224%22%20fill%3D%22black%22%20text-anchor%3D%22middle%22%3EInput%3C%2Ftext%3E%0A%0A%20%20%3C!--%20Hidden%20layer%20node%20--%3E%0A%20%20%3Ccircle%20cx%3D%22400%22%20cy%3D%2245%22%20r%3D%2240%22%20stroke%3D%22%7Bn1_color_hex_dark%7D%22%20stroke-width%3D%222.5%22%20fill%3D%22%7Bn1_color_hex%20if%20n2%20%3E%200%20else%20n_color_grey_hex%7D%22%2F%3E%0A%20%20%3Ctext%20x%3D%22400%22%20y%3D%2245%22%20font-family%3D%22Arial%22%20font-size%3D%2230%22%20fill%3D%22%7Bn1_color_hex_dark%7D%22%20text-anchor%3D%22middle%22%20dominant-baseline%3D%22middle%22%3E%0A%20%20%20%20%7Bn1%3A.1f%7D%0A%20%20%3C%2Ftext%3E%0A%0A%20%20%3C!--%20Output%20node%20--%3E%0A%20%20%3Ccircle%20cx%3D%22700%22%20cy%3D%2245%22%20r%3D%2240%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20fill%3D%22white%22%2F%3E%0A%20%20%3Ctext%20x%3D%22700%22%20y%3D%2245%22%20font-family%3D%22Arial%22%20font-size%3D%2230%22%20fill%3D%22black%22%20text-anchor%3D%22middle%22%20dominant-baseline%3D%22middle%22%3E%7By%3A.1f%7D%3C%2Ftext%3E%0A%20%20%3Ctext%20x%3D%22700%22%20y%3D%22105%22%20font-family%3D%22Arial%22%20font-size%3D%2224%22%20fill%3D%22black%22%20text-anchor%3D%22middle%22%3EOutput%3C%2Ftext%3E%0A%0A%20%20%3C!--%20Edges%20from%20input%20to%20hidden%20layer%20--%3E%0A%20%20%3Cline%20x1%3D%22140%22%20y1%3D%2245%22%20x2%3D%22360%22%20y2%3D%2245%22%20stroke%3D%22black%22%20stroke-width%3D%22%7Bw1_thickness%7D%22%2F%3E%0A%0A%20%20%3C!--%20Edges%20from%20hidden%20layer%20to%20output%20--%3E%0A%20%20%3Cline%20x1%3D%22440%22%20y1%3D%2245%22%20x2%3D%22660%22%20y2%3D%2245%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%2F%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A%3C%2Fcenter%3E%0A%22%22%22
%23%20https%3A%2F%2Fviereck.ch%2Flatex-to-svg%2F%0A%0Astring_svg_eq_relu%20%3D%20%22%22%22%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%20%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22161.600px%22%20height%3D%2218.096px%22%20viewBox%3D%220%20-750%208928.4%201000%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20aria-hidden%3D%22true%22%3E%3Cdefs%3E%3Cpath%20id%3D%22MJX-8-TEX-I-1D45B%22%20d%3D%22M21%20287Q22%20293%2024%20303T36%20341T56%20388T89%20425T135%20442Q171%20442%20195%20424T225%20390T231%20369Q231%20367%20232%20367L243%20378Q304%20442%20382%20442Q436%20442%20469%20415T503%20336T465%20179T427%2052Q427%2026%20444%2026Q450%2026%20453%2027Q482%2032%20505%2065T540%20145Q542%20153%20560%20153Q580%20153%20580%20145Q580%20144%20576%20130Q568%20101%20554%2073T508%2017T439%20-10Q392%20-10%20371%2017T350%2073Q350%2092%20386%20193T423%20345Q423%20404%20379%20404H374Q288%20404%20229%20303L222%20291L189%20157Q156%2026%20151%2016Q138%20-11%20108%20-11Q95%20-11%2087%20-5T76%207T74%2017Q74%2030%20112%20180T152%20343Q153%20348%20153%20366Q153%20405%20129%20405Q91%20405%2066%20305Q60%20285%2060%20284Q58%20278%2041%20278H27Q21%20284%2021%20287Z%22%3E%3C%2Fpath%3E%3Cpath%20id%3D%22MJX-8-TEX-N-3D%22%20d%3D%22M56%20347Q56%20360%2070%20367H707Q722%20359%20722%20347Q722%20336%20708%20328L390%20327H72Q56%20332%2056%20347ZM56%20153Q56%20168%2072%20173H708Q722%20163%20722%20153Q722%20140%20707%20133H70Q56%20140%2056%20153Z%22%3E%3C%2Fpath%3E%3Cpath%20id%3D%22MJX-8-TEX-N-52%22%20d%3D%22M130%20622Q123%20629%20119%20631T103%20634T60%20637H27V683H202H236H300Q376%20683%20417%20677T500%20648Q595%20600%20609%20517Q610%20512%20610%20501Q610%20468%20594%20439T556%20392T511%20361T472%20343L456%20338Q459%20335%20467%20332Q497%20316%20516%20298T545%20254T559%20211T568%20155T578%2094Q588%2046%20602%2031T640%2016H645Q660%2016%20674%2032T692%2087Q692%2098%20696%20101T712%20105T728%20103T732%2090Q732%2059%20716%2027T672%20-16Q656%20-22%20630%20-22Q481%20-16%20458%2090Q456%20101%20456%20163T449%20246Q430%20304%20373%20320L363%20322L297%20323H231V192L232%2061Q238%2051%20249%2049T301%2046H334V0H323Q302%203%20181%203Q59%203%2038%200H27V46H60Q102%2047%20111%2049T130%2061V622ZM491%20499V509Q491%20527%20490%20539T481%20570T462%20601T424%20623T362%20636Q360%20636%20340%20636T304%20637H283Q238%20637%20234%20628Q231%20624%20231%20492V360H289Q390%20360%20434%20378T489%20456Q491%20467%20491%20499Z%22%3E%3C%2Fpath%3E%3Cpath%20id%3D%22MJX-8-TEX-N-65%22%20d%3D%22M28%20218Q28%20273%2048%20318T98%20391T163%20433T229%20448Q282%20448%20320%20430T378%20380T406%20316T415%20245Q415%20238%20408%20231H126V216Q126%2068%20226%2036Q246%2030%20270%2030Q312%2030%20342%2062Q359%2079%20369%20104L379%20128Q382%20131%20395%20131H398Q415%20131%20415%20121Q415%20117%20412%20108Q393%2053%20349%2021T250%20-11Q155%20-11%2092%2058T28%20218ZM333%20275Q322%20403%20238%20411H236Q228%20411%20220%20410T195%20402T166%20381T143%20340T127%20274V267H333V275Z%22%3E%3C%2Fpath%3E%3Cpath%20id%3D%22MJX-8-TEX-N-4C%22%20d%3D%22M128%20622Q121%20629%20117%20631T101%20634T58%20637H25V683H36Q48%20680%20182%20680Q324%20680%20348%20683H360V637H333Q273%20637%20258%20635T233%20622L232%20342V129Q232%2057%20237%2052Q243%2047%20313%2047Q384%2047%20410%2053Q470%2070%20498%20110T536%20221Q536%20226%20537%20238T540%20261T542%20272T562%20273H582V268Q580%20265%20568%20137T554%205V0H25V46H58Q100%2047%20109%2049T128%2061V622Z%22%3E%3C%2Fpath%3E%3Cpath%20id%3D%22MJX-8-TEX-N-55%22%20d%3D%22M128%20622Q121%20629%20117%20631T101%20634T58%20637H25V683H36Q57%20680%20180%20680Q315%20680%20324%20683H335V637H302Q262%20636%20251%20634T233%20622L232%20418V291Q232%20189%20240%20145T280%2067Q325%2024%20389%2024Q454%2024%20506%2064T571%20183Q575%20206%20575%20410V598Q569%20608%20565%20613T541%20627T489%20637H472V683H481Q496%20680%20598%20680T715%20683H724V637H707Q634%20633%20622%20598L621%20399Q620%20194%20617%20180Q617%20179%20615%20171Q595%2083%20531%2031T389%20-22Q304%20-22%20226%2033T130%20192Q129%20201%20128%20412V622Z%22%3E%3C%2Fpath%3E%3Cpath%20id%3D%22MJX-8-TEX-N-28%22%20d%3D%22M94%20250Q94%20319%20104%20381T127%20488T164%20576T202%20643T244%20695T277%20729T302%20750H315H319Q333%20750%20333%20741Q333%20738%20316%20720T275%20667T226%20581T184%20443T167%20250T184%2058T225%20-81T274%20-167T316%20-220T333%20-241Q333%20-250%20318%20-250H315H302L274%20-226Q180%20-141%20137%20-14T94%20250Z%22%3E%3C%2Fpath%3E%3Cpath%20id%3D%22MJX-8-TEX-I-1D465%22%20d%3D%22M52%20289Q59%20331%20106%20386T222%20442Q257%20442%20286%20424T329%20379Q371%20442%20430%20442Q467%20442%20494%20420T522%20361Q522%20332%20508%20314T481%20292T458%20288Q439%20288%20427%20299T415%20328Q415%20374%20465%20391Q454%20404%20425%20404Q412%20404%20406%20402Q368%20386%20350%20336Q290%20115%20290%2078Q290%2050%20306%2038T341%2026Q378%2026%20414%2059T463%20140Q466%20150%20469%20151T485%20153H489Q504%20153%20504%20145Q504%20144%20502%20134Q486%2077%20440%2033T333%20-11Q263%20-11%20227%2052Q186%20-10%20133%20-10H127Q78%20-10%2057%2016T35%2071Q35%20103%2054%20123T99%20143Q142%20143%20142%20101Q142%2081%20130%2066T107%2046T94%2041L91%2040Q91%2039%2097%2036T113%2029T132%2026Q168%2026%20194%2071Q203%2087%20217%20139T245%20247T261%20313Q266%20340%20266%20352Q266%20380%20251%20392T217%20404Q177%20404%20142%20372T93%20290Q91%20281%2088%20280T72%20278H58Q52%20284%2052%20289Z%22%3E%3C%2Fpath%3E%3Cpath%20id%3D%22MJX-8-TEX-N-22C5%22%20d%3D%22M78%20250Q78%20274%2095%20292T138%20310Q162%20310%20180%20294T199%20251Q199%20226%20182%20208T139%20190T96%20207T78%20250Z%22%3E%3C%2Fpath%3E%3Cpath%20id%3D%22MJX-8-TEX-I-1D464%22%20d%3D%22M580%20385Q580%20406%20599%20424T641%20443Q659%20443%20674%20425T690%20368Q690%20339%20671%20253Q656%20197%20644%20161T609%2080T554%2012T482%20-11Q438%20-11%20404%205T355%2048Q354%2047%20352%2044Q311%20-11%20252%20-11Q226%20-11%20202%20-5T155%2014T118%2053T104%20116Q104%20170%20138%20262T173%20379Q173%20380%20173%20381Q173%20390%20173%20393T169%20400T158%20404H154Q131%20404%20112%20385T82%20344T65%20302T57%20280Q55%20278%2041%20278H27Q21%20284%2021%20287Q21%20293%2029%20315T52%20366T96%20418T161%20441Q204%20441%20227%20416T250%20358Q250%20340%20217%20250T184%20111Q184%2065%20205%2046T258%2026Q301%2026%20334%2087L339%2096V119Q339%20122%20339%20128T340%20136T341%20143T342%20152T345%20165T348%20182T354%20206T362%20238T373%20281Q402%20395%20406%20404Q419%20431%20449%20431Q468%20431%20475%20421T483%20402Q483%20389%20454%20274T422%20142Q420%20131%20420%20107V100Q420%2085%20423%2071T442%2042T487%2026Q558%2026%20600%20148Q609%20171%20620%20213T632%20273Q632%20306%20619%20325T593%20357T580%20385Z%22%3E%3C%2Fpath%3E%3Cpath%20id%3D%22MJX-8-TEX-N-2B%22%20d%3D%22M56%20237T56%20250T70%20270H369V420L370%20570Q380%20583%20389%20583Q402%20583%20409%20568V270H707Q722%20262%20722%20250T707%20230H409V-68Q401%20-82%20391%20-82H389H387Q375%20-82%20369%20-68V230H70Q56%20237%2056%20250Z%22%3E%3C%2Fpath%3E%3Cpath%20id%3D%22MJX-8-TEX-I-1D44F%22%20d%3D%22M73%20647Q73%20657%2077%20670T89%20683Q90%20683%20161%20688T234%20694Q246%20694%20246%20685T212%20542Q204%20508%20195%20472T180%20418L176%20399Q176%20396%20182%20402Q231%20442%20283%20442Q345%20442%20383%20396T422%20280Q422%20169%20343%2079T173%20-11Q123%20-11%2082%2027T40%20150V159Q40%20180%2048%20217T97%20414Q147%20611%20147%20623T109%20637Q104%20637%20101%20637H96Q86%20637%2083%20637T76%20640T73%20647ZM336%20325V331Q336%20405%20275%20405Q258%20405%20240%20397T207%20376T181%20352T163%20330L157%20322L136%20236Q114%20150%20114%20114Q114%2066%20138%2042Q154%2026%20178%2026Q211%2026%20245%2058Q270%2081%20285%20114T318%20219Q336%20291%20336%20325Z%22%3E%3C%2Fpath%3E%3Cpath%20id%3D%22MJX-8-TEX-N-29%22%20d%3D%22M60%20749L64%20750Q69%20750%2074%20750H86L114%20726Q208%20641%20251%20514T294%20250Q294%20182%20284%20119T261%2012T224%20-76T186%20-143T145%20-194T113%20-227T90%20-246Q87%20-249%2086%20-250H74Q66%20-250%2063%20-250T58%20-247T55%20-238Q56%20-237%2066%20-225Q221%20-64%20221%20250T66%20725Q56%20737%2055%20738Q55%20746%2060%20749Z%22%3E%3C%2Fpath%3E%3C%2Fdefs%3E%3Cg%20stroke%3D%22%23000000%22%20fill%3D%22%23000000%22%20stroke-width%3D%220%22%20transform%3D%22scale(1%2C-1)%22%3E%3Cg%20data-mml-node%3D%22math%22%3E%3Cg%20data-mml-node%3D%22mi%22%3E%3Cuse%20data-c%3D%221D45B%22%20xlink%3Ahref%3D%22%23MJX-8-TEX-I-1D45B%22%3E%3C%2Fuse%3E%3C%2Fg%3E%3Cg%20data-mml-node%3D%22mo%22%20transform%3D%22translate(877.8%2C0)%22%3E%3Cuse%20data-c%3D%223D%22%20xlink%3Ahref%3D%22%23MJX-8-TEX-N-3D%22%3E%3C%2Fuse%3E%3C%2Fg%3E%3Cg%20data-mml-node%3D%22mtext%22%20transform%3D%22translate(1933.6%2C0)%22%3E%3Cuse%20data-c%3D%2252%22%20xlink%3Ahref%3D%22%23MJX-8-TEX-N-52%22%3E%3C%2Fuse%3E%3Cuse%20data-c%3D%2265%22%20xlink%3Ahref%3D%22%23MJX-8-TEX-N-65%22%20transform%3D%22translate(736%2C0)%22%3E%3C%2Fuse%3E%3Cuse%20data-c%3D%224C%22%20xlink%3Ahref%3D%22%23MJX-8-TEX-N-4C%22%20transform%3D%22translate(1180%2C0)%22%3E%3C%2Fuse%3E%3Cuse%20data-c%3D%2255%22%20xlink%3Ahref%3D%22%23MJX-8-TEX-N-55%22%20transform%3D%22translate(1805%2C0)%22%3E%3C%2Fuse%3E%3C%2Fg%3E%3Cg%20data-mml-node%3D%22mo%22%20transform%3D%22translate(4488.6%2C0)%22%3E%3Cuse%20data-c%3D%2228%22%20xlink%3Ahref%3D%22%23MJX-8-TEX-N-28%22%3E%3C%2Fuse%3E%3C%2Fg%3E%3Cg%20data-mml-node%3D%22mi%22%20transform%3D%22translate(4877.6%2C0)%22%3E%3Cuse%20data-c%3D%221D465%22%20xlink%3Ahref%3D%22%23MJX-8-TEX-I-1D465%22%3E%3C%2Fuse%3E%3C%2Fg%3E%3Cg%20data-mml-node%3D%22mo%22%20transform%3D%22translate(5671.8%2C0)%22%3E%3Cuse%20data-c%3D%2222C5%22%20xlink%3Ahref%3D%22%23MJX-8-TEX-N-22C5%22%3E%3C%2Fuse%3E%3C%2Fg%3E%3Cg%20data-mml-node%3D%22mi%22%20transform%3D%22translate(6172%2C0)%22%3E%3Cuse%20data-c%3D%221D464%22%20xlink%3Ahref%3D%22%23MJX-8-TEX-I-1D464%22%3E%3C%2Fuse%3E%3C%2Fg%3E%3Cg%20data-mml-node%3D%22mo%22%20transform%3D%22translate(7110.2%2C0)%22%3E%3Cuse%20data-c%3D%222B%22%20xlink%3Ahref%3D%22%23MJX-8-TEX-N-2B%22%3E%3C%2Fuse%3E%3C%2Fg%3E%3Cg%20data-mml-node%3D%22mi%22%20transform%3D%22translate(8110.4%2C0)%22%3E%3Cuse%20data-c%3D%221D44F%22%20xlink%3Ahref%3D%22%23MJX-8-TEX-I-1D44F%22%3E%3C%2Fuse%3E%3C%2Fg%3E%3Cg%20data-mml-node%3D%22mo%22%20transform%3D%22translate(8539.4%2C0)%22%3E%3Cuse%20data-c%3D%2229%22%20xlink%3Ahref%3D%22%23MJX-8-TEX-N-29%22%3E%3C%2Fuse%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E%22%22%22%0A%0Astring_svg_eq_y%20%3D%20%22%22%22%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%20%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22111.776px%22%20height%3D%2216.072px%22%20viewBox%3D%220%20-683%206175.4%20888%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20aria-hidden%3D%22true%22%3E%3Cdefs%3E%3Cpath%20id%3D%22MJX-10-TEX-I-1D466%22%20d%3D%22M21%20287Q21%20301%2036%20335T84%20406T158%20442Q199%20442%20224%20419T250%20355Q248%20336%20247%20334Q247%20331%20231%20288T198%20191T182%20105Q182%2062%20196%2045T238%2027Q261%2027%20281%2038T312%2061T339%2094Q339%2095%20344%20114T358%20173T377%20247Q415%20397%20419%20404Q432%20431%20462%20431Q475%20431%20483%20424T494%20412T496%20403Q496%20390%20447%20193T391%20-23Q363%20-106%20294%20-155T156%20-205Q111%20-205%2077%20-183T43%20-117Q43%20-95%2050%20-80T69%20-58T89%20-48T106%20-45Q150%20-45%20150%20-87Q150%20-107%20138%20-122T115%20-142T102%20-147L99%20-148Q101%20-153%20118%20-160T152%20-167H160Q177%20-167%20186%20-165Q219%20-156%20247%20-127T290%20-65T313%20-9T321%2021L315%2017Q309%2013%20296%206T270%20-6Q250%20-11%20231%20-11Q185%20-11%20150%2011T104%2082Q103%2089%20103%20113Q103%20170%20138%20262T173%20379Q173%20380%20173%20381Q173%20390%20173%20393T169%20400T158%20404H154Q131%20404%20112%20385T82%20344T65%20302T57%20280Q55%20278%2041%20278H27Q21%20284%2021%20287Z%22%3E%3C%2Fpath%3E%3Cpath%20id%3D%22MJX-10-TEX-N-3D%22%20d%3D%22M56%20347Q56%20360%2070%20367H707Q722%20359%20722%20347Q722%20336%20708%20328L390%20327H72Q56%20332%2056%20347ZM56%20153Q56%20168%2072%20173H708Q722%20163%20722%20153Q722%20140%20707%20133H70Q56%20140%2056%20153Z%22%3E%3C%2Fpath%3E%3Cpath%20id%3D%22MJX-10-TEX-I-1D45B%22%20d%3D%22M21%20287Q22%20293%2024%20303T36%20341T56%20388T89%20425T135%20442Q171%20442%20195%20424T225%20390T231%20369Q231%20367%20232%20367L243%20378Q304%20442%20382%20442Q436%20442%20469%20415T503%20336T465%20179T427%2052Q427%2026%20444%2026Q450%2026%20453%2027Q482%2032%20505%2065T540%20145Q542%20153%20560%20153Q580%20153%20580%20145Q580%20144%20576%20130Q568%20101%20554%2073T508%2017T439%20-10Q392%20-10%20371%2017T350%2073Q350%2092%20386%20193T423%20345Q423%20404%20379%20404H374Q288%20404%20229%20303L222%20291L189%20157Q156%2026%20151%2016Q138%20-11%20108%20-11Q95%20-11%2087%20-5T76%207T74%2017Q74%2030%20112%20180T152%20343Q153%20348%20153%20366Q153%20405%20129%20405Q91%20405%2066%20305Q60%20285%2060%20284Q58%20278%2041%20278H27Q21%20284%2021%20287Z%22%3E%3C%2Fpath%3E%3Cpath%20id%3D%22MJX-10-TEX-N-22C5%22%20d%3D%22M78%20250Q78%20274%2095%20292T138%20310Q162%20310%20180%20294T199%20251Q199%20226%20182%20208T139%20190T96%20207T78%20250Z%22%3E%3C%2Fpath%3E%3Cpath%20id%3D%22MJX-10-TEX-I-1D44A%22%20d%3D%22M436%20683Q450%20683%20486%20682T553%20680Q604%20680%20638%20681T677%20682Q695%20682%20695%20674Q695%20670%20692%20659Q687%20641%20683%20639T661%20637Q636%20636%20621%20632T600%20624T597%20615Q597%20603%20613%20377T629%20138L631%20141Q633%20144%20637%20151T649%20170T666%20200T690%20241T720%20295T759%20362Q863%20546%20877%20572T892%20604Q892%20619%20873%20628T831%20637Q817%20637%20817%20647Q817%20650%20819%20660Q823%20676%20825%20679T839%20682Q842%20682%20856%20682T895%20682T949%20681Q1015%20681%201034%20683Q1048%20683%201048%20672Q1048%20666%201045%20655T1038%20640T1028%20637Q1006%20637%20988%20631T958%20617T939%20600T927%20584L923%20578L754%20282Q586%20-14%20585%20-15Q579%20-22%20561%20-22Q546%20-22%20542%20-17Q539%20-14%20523%20229T506%20480L494%20462Q472%20425%20366%20239Q222%20-13%20220%20-15T215%20-19Q210%20-22%20197%20-22Q178%20-22%20176%20-15Q176%20-12%20154%20304T131%20622Q129%20631%20121%20633T82%20637H58Q51%20644%2051%20648Q52%20671%2064%20683H76Q118%20680%20176%20680Q301%20680%20313%20683H323Q329%20677%20329%20674T327%20656Q322%20641%20318%20637H297Q236%20634%20232%20620Q262%20160%20266%20136L501%20550L499%20587Q496%20629%20489%20632Q483%20636%20447%20637Q428%20637%20422%20639T416%20648Q416%20650%20418%20660Q419%20664%20420%20669T421%20676T424%20680T428%20682T436%20683Z%22%3E%3C%2Fpath%3E%3Cpath%20id%3D%22MJX-10-TEX-N-2B%22%20d%3D%22M56%20237T56%20250T70%20270H369V420L370%20570Q380%20583%20389%20583Q402%20583%20409%20568V270H707Q722%20262%20722%20250T707%20230H409V-68Q401%20-82%20391%20-82H389H387Q375%20-82%20369%20-68V230H70Q56%20237%2056%20250Z%22%3E%3C%2Fpath%3E%3Cpath%20id%3D%22MJX-10-TEX-I-1D435%22%20d%3D%22M231%20637Q204%20637%20199%20638T194%20649Q194%20676%20205%20682Q206%20683%20335%20683Q594%20683%20608%20681Q671%20671%20713%20636T756%20544Q756%20480%20698%20429T565%20360L555%20357Q619%20348%20660%20311T702%20219Q702%20146%20630%2078T453%201Q446%200%20242%200Q42%200%2039%202Q35%205%2035%2010Q35%2017%2037%2024Q42%2043%2047%2045Q51%2046%2062%2046H68Q95%2046%20128%2049Q142%2052%20147%2061Q150%2065%20219%20339T288%20628Q288%20635%20231%20637ZM649%20544Q649%20574%20634%20600T585%20634Q578%20636%20493%20637Q473%20637%20451%20637T416%20636H403Q388%20635%20384%20626Q382%20622%20352%20506Q352%20503%20351%20500L320%20374H401Q482%20374%20494%20376Q554%20386%20601%20434T649%20544ZM595%20229Q595%20273%20572%20302T512%20336Q506%20337%20429%20337Q311%20337%20310%20336Q310%20334%20293%20263T258%20122L240%2052Q240%2048%20252%2048T333%2046Q422%2046%20429%2047Q491%2054%20543%20105T595%20229Z%22%3E%3C%2Fpath%3E%3C%2Fdefs%3E%3Cg%20stroke%3D%22%23000000%22%20fill%3D%22%23000000%22%20stroke-width%3D%220%22%20transform%3D%22scale(1%2C-1)%22%3E%3Cg%20data-mml-node%3D%22math%22%3E%3Cg%20data-mml-node%3D%22mi%22%3E%3Cuse%20data-c%3D%221D466%22%20xlink%3Ahref%3D%22%23MJX-10-TEX-I-1D466%22%3E%3C%2Fuse%3E%3C%2Fg%3E%3Cg%20data-mml-node%3D%22mo%22%20transform%3D%22translate(767.8%2C0)%22%3E%3Cuse%20data-c%3D%223D%22%20xlink%3Ahref%3D%22%23MJX-10-TEX-N-3D%22%3E%3C%2Fuse%3E%3C%2Fg%3E%3Cg%20data-mml-node%3D%22mi%22%20transform%3D%22translate(1823.6%2C0)%22%3E%3Cuse%20data-c%3D%221D45B%22%20xlink%3Ahref%3D%22%23MJX-10-TEX-I-1D45B%22%3E%3C%2Fuse%3E%3C%2Fg%3E%3Cg%20data-mml-node%3D%22mo%22%20transform%3D%22translate(2645.8%2C0)%22%3E%3Cuse%20data-c%3D%2222C5%22%20xlink%3Ahref%3D%22%23MJX-10-TEX-N-22C5%22%3E%3C%2Fuse%3E%3C%2Fg%3E%3Cg%20data-mml-node%3D%22mi%22%20transform%3D%22translate(3146%2C0)%22%3E%3Cuse%20data-c%3D%221D44A%22%20xlink%3Ahref%3D%22%23MJX-10-TEX-I-1D44A%22%3E%3C%2Fuse%3E%3C%2Fg%3E%3Cg%20data-mml-node%3D%22mo%22%20transform%3D%22translate(4416.2%2C0)%22%3E%3Cuse%20data-c%3D%222B%22%20xlink%3Ahref%3D%22%23MJX-10-TEX-N-2B%22%3E%3C%2Fuse%3E%3C%2Fg%3E%3Cg%20data-mml-node%3D%22mi%22%20transform%3D%22translate(5416.4%2C0)%22%3E%3Cuse%20data-c%3D%221D435%22%20xlink%3Ahref%3D%22%23MJX-10-TEX-I-1D435%22%3E%3C%2Fuse%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E%22%22%22
string_nn_schematic%20%3D%20f%22%22%22%0A%3Ccenter%3E%0A%3Csvg%20width%3D%22100%25%22%20height%3D%22100%25%22%20viewBox%3D%220%200%20800%20500%22%20preserveAspectRatio%3D%22xMidYMid%20meet%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%0A%20%20%3C!--%20Input%20node%20--%3E%0A%20%20%3Ccircle%20cx%3D%22100%22%20cy%3D%22250%22%20r%3D%2240%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20fill%3D%22white%22%2F%3E%0A%20%20%3Ctext%20x%3D%22100%22%20y%3D%22250%22%20font-family%3D%22Arial%22%20font-size%3D%2230%22%20fill%3D%22black%22%20text-anchor%3D%22middle%22%20dominant-baseline%3D%22middle%22%3E%7Bx.value%7D%3C%2Ftext%3E%0A%20%20%3Ctext%20x%3D%22100%22%20y%3D%22320%22%20font-family%3D%22Arial%22%20font-size%3D%2230%22%20fill%3D%22black%22%20text-anchor%3D%22middle%22%3EInput%3C%2Ftext%3E%0A%0A%20%20%3C!--%20Hidden%20layer%20nodes%20--%3E%0A%20%20%3Ccircle%20cx%3D%22400%22%20cy%3D%22100%22%20r%3D%2240%22%20stroke%3D%22%7Bn1_color_hex_dark%7D%22%20stroke-width%3D%222.5%22%20fill%3D%22%7Bn1_color_hex%20if%20n1%20%3E%200%20else%20n_color_grey_hex%7D%22%2F%3E%0A%20%20%3Ccircle%20cx%3D%22400%22%20cy%3D%22250%22%20r%3D%2240%22%20stroke%3D%22%7Bn2_color_hex_dark%7D%22%20stroke-width%3D%222.5%22%20fill%3D%22%7Bn2_color_hex%20if%20n2%20%3E%200%20else%20n_color_grey_hex%7D%22%2F%3E%0A%20%20%3Ccircle%20cx%3D%22400%22%20cy%3D%22400%22%20r%3D%2240%22%20stroke%3D%22%7Bn3_color_hex_dark%7D%22%20stroke-width%3D%222.5%22%20fill%3D%22%7Bn3_color_hex%20if%20n3%20%3E%200%20else%20n_color_grey_hex%7D%22%2F%3E%0A%0A%20%20%3Ctext%20x%3D%22400%22%20y%3D%22100%22%20font-family%3D%22Arial%22%20font-size%3D%2230%22%20fill%3D%22%7Bn1_color_hex_dark%7D%22%20text-anchor%3D%22middle%22%20dominant-baseline%3D%22middle%22%3E%0A%20%20%20%20%7Bn1%3A.1f%7D%0A%20%20%3C%2Ftext%3E%0A%0A%20%20%3Ctext%20x%3D%22400%22%20y%3D%22250%22%20font-family%3D%22Arial%22%20font-size%3D%2230%22%20fill%3D%22%7Bn2_color_hex_dark%7D%22%20text-anchor%3D%22middle%22%20dominant-baseline%3D%22middle%22%3E%0A%20%20%20%20%7Bn2%3A.1f%7D%0A%20%20%3C%2Ftext%3E%0A%0A%20%20%3Ctext%20x%3D%22400%22%20y%3D%22400%22%20font-family%3D%22Arial%22%20font-size%3D%2230%22%20fill%3D%22%7Bn3_color_hex_dark%7D%22%20text-anchor%3D%22middle%22%20dominant-baseline%3D%22middle%22%3E%0A%20%20%20%20%7Bn3%3A.1f%7D%0A%20%20%3C%2Ftext%3E%0A%0A%20%20%3Ctext%20x%3D%22400%22%20y%3D%22480%22%20font-family%3D%22Arial%22%20font-size%3D%2230%22%20fill%3D%22black%22%20text-anchor%3D%22middle%22%3EHidden%20layer%3C%2Ftext%3E%0A%0A%20%20%3C!--%20Output%20node%20--%3E%0A%20%20%3Ccircle%20cx%3D%22700%22%20cy%3D%22250%22%20r%3D%2240%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20fill%3D%22white%22%2F%3E%0A%20%20%3Ctext%20x%3D%22700%22%20y%3D%22250%22%20font-family%3D%22Arial%22%20font-size%3D%2230%22%20fill%3D%22black%22%20text-anchor%3D%22middle%22%20dominant-baseline%3D%22middle%22%3E%7By%3A.1f%7D%3C%2Ftext%3E%0A%20%20%3Ctext%20x%3D%22700%22%20y%3D%22320%22%20font-family%3D%22Arial%22%20font-size%3D%2230%22%20fill%3D%22black%22%20text-anchor%3D%22middle%22%3EOutput%3C%2Ftext%3E%0A%0A%20%20%3C!--%20Edges%20from%20input%20to%20hidden%20layer%20--%3E%0A%20%20%3Cline%20x1%3D%22140%22%20y1%3D%22250%22%20x2%3D%22360%22%20y2%3D%22100%22%20stroke%3D%22black%22%20stroke-width%3D%22%7Bw1_thickness%7D%22%2F%3E%0A%20%20%3Cline%20x1%3D%22140%22%20y1%3D%22250%22%20x2%3D%22360%22%20y2%3D%22250%22%20stroke%3D%22black%22%20stroke-width%3D%22%7Bw2_thickness%7D%22%2F%3E%0A%20%20%3Cline%20x1%3D%22140%22%20y1%3D%22250%22%20x2%3D%22360%22%20y2%3D%22400%22%20stroke%3D%22black%22%20stroke-width%3D%22%7Bw3_thickness%7D%22%2F%3E%0A%0A%20%20%3C!--%20Edges%20from%20hidden%20layer%20to%20output%20--%3E%0A%20%20%3Cline%20x1%3D%22440%22%20y1%3D%22100%22%20x2%3D%22660%22%20y2%3D%22250%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%2F%3E%0A%20%20%3Cline%20x1%3D%22440%22%20y1%3D%22250%22%20x2%3D%22660%22%20y2%3D%22250%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%2F%3E%0A%20%20%3Cline%20x1%3D%22440%22%20y1%3D%22400%22%20x2%3D%22660%22%20y2%3D%22250%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%2F%3E%0A%0A%3C%2Fsvg%3E%0A%3C%2Fcenter%3E%0A%0A%22%22%22
string_sliders%20%3D%20f%22%22%22%0A%20%20%20%20%3Cdiv%20style%3D%22display%3A%20flex%3B%20justify-content%3A%20space-between%3B%20align-items%3A%20center%3B%22%3E%0A%0A%20%20%20%20%20%20%3Cdiv%20style%3D%22flex%3A%201%3B%20margin-right%3A%2010px%3B%20padding%3A%2010px%3B%20border%3A%201px%20solid%20%23ccc%3B%20border-radius%3A%208px%3B%20display%3A%20flex%3B%20flex-direction%3A%20column%3B%20align-items%3A%20center%3B%22%3E%0A%20%20%20%20%20%20%20%20%3Ch3%20style%3D%22margin%3A%205px%200%3B%20color%3A%20%7Bn1_color_hex_dark%7D%22%3ENode%201%3C%2Fh3%3E%0A%20%20%20%20%20%20%20%20%3Cp%20style%3D%22margin%3A%200%3B%22%3E%7Bw1%7D%3C%2Fp%3E%0A%20%20%20%20%20%20%20%20%3Cp%20style%3D%22margin%3A%200%3B%22%3E%7Bb1%7D%3C%2Fp%3E%0A%20%20%20%20%20%20%3C%2Fdiv%3E%0A%0A%20%20%20%20%20%20%3Cdiv%20style%3D%22flex%3A%201%3B%20margin-right%3A%2010px%3B%20padding%3A%2010px%3B%20border%3A%201px%20solid%20%23ccc%3B%20border-radius%3A%208px%3B%20display%3A%20flex%3B%20flex-direction%3A%20column%3B%20align-items%3A%20center%3B%22%3E%0A%20%20%20%20%20%20%20%20%3Ch3%20style%3D%22margin%3A%205px%200%3B%20color%3A%20%7Bn2_color_hex_dark%7D%22%3ENode%202%3C%2Fh3%3E%0A%20%20%20%20%20%20%20%20%3Cp%20style%3D%22margin%3A%200%3B%22%3E%7Bw2%7D%3C%2Fp%3E%0A%20%20%20%20%20%20%20%20%3Cp%20style%3D%22margin%3A%200%3B%22%3E%7Bb2%7D%3C%2Fp%3E%0A%20%20%20%20%20%20%3C%2Fdiv%3E%0A%0A%20%20%20%20%20%20%3Cdiv%20style%3D%22flex%3A%201%3B%20margin-right%3A%2010px%3B%20padding%3A%2010px%3B%20border%3A%201px%20solid%20%23ccc%3B%20border-radius%3A%208px%3B%20display%3A%20flex%3B%20flex-direction%3A%20column%3B%20align-items%3A%20center%3B%22%3E%0A%20%20%20%20%20%20%20%20%3Ch3%20style%3D%22margin%3A%205px%200%3B%20color%3A%20%7Bn3_color_hex_dark%7D%22%3ENode%203%3C%2Fh3%3E%0A%20%20%20%20%20%20%20%20%3Cp%20style%3D%22margin%3A%200%3B%22%3E%7Bw3%7D%3C%2Fp%3E%0A%20%20%20%20%20%20%20%20%3Cp%20style%3D%22margin%3A%200%3B%22%3E%7Bb3%7D%3C%2Fp%3E%0A%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%3C%2Fdiv%3E%0A%0A%20%20%20%20%3Ccenter%3E%0A%20%20%20%20%20%20%20%20%20%20%3Cdiv%20style%3D%22flex%3A%200%3B%20margin-right%3A%2010px%3B%20padding%3A%2010px%3B%20border%3A%201px%20solid%20%23ccc%3B%20border-radius%3A%208px%3B%20display%3A%20inline-block%3B%20text-align%3A%20center%3B%22%3E%0A%0A%0A%20%20%20%20%20%20%20%20%3Ch3%20style%3D%22margin%3A%205px%200%3B%22%3EOutput%20node%3C%2Fh3%3E%0A%20%20%20%20%20%20%20%20%3Cp%20style%3D%22margin%3A%200%3B%22%3E%7BB%7D%3C%2Fp%3E%0A%20%20%20%20%20%20%3C%2Fdiv%3E%0A%0A%20%20%20%20%3C%2Fcenter%3E%0A%20%20%20%20%22%22%22