<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>hans</name>
  </author>
  <generator uri="https://hexo.io/">Hexo</generator>
  <id>https://glow-blog-3in.pages.dev/</id>
  <link href="https://glow-blog-3in.pages.dev/" rel="alternate"/>
  <link href="https://glow-blog-3in.pages.dev/atom.xml" rel="self"/>
  <rights>All rights reserved 2026, hans</rights>
  <subtitle>Never forget nor regret.⭐</subtitle>
  <title>glow</title>
  <updated>2026-05-01T02:00:00.000Z</updated>
  <entry>
    <author>
      <name>hans</name>
    </author>
    <category term="🍡 生活随笔" scheme="https://glow-blog-3in.pages.dev/categories/life-essays/"/>
    <category term="博客" scheme="https://glow-blog-3in.pages.dev/tags/%E5%8D%9A%E5%AE%A2/"/>
    <category term="生活" scheme="https://glow-blog-3in.pages.dev/tags/%E7%94%9F%E6%B4%BB/"/>
    <content>
      <![CDATA[<h1 id="你好，世界！"><a href="#你好，世界！" class="headerlink" title="你好，世界！"></a>你好，世界！</h1><p>欢迎来到我的博客！这里是我记录技术学习、生活思考的地方。</p><span id="more"></span><h2 id="为什么要建博客？"><a href="#为什么要建博客？" class="headerlink" title="为什么要建博客？"></a>为什么要建博客？</h2><blockquote><p>写作是最好的学习方式。</p></blockquote><p>建博客的初衷很简单——想有一个地方能够：</p><ol><li><strong>记录学习过程</strong>：把学到的东西用自己的语言整理出来，加深理解</li><li><strong>分享知识</strong>：如果我的笔记能帮助到别人，那再好不过了</li><li><strong>建立个人知识库</strong>：随时回顾，随时查阅</li></ol><h2 id="技术栈"><a href="#技术栈" class="headerlink" title="技术栈"></a>技术栈</h2><p>这个博客基于 <strong>Hexo</strong> 构建，使用 <strong>Butterfly</strong> 主题，部署在 GitHub Pages 上。</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 本地预览</span></span><br><span class="line">hexo server</span><br><span class="line"></span><br><span class="line"><span class="comment"># 生成静态文件</span></span><br><span class="line">hexo generate</span><br><span class="line"></span><br><span class="line"><span class="comment"># 部署</span></span><br><span class="line">hexo deploy</span><br></pre></td></tr></table></figure><h2 id="接下来"><a href="#接下来" class="headerlink" title="接下来"></a>接下来</h2><p>我会在这里分享：</p><ul><li>🤖 AI &#x2F; 机器学习笔记</li><li>📊 算法与数据结构</li><li>💡 编程技巧与心得</li><li>📖 读书笔记</li></ul><p>希望这里能成为你喜欢的技术角落！</p><hr><p><em>Never forget nor regret. ⭐</em></p>]]>
    </content>
    <id>https://glow-blog-3in.pages.dev/2026/05/01/hello-world/</id>
    <link href="https://glow-blog-3in.pages.dev/2026/05/01/hello-world/"/>
    <published>2026-05-01T02:00:00.000Z</published>
    <summary>第一篇博客文章，记录建站的故事。</summary>
    <title>Hello World - 博客开张了！🎉</title>
    <updated>2026-05-01T02:00:00.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>hans</name>
    </author>
    <category term="🤖 AI 笔记" scheme="https://glow-blog-3in.pages.dev/categories/%F0%9F%A4%96-AI-%E7%AC%94%E8%AE%B0/"/>
    <category term="深度学习" scheme="https://glow-blog-3in.pages.dev/tags/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/"/>
    <category term="AI" scheme="https://glow-blog-3in.pages.dev/tags/AI/"/>
    <category term="Python" scheme="https://glow-blog-3in.pages.dev/tags/Python/"/>
    <content>
      <![CDATA[<h1 id="深度学习基础：感知机与神经网络"><a href="#深度学习基础：感知机与神经网络" class="headerlink" title="深度学习基础：感知机与神经网络"></a>深度学习基础：感知机与神经网络</h1><blockquote><p>本文是深度学习系列笔记的第一篇，涵盖感知机模型、激活函数与反向传播算法。</p></blockquote><span id="more"></span><h2 id="1-感知机（Perceptron）"><a href="#1-感知机（Perceptron）" class="headerlink" title="1. 感知机（Perceptron）"></a>1. 感知机（Perceptron）</h2><p>感知机是最简单的神经元模型，由 Rosenblatt 在 1958 年提出。</p><p>给定输入向量 $\mathbf{x} &#x3D; (x_1, x_2, \ldots, x_n)$ 和权重向量 $\mathbf{w}$，感知机输出：</p><p>$$y &#x3D; f\left(\sum_{i&#x3D;1}^n w_i x_i + b\right)$$</p><p>其中 $f$ 是激活函数，$b$ 是偏置项。</p><h2 id="2-常见激活函数"><a href="#2-常见激活函数" class="headerlink" title="2. 常见激活函数"></a>2. 常见激活函数</h2><table><thead><tr><th>函数</th><th>公式</th><th>特点</th></tr></thead><tbody><tr><td>Sigmoid</td><td>$\sigma(x) &#x3D; \frac{1}{1+e^{-x}}$</td><td>输出范围 (0,1)，梯度消失</td></tr><tr><td>ReLU</td><td>$f(x) &#x3D; \max(0, x)$</td><td>计算高效，不饱和</td></tr><tr><td>Tanh</td><td>$f(x) &#x3D; \tanh(x)$</td><td>输出范围 (-1,1)</td></tr></tbody></table><h2 id="3-多层感知机（MLP）"><a href="#3-多层感知机（MLP）" class="headerlink" title="3. 多层感知机（MLP）"></a>3. 多层感知机（MLP）</h2><p>多层感知机由输入层、若干隐藏层和输出层组成：</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> torch</span><br><span class="line"><span class="keyword">import</span> torch.nn <span class="keyword">as</span> nn</span><br><span class="line"></span><br><span class="line"><span class="keyword">class</span> <span class="title class_">MLP</span>(nn.Module):</span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">__init__</span>(<span class="params">self, input_dim, hidden_dim, output_dim</span>):</span><br><span class="line">        <span class="built_in">super</span>().__init__()</span><br><span class="line">        <span class="variable language_">self</span>.layers = nn.Sequential(</span><br><span class="line">            nn.Linear(input_dim, hidden_dim),</span><br><span class="line">            nn.ReLU(),</span><br><span class="line">            nn.Linear(hidden_dim, hidden_dim),</span><br><span class="line">            nn.ReLU(),</span><br><span class="line">            nn.Linear(hidden_dim, output_dim)</span><br><span class="line">        )</span><br><span class="line">    </span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">forward</span>(<span class="params">self, x</span>):</span><br><span class="line">        <span class="keyword">return</span> <span class="variable language_">self</span>.layers(x)</span><br></pre></td></tr></table></figure><h2 id="4-反向传播算法"><a href="#4-反向传播算法" class="headerlink" title="4. 反向传播算法"></a>4. 反向传播算法</h2><p>反向传播（Backpropagation）利用链式法则计算梯度：</p><p>$$\frac{\partial L}{\partial w_i} &#x3D; \frac{\partial L}{\partial y} \cdot \frac{\partial y}{\partial w_i}$$</p><h2 id="小结"><a href="#小结" class="headerlink" title="小结"></a>小结</h2><ul><li>感知机是神经网络的基础单元</li><li>激活函数引入非线性，使网络能拟合复杂函数</li><li>反向传播是训练神经网络的核心算法</li></ul><p>下一篇：<strong>卷积神经网络（CNN）原理</strong></p><hr><p><em>参考资料：《深度学习》- Goodfellow et al.</em></p>]]>
    </content>
    <id>https://glow-blog-3in.pages.dev/2026/04/20/deep-learning-notes/</id>
    <link href="https://glow-blog-3in.pages.dev/2026/04/20/deep-learning-notes/"/>
    <published>2026-04-20T06:30:00.000Z</published>
    <summary>深度学习的基础概念梳理，从感知机、激活函数到反向传播算法。</summary>
    <title>深度学习入门笔记：从感知机到神经网络</title>
    <updated>2026-04-20T06:30:00.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>hans</name>
    </author>
    <category term="🏆 竞赛笔记" scheme="https://glow-blog-3in.pages.dev/categories/%F0%9F%8F%86-%E7%AB%9E%E8%B5%9B%E7%AC%94%E8%AE%B0/"/>
    <category term="算法" scheme="https://glow-blog-3in.pages.dev/tags/%E7%AE%97%E6%B3%95/"/>
    <category term="竞赛" scheme="https://glow-blog-3in.pages.dev/tags/%E7%AB%9E%E8%B5%9B/"/>
    <category term="C++" scheme="https://glow-blog-3in.pages.dev/tags/C/"/>
    <content>
      <![CDATA[<h1 id="算法竞赛模板整理"><a href="#算法竞赛模板整理" class="headerlink" title="算法竞赛模板整理"></a>算法竞赛模板整理</h1><blockquote><p>整理了竞赛中常用的算法模板，方便快速查阅。</p></blockquote><span id="more"></span><h2 id="排序算法"><a href="#排序算法" class="headerlink" title="排序算法"></a>排序算法</h2><h3 id="快速排序"><a href="#快速排序" class="headerlink" title="快速排序"></a>快速排序</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="type">void</span> <span class="title">quickSort</span><span class="params">(vector&lt;<span class="type">int</span>&gt;&amp; arr, <span class="type">int</span> l, <span class="type">int</span> r)</span> </span>&#123;</span><br><span class="line">    <span class="keyword">if</span> (l &gt;= r) <span class="keyword">return</span>;</span><br><span class="line">    <span class="type">int</span> pivot = arr[(l + r) / <span class="number">2</span>];</span><br><span class="line">    <span class="type">int</span> i = l - <span class="number">1</span>, j = r + <span class="number">1</span>;</span><br><span class="line">    <span class="keyword">while</span> (i &lt; j) &#123;</span><br><span class="line">        <span class="keyword">do</span> i++; <span class="keyword">while</span> (arr[i] &lt; pivot);</span><br><span class="line">        <span class="keyword">do</span> j--; <span class="keyword">while</span> (arr[j] &gt; pivot);</span><br><span class="line">        <span class="keyword">if</span> (i &lt; j) <span class="built_in">swap</span>(arr[i], arr[j]);</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="built_in">quickSort</span>(arr, l, j);</span><br><span class="line">    <span class="built_in">quickSort</span>(arr, j + <span class="number">1</span>, r);</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="图论"><a href="#图论" class="headerlink" title="图论"></a>图论</h2><h3 id="最短路（Dijkstra）"><a href="#最短路（Dijkstra）" class="headerlink" title="最短路（Dijkstra）"></a>最短路（Dijkstra）</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line"><span class="function">vector&lt;<span class="type">int</span>&gt; <span class="title">dijkstra</span><span class="params">(<span class="type">int</span> src, vector&lt;vector&lt;pair&lt;<span class="type">int</span>,<span class="type">int</span>&gt;&gt;&gt;&amp; adj, <span class="type">int</span> n)</span> </span>&#123;</span><br><span class="line">    <span class="function">vector&lt;<span class="type">int</span>&gt; <span class="title">dist</span><span class="params">(n, INT_MAX)</span></span>;</span><br><span class="line">    priority_queue&lt;pair&lt;<span class="type">int</span>,<span class="type">int</span>&gt;, vector&lt;pair&lt;<span class="type">int</span>,<span class="type">int</span>&gt;&gt;, greater&lt;&gt;&gt; pq;</span><br><span class="line">    dist[src] = <span class="number">0</span>;</span><br><span class="line">    pq.<span class="built_in">push</span>(&#123;<span class="number">0</span>, src&#125;);</span><br><span class="line">    <span class="keyword">while</span> (!pq.<span class="built_in">empty</span>()) &#123;</span><br><span class="line">        <span class="keyword">auto</span> [d, u] = pq.<span class="built_in">top</span>(); pq.<span class="built_in">pop</span>();</span><br><span class="line">        <span class="keyword">if</span> (d &gt; dist[u]) <span class="keyword">continue</span>;</span><br><span class="line">        <span class="keyword">for</span> (<span class="keyword">auto</span> [v, w] : adj[u]) &#123;</span><br><span class="line">            <span class="keyword">if</span> (dist[u] + w &lt; dist[v]) &#123;</span><br><span class="line">                dist[v] = dist[u] + w;</span><br><span class="line">                pq.<span class="built_in">push</span>(&#123;dist[v], v&#125;);</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">return</span> dist;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="动态规划"><a href="#动态规划" class="headerlink" title="动态规划"></a>动态规划</h2><h3 id="最长公共子序列（LCS）"><a href="#最长公共子序列（LCS）" class="headerlink" title="最长公共子序列（LCS）"></a>最长公共子序列（LCS）</h3><figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="type">int</span> <span class="title">lcs</span><span class="params">(string&amp; a, string&amp; b)</span> </span>&#123;</span><br><span class="line">    <span class="type">int</span> m = a.<span class="built_in">size</span>(), n = b.<span class="built_in">size</span>();</span><br><span class="line">    vector&lt;vector&lt;<span class="type">int</span>&gt;&gt; <span class="built_in">dp</span>(m<span class="number">+1</span>, <span class="built_in">vector</span>&lt;<span class="type">int</span>&gt;(n<span class="number">+1</span>, <span class="number">0</span>));</span><br><span class="line">    <span class="keyword">for</span> (<span class="type">int</span> i = <span class="number">1</span>; i &lt;= m; i++)</span><br><span class="line">        <span class="keyword">for</span> (<span class="type">int</span> j = <span class="number">1</span>; j &lt;= n; j++)</span><br><span class="line">            dp[i][j] = (a[i<span class="number">-1</span>] == b[j<span class="number">-1</span>]) ? dp[i<span class="number">-1</span>][j<span class="number">-1</span>] + <span class="number">1</span></span><br><span class="line">                                            : <span class="built_in">max</span>(dp[i<span class="number">-1</span>][j], dp[i][j<span class="number">-1</span>]);</span><br><span class="line">    <span class="keyword">return</span> dp[m][n];</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><hr><p><em>持续更新中… 🔄</em></p>]]>
    </content>
    <id>https://glow-blog-3in.pages.dev/2026/04/15/algorithm-templates/</id>
    <link href="https://glow-blog-3in.pages.dev/2026/04/15/algorithm-templates/"/>
    <published>2026-04-15T01:00:00.000Z</published>
    <summary>竞赛常用算法模板整理，包括排序、图论、动态规划等核心算法。</summary>
    <title>算法模板：常用数据结构与算法整理</title>
    <updated>2026-04-15T01:00:00.000Z</updated>
  </entry>
</feed>
