<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ResNet on YennJ12 Engineering Blog</title><link>https://yennj12.js.org/yennj12_blog_V4/tags/resnet/</link><description>Recent content in ResNet on YennJ12 Engineering Blog</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Sun, 21 Jun 2026 11:30:00 +0800</lastBuildDate><atom:link href="https://yennj12.js.org/yennj12_blog_V4/tags/resnet/feed.xml" rel="self" type="application/rss+xml"/><item><title>AI 工程從零開始｜Phase 4 Part 1：電腦視覺基礎 — 從像素到 CNN 特徵</title><link>https://yennj12.js.org/yennj12_blog_V4/posts/ai-eng-from-scratch-phase4-part1-cnn-image-fundamentals-zh/</link><pubDate>Sun, 21 Jun 2026 11:30:00 +0800</pubDate><guid>https://yennj12.js.org/yennj12_blog_V4/posts/ai-eng-from-scratch-phase4-part1-cnn-image-fundamentals-zh/</guid><description>大多數工程師拿到影像分類任務，第一反應是直接 Fine-tune ResNet50。 但面試官真正想聽的是：你為什麼選 ResNet？池化層存在的意義是什麼？ 當訓練資料只有 5,000 張時，Fine-tune 和 Feature Extraction 哪個對？ 能回答這三個問題，才算真正理解電腦視覺的工程基礎。
面試情境 面試官問： 「你的團隊要為一個醫療 App 建立皮膚病灶分類模型，訓練集只有 8,000 張標注影像、7 個類別，部署目標是手機端推論延遲 &amp;lt; 200ms。請說明你的架構選擇、遷移學習策略，以及你會怎麼處理類別不平衡問題。」
一、核心問題：影像理解的本質挑戰 影像資料與結構化資料有三個根本差異，讓全連接網路（Fully Connected）幾乎無法直接勝任：
1. 維度爆炸 一張 224×224 RGB 影像 = 150,528 個像素值。若用全連接層，第一層就需要 150,528 × hidden_units 個參數。一個 512 hidden units 的層，光第一層就是 77M 參數——這還沒考慮過擬合。
2. 空間不變性缺失 全連接層把像素當作獨立特徵看待，完全忽略空間關係。一隻貓在左上角和右下角，對 FC 層而言是完全不同的輸入。
3. 局部結構的重要性 影像中有意義的特徵（邊緣、紋理、形狀）都是局部的、階層式的。邊緣 → 紋理 → 部件 → 物件，這個從低階到高階的特徵階層，正是 CNN 設計的出發點。
CNN 用三個核心機制解決上述問題：
局部連接（Local Connectivity）：每個神經元只看一小塊感受野 參數共享（Weight Sharing）：同一個卷積核在整張影像上滑動 階層式特徵提取（Hierarchical Feature Learning）：堆疊卷積層逐步抽象 二、三個演進階段（POC / MVP / Scale） Phase 1 — POC（&amp;lt; 1 萬張訓練影像） ┌────────────────────────────────────────────────────┐ │ Pre-trained Backbone (凍結所有權重) │ │ ┌──────────────────────────────────────────────┐ │ │ │ ResNet50 / MobileNetV2 (ImageNet weights) │ │ │ └──────────────────┬─────────────────────────┘ │ │ │ Feature Vector (2048-d) │ │ ┌──────────────────▼─────────────────────────┐ │ │ │ Global Average Pooling │ │ │ └──────────────────┬─────────────────────────┘ │ │ │ │ │ ┌──────────────────▼─────────────────────────┐ │ │ │ Linear Classifier (新增，只訓練這層) │ │ │ │ Dense(256) → Dropout(0.</description></item></channel></rss>