Files
org_backend/output/20250329121843-ise_week_2.html

750 lines
28 KiB
HTML
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2025-12-28 Sun 20:49 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>ise_week_2</title>
<meta name="generator" content="Org Mode" />
<style type="text/css">
#content { max-width: 60em; margin: auto; }
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
pre {
border: 1px solid #e6e6e6;
border-radius: 3px;
background-color: #f2f2f2;
padding: 8pt;
font-family: monospace;
overflow: auto;
margin: 1.2em;
}
pre.src {
position: relative;
overflow: auto;
}
pre.src:before {
display: none;
position: absolute;
top: -8px;
right: 12px;
padding: 3px;
color: #555;
background-color: #f2f2f299;
}
pre.src:hover:before { display: inline; margin-top: 14px;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-authinfo::before { content: 'Authinfo'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
.equation-container {
display: table;
text-align: center;
width: 100%;
}
.equation {
vertical-align: middle;
}
.equation-label {
display: table-cell;
text-align: right;
vertical-align: middle;
}
.inlinetask {
padding: 10px;
border: 2px solid gray;
margin: 10px;
background: #ffffcc;
}
#org-div-home-and-up
{ text-align: right; font-size: 70%; white-space: nowrap; }
textarea { overflow-x: auto; }
.linenr { font-size: smaller }
.code-highlighted { background-color: #ffff00; }
.org-info-js_info-navigation { border-style: none; }
#org-info-js_console-label
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { }
</style>
<link rel="stylesheet" href="/assets/styles/style.css" />
<link rel="stylesheet" href="/assets/styles/bigger-picture.min.css" />
<link rel="stylesheet" href="/assets/styles/media.css" />
<script src="/assets/scripts/script.js" defer></script>
<script src="/assets/scripts/search.js" defer></script>
<script src="/assets/scripts/bigger-picture.min.js" defer></script>
<script src="/assets/scripts/svg-pan-zoom.min.js" defer></script>
<script src="/assets/scripts/gallery-init.js" defer></script>
</head>
<body>
<div id="preamble" class="status">
<div class="banner-header">
<div class="banner-left">
<a href="/20241210233721-brain_moc.html"> <img src="/assets/gr.png" alt="Site Logo" class="banner-logo" /> </a>
<div id="updated">Updated: 2025-12-28 Sun 19:48</div>
</div>
<div class="banner-search">
<input id="search-box"
type="search"
placeholder="Search notes…"
aria-label="Search notes"
autocomplete="off" />
<div id="search-results"></div>
</div>
<button id="close-all">Close All</button>
</div>
</div>
<div id="stack-root">
<div class="stack-track">
<article class="stack-pane pane-root" data-url="/20250329121843-ise_week_2.html">
<div id="content" class="content">
<div class="title-section">
<div class="title-controls">
<button class="pane-fullscreen" aria-label="Fullscreen">F</button>
<button class="pane-edit" aria-label="Edit pane">E</button>
<button class="pane-close" aria-label="Close pane">×</button>
</div>
<h1 class="title">ise<sub>week</sub><sub>2</sub></h1>
<div class="title-metadata">
<span class="metadata-item">
<span class="metadata-label">planted:</span>
<span class="metadata-value">2025-03-29</span>
</span>
<span class="metadata-item">
<span class="metadata-label">last tended to:</span>
<span class="metadata-value">2025-12-28</span>
</span>
</div>
</div>
<div id="outline-container-orgac78bd8" class="outline-2">
<h2 id="orgac78bd8"><a href="#orgac78bd8"><span class="done DONE">DONE</span> Different Configuration Sampling Methods (pages 8-19)</a></h2>
</div>
<div id="outline-container-orgfc73a5c" class="outline-2">
<h2 id="orgfc73a5c"><a href="#orgfc73a5c"><span class="done DONE">DONE</span> Configuration Encodings (pages 21-28)</a></h2>
</div>
<div id="outline-container-org09131b6" class="outline-2">
<h2 id="org09131b6"><a href="#org09131b6"><span class="done DONE">DONE</span> Single Environment Learning (DaL) (pages 39-46)</a></h2>
</div>
<div id="outline-container-orgff77265" class="outline-2">
<h2 id="orgff77265"><a href="#orgff77265">2.1</a></h2>
<div class="outline-text-2" id="text-orgff77265">
</div>
<div id="outline-container-org210abb7" class="outline-3">
<h3 id="org210abb7"><a href="#org210abb7">Configuration Sampling</a></h3>
<div class="outline-text-3" id="text-org210abb7">
<p>
In general machine learning problem, we dont care where the data comes from , but here we do.
</p>
<p>
Configuration sampling is used to select representative samples for learning performance models.
</p>
<ul class="org-ul">
<li>Types of options:
<ul class="org-ul">
<li>Binary (e.g., on/off)</li>
<li>Numeric (e.g., value ranges)</li>
</ul></li>
<li>Goal: Balance model accuracy with sampling effort.</li>
</ul>
</div>
</div>
<div id="outline-container-org34412d1" class="outline-3">
<h3 id="org34412d1"><a href="#org34412d1">Binary Sampling Strategies</a></h3>
<div class="outline-text-3" id="text-org34412d1">
</div>
<div id="outline-container-org0bf1908" class="outline-4">
<h4 id="org0bf1908"><a href="#org0bf1908">Option-wise Strategy</a></h4>
<div class="outline-text-4" id="text-org0bf1908">
<ul class="org-ul">
<li>Each binary option is selected at least once in some configuration.</li>
<li>Minimize other options to reduce unknown interaction effects.</li>
<li>Size: Linear in the number of binary options.</li>
</ul>
</div>
</div>
<div id="outline-container-org60c6569" class="outline-4">
<h4 id="org60c6569"><a href="#org60c6569">T-wise Strategy</a></h4>
<div class="outline-text-4" id="text-org60c6569">
<ul class="org-ul">
<li>Covers all T-wise combinations of options (T ≥ 2).</li>
<li>Example (2-wise): {001}, {010}, {100}, {111}</li>
<li>Size: Exponential in T.</li>
</ul>
</div>
</div>
<div id="outline-container-org80959ab" class="outline-4">
<h4 id="org80959ab"><a href="#org80959ab">Negative Option-wise Strategy</a></h4>
<div class="outline-text-4" id="text-org80959ab">
<ul class="org-ul">
<li>For each option: one configuration where it is disabled, all others enabled.</li>
<li>Adds one all-yes configuration.</li>
<li>Size: Linear.</li>
<li>Example (3 options): {110}, {101}, {011}, {111}</li>
<li>you can see the 4th one is an all-yes configuration</li>
</ul>
</div>
</div>
<div id="outline-container-orgf8338c9" class="outline-4">
<h4 id="orgf8338c9"><a href="#orgf8338c9">Random (Binary)</a></h4>
<div class="outline-text-4" id="text-orgf8338c9">
<ul class="org-ul">
<li>Select n configurations randomly.</li>
<li>Simple but may be less representative.</li>
</ul>
</div>
</div>
<div id="outline-container-org132588a" class="outline-4">
<h4 id="org132588a"><a href="#org132588a">Difference Between Option-wise and Negative Option-wise Strategies</a></h4>
<div class="outline-text-4" id="text-org132588a">
<p>
Both strategies are used for sampling configurations in systems with binary options, but they focus on different aspects of option selection.
</p>
</div>
<ul class="org-ul">
<li><a id="org78494e1"></a><a href="#org78494e1">Option-wise Strategy</a><br />
<div class="outline-text-5" id="text-org78494e1">
<ul class="org-ul">
<li><b><b>Goal:</b></b> Ensure each option is enabled (selected) at least once across configurations.</li>
<li>For every binary option, create a configuration where it is <b><b>on</b></b>.</li>
<li>Other options are minimized to avoid unknown interactions.</li>
<li><b><b>Focus:</b></b> Testing the <b><b>presence</b></b> of each option.</li>
<li><b><b>Example (3 options):</b></b>
<ul class="org-ul">
<li>{100} → Option 1 enabled, others off</li>
<li>{010} → Option 2 enabled, others off</li>
<li>{001} → Option 3 enabled, others off</li>
</ul></li>
</ul>
</div>
</li>
<li><a id="orga8add10"></a><a href="#orga8add10">Negative Option-wise Strategy</a><br />
<div class="outline-text-5" id="text-orga8add10">
<ul class="org-ul">
<li><b><b>Goal:</b></b> Ensure each option is disabled (deselected) at least once.</li>
<li>For each option, create a configuration where it is <b><b>off</b></b>, and <b><b>all others are on</b></b>.</li>
<li>Also includes a configuration where all options are <b><b>on</b></b>.</li>
<li><b><b>Focus:</b></b> Testing the <b><b>absence</b></b> of each option.</li>
<li><b><b>Example (3 options):</b></b>
<ul class="org-ul">
<li>{110} → Option 3 disabled</li>
<li>{101} → Option 2 disabled</li>
<li>{011} → Option 1 disabled</li>
<li>{111} → All options enabled</li>
</ul></li>
</ul>
</div>
</li>
<li><a id="org4e8e372"></a><a href="#org4e8e372">Comparison Summary</a><br />
<div class="outline-text-5" id="text-org4e8e372">
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Feature</th>
<th scope="col" class="org-left">Option-wise</th>
<th scope="col" class="org-left">Negative Option-wise</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Focus</td>
<td class="org-left">Presence of each option</td>
<td class="org-left">Absence of each option</td>
</tr>
<tr>
<td class="org-left">What is varied</td>
<td class="org-left">Each option enabled once</td>
<td class="org-left">Each option disabled once</td>
</tr>
<tr>
<td class="org-left">Other options in config</td>
<td class="org-left">Typically disabled</td>
<td class="org-left">Typically enabled</td>
</tr>
<tr>
<td class="org-left">Additional config?</td>
<td class="org-left">Not required</td>
<td class="org-left">Yes, includes all-on config</td>
</tr>
<tr>
<td class="org-left">Use case</td>
<td class="org-left">Minimal presence testing</td>
<td class="org-left">Influence of removing options</td>
</tr>
</tbody>
</table>
</div>
</li>
</ul>
</div>
</div>
<div id="outline-container-org8304e90" class="outline-3">
<h3 id="org8304e90"><a href="#org8304e90">Non-Binary (Numeric) Sampling Strategies</a></h3>
<div class="outline-text-3" id="text-org8304e90">
</div>
<div id="outline-container-org13877de" class="outline-4">
<h4 id="org13877de"><a href="#org13877de">One-Factor-At-A-Time (OFAT)</a></h4>
<div class="outline-text-4" id="text-org13877de">
<ul class="org-ul">
<li>Assumes no interactions among options.</li>
<li>Varies one option at a time, others fixed at center values.</li>
<li>Size: Linear in number of options.</li>
<li>Example (values = 1,3,5): {333}, {533}, {133}, {353}, {313}, {331}, {335}</li>
</ul>
</div>
</div>
<div id="outline-container-org3df11fe" class="outline-4">
<h4 id="org3df11fe"><a href="#org3df11fe">Box-Behnken Design (BBD)</a></h4>
<div class="outline-text-4" id="text-org3df11fe">
<ul class="org-ul">
<li>Captures quadratic effects and 2-wise interactions.</li>
<li>Uses subset of 3<sup>k</sup> full factorial (min, center, max).</li>
<li>Size: Exponential in number of options.</li>
<li>Example: {111}, {113}, {115}, {131}, {151}, etc.</li>
</ul>
</div>
</div>
<div id="outline-container-orgf54868e" class="outline-4">
<h4 id="orgf54868e"><a href="#orgf54868e">Central Composite Design (CCD)</a></h4>
<div class="outline-text-4" id="text-orgf54868e">
<ul class="org-ul">
<li>Combines:
<ul class="org-ul">
<li>2<sup>k</sup> factorial points</li>
<li>2k axial points at α-distance</li>
<li>1 center point</li>
</ul></li>
<li>Captures curvature and interactions.</li>
<li>Example: 8 full factorial + 6 axial + {333}</li>
</ul>
</div>
</div>
<div id="outline-container-org955eacd" class="outline-4">
<h4 id="org955eacd"><a href="#org955eacd">Plackett-Burman Design (PBD)</a></h4>
<div class="outline-text-4" id="text-org955eacd">
<ul class="org-ul">
<li>Focus on main effects, assumes negligible interactions.</li>
<li>Uses predefined seeds, e.g., PBD(9,3)</li>
<li>First config from seed, rest by right-shifting seed.</li>
<li>Uses indices only for values.</li>
<li>Example: If O = {1,100,1000,10000,100000}, index 3 could mean 1, 1000, 100000</li>
</ul>
</div>
</div>
<div id="outline-container-orge585105" class="outline-4">
<h4 id="orge585105"><a href="#orge585105">Random (Non-Binary)</a></h4>
<div class="outline-text-4" id="text-orge585105">
<ul class="org-ul">
<li>Random selection of numeric configurations.</li>
<li>Risk of non-uniformity and clustering.</li>
<li>Can negatively impact learning performance.</li>
</ul>
</div>
</div>
</div>
<div id="outline-container-org524185d" class="outline-3">
<h3 id="org524185d"><a href="#org524185d">Mixed Variable Sampling</a></h3>
<div class="outline-text-3" id="text-org524185d">
<p>
Some systems include both binary and non-binary (numeric) configuration options.
These are referred to as <b><b>mixed systems</b></b>.
</p>
<ul class="org-ul">
<li>Requires hybrid or combined strategies to ensure representative coverage.</li>
<li>One approach: <b><b>Permute over the mixed space</b></b> by combining possible binary and numeric value combinations.</li>
<li>This can grow combinatorially, so sampling techniques may be needed to reduce the total number of permutations.</li>
</ul>
</div>
<div id="outline-container-org66a3a49" class="outline-4">
<h4 id="org66a3a49"><a href="#org66a3a49">Example</a></h4>
<div class="outline-text-4" id="text-org66a3a49">
<ul class="org-ul">
<li>Non-binary configs: {0.1, 0.4, 5}, {0.2, 0.4, 7}, {0.2, 0.7, 5}</li>
<li>Binary configs: {1,0}, {1,1}</li>
<li>Full mixed permutations:
<ul class="org-ul">
<li>{0.1, 0.4, 5, 1, 0}</li>
<li>{0.1, 0.4, 5, 1, 1}</li>
<li>{0.2, 0.4, 7, 1, 0}</li>
<li>{0.2, 0.4, 7, 1, 1}</li>
<li>{0.2, 0.7, 5, 1, 0}</li>
<li>{0.2, 0.7, 5, 1, 1}</li>
</ul></li>
</ul>
</div>
</div>
</div>
</div>
<div id="outline-container-org371117a" class="outline-2">
<h2 id="org371117a"><a href="#org371117a">2.2</a></h2>
<div class="outline-text-2" id="text-org371117a">
</div>
<div id="outline-container-orgbdd8e35" class="outline-3">
<h3 id="orgbdd8e35"><a href="#orgbdd8e35">Single Environment Learning: DeepPerf</a></h3>
<div class="outline-text-3" id="text-orgbdd8e35">
<p>
Source: Ha &amp; Zhang, ICSE 2019
</p>
<p>
DeepPerf is an early approach using deep neural networks (&gt;3 layers) to predict software performance in configurable systems.
</p>
<ul class="org-ul">
<li>Designed to address:
<ul class="org-ul">
<li>Small data size: Limited measurements available.</li>
<li>Feature sparsity: Only a few configuration options significantly impact performance.</li>
<li>Network instability: Tackled with tailored hyperparameter tuning.</li>
</ul></li>
</ul>
</div>
</div>
<div id="outline-container-orgace2d30" class="outline-3">
<h3 id="orgace2d30"><a href="#orgace2d30">Limitation of DeepPerf</a></h3>
<div class="outline-text-3" id="text-orgace2d30">
<ul class="org-ul">
<li>Does not handle sample sparsity, a major issue in configuration performance prediction.</li>
</ul>
</div>
</div>
<div id="outline-container-org0a0ec40" class="outline-3">
<h3 id="org0a0ec40"><a href="#org0a0ec40">Improved Approach: Divide-and-Learn (DaL)</a></h3>
<div class="outline-text-3" id="text-org0a0ec40">
<p>
Source: Gong &amp; Chen, ESEC/FSE 2023
</p>
</div>
<div id="outline-container-org212aebe" class="outline-4">
<h4 id="org212aebe"><a href="#org212aebe">Key Problem: Sample Sparsity</a></h4>
<div class="outline-text-4" id="text-org212aebe">
<ul class="org-ul">
<li>Caused by:
<ul class="org-ul">
<li>Inherited feature sparsity.</li>
<li>Small configuration changes leading to drastic performance shifts.</li>
<li>Not all configurations being valid.</li>
</ul></li>
<li>Training data is sparse due to expensive measurements.</li>
</ul>
</div>
</div>
<div id="outline-container-org6be0e50" class="outline-4">
<h4 id="org6be0e50"><a href="#org6be0e50">Key Properties of Configuration Landscape</a></h4>
<div class="outline-text-4" id="text-org6be0e50">
<ol class="org-ol">
<li>Intra-division smoothness: Configurations in the same division show smooth performance variations.</li>
<li>Inter-division sharpness: Cross-division configurations differ significantly, possibly on key options.</li>
</ol>
<p>
Risk: Limited data might lead to overfitting within divisions.
</p>
</div>
</div>
<div id="outline-container-org6872259" class="outline-4">
<h4 id="org6872259"><a href="#org6872259">Architecture of DaL</a></h4>
<div class="outline-text-4" id="text-org6872259">
<p>
Three Goals:
</p>
<ol class="org-ol">
<li>Divide the configuration data into meaningful divisions → function ϕ</li>
<li>Learn a local model for each division → function μ</li>
<li>Assign new configurations to the correct local model → using ϕ and μ</li>
<li>Implementation:
<ul class="org-ul">
<li>CART (Decision Tree) is used for dividing.</li>
<li>DeepPerf models are trained within each division.</li>
<li>Random Forest is used for classifying unseen configurations into divisions.</li>
</ul></li>
</ol>
</div>
</div>
<div id="outline-container-org50a058d" class="outline-4">
<h4 id="org50a058d"><a href="#org50a058d">Trade-off: Number of Divisions</a></h4>
<div class="outline-text-4" id="text-org50a058d">
<ul class="org-ul">
<li>More divisions → better at tackling sparsity, but less data per model → risks underfitting.</li>
<li>Need to balance:
<ul class="org-ul">
<li>Generalizability vs.</li>
<li>Specialization</li>
</ul></li>
</ul>
</div>
</div>
<div id="outline-container-org5ca0e35" class="outline-4">
<h4 id="org5ca0e35"><a href="#org5ca0e35">Results</a></h4>
<div class="outline-text-4" id="text-org5ca0e35">
<ul class="org-ul">
<li>DaL outperforms or matches state-of-the-art in 33 out of 40 cases.</li>
<li>Achieves up to 1.94× improvement.</li>
<li>Needs fewer training samples for same accuracy.</li>
<li>Especially beneficial in complex systems or with more training data.</li>
</ul>
</div>
</div>
</div>
</div>
<div id="outline-container-org92505b7" class="outline-2">
<h2 id="org92505b7"><a href="#org92505b7">2.3</a></h2>
<div class="outline-text-2" id="text-org92505b7">
</div>
<div id="outline-container-org7ae9d98" class="outline-3">
<h3 id="org7ae9d98"><a href="#org7ae9d98">Single Environment Learning: Encoding</a></h3>
<div class="outline-text-3" id="text-org7ae9d98">
<p>
Source: Gong &amp; Chen, MSR 2022
</p>
<p>
A study conducted by the lab investigates how different encoding schemes impact the software performance learning pipeline.
</p>
</div>
<div id="outline-container-org4923f2e" class="outline-4">
<h4 id="org4923f2e"><a href="#org4923f2e">Three Common Encoding Schemes</a></h4>
<div class="outline-text-4" id="text-org4923f2e">
<ul class="org-ul">
<li>Label encoding</li>
<li>Scaled label encoding (e.g., max-min normalization)</li>
<li>One-hot encoding</li>
</ul>
</div>
</div>
</div>
<div id="outline-container-org5143990" class="outline-3">
<h3 id="org5143990"><a href="#org5143990">Encoding Schemes Explained</a></h3>
<div class="outline-text-3" id="text-org5143990">
</div>
<div id="outline-container-org54b9c21" class="outline-4">
<h4 id="org54b9c21"><a href="#org54b9c21">Label Encoding</a></h4>
<div class="outline-text-4" id="text-org54b9c21">
<ul class="org-ul">
<li>Converts configuration options into numeric values.</li>
<li>Example:
<ul class="org-ul">
<li>Configuration: (cache<sub>size</sub>, interval, ssl, data<sub>strategy</sub>)</li>
<li>Values: cache<sub>size</sub> = (1, 10, 10000), interval = (14), ssl = (0, 1), data<sub>strategy</sub> = (strategy<sub>1</sub>, strategy<sub>2</sub>, strategy<sub>3</sub>)</li>
<li>Encoded: (10000, 2, 1, 1) → (2, 1, 1, 1) → data<sub>strategy</sub>: (0, 1, 2)</li>
</ul></li>
</ul>
</div>
</div>
<div id="outline-container-org11a624a" class="outline-4">
<h4 id="org11a624a"><a href="#org11a624a">Scaled Label Encoding</a></h4>
<div class="outline-text-4" id="text-org11a624a">
<ul class="org-ul">
<li>Similar to label encoding but normalizes all values to the range [0, 1].</li>
<li>Example (10000, 2, 1, 1) becomes (1, 1/3, 1, 0.5)</li>
</ul>
</div>
</div>
<div id="outline-container-org785447a" class="outline-4">
<h4 id="org785447a"><a href="#org785447a">One-Hot Encoding</a></h4>
<div class="outline-text-4" id="text-org785447a">
<ul class="org-ul">
<li>Transforms each categorical value into a binary vector.</li>
<li>Example: (10000, 2, 1, 1) becomes (0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0)</li>
</ul>
</div>
</div>
</div>
<div id="outline-container-orge613ed8" class="outline-3">
<h3 id="orge613ed8"><a href="#orge613ed8">Community Debate and Justifications</a></h3>
<div class="outline-text-3" id="text-orge613ed8">
<ul class="org-ul">
<li>Categorical features (e.g., cache<sub>mode</sub> = memory, disk, mixed):
<ul class="org-ul">
<li>Label encoding implies false ordering (1, 2, 3)</li>
<li>One-hot encoding avoids this but may introduce multicollinearity.</li>
</ul></li>
<li>Numeric options (e.g., cache<sub>size</sub> = 1, 10, 10000):
<ul class="org-ul">
<li>Label encoding maintains order but struggles with large scale differences.</li>
<li>Scaled label encoding improves numeric stability but weakens interaction with binary features.</li>
</ul></li>
</ul>
</div>
</div>
<div id="outline-container-org735fb45" class="outline-3">
<h3 id="org735fb45"><a href="#org735fb45">Study Protocol</a></h3>
<div class="outline-text-3" id="text-org735fb45">
<ul class="org-ul">
<li>Evaluated using 7 learning algorithms across 5 software systems.</li>
</ul>
<p class="backlinks-section" id="backlinks">
Backlinks
</p>
<ul class="org-ul backlinks-list">
<li><a href="20250329114733-ise.html#ID-c69e4c4d-2fb4-4cf1-a835-a235cf6db8e9">ise</a></li>
</ul>
</div>
</div>
</div>
</div>
</div></article></div></div>
<div id="postamble" class="status">
<footer>
<div class="copyright-container">
<div class="copyright">
Copyright &copy; 2022-2025 Zaine Qayyum. All rights reserved unless otherwise noted.</div></div>
<div class="generated">
Created with <a href="https://www.gnu.org/software/emacs/">Emacs</a> 30.2 (<a href="https://orgmode.org">Org</a> mode 9.7.11) on <a href="https://www.archlinux.org/">Arch</a> <a href="https://www.gnu.org">GNU</a>/<a href="https://www.kernel.org/">Linux</a>
</div>
</footer>
</div>
</body>
</html>