2025年7月21日 星期一

SimCLR : 重複圖片偵測技術

 1.) SimCLR 是一種微調RestNet一種作法,使其 能夠對於類似的圖片產生相同的向量 至於如何"類似" 由自己定義。定義為相似的圖片, 例如把同一個片其經過角度旋轉、平移、亮度不同、加入些許雜點的細微變化, 仍視為相同的,故SimCLR 模型必須為相似的圖片建立相同的特徵向量。


simclr 的訓練方法其概念同CLIP model, 一種Representation-Based / Contrastive Learning的方式
先用Data augumentation 產生一個pair ,pair 內的資料彼此是相似的, 如下圖的 x1和 x2 很像, 但x1和 x2, x3很不像. 故 L(x1) 可以表示此Contrastive  Loss
同樣的 x2,x3,x4 也是相同的概念, 所以此batch 所計算出的loss為 = 0.25 * (L(x1) +L(x2) +L(x3) +L(x4) )

,



2.) 一旦有了這個SimCLR模型後, 即對於類似的圖片能建立相同的特徵向量。接著我們就可以利用clustering 方法,如k-means 或HDBSCAN 進行圖片的分群, 同群表示其群內圖片應該相當雷同。

2025年6月29日 星期日

AI 都可以寫程式了,我們為什麼還要學程式?

AI 時代的學習者:為什麼還要學程式?

從農業時代到工業時代,人類第一次大規模用「機器」取代「人力」。許多過去依靠體力與手工的工作逐漸消失。當世界進入資訊時代,自動化與電腦系統又接手了大量重複性的任務,像打字員、收費員、電話接線員等職業,也慢慢成為歷史。

而現在,我們正迎來下一個重大轉變——AI 時代。

很多人會問:「既然 AI 可以寫程式,我們為什麼還要學?」
其實,歷史早已給了答案:每一次科技進步,改變的是工作的方式,而不是人本身。真正被取代的,往往不是人,而是舊的思考方式與工作模式。

學程式,不只是為了寫程式

在 AI 時代學習程式設計,重要的不只是學會語法,而是建立一種新的學習態度。

生成式 AI(例如 ChatGPT)已經成為強大的工具,可以協助寫程式、解釋概念甚至幫助除錯。但對初學者來說,最重要的仍然是:

  • 親自動手寫程式

  • 理解邏輯與結構

  • 培養獨立思考能力

如果一開始就完全依賴 AI,反而可能錯過真正理解問題的機會。當你具備基礎後,再將 AI 作為輔助工具,才能讓學習速度與深度同時提升。

人類真正的優勢是什麼?

即使 AI 越來越強,它在面對大型系統設計、複雜問題拆解,以及跨領域整合時,仍然需要人類的判斷與思考。

因此,在 AI 時代,你不只是「寫程式的人」,更應該把自己當成:

  1. 問題解決者

  2. 系統思考者

  3. 專案整合者

學會如何分析問題、選擇工具、與他人合作,將會比單純會寫某一種語言更加重要。

資料結構與演算法:不是考試,而是思維

許多學生會覺得資料結構與演算法很抽象,但其實它們是一種「解決問題的思考方式」。

例如 Google 地圖如何預測交通狀況,就是透過資料結構、演算法與機器學習的結合,讓我們每天都能做出更好的路線選擇。

當你理解這些基礎概念時,你不只是學會寫程式,而是學會如何用系統化的方法看待世界。

在 AI 時代,你真正要學的是什麼?

AI 不會停止進化,因此學習也不能停止。真正重要的是:

  • 持續培養邏輯思考能力

  • 保持好奇心與實作精神

  • 學會與 AI 協作,而不是依賴

當你能把 AI 當成夥伴,而不是替代者,你就已經站在未來的起點。




2025年6月25日 星期三

YOLO物件偵測的效能指標: mAP@IoU

 

mAP (mean Average Precision) for Object Detection

mAP@0.5 . 0.5 bounding box對Grond Truth 的IoU, 須達到的threshold才認定為物件。該物件為某一類旳預測機率稱為confidence。進行PR-curve 的計算。  

對每一個類別都用 PR-Curve 決定其效能, PR-Curve 底下所圍成的積即為 Average Precision,
  • 針對此類別的所有的bounding box ,計算 Recall 及 Precision
  • 在不同的recall 下(由0到1), 所對應的precision 所形成的面積,即為此類別的Average Precision,面積為 0~1 .
接著將所有類別的Average Precision值加總取平均, 即是mAP ,  此即為模型在預測各種類別的平均能力



https://youtu.be/R8tb0yNr-Qc

2025年5月21日 星期三

模型是根據句中的哪段話判斷分類結果

 

#Transformer #BERT # Self -Attention  #Explainable AI  #LIME  #SHAP 

在NLP中的文章分類或句子的情緒判別中,模型分類結果符合預期,但如何得知到底是這句話或文章那句話或詞語決定了分類的結果 ? 


LIME 執行的結果


若使用的是Transformer 的BERT., 那可以透Attention weight distribution , 得知那模型主要關注了那一個字。但若分類模型不是BERT 這種具有Self -Attention 的機制,那作法可以用模型可解釋性 (Explainable AI) 的方法,,如LIME 或 SHAP ,他們會用分類模型結果去建立一個簡線性模型, 如Logistic Regression 的這種架構,Y=w1x1+w2x2+w3x3+....如此便可以透過這些權重值w1,w2,... 去了解每個字的重要性。









2025年1月10日 星期五

不平衡資料集的解決辦法


 
當樣本類別分佈很不平均時 , 如何解決?

不平衡資料集

(1) 從資料下手: 


除了用data augumentation 增加少數Minority類別的樣本資料, 也可以用Resampling 的方法,避免模型訓練後偏向回答多數(Majority)類別的答案 .
Resampling 是指反覆地從訓練資料中抽取不同的樣本子集,並對每組子集重新訓練模型,減少模型的偏差。Resampling 的方法如 Bootstrap 取樣法或 K-Fol 交叉驗證,這兩種方法其主要差異在於樣本子集的抽取方式:Bootstrap使用有放回的隨機抽樣,而 k-fold 交叉驗證則將資料分成 k 個不重疊的子集進行訓練與驗證。






  • 分割: 把訓練集(注意,這裡指的是除去最終測試集後剩下的數據)平均分成 k 個小集合(或稱為「摺」,folds)。
  • 迭代訓練與驗證: 針對這 k 個摺,重複以下步驟 k 次:
    • 訓練: 選取其中 k-1 個摺作為訓練數據來訓練模型。
    • 驗證: 用剩下那 1 個摺作為臨時的測試集(或驗證集),來評估模型的表現(例如計算準確率)。
  • 平均表現: k-摺交叉驗證最終報告的模型表現,是這 k 次驗證結果的平均值


  • (2) 從模型下手: 

    資料添增完後,可以更進一步雙管齊下去修改模型的 Loss 函數,當模型對少數類別的判別錯誤時加重懲罰,加大它的Loss。 例如 logistic regression 的 Loss 函數 可以修改成這樣。






    2024年12月18日 星期三

     

    生成深度學習|訓練機器繪畫、寫作、作曲與玩遊戲 第二版
    Generative Deep Learning, 2nd Edition

    Page  203 

      X_T should have zero mean and unit variance 
     
    中文應為: 均值為 0 且單位變異數 I 

      unit variance  (If all variables are independent, Σ = I (identity matrix))

    I = Σ = [1 0 0 ...
                 0 1 0 ...
                 0 0 1 ...
                  . .. ... ...]







    2024年12月16日 星期一

    判別式AI與生成式AI

     

    生成式AI的崛起與發展

    生成式AI(Generative AI)在2022年底隨著ChatGPT的問世而廣受關注。ChatGPT展現出近乎自然的人類對話能力,讓許多人驚嘆AI技術的進展。如今,ChatGPT的功能已不僅限於文字對話,更可解讀圖片、PDF文件分析,並能提供內容摘要與深度分析。市場上類似的工具還包括Microsoft Copilot、Claude和Notebook LLM等。除了文字生成,AI技術也延伸至音樂創作和圖像生成領域。 在圖像生成領域已有非常成熟的平台,例如 Stable Diffusion、Midjourney和DALL-E等。

    判別式AI與生成式AI的本質差異

    相較於2019年主流的判別式AI(Discriminative AI)——專注於圖像分類或文本分類等任務,生成式AI面對的是更具挑戰性的問題。判別式AI主要解決P(y=k|x)的問題,即在已知條件x下,預測標籤y為k的機率,而無需了解x的整體分布。

    生成式AI則致力於估計P(x),即從觀察到的樣本x1, x2, x3...中推測整體的機率分布。這個任務的複雜度遠超過判別式AI。理解P(x)分布的重要性在於:如果我們能找到一個近似分布Q(x),使其接近真實分布P(x),那麼從Q(x)中採樣得到的新樣本x將與真實數據具有相似的特徵。

    舉例來說,在人臉生成的應用中,即使生成的面孔並不存在於原始訓練數據集中,但由於其符合真實人臉的分布特徵,因此看起來自然且真實,難以與真實人臉區分。這正是生成式AI的強大之處。


    生成式AI的技術發展史

  • Shift from GANs to Diffusion Models for image generation
  • Evolution from autoregressive models to large language models

  • 2022: Stable Diffusion released as open-source

    2023

    • GPT-4 released with multimodal capabilities
    • Claude (Anthropic) and Google's PaLM demonstrate advanced reasoning
    • Improved versions of Stable Diffusion (XL, 3)
    • Llama and Llama 2 released by Meta
    • Gemini announced by Google