<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-CN"><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://chplus0.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://chplus0.github.io/" rel="alternate" type="text/html" hreflang="zh-CN" /><updated>2026-08-26T17:13:44+00:00</updated><id>https://chplus0.github.io/feed.xml</id><title type="html">Jialin Zhu</title><subtitle>朱佳林 · 上海科技大学计算机科学与技术 2025 级 · 研究兴趣：3D 视觉与 AI4Science
</subtitle><entry><title type="html">CS229 学习笔记：从线性回归到广义线性模型</title><link href="https://chplus0.github.io/blog/2026/cs229-linear-regression-glm/" rel="alternate" type="text/html" title="CS229 学习笔记：从线性回归到广义线性模型" /><published>2026-08-26T00:00:00+00:00</published><updated>2026-08-26T00:00:00+00:00</updated><id>https://chplus0.github.io/blog/2026/cs229-linear-regression-glm</id><content type="html" xml:base="https://chplus0.github.io/blog/2026/cs229-linear-regression-glm/"><![CDATA[<p>这篇是我自学 Stanford CS229 的第一篇笔记。目标不是”会用 sklearn”，而是能独立推导核心算法——只停留在调用层面的话，遇到问题连该查什么都说不清。</p>

<h2 id="损失函数与最大似然同一枚硬币">损失函数与最大似然：同一枚硬币</h2>

<p>线性回归里，我们最小化均方误差：</p>

\[J(\theta) = \frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^{(i)}) - y^{(i)})^2\]

<table>
  <tbody>
    <tr>
      <td>换一个视角：假设 $y^{(i)} = \theta^T x^{(i)} + \epsilon^{(i)}$，且 $\epsilon \sim \mathcal{N}(0, \sigma^2)$，那么给定 $x$ 时 $y$ 服从高斯分布。最大化似然 $\prod_i p(y^{(i)}</td>
      <td>x^{(i)};\theta)$ 取对数后，<strong>高斯分布的指数项恰好就是均方误差</strong>——二者只差一个与 $\theta$ 无关的常数项。</td>
    </tr>
  </tbody>
</table>

<blockquote>
  <p>记忆钩子：<strong>最小二乘 = 高斯噪声假设下的最大似然</strong>。换一种噪声分布（如拉普拉斯），你就得到了 L1 损失。</p>
</blockquote>

<h2 id="正规方程-vs-梯度下降">正规方程 vs 梯度下降</h2>

<ul>
  <li><strong>正规方程</strong>：直接解 $\theta = (X^TX)^{-1}X^Ty$。一步到位，但求逆是 $O(n^3)$，特征数大时不可行；$X^TX$ 奇异时还要正则化。</li>
  <li><strong>梯度下降</strong>：迭代逼近，$\theta := \theta - \alpha \nabla_\theta J(\theta)$。适合特征很多、样本流式到达的场景；要调学习率。</li>
</ul>

<p>我在笔记本上把正规方程从几何投影的角度推了一遍（最小二乘 = 把 $y$ 投影到 $X$ 的列空间），比死记公式稳得多。</p>

<h2 id="指数族与-glm统一视角">指数族与 GLM：统一视角</h2>

<p>伯努利分布、高斯分布、泊松分布……这些看似无关的分布，都可以写成指数族的一般形式：</p>

\[p(y;\eta) = b(y)\exp(\eta^T T(y) - a(\eta))\]

<p>于是「给定假设分布 → 推导出对应的模型」变成了一条流水线：</p>

<ol>
  <li>
    <table>
      <tbody>
        <tr>
          <td>假设 $y</td>
          <td>x$ 服从某个指数族分布</td>
        </tr>
      </tbody>
    </table>
  </li>
  <li>
    <table>
      <tbody>
        <tr>
          <td>取 $h_\theta(x) = E[y</td>
          <td>x;\theta]$</td>
        </tr>
      </tbody>
    </table>
  </li>
  <li>推导出 $h_\theta(x) = g(\theta^T x)$，其中 $g$ 是<strong>联系函数</strong></li>
</ol>

<p>线性回归（高斯 → 恒等联系）、逻辑回归（伯努利 → logistic 函数）、Softmax 回归（多项式分布）全部是这条流水线的特例。理解了这一步，就理解了为什么这些模型长得”刚好”是那个样子。</p>

<h2 id="下一步">下一步</h2>

<p>接着学习生成式学习（GDA、朴素贝叶斯）——判别式与生成式的区别，以及它们在什么场景下各有用武之地。</p>]]></content><author><name></name></author><category term="学习笔记" /><category term="机器学习" /><category term="自学" /><summary type="html"><![CDATA[为什么损失函数与最大似然是同一枚硬币；正规方程 vs 梯度下降；指数族与 GLM 的统一视角。]]></summary></entry><entry><title type="html">Transformer 初探：Q/K/V 到底在算什么</title><link href="https://chplus0.github.io/blog/2026/transformer-qkv/" rel="alternate" type="text/html" title="Transformer 初探：Q/K/V 到底在算什么" /><published>2026-08-26T00:00:00+00:00</published><updated>2026-08-26T00:00:00+00:00</updated><id>https://chplus0.github.io/blog/2026/transformer-qkv</id><content type="html" xml:base="https://chplus0.github.io/blog/2026/transformer-qkv/"><![CDATA[<p>Transformer 是我接触语言模型后第一个”看起来不难、想深了头皮发麻”的概念。这篇先记录最核心的一层直觉：<strong>注意力机制 = 加权求和</strong>。</p>

<h2 id="一句话直觉">一句话直觉</h2>

<p>对一个序列里的每个 token，我们都算一个”我该把注意力放在谁身上”的权重分布，然后用这个权重去<strong>加权求和所有 token 的值</strong>，得到这个 token 的新表示。就这么简单——复杂的是”权重怎么算”。</p>

<h2 id="qkv一次查询的过程">Q/K/V：一次查询的过程</h2>

<p>把 Q/K/V 想象成一场会议：</p>

<ul>
  <li><strong>Query（查询）</strong>：当前 token “想找什么信息”</li>
  <li><strong>Key（键）</strong>：每个 token “我有什么信息可以给”</li>
  <li><strong>Value（值）</strong>：每个 token “我真正给出的内容”</li>
</ul>

<p>流程：当前 token 的 Query 与所有 token 的 Key 做点积，得到相似度分数；除以 $\sqrt{d_k}$（维度缩放，防止点积过大把 softmax 推入饱和区）；再过 softmax 变成权重；最后用权重加权求和 Value。</p>

\[\text{Attention}(Q,K,V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V\]

<h2 id="softmax-权重的含义">softmax 权重的含义</h2>

<p>softmax 把相似度分数变成<strong>和为 1 的概率分布</strong>。于是每个输出向量都是”全体 token 的凸组合”——它融合了整个上下文，这正是”自注意力”里”自”的含义：注意力分布是由序列自身的内容决定的，不是外部给定的。</p>

<h2 id="多头注意力在做什么">多头注意力在做什么</h2>

<p>一个注意力头只能捕捉一种”查询方式”（比如”找名词的修饰语”），多头就是并行跑多组不同的 Q/K/V 投影，让模型同时关注不同类型的依赖关系，最后拼接。类比：一个厨师只能专注一个菜，多个厨师并行，出锅后再拼成一桌。</p>

<h2 id="rope位置编码的初印象">RoPE：位置编码的初印象</h2>

<p>自注意力本身对位置是”无感”的（交换 token 顺序，点积结果不变），所以需要位置编码。RoPE（旋转位置编码）的思路很优雅：把位置信息编码成<strong>向量旋转的角度</strong>，让两个 token 的相对位置体现在它们旋转角度的差上——旋转保持内积模长不变，所以既带了位置信息，又不破坏语义相似度的度量。</p>

<h2 id="待深入">待深入</h2>

<p>多头注意力与 RoPE 目前停在”直觉层”，下一步计划：手推一次完整的 self-attention 前向（含 batch 维度），再读一篇 RoPE 原始论文的公式部分。</p>]]></content><author><name></name></author><category term="学习笔记" /><category term="深度学习" /><summary type="html"><![CDATA[self-attention 的几何直觉；softmax 权重的含义；多头注意力与 RoPE 位置编码。]]></summary></entry></feed>