1.) SimCLR 是一種微調RestNet一種作法,使其 能夠對於類似的圖片產生相同的向量 至於如何"類似" 由自己定義。凡定義為相似的圖片, 例如把同一個圖片其經過角度旋轉、平移、亮度不同、加入些許雜點的細微變化, 仍視為相同的,SimCLR 模型必須建立相同的特徵向量。
simclr 的訓練方法其概念同CLIP model
2.) 一旦有了這個模型後接著我們可以利用clustering 方法,如k-means 或HDBSCAN 進行圖片的分群, 同群表示其群內圖片應極為類似。
1.) SimCLR 是一種微調RestNet一種作法,使其 能夠對於類似的圖片產生相同的向量 至於如何"類似" 由自己定義。凡定義為相似的圖片, 例如把同一個圖片其經過角度旋轉、平移、亮度不同、加入些許雜點的細微變化, 仍視為相同的,SimCLR 模型必須建立相同的特徵向量。
在 AI 時代學習程式設計,我認為我們應該建立一種全新的學習心態。像 ChatGPT 這類生成式 AI 工具,雖然已經被廣泛運用在編程中,但這並不表示我們可以完全依賴它。對初學者來說,最重要的是先培養獨立思考與動手實作的能力,透過親自寫程式來熟悉邏輯與架構。當有了一定基礎之後,再適時引入 AI 工具來協助學習與優化,才能真正建立起紮實的能力。
雖然 AI 功能越來越強大,但在處理複雜、非結構化的大型程式碼,或是在除錯過程中,仍然存在許多限制。因此,我們人類的優勢,應該更加著重於高層次的系統思考、問題分析,以及與他人協作與溝通的能力。
我鼓勵每位學習者,不只是把自己當成「寫程式的人」,而是要用「專案經理」的角色來看待自己的學習與應用。學會整合 AI 資源、分析問題、運用適當工具來解決真實世界的挑戰,這才是程式設計的真正價值所在。
至於資料結構與演算法,我更傾向將它們視為一種「解決問題的思維模式」,而不只是考試科目。像是 Google 地圖預測即時交通狀況,就是結合了資料結構、演算法與機器學習的應用範例,充分展現出這些基本功在現實世界中的重要性。
在這個 AI 快速演進的時代,邏輯思考依然是學習程式的核心,我們也必須不斷調整自己的學習方式,與時俱進,才能真正掌握未來的關鍵能力。
#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,... 去了解每個字的重要性。