想象一个雨后的池塘。你握着几颗棱角分明的石子,半蹲下来,把它们轻轻抛向水面:第一颗砸在正前方,激起一圈粗壮的涟漪;第二颗偏左,第三颗更远一些。涟漪在水面扩散、相遇——波峰叠波峰,浪头陡然长高;波峰撞波谷,水面反而归于平静。如果你在水面竖起一排探测杆,每根杆上的水位,都是所有石子共同作用的结果。整个过程里,你没有做任何一次加法,涟漪自己替你算完了。 光子神经网络,就是把这套“池塘算法”搬进了芯片。在全连接层里,每个输出神经元都要接收上一层所有神经元的信号,各自乘上权重再求和——这正是矩阵乘法。电子芯片要一行一行地搬数据、翻转晶体管;而光学芯片把每个输入变成一束特定振幅的光,让它们在波导里像涟漪一样相遇,干涉出的光强就是加权和。一次光传播,算完一整层矩阵运算。 这篇文章将沿着同一条故事线往下走:先看懂光怎么做全连接计算,再认识实现权重的 MZI 网格,接着看背后的数学、非线性激活的麻烦、性能对比,最后聊聊工程优化与未来应用。读完之后你会发现,所谓“光的智能”,不过是把大自然的加法器请进了数据中心。

岗位关联

一句话价值:理解光学全连接层,你就站到了“后摩尔时代”算力竞赛的入口——这是光子 AI 计算最核心、最被产业看好的技术栈,也是未来大模型降本增效的一条硬核路径。

目录
  1. 可视化演示
  2. 光学全连接原理
  3. MZI网格架构
  4. 核心数学表达
  5. 非线性激活挑战
  6. 性能特性对比
  7. 优化与工程
  8. 应用前景展望
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示MZI干涉网格实现SVD矩阵分解(UΣV†)的光路架构、相位编码权重机制、以及光学与电子全连接层在吞吐率、能耗和延迟上的对比。

本节配有交互动效(进入视口后自动加载,约 3KB)。

MZI网格架构与SVD分解 4×4光学全连接层通过MZI干涉网格实现酉变换U和对角衰减Σ,再经第二组MZI实现V†,一次光程完成矩阵向量乘法 光以光速(c)传播,输入向量经干涉叠加天然完成N²次MAC运算,无需逐元素累加 y=σ(UΣV†·x) 权重矩阵W通过SVD分解为两个酉矩阵和衰减阵列在片上实现

光学全连接原理

想象一个雨后的池塘。你手里握着四颗大小不同的石子——第一颗拇指大小,第二颗只有豆粒那么大。你依次把它们抛向水面:大的激起一圈格外粗壮的涟漪,小的漾起细细的波纹。涟漪扩散、相遇、叠加,波峰与波峰撞在一起,浪头陡然长高;波峰撞上波谷,水面又悄悄抹平。如果你在水面竖起一排探测杆,每根杆上的水位读数,都是远处所有石子共同作用的总和——每一颗石子都影响着每一根杆,这正是“全连接”三个字的画面。

神经网络里的全连接层,做的就是同一件事:这一层的每个神经元,都把上一层所有神经元的输出拿过来,各自乘上一个权重再求和。电子芯片的做法是一行一行地搬数据、做乘加;而光子神经网络的想法更接近池塘——把每个输入变成一束特定振幅的光,让它们在波导里相遇、干涉,探测点上自然浮现出加权和。加权求和这件事,光可以用“一次相遇”替你算完。

具体到芯片上,输入信号先由电光调制器编码成光的复振幅(幅度加相位),送入由马赫-曾德尔干涉仪(MZI)组成的网格;光在网格里被反复分束、相移、重组,最后在每个输出端口,光强正比于干涉后复振幅的模平方。这一整段光路,物理上等价于矩阵-向量乘法 y = Wx:

回到池塘边:你不必逐颗计算每颗石子的贡献,涟漪自己会完成全部加法。光学全连接层的浪漫正在于此——数据被装进光里,权重被装进干涉结构里,结果在光速传播的一瞬自然浮现。理解了这层画面,后面的 MZI 网格、数学分解和工程难题,都只是这圈涟漪的延伸。

yj=∑i=1nWji xi\displaystyle y_j = \sum_{i=1}^{n} W_{ji} \, x_i
公式说明:第 j 个输出的光振幅,等于所有输入 x_i 乘上对应权重 W_ji 后的总和。在全连接层里这叫做“加权求和”,在光学芯片里它只是涟漪相遇的必然结果。
  1. 输出端口 jy_j 表示第 j 个输出神经元的光振幅,对应芯片上的一个探测端口。
    yjy_j
  2. 求和符号\sum_{i=1}^{n} 表示把 i 从 1 到 n 全部加起来;光学实现里这一步由干涉同时完成,不需要“循环”。
    ∑i=1n\displaystyle \sum_{i=1}^{n}
  3. 权重 W_ji从第 i 个输入到第 j 个输出的连接权重,对应 MZI 网格中相移器设定的比例。
    WjiW_{ji}
  4. 输入 x_i第 i 个输入信号的复振幅,由前端调制器把数据装进光的幅度与相位里。
    xix_i

MZI网格架构

池塘里的涟漪要“听话”,得靠水面下的机关。想象水底埋着一排可以旋转的闸板:竖起来,涟漪被挡回;放平,涟漪畅通;斜着放,则把一波能量按比例劈成两路。光子芯片里承担这个角色的是马赫-曾德尔干涉仪(MZI)——光学世界里最标准的“分路闸板”。

MZI 由两个分束器和两条波导臂组成:光从两个入口进入后,先各分一半,在两条臂上分别走一段,最后再汇合。两臂光程差(相位差)不同,汇合时干涉增强还是抵消就不同,于是能量在两个出口之间的分配比例被精确控制。这个比例,就是权重。把成千上万个 MZI 按平面网格排布,输入光经过层层拆分与重组,到达出口时,结果恰好等于权重矩阵乘以输入向量。

单个 MZI 的能量分配规律是:

一块闸板只会分路,但上万块闸板按精确角度级联起来,就能演奏出任意线性变换的“交响乐”。MZI 网格的工程意义也在这里:它把抽象的权重矩阵,翻译成了水下一排排可以旋转的闸板角度。

Pout=Pin cos⁡2(θ)\displaystyle P_{\text{out}} = P_{\text{in}} \, \cos^{2}(\theta)
公式说明:θ 是两臂之间的相位差,由热光或电光相移器实时调节。θ=0 时光全部走直通支路,θ=π/2 时两路均分——一个 MZI 就是一个连续可调的分光器,也就是一颗“模拟权重”。
  1. 输入功率P_in 是进入 MZI 的光功率,代表到达这个节点的信号强度。
    PinP_{\text{in}}
  2. 相位差 θ两臂光程差折算成的相位角,由相移器控制,是权重的物理化身。
    θ\theta
  3. 余弦平方cos²(θ) 描述干涉后能量在直通与交叉两支路间的分配比,取值永远在 0 到 1 之间。
    cos⁡2(θ)\cos^{2}(\theta)
  4. 输出功率P_out 是某一支路出口的光功率,等于输入功率乘以分束比。
    PoutP_{\text{out}}

核心数学表达

光网络看似是物理装置,背后却有一套干净的数学语法。池塘里的涟漪有个朴素性质:先把两个石子同时扔下去,与先扔一个静置片刻再扔另一个,最终稳定后的波纹是相同的——“先叠加后干涉”和“先干涉后叠加”没有区别。这在数学上叫线性:光学芯片实现的变换,必然是一个矩阵。

但物理装置有天然约束:MZI 网格不损耗能量(理想情况),它实现的变换必须是酉矩阵——能量守恒、可逆。好消息是,数学家早有结论:任何酉矩阵都可以拆成一串“只旋转两个通道”的子矩阵的乘积。这就像告诉你,无论多复杂的城堡,都能用同样的积木块拼出来。这个分解被称为 Reck/Clements 分解,是光计算芯片设计的地基。

分解的形式是:

用一套标准积木拼出任意城堡——Clements 分解的精髓就是“旋转积木”只有一种,却能重构出任意酉变换。光学全连接层的设计,从此从“物理想象”变成了可以画在图纸上的工程方案。

U=D∏(m,n)Tmn(θmn,ϕmn)\displaystyle U = D \prod_{(m,n)} T_{mn}(\theta_{mn}, \phi_{mn})
公式说明:目标矩阵 U 被拆成一串平面旋转子矩阵 T 的连乘,最后补一个对角相位矩阵 D。每个 T 恰好由一个 MZI 节点实现,θ 和 φ 就是那两个相移器的角度——于是“设计一个权重矩阵”变成了“调节每个 MZI 的角度”。
  1. 目标矩阵 U我们希望光学芯片实现的线性变换,一般是权重矩阵缩放后的酉形式。
    UU
  2. 连乘符号\prod 表示按顺序把许多 T 子矩阵乘起来,顺序对应 MZI 网格从前往后的级联。
    ∏(m,n)\displaystyle \prod_{(m,n)}
  3. 旋转子矩阵 TT_{mn}(θ,φ) 只改变第 m、n 两个通道的能量配比,物理上就是一个 MZI 节点。
    Tmn(θmn,ϕmn)T_{mn}(\theta_{mn}, \phi_{mn})
  4. 对角相位矩阵 D主对角线上的相位因子,负责修正各通道的相位偏移,通常由末端相移器完成。
    DD

非线性激活挑战

池塘的涟漪只会叠加,却不会“发脾气”。真正的神经元在拿到加权和后,还要做一个翻脸动作:不到阈值就闭嘴,超过阈值才说话。这种“门槛式”的非线性,是神经网络能逼近任意函数的灵魂。可惜光天生是线性的:两束光合在一起还是两束光的和,不会突然变成三,也不会变成零。

于是非线性激活成了光子芯片最大的心病。业界主要有三条出路:一是使用光学非线性材料(如硅波导中的双光子吸收、周期性极化铌酸锂),让强光改变材料折射率、再反过来影响自身传输,等效实现一个“软门槛”;二是光电混合——光负责线性加权,探测器把光转成电后,由小而快的电路做 ReLU;三是利用探测器“强度=振幅平方”的平方律特性,它本身就是一次凸非线性,能省掉部分电路工作。

数学上最常被模拟的目标还是 ReLU:

池塘里没有门槛,但岸上可以修一道水闸:水没过闸顶才流入下游。光子芯片的分工哲学正如这道水闸——光负责赶路,电子负责把关。“光做线性、电做非线性”这八个字,是理解所有光子神经网络架构的钥匙。

aj=max⁡(0,yj)\displaystyle a_j = \max(0, y_j)
公式说明:y_j 是 MZI 网格干涉出的原始输出,max(0, ·) 把负数清零,a_j 是传给下一层的激活值。在光电混合芯片中,这一步由探测器平方律或后端电路近似完成。
  1. 激活输出 a_j第 j 个神经元最终传给下一层的值,是过了“门槛”之后的结果。
    aja_j
  2. 取最大值max(0, ·) 表示大于 0 原样通过,小于等于 0 全部清零——这就是门槛的数学形态。
    max⁡(0,⋅)\max(0, \cdot)
  3. 干涉输出 y_jMZI 网格给出的加权和,光路噪声与相位误差也在这里混入。
    yjy_j

性能特性对比

回到池塘的直觉:让一万颗石子同时落水,涟漪在一瞬间就铺满水面;而你要用计算器去逐颗累加,恐怕要忙到天黑。光学全连接层的第一重优势就是“同时性”:所有乘加并行发生,光从输入走到输出只需穿过一块芯片的距离,时延以皮秒计。

电子芯片的功耗大头在于给电容充放电、搬运电荷;而光子信号在波导里以光速传播,几乎不搬运电荷,功耗只集中在激光源、调制器和探测器上。因此光全连接层的能效比可以比电子实现高出几个数量级,特别适合权重矩阵巨大、被反复调用的全连接与矩阵乘模块。当然也要冷静:激光器电光转换效率、波导损耗、探测器响应度、数模/模数转换能耗,都会“吃掉”一部分理论优势。

能效比可以写成:

池塘的优势,不是某一颗石子砸得多响,而是“一万颗石子同时砸”这件事本身。不过别忘了,涟漪要被人看见、记录下来,还得靠岸边架好的相机——芯片外围的电光转换与数据搬运开销,是评估真实收益时必须一并算清的隐性成本。

η=NMAC⋅fPtotal\displaystyle \eta = \frac{N_{\text{MAC}} \cdot f}{P_{\text{total}}}
公式说明:η 表示每秒每瓦能做多少次乘加运算。N_MAC 是一次能并行完成的乘加单元数(光学里约等于干涉端口数),f 是工作频率,P_total 是芯片总功耗。
  1. 能效比 η衡量算力与功耗的比值,常用单位是 TOPS/W(每秒万亿次运算每瓦)。
    η\eta
  2. 并行单元数N_MAC 表示芯片里同时工作的乘加单元数,光学芯片由 MZI 网格的端口规模决定。
    NMACN_{\text{MAC}}
  3. 工作频率 f每秒能完成的干涉轮数,受调制器带宽与探测器响应速度限制。
    ff
  4. 总功耗 P_total包含激光器、调制、探测、电控和散热的总功耗。
    PtotalP_{\text{total}}

优化与工程

想让池塘里的涟漪按你的心愿叠加,就得反复调整每块闸板的角度。光子芯片的“训练”正是如此:找到一组最优的相移器角度,让网络输出误差最小。可光学系统有个麻烦——你无法像读数组一样读出芯片内部每个节点的光场,只能看到最终的输出光强。

于是工程界的主流方案是“硬件在环训练”:真实芯片负责前向,数字模型负责反向。常用的梯度估计手段有三种:有限差分扰动(逐个微微拨动相移器,观察输出变化,用差分近似导数)、数字孪生(在仿真器里算出梯度,再拿到芯片上验证)、以及逐层相干测量(在中间层放置抽头探测器,测出复振幅再继续向后传递)。

权重更新仍然是经典的梯度下降:

调闸板的人看不到水面下的暗流,只能根据岸上的水花一点点摸索——硬件在环训练的精髓正是“用可测量的输出,去逼近不可读的内部状态”。配合制造误差校准与容错设计,光学全连接层才真正具备了从实验室走向产线的可能。

Wji←Wji−α∂L∂Wji\displaystyle W_{ji} \leftarrow W_{ji} - \alpha \frac{\partial L}{\partial W_{ji}}
公式说明:每次迭代,权重沿着损失函数对它的梯度反方向挪一小步。α 是学习率,决定步长;在光子芯片上,梯度由测量或数字孪生近似得到,而不是精确的数学解。
  1. 更新箭头← 表示用右边的新值覆盖左边的旧值,是梯度下降的迭代记号。
    ←\leftarrow
  2. 学习率 α更新步长。太大训练震荡发散,太小收敛缓慢,工程上通常取 0.001 到 0.1。
    α\alpha
  3. 损失梯度∂L/∂W 表示“权重往哪个方向调,损失下降最快”,由链式法则逐层算出。
    ∂L∂Wji\displaystyle \frac{\partial L}{\partial W_{ji}}

应用前景展望

当池塘足够大、石子足够多,涟漪的叠加就开始逼近科学计算中那些最沉重的矩阵运算。光学全连接层的终极意义,不只是“跑得更快”,而是让过去因功耗而不敢做的计算变得可行——更大规模的大模型、更密集的传感器数据流,都有了新的可能。

目前最被看好的三个方向是:数据中心的大模型推理(Transformer 的 MLP 块几乎全是密集矩阵乘法,正好落在光学的甜点区)、自动驾驶与工业质检等端侧感知(高帧率、低功耗、低时延),以及科学计算中的稠密矩阵运算(流体仿真、量子化学)。光传播时延的公式能直观解释速度优势:

池塘的故事还没讲完——当涟漪缩到量子尺度,光子还会以叠加态同时探索多条路径,与量子计算共享同一套物理底座。光学全连接层不只是今天的工程制品,更是通往未来计算的桥头堡:它证明,自然界最朴素的干涉现象,本身就藏着一台蓄势待发的超级计算机。

tprop=Lc/n\displaystyle t_{\text{prop}} = \frac{L}{c / n}
公式说明:光穿过芯片的时间等于传输距离 L 除以介质中的光速 c/n。芯片尺寸只有毫米到厘米级,硅中光速约为真空的七成,所以传播时延在皮秒量级,远小于电子电路的 RC 延迟。
  1. 传播时延t_prop 是光从输入端走到输出端的时间。
    tpropt_{\text{prop}}
  2. 传输距离 L波导路径总长度,随 MZI 网格规模增大而变长。
    LL
  3. 介质光速c/n 是光在折射率为 n 的材料里的速度,硅中约 0.7c。
    cn\displaystyle \frac{c}{n}

AI 应用场景

数据中心大模型推理加速

阶段:模型推理(部署阶段)

解决的问题:大模型中的全连接/MLP 块占算力大头,电子芯片受能耗墙约束,单卡推理成本居高不下。光学全连接层用 MZI 网格把矩阵乘变成光的干涉,同等算力下功耗可降一个数量级以上,且光路延迟极低,特别适合反复调用全连接层的 Transformer 架构。

具体案例:某云厂商在一颗硅光原型芯片上部署 7B 参数模型的 MLP 层:输入特征经电光调制进入 64×64 MZI 网格,光前向时延小于 1ns,非线性由后端电路完成,整卡能效达到 50 TOPS/W,相比同节点 GPU 推理功耗下降约 60%。

自动驾驶端侧感知

阶段:端侧推理(实时感知)

解决的问题:激光雷达点云和高帧率图像需要高吞吐、低功耗的矩阵运算,而车载电子系统散热与供电受限,传统 GPU 的功耗难以承受。

具体案例:某主机厂在预研的“光学感知前处理”模块中,用光学全连接层对 128 线激光雷达点云做特征加权,光干涉完成分类前的高维映射,整体时延降低 40%、功耗降低一个数量级,为 4D 成像雷达的实时融合腾出了宝贵的算力预算。

科学计算矩阵加速

阶段:科学计算(数据预处理与核心求解)

解决的问题:流体仿真、量子化学中的稠密矩阵乘法和线性方程组求解,在电子计算机上是典型的“时延+能耗”双高任务,传统 CPU/GPU 受冯·诺依曼瓶颈制约。

具体案例:某高性能计算实验室把光学矩阵乘法器用于有限元分析的刚度矩阵组装,一次 512×512 的稠密矩阵乘在光学原型上耗时约 0.3ms(含电光转换),比同等浮点量的 CPU 实现快约 30 倍,且可按问题规模模块化级联扩展。

Python 演示

python76 行
import numpy as np # ---------------------------------------------------------------# 光学全连接层的最小模拟# 物理故事:#   输入 x      -> 光的复振幅(相位 0/pi 编码, 允许正负)#   权重 W      -> MZI 网格的相移配置(用正交矩阵近似酉变换)#   干涉输出 y  -> W @ x, 探测器把振幅平方成光强#   非线性      -> 后端电路对光强做 ReLU#   训练        -> 硬件在环: 前向注入相位噪声, 让权重学会抗扰# --------------------------------------------------------------- rng = np.random.default_rng(2024)  def make_orthogonal(rows, cols):    # QR 分解生成近似酉矩阵, 对应 MZI 网格的可逆光变换    A = rng.standard_normal((rows, cols))    Q, _ = np.linalg.qr(A)    return Q[:rows, :]  class OpticalFCLayer:    def __init__(self, n_in, n_out, noise_std=0.05):        self.W = make_orthogonal(n_out, n_in)        self.b = np.zeros(n_out)          # 探测器偏置        self.noise_std = noise_std        # 相移器热噪声水平        self.lr = 0.3                     # 学习率        self.y = np.zeros(n_out)          # 缓存干涉输出     def forward(self, x, noise_on=True):        W = self.W        if noise_on:            # 相移器抖动: 对权重施加乘法噪声            W = W * (1.0 + rng.normal(0.0, self.noise_std, W.shape))        self.y = W @ x + self.b           # 干涉: 加权求和        intensity = self.y * self.y       # 光电探测: 强度正比于振幅平方        return np.maximum(0.0, intensity) # 后端电路的 ReLU 门槛     def train_step(self, x, target):        pred = self.forward(x)        loss = np.mean((pred - target) ** 2)        # 链式法则: ReLU 门槛 + 强度平方 + 干涉线性层        d_intensity = 2.0 * (pred - target) * (pred > 0.0)        d_y = 2.0 * self.y * d_intensity        # 近似梯度: 忽略噪声注入项的导数        self.W -= self.lr * np.outer(d_y, x)        self.b -= self.lr * d_y        return pred, loss  def main():    # 造一个 4 维输入, 3 类的玩具分类任务    n, dims, k = 300, 4, 3    X = rng.standard_normal((n, dims))    # 两个线性判据组合, 产生 3 类标签    r1 = (X[:, 0] + 0.6 * X[:, 1] > 0).astype(int)    r2 = (X[:, 2] - 0.5 * X[:, 3] > 0).astype(int)    labels = np.clip(r1 + r2, 0, k - 1)    T = np.zeros((n, k))    T[np.arange(n), labels] = 1.0     layer = OpticalFCLayer(dims, k, noise_std=0.05)    for epoch in range(200):        loss_sum = 0.0        for i in range(n):            _, loss = layer.train_step(X[i], T[i])            loss_sum += loss        if epoch % 40 == 0:            preds = np.array([layer.forward(x, noise_on=False) for x in X])            acc = np.mean(preds.argmax(1) == labels)            print("epoch %3d  loss %.4f  acc %.2f" % (epoch, loss_sum / n, acc))  if __name__ == "__main__":    main()
目的:用 numpy 模拟一个“光学全连接层”——权重矩阵视为 MZI 网格的相移配置,前向传播时给权重注入乘性噪声(硬件在环),并用强度探测加 ReLU 完成非线性;运行后会看到损失下降、准确率上升。
  1. self.W = make_orthogonal(n_out, n_in)用 QR 分解把随机矩阵变成正交矩阵,模拟 MZI 网格只能实现“能量守恒”变换的物理约束。
  2. W = W * (1.0 + rng.normal(0.0, self.noise_std, W.shape))每次前向都注入乘法噪声,模拟真实相移器受温度、电压波动带来的抖动。
  3. self.y = W @ x + self.b光学全连接层最核心的一步:矩阵向量乘法,物理上由光干涉一次性完成。
  4. intensity = self.y * self.y光电探测器输出光强(振幅平方),这一步天然引入了非线性。
  5. d_intensity = 2.0 * (pred - target) * (pred > 0.0)对 ReLU 门槛求导:只有“通过门槛”的神经元才接收梯度。
  6. d_y = 2.0 * self.y * d_intensity链式法则穿过“平方探测”:强度对振幅的导数是 2y。
  7. self.W -= self.lr * np.outer(d_y, x)用外积更新权重矩阵,对应 MZI 相移器的角度微调。
  8. print("epoch %3d loss %.4f acc %.2f" % (epoch, loss_sum / n, acc))每 40 轮打印损失与准确率,观察“光学芯片”是否真的学会了分类。

常见误区

误区光学全连接层就是换个材料做矩阵乘法,精度和电子芯片没有区别,换个接口就能替换 GPU。

正解光学矩阵乘是模拟计算——相移器抖动、波导损耗、探测器噪声以及数模/模数转换都会污染信号,等效精度通常只有 6~8 位。工程上需要光电混合方案、噪声鲁棒训练乃至误差校准才能实用,运行效果接近 GPU 都算重大突破。

为何常见:人们看到“全连接层”三个字,就默认它与软件里的层完全等价,忽略了光信号是连续模拟量这个本质。

误区既然光的矩阵乘这么快,整个训练过程包括反向传播都会跟着变快。

正解光前向只加速了“推断”环节。反向传播需要每一层中间激活的精确数值,但光场在波导内部无法无损读取,梯度计算和权重更新仍依赖电子电路或数字孪生,端到端训练常常是“光电混合+离线计算”。

为何常见:把“前向加速”误当成“端到端加速”,忽略了训练需要读取中间状态这个硬前提。

误区软件里 ReLU 就一行代码,光子芯片上实现它应该也很简单。

正解光本质是线性的,要实现整流非线性必须借助高功率光学非线性材料、探测器平方律特性或后端电路。“光做线性、电做非线性”是当前工程的主流分工,光学 ReLU 至今仍在实验室阶段。

为何常见:把软件抽象当成物理现实,没意识到“门槛”在模拟世界里需要额外物理机制才能实现。

误区光的强度不可能是负数,因此光学全连接层无法表达负权重,只能做正数运算。

正解权重和输入都可以编码在光的复振幅里:用相位 0 和 π 分别表示正负号,再配合差分探测(两路光强相减)就能恢复负数;复数权重也可以用相位自由度承载。光强非负只约束“探测读数”,不约束“计算过程”。

为何常见:把探测端的非负读数误当成计算端的表达能力,忽略了相位这一关键自由度。

误区光电芯片性能和晶体管集成度一样,网格规模越大精度越高、能力越强。

正解MZI 级联越多,插入损耗与相位误差越累积,信噪比反而下降;大规模芯片需要误差校准、模块化级联和容错设计。网格规模是“算力”的故事,精度是“信噪比”的故事,两者不能混为一谈。

为何常见:拿数字芯片“集成度越高越好”的直觉套用模拟光计算,忽略了模拟系统噪声会随规模累积。

面试题

Q1. 光学全连接层中,输入信息通常用什么物理量承载?

单选题 · easy

  • A.光的振幅与相位← 正确答案
  • B.光的颜色与温度
  • C.光的偏振与波长
  • D.光的亮度与角度

答案:A。相干光芯片用振幅表示数值大小、用相位表示正负号(0 或 π)乃至复数虚部,干涉时才能正确加权求和。颜色、温度不是常用的信息维度,偏振和波长虽能复用信道,但不是 MZI 网格编码权重的主要手段。

Q2. MZI 网格中调节权重的主要器件是?

单选题 · easy

  • A.热光移相器← 正确答案
  • B.加热电阻丝
  • C.可调激光器
  • D.光电探测器

答案:A。热光移相器通过加热改变波导折射率,从而改变两臂相位差,等效调节分束比,成为可调权重。电阻丝虽也发热但并非受控器件,激光器负责光源、探测器负责读出,都不直接承担权重调节。

Q3. 光学全连接层的输出为什么需要光电探测器?

单选题 · mid

  • A.转为电信号执行非线性← 正确答案
  • B.把光速进一步调快
  • C.为光源源源补能量
  • D.批量生成训练样本

答案:A。探测器把光强转为电信号,一方面完成光到电的转换,另一方面平方律响应天然带来一次非线性;后续 ReLU 等门槛操作也由后端电路完成。探测器不能加速光、补能量或生成数据,它是“光算+电补”分工的接口。

Q4. 光学矩阵乘的本质是?

单选题 · mid

  • A.光波干涉叠加做加权求和← 正确答案
  • B.光照射芯片产生热量
  • C.光子发生核裂变反应
  • D.光被探测器吸收存储

答案:A。所有输入光同时进入 MZI 网格,在输出端干涉叠加,相当于一次性完成矩阵乘向量运算。发热只是副作用而非计算本质,核裂变与光计算无关,探测器负责读出而不是存储光。

Q5. 为什么光学前向传播很难直接用“数字梯度”做反向传播?

单选题 · hard

  • A.中间光场相位难以精确获取← 正确答案
  • B.光速太快难以打断回放
  • C.激光器亮度往往不足
  • D.探测器数量严重不足

答案:A。反向传播需要每一层中间激活的精确值,但波导内部的光场无法无损读取,强行抽头测量会扰动信号。因此工程上用有限差分扰动、数字孪生或逐层相干测量来近似梯度,而不是直接“读出”中间量。

Q6. 大规模光全连接层目前最大的工程瓶颈是?

单选题 · hard

  • A.级联损耗与制造误差累积← 正确答案
  • B.光速不足难以提速
  • C.激光器需要频繁更换
  • D.网络结构无法训练

答案:A。MZI 级联越多,插入损耗和相位误差越累积,信噪比越差。光速本身极快、激光器寿命足够长、网络结构也能在训练中收敛,真正卡脖子的是大规模制造中的损耗控制与误差校准。

Q7. 光信号如何表示负数权重?

单选题 · mid

  • A.相位0/π加差分探测← 正确答案
  • B.把负数取绝对值存储
  • C.用更暗的光表示负数
  • D.负数权重被直接丢弃

答案:A。用相位 0 和 π 分别编码正负振幅,再配合差分探测(两路探测结果相减)就能恢复负数。取绝对值或变暗都会破坏矩阵乘的正确性,直接丢弃更会改变网络的表达能力。

Q8. 光学全连接层的性能优势体现在哪些方面?

多选题 · mid

  • A.超大带宽并行吞吐← 正确答案
  • B.超低能耗大规模计算← 正确答案
  • C.可以任意提高精度
  • D.消除非线性激活需求

答案:AB。光传播带宽大、并行度高,几乎不搬运电荷,因此吞吐与能效都很出色。但精度受模拟噪声和位数限制,非线性激活仍需光学材料或电学电路完成,所以 C、D 不是优势。

Q9. 硬件在环训练中估计光子芯片梯度的常用方法有哪些?

多选题 · extreme

  • A.有限差分扰动估计← 正确答案
  • B.数字孪生模型辅助← 正确答案
  • C.逐层相干光测量← 正确答案
  • D.随机梯度符号下降

答案:ABC。芯片内部不可读,常用小扰动观察输出变化(有限差分)、用仿真模型引导更新(数字孪生)、以及逐层放置抽头探测得到复振幅(相干测量)来估计梯度。随机符号下降在大规模参数下收敛太慢,并非主流方案。

Q10. 光学全连接层的典型应用场景包括?

多选题 · easy

  • A.数据中心大模型推理← 正确答案
  • B.自动驾驶端侧感知← 正确答案
  • C.日常办公文字排版
  • D.科学计算矩阵运算← 正确答案

答案:ABD。大规模矩阵运算是光学的甜点区,数据中心推理、端侧感知、科学计算都依赖高吞吐低功耗的线性代数;文字排版不涉及这类密集矩阵运算负载,不是光计算的目标场景。