查看作品文字内容
CNN 可视化模拟器 卷积 · 激活 · 池化|逐点慢放,所见即所算 输入层 可直接涂画 矩阵尺寸 8 × 8 10 × 10 12 × 12 14 × 14 图案预设 画笔灰度 1.00 橡皮 反相 随机 卷积层 — 卷积核 卷积核权重(3 × 3) 偏置 b 步长 stride 1 2 3 填充 padding 0(valid) 1(same) 2 激活函数 ReLU Sigmoid Tanh 线性(不激活) 恢复该核的原始权重 池化层 跟在卷积之后 池化方式 最大池化 Max 平均池化 Avg 不使用池化 窗口与步长 2 × 2 / 步长 2 3 × 3 / 步长 3 慢放控制 0 / 0 播放 回到起点 显示数值 播放速度 1× 层级堆叠 第 1 层 把当前输出(含池化)归一化后作为下一层输入,可以看到特征被逐层抽象。 推入下一层 退回上一层 我的卷积核 0 个 命名并保存当前权重 保存为我的卷积核 导出 JSON 导入 JSON 1 输入特征图 — 在网格上按住拖动即可涂画;薄荷色方框是当前卷积核的感受野。 2 卷积输出 — 暖色代表正响应,冷色代表负响应;颜色按当前输出最大值对称归一。 3 池化输出 — 池化在高响应位置保留最强(或平均)值,尺寸随之缩小。 逐点计算 输出 (0, 0) 感受野(输入 3 × 3) 卷积核权重 逐元素乘积 输入灰度 0 1 负响应 正响应 所有卷积核的输出对比 点击可切换当前核 这些数字是怎么算出来的? 卷积就是让一个 3 × 3 的小窗口(卷积核)在输入图上从左到右、从上到下滑动。每停一处,把窗口覆盖的 9 个像素值与卷积核对应的 9 个权重逐元素相乘,再全部相加、加上偏置,最后过一个激活函数,就得到输出特征图上的一个数。 输出尺寸由 (S + 2P − K) / stride + 1 决定:S 是输入边长,P 是四周补零的圈数(padding),K 是卷积核边长(这里固定 3)。padding 让边缘像素也能被窗口完整覆盖,stride 越大输出越小。 激活函数决定什么样的响应会被留下:ReLU 把负值压成 0,只保留正向响应;Sigmoid 把结果挤进 0 到 1;Tanh 挤进 −1 到 1。池化层则在一个小窗口里取最大值或平均值,用更小的矩阵保住最强的响应位置。 把卷积核切到「边缘检测」,再换几个输入图案:同一张图,不同卷积核抽出的特征完全不同——这正是 CNN 用多个卷积核并行提取多种特征的原因。