針對查詢「MNIST」依關聯性排序顯示文章。依日期排序 顯示所有文章
針對查詢「MNIST」依關聯性排序顯示文章。依日期排序 顯示所有文章

2025年10月3日 星期五

GAN vs Conditional GAN:概念差異與去噪任務的應用

Standard GAN :

  1. Generator (G):輸入隨機噪聲 ,輸出 fake image
  2. Discriminator (D):輸入一張圖像(可能來自真實 MNIST,也可能是 G 的 fake),判斷 real/fake
    • 是MNIST 資料集的圖像 → 標記為 real (y=1)
    • G(z) 生成的假圖像 → 標記為 fake (y=0)
  3. D 不需要 paired data,只要能看到真實數據與生成數據
  4. 訓練過程中,G 會逐步學會把隨機 z 映射到「看起來像 MNIST 分佈」的圖像
  



Conditional  GAN 

想要生成「數字6」,就給模型條件 

  • ,生成器要輸出像「6」的圖片,而不是別的數字。
  • 圖片裡面打叉的「2」就是說:雖然它來自分佈,但不符合條件(y=6),所以不是正確輸出



Conditional GAN:

 Learn a mapping from condition → target (e.g. noisy → clean)
  • Discriminator (D):同時看 (noisy, clean) 或 (noisy, fake)

    • (noisy, clean) → 應該判斷為 real (y=1)

    • (noisy, fake) → 應該判斷為 fake (y=0)

  • D 的角色不只是判斷「像不像真實圖像」,還要檢查「輸出和 noisy 是否對應」

  • 透過 Binary Cross Entropy loss,D 訓練得更會分辨;而 G 則被迫學到正確 mapping (noisy → clean)
 


2018年3月16日 星期五

機器學習(Machine Learning)與深度學習(Deep Learning)



什麼是機器學習(Machine Learning)?


機器學習是人工智慧的其中一個分支,簡單來說它就是讓機器可以像人一樣,可藉由閱讀大量的資料建立規則而具有知識,而機器學習就是透過演算法來分析數據、從中學習來判斷或預測現實世界裡的某些事(專家其實是訓練有素的狗,機器學習大概就是這個味道) 。閱讀已知的大量資料就是所謂訓練的過程,透過足夠多的Training Data 建立出一個 Model (最佳函式), 這個Model 就是"機器的知識",之後你可以餵未知的資料給機器,機器就能進行預測或判斷 。機器學習並非手動事先用程式撰寫好指令規則來判斷,而是使用大量的數據和演算法來「訓練」機器,自動產生規則自動判斷或預測。

什麼是類神經網路?

類神經網路是機器學習領域中的一種方法,它企圖用模擬人類大腦中的神經網路(Neural Network)的運作方式來建構機器學習的Model。例如,眼睛看到車快撞上來了,人的反應會立刻跳開,這中間可能經過大腦無數個神經元的運算及傳導,至今人類可能都還搞不清楚大腦怎麼辦到的,因為中間過程太複雜,但從頭尾結果來看卻很簡單, 就是看到車要撞到了,人會閃。Neural Network 概念,其實正是如此,一堆資料X 而每筆資料有多個特徵值(x1,x2,x3,x4),NN中每一層的權重W就可以決定出最終的 Y (y1,y2,y3)。若中間可能有很多層,很多層就叫做 MLP(Multi-Layer Perceptron)。當層級愈多網路就愈大, 所需的參數W就要愈多,因此計算Gradient 就要花更多的時間。



什麼是深度學習(Deep Learning)?

它其實就是很深的Neural Network (Deep Neural Network DNN), 就是中間Hidden Layer 有很多層級。AlexNet 達到8層級, ResNet已達到100多個層級。每建構一個Hidden Layer就代表建立同款式但有著不同花樣的過濾器(Filter)/篩子,以篩出不同的特徵。愈多的Hidden Layer 就代表用了更多款式的篩子。經過Back Propagation 計算後,求得每一個款式下不同花樣的權重W。而愈重要的篩子權重愈高,愈不重要的篩子權重就會愈低。 這些W權重較大的篩子,代表用這些篩子可以篩出 X-->Y的重要成份,也就是"特徵"。這也就是深度學習最強的地方--自動特徵擷取,而不是由人來先定義好特徵。

如何建構深度學習中的網路模型則是Deep Learning 的核心技術。 針對影像處裡的 CNN卷積神經網路(Convolution Neuron Networks) , 網路中加入Convolution及pooling 層以抽取特徵,而將能將圖片進行分類預測。RNN (Recurrent Neural Networks)主要用於文字語意處理,可以用來判斷前後文而使機器能理解一句話的意思。

機器學習或深度學習的技術可以應用在哪?

機器學習的演算法已廣泛應用於資料探勘、電腦視覺、自然語言處理、語音和手寫識別、生物特徵識別、DNA序列測、搜尋引擎、醫學診斷、金融數據分析與證券市場分析等方面。所以幾乎各行各業,包含金融業、零售業、製造業、醫療產業等,都會用到機器學習的技術。而以深度學習作為機器學習的方法,則多用在電腦視覺(Computer Vision)、ASR語音識別 (Automatic Speech Recognition)、NLP(自然語言處理),這種比較沒有因果關係或者連人類都很難解釋的邏輯推理。



===================================
深度學習的Hello World:  "MNIST" 手寫數字辨識

簡單說明Artifical Neural Network 基本流程, 當然也可以Deep Learning 的CNN (Constitutional Neural Network )實作它, 你就對CNN有更進一步的認識


step: training data 將每一個手寫數字轉成pixel vector, 作為input X , 每個pixel 作為feature 




建立Network Model (網路參數.....)


以手寫數字"6" 示意在input layer 的態度


 訓練好Model 後, 對testing data 進行predict, 能將手寫的0~9數字Label出對應的 0~9. 然後比較正確率(Accuracy) 
當正確率不足, 如何修改網路參數以提高正確率...正是學問之所在? 在kaggle 上目前有6萬多筆的手寫數字, 其正確率是100%......

https://goo.gl/EcCcj7