Current section
Files
Jump to
Current section
Files
guides/assets/layer-specific-mutation.svg
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 500">
<defs>
<linearGradient id="reservoirGrad" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:#4A90D9;stop-opacity:1" />
<stop offset="100%" style="stop-color:#357ABD;stop-opacity:1" />
</linearGradient>
<linearGradient id="readoutGrad" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:#5CB85C;stop-opacity:1" />
<stop offset="100%" style="stop-color:#449D44;stop-opacity:1" />
</linearGradient>
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
<polygon points="0 0, 10 3.5, 0 7" fill="#666"/>
</marker>
</defs>
<!-- Background -->
<rect width="800" height="500" fill="#f8f9fa"/>
<!-- Title -->
<text x="400" y="35" font-family="Arial, sans-serif" font-size="20" font-weight="bold" text-anchor="middle" fill="#333">Layer-Specific Mutation Rates</text>
<!-- Input Layer -->
<g transform="translate(80, 150)">
<text x="0" y="-20" font-family="Arial, sans-serif" font-size="14" font-weight="bold" fill="#666">Input</text>
<circle cx="0" cy="30" r="20" fill="#ddd" stroke="#999" stroke-width="2"/>
<circle cx="0" cy="90" r="20" fill="#ddd" stroke="#999" stroke-width="2"/>
<circle cx="0" cy="150" r="20" fill="#ddd" stroke="#999" stroke-width="2"/>
</g>
<!-- Reservoir (Hidden) Layer - Blue -->
<g transform="translate(250, 100)">
<rect x="-60" y="-40" width="120" height="280" rx="10" fill="url(#reservoirGrad)" opacity="0.15"/>
<text x="0" y="-50" font-family="Arial, sans-serif" font-size="14" font-weight="bold" text-anchor="middle" fill="#357ABD">Reservoir</text>
<text x="0" y="-35" font-family="Arial, sans-serif" font-size="11" text-anchor="middle" fill="#666">(Hidden Layers)</text>
<!-- Neurons -->
<circle cx="0" cy="0" r="22" fill="url(#reservoirGrad)" stroke="#2a5f8f" stroke-width="2"/>
<circle cx="0" cy="60" r="22" fill="url(#reservoirGrad)" stroke="#2a5f8f" stroke-width="2"/>
<circle cx="0" cy="120" r="22" fill="url(#reservoirGrad)" stroke="#2a5f8f" stroke-width="2"/>
<circle cx="0" cy="180" r="22" fill="url(#reservoirGrad)" stroke="#2a5f8f" stroke-width="2"/>
<!-- Mutation indicator -->
<text x="0" y="230" font-family="Arial, sans-serif" font-size="12" text-anchor="middle" fill="#357ABD">Low Mutation</text>
<text x="0" y="245" font-family="monospace" font-size="11" text-anchor="middle" fill="#555">rate: 0.05</text>
<text x="0" y="258" font-family="monospace" font-size="11" text-anchor="middle" fill="#555">strength: 0.2</text>
</g>
<!-- Readout (Output) Layer - Green -->
<g transform="translate(450, 120)">
<rect x="-60" y="-40" width="120" height="220" rx="10" fill="url(#readoutGrad)" opacity="0.15"/>
<text x="0" y="-50" font-family="Arial, sans-serif" font-size="14" font-weight="bold" text-anchor="middle" fill="#449D44">Readout</text>
<text x="0" y="-35" font-family="Arial, sans-serif" font-size="11" text-anchor="middle" fill="#666">(Output Layer)</text>
<!-- Neurons -->
<circle cx="0" cy="20" r="22" fill="url(#readoutGrad)" stroke="#3d8b3d" stroke-width="2"/>
<circle cx="0" cy="100" r="22" fill="url(#readoutGrad)" stroke="#3d8b3d" stroke-width="2"/>
<!-- Mutation indicator -->
<text x="0" y="170" font-family="Arial, sans-serif" font-size="12" text-anchor="middle" fill="#449D44">High Mutation</text>
<text x="0" y="185" font-family="monospace" font-size="11" text-anchor="middle" fill="#555">rate: 0.20</text>
<text x="0" y="198" font-family="monospace" font-size="11" text-anchor="middle" fill="#555">strength: 0.5</text>
</g>
<!-- Output -->
<g transform="translate(600, 170)">
<text x="0" y="-20" font-family="Arial, sans-serif" font-size="14" font-weight="bold" fill="#666">Output</text>
<circle cx="0" cy="30" r="20" fill="#f5f5f5" stroke="#999" stroke-width="2"/>
<circle cx="0" cy="90" r="20" fill="#f5f5f5" stroke="#999" stroke-width="2"/>
</g>
<!-- Connections: Input to Reservoir -->
<g stroke="#aaa" stroke-width="1.5" fill="none">
<line x1="100" y1="180" x2="228" y2="200"/>
<line x1="100" y1="180" x2="228" y2="260"/>
<line x1="100" y1="240" x2="228" y2="200"/>
<line x1="100" y1="240" x2="228" y2="260"/>
<line x1="100" y1="240" x2="228" y2="320"/>
<line x1="100" y1="300" x2="228" y2="260"/>
<line x1="100" y1="300" x2="228" y2="320"/>
<line x1="100" y1="300" x2="228" y2="380"/>
</g>
<!-- Connections: Reservoir to Readout -->
<g stroke="#357ABD" stroke-width="2" fill="none" opacity="0.6">
<line x1="272" y1="200" x2="428" y2="240"/>
<line x1="272" y1="200" x2="428" y2="320"/>
<line x1="272" y1="260" x2="428" y2="240"/>
<line x1="272" y1="260" x2="428" y2="320"/>
<line x1="272" y1="320" x2="428" y2="240"/>
<line x1="272" y1="320" x2="428" y2="320"/>
<line x1="272" y1="380" x2="428" y2="240"/>
<line x1="272" y1="380" x2="428" y2="320"/>
</g>
<!-- Connections: Readout to Output -->
<g stroke="#449D44" stroke-width="2" fill="none" opacity="0.6">
<line x1="472" y1="240" x2="580" y2="200"/>
<line x1="472" y1="240" x2="580" y2="260"/>
<line x1="472" y1="320" x2="580" y2="200"/>
<line x1="472" y1="320" x2="580" y2="260"/>
</g>
<!-- L0 Meta-Controller -->
<g transform="translate(700, 100)">
<rect x="-70" y="-30" width="140" height="120" rx="8" fill="#fff3cd" stroke="#ffc107" stroke-width="2"/>
<text x="0" y="-10" font-family="Arial, sans-serif" font-size="12" font-weight="bold" text-anchor="middle" fill="#856404">L0 Meta-Controller</text>
<text x="0" y="10" font-family="Arial, sans-serif" font-size="10" text-anchor="middle" fill="#666">Dynamically adjusts</text>
<text x="0" y="25" font-family="Arial, sans-serif" font-size="10" text-anchor="middle" fill="#666">mutation rates based</text>
<text x="0" y="40" font-family="Arial, sans-serif" font-size="10" text-anchor="middle" fill="#666">on training progress</text>
<!-- Arrows to layers -->
<line x1="-70" y1="60" x2="-120" y2="120" stroke="#ffc107" stroke-width="2" marker-end="url(#arrowhead)"/>
<line x1="-70" y1="60" x2="-180" y2="180" stroke="#ffc107" stroke-width="2" marker-end="url(#arrowhead)"/>
</g>
<!-- Legend -->
<g transform="translate(50, 420)">
<rect x="0" y="0" width="700" height="70" rx="5" fill="#fff" stroke="#ddd" stroke-width="1"/>
<text x="350" y="20" font-family="Arial, sans-serif" font-size="13" font-weight="bold" text-anchor="middle" fill="#333">Rationale</text>
<circle cx="30" cy="45" r="8" fill="url(#reservoirGrad)"/>
<text x="45" y="50" font-family="Arial, sans-serif" font-size="11" fill="#333">Reservoir: Low mutation preserves learned temporal dynamics</text>
<circle cx="400" cy="45" r="8" fill="url(#readoutGrad)"/>
<text x="415" y="50" font-family="Arial, sans-serif" font-size="11" fill="#333">Readout: High mutation enables rapid task adaptation</text>
</g>
</svg>