<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Bachelor — Masoud Hosseini</title>
    <link>https://masoud.me/bachelor</link>
    <description>Study log entries and ideas from a self-designed 36-course bachelor.</description>
    <language>en</language>
    <lastBuildDate>Tue, 15 Sep 2026 00:00:00 GMT</lastBuildDate>
    <atom:link href="https://masoud.me/bachelor/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Day one — building micrograd from scratch — Neural Networks: Zero to Hero</title>
      <link>https://masoud.me/bachelor/log#2026-09-15-c01-micrograd-from-scratch</link>
      <guid isPermaLink="false">masoud.me:bachelor:log:2026-09-15-c01-micrograd-from-scratch</guid>
      <pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate>
      <category>AI</category>
      <description><![CDATA[<p><em>Study log · Neural Networks: Zero to Hero · 2.5 h</em></p>
<h2>What I did</h2>
<p>Watched the first lecture of Neural Networks: Zero to Hero and rebuilt <a href="https://github.com/karpathy/micrograd" target="_blank" rel="noopener noreferrer">micrograd</a> alongside it: a <code>Value</code> class that records the operations applied to it, a topological sort, and a <code>backward()</code> pass that fills in gradients.</p>
<h2>What I learned</h2>
<ul><li>Backpropagation is just the chain rule applied recursively over a DAG, in reverse topological order.</li><li>Gradients must <strong>accumulate</strong> (<code>+=</code>), not overwrite. A node used twice gets a contribution from each path.</li><li>A neuron is <code>tanh(w · x + b)</code>; an MLP is layers of those. Everything else is bookkeeping.</li></ul>
<h2>Open questions</h2>
<ul><li>How do real frameworks avoid building a Python object per scalar?</li><li>Why does <code>tanh</code> fall out of favour against ReLU in deeper networks?</li></ul>]]></description>
    </item>
    <item>
      <title>Idea: An interactive backprop explorer</title>
      <link>https://masoud.me/bachelor/ideas#2026-09-15-backprop-explorer</link>
      <guid isPermaLink="false">masoud.me:bachelor:idea:2026-09-15-backprop-explorer</guid>
      <pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate>
      <category>Idea</category>
      <description><![CDATA[<p><em>Idea · Seed</em></p>
<p>Writing micrograd made backprop click in a way diagrams never did. What if the browser showed it live? Type a small expression, see the computation graph, then step through the backward pass one node at a time, with each local gradient and the accumulated gradient shown side by side.</p>
<p>Next steps:</p>
<ol><li>Sketch the graph layout for expressions with shared nodes.</li><li>Reuse the micrograd <code>Value</code> design in a few hundred lines of JavaScript.</li><li>Test it on one friend who has never seen the chain rule.</li></ol>]]></description>
    </item>
  </channel>
</rss>
