iT邦幫忙

2024 iThome 鐵人賽

DAY 2
0
AI/ ML & Data

AI 到底是怎麼換臉的?系列 第 2

2024 Day 2:深度學習(Deep Learning)基礎

  • 分享至 

  • xImage
  •  

本系列文章部分內容由AI產生,最後皆有通過人工確認內容及潤稿。

在昨天我們了解了人工智能(AI)和機器學習(ML)的基本概念。今天,我們將深入探討深度學習(Deep Learning),這是推動AI發展的核心技術之一。深度學習已在圖像識別、語音識別和自然語言處理等領域取得了突破性成果。
今天有別以往,我將提供今天的學習目標給大家,讓大家在閱讀文章之前心裡可以有個目標。


本日學習目標

  • 理解深度學習的概念和起源
  • 掌握人工神經網絡的結構和工作原理
  • 了解深度學習與傳統機器學習的區別
  • 認識常用的深度學習框架(如TensorFlow、PyTorch)
  • 初步了解深度學習在實際應用中的案例

什麼是深度學習?

深度學習是機器學習的一個分支,基於多層人工神經網絡,模仿人腦的結構和功能,能夠自動從數據中學習特徵表示。

深度學習的起源

  • 早期研究(1940s-1980s):人工神經網絡的概念最早可以追溯到1943年,Warren McCulloch和Walter Pitts提出了神經元模型。1980年代,Geoffrey Hinton等人提出了反向傳播算法,為神經網絡的訓練提供了有效的方法。
  • 深度學習的低潮(1990s-2000s):由於計算資源的限制和數據的缺乏,深度神經網絡在這段時間內沒有取得重大進展。
  • 深度學習的復興(2006年至今):2006年,Hinton等人提出了深度信念網絡(Deep Belief Networks),揭開了深度學習的序幕。隨著計算能力的提升(特別是GPU的普及)和大數據的出現,深度學習在圖像、語音等領域取得了突破。

https://ithelp.ithome.com.tw/upload/images/20240916/20169508rr56HGWUcb.jpg
圖1 深度學習的發展歷程


人工神經網絡的結構與原理

神經元模型

人工神經元是模仿生物神經元的計算模型,主要包括以下部分:

  • 輸入(Inputs):接收來自其他神經元或外部數據的信號。
  • 權重(Weights):每個輸入信號都會乘以一個權重,表示該輸入的重要程度。
  • 加權和(Weighted Sum):將所有輸入的加權值相加。
  • 激活函數(Activation Function):對加權和進行非線性變換,產生神經元的輸出。

神經網絡的層次結構

  • 輸入層(Input Layer):接收原始數據。
  • 隱藏層(Hidden Layers):通過多個隱藏層進行特徵提取和表示學習。
  • 輸出層(Output Layer):產生最終的預測結果。
    https://ithelp.ithome.com.tw/upload/images/20240916/2016950841r7YFQ9nO.png
    圖2 人工神經網絡結構

前向傳播與後向傳播

  • 前向傳播(Forward Propagation): 將輸入數據通過網絡層層傳遞,計算輸出結果。
  • 損失函數(Loss Function): 衡量預測結果與真實值之間的差異。
  • 後向傳播(Backpropagation): 通過計算損失對網絡權重的梯度,更新權重以減少損失。

激活函數

激活函數(Activation Function)引入非線性,使神經網絡能夠學習複雜的模式。以下是常見的激活函數。

  • Sigmoid函數:
    https://ithelp.ithome.com.tw/upload/images/20240916/20169508ijAKMJV1jC.png
    特點:輸出範圍在0到1之間(0,1),適用於輸出概率的場合。
    缺點:存在梯度消失問題,且輸出均值非零,可能導致訓練收斂慢。
  • Tanh函數:
    https://ithelp.ithome.com.tw/upload/images/20240916/20169508cw6ErEHgku.png
    特點:輸出範圍在(-1,1),解決了Sigmoid函數均值非零的問題,有助於加速收斂。
    缺點:仍存在梯度消失問題。
  • ReLU(Rectified Linear Unit):
    https://ithelp.ithome.com.tw/upload/images/20240916/20169508TRCBlbZ4FB.png
    特點:計算簡單,解決了梯度消失問題,成為目前最常用的激活函數。
    缺點:當輸入為負時,梯度為零,可能導致神經元“死亡”(Dead Neurons)。
  • Leaky ReLU:
    https://ithelp.ithome.com.tw/upload/images/20240916/20169508ZvtYNb69n0.png
    特點:在 x < 0 的區域引入一個小的斜率a(通常取0.01),避免了ReLU的神經元死亡問題。
    優點:在負區域保持微小的梯度,允許負值通過,提高模型性能。
    缺點:需要手動設置a值。
  • ELU(Exponential Linear Unit):
    https://ithelp.ithome.com.tw/upload/images/20240916/20169508cuEi7XR0XY.png
    特點:在 $x < 0$ 區域,輸出是負的指數函數,使輸出均值接近零,有助於加速學習。
    優點:結合了ReLU和Sigmoid的特點,減少了梯度消失和神經元死亡的問題。
    缺點:計算複雜度高於ReLU和Leaky ReLU。
  • Maxout:
    Maxout激活函數不是一個固定的函數,而是輸入向量中元素的最大值:
    https://ithelp.ithome.com.tw/upload/images/20240916/20169508WqjUzbLAAg.png
    特點:通過學習多個線性函數的最大值,能夠近似任何凸函數。
    優點:解決了ReLU的神經元死亡問題,並能學習到更複雜的激活模式。
    缺點:增加了參數數量,計算量較大。

https://ithelp.ithome.com.tw/upload/images/20240916/20169508jDn9r3MHY9.png
圖3 常見激活函數曲線


深度學習與傳統機器學習的區別

特徵工程

  • 傳統機器學習:需要人工設計特徵,這需要專家知識和大量時間。
  • 深度學習:能夠自動從原始數據中學習特徵,減少了對特徵工程的依賴。

模型複雜度與表現力

  • 傳統機器學習:模型通常較為簡單,適用於線性或低維數據。
  • 深度學習:多層非線性結構,具有強大的表現力,能夠處理高維、非線性的複雜數據。

訓練數據量

  • 傳統機器學習: 在小規模數據集上表現良好,但在大規模數據下難以取得進一步提升。
  • 深度學習:需要大量數據進行訓練,數據量越大,模型性能越好。
    https://ithelp.ithome.com.tw/upload/images/20240916/201695086JVU1QK2Jf.png
    圖4:傳統機器學習和深度學習在特徵提取和模型訓練過程中的區別

常用的深度學習框架

為了方便構建和訓練深度學習模型,開發者通常使用專門的深度學習框架。以下是兩個最流行的框架:

TensorFlow

  • 開發者: Google Brain 團隊
  • 特點:
    • 支持多種語言,包括Python、C++、Java等。
    • 提供豐富的API,支持高階和低階操作。
    • 具備強大的生產環境部署能力。
  • 應用:被廣泛應用於研究和工業界,如語音識別、圖像分類、自然語言處理等。

PyTorch

  • 開發者: Facebook's AI Research lab (FAIR)
  • 特點:
    • 動態計算圖,靈活性高,易於調試。
    • 與Python緊密集成,代碼風格簡潔明了。
    • 在研究社區廣受歡迎,更新速度快。
  • 應用:被廣泛用於學術研究和原型開發,如計算機視覺、強化學習等。
    https://ithelp.ithome.com.tw/upload/images/20240916/20169508r4R43Qmmr8.png
    圖5 TensorFlow和PyTorch是當前最流行的兩大深度學習框架。

深度學習的應用案例

計算機視覺

  • 圖像分類:識別圖像中的物體類別,如ImageNet大賽中取得優異成績的ResNet、Inception等模型。
  • 物體檢測與分割:定位圖像中的物體位置和輪廓,如Faster R-CNN、Mask R-CNN模型。
  • 人臉識別:應用於安防監控、身份驗證等領域,如FaceNet模型。
    https://ithelp.ithome.com.tw/upload/images/20240916/20169508UNYRP6bvTd.png
    圖6 深度學習在圖像分類、物體檢測和人臉識別中的應用示例。

自然語言處理

  • 機器翻譯:將一種語言自動翻譯為另一種語言,如Google翻譯使用的Transformer模型。
  • 情感分析:分析文本的情感傾向,應用於市場分析、輿情監控等。
  • 文本生成:自動生成文章、對話等,如OpenAI的GPT系列模型。

語音識別與合成

  • 語音識別: 將語音信號轉換為文字,如智能語音助手中的語音輸入。
  • 語音合成: 將文字轉換為語音,如語音導航、無障礙閱讀服務。
  • 語音分離與增強: 從混合音頻中分離出特定聲源,改善語音質量。
    https://ithelp.ithome.com.tw/upload/images/20240916/201695087fPoGDkOGl.png
    圖7:深度學習在語音識別、語音合成和語音增強中的應用示例。

深度學習的挑戰與未來方向

挑戰

  • 高計算資源需求: 訓練深度模型需要大量計算資源,訓練時間長,成本高。
  • 數據依賴性強: 需要大量高質量的標註數據,數據獲取和標註成本高。
  • 模型可解釋性差: 深度模型的內部機制複雜,難以解釋模型的決策過程。
  • 過擬合問題: 模型可能在訓練數據上表現良好,但在新數據上表現不佳。

未來方向

  • 自監督學習: 利用未標註數據進行訓練,降低對標註數據的依賴。
  • 模型壓縮與優化: 研究更高效的模型結構,如MobileNet、EfficientNet,適用於移動和嵌入式設備。
  • 可解釋人工智能: 增強模型的透明度,提供解釋模型決策的方法,提高用戶信任度。
  • 多模態學習: 結合圖像、語音、文本等多種數據,提高模型的認知能力。

深度學習在AI換臉技術中的應用

深度學習是實現AI換臉技術的核心。通過深度神經網絡,特別是生成對抗網絡(GAN),我們能夠生成逼真的人臉圖像,實現換臉效果。

生成對抗網絡(GAN)

  • 概念: GAN由生成器(Generator)和判別器(Discriminator)組成,兩者相互博弈,最終生成逼真的數據。
  • 應用於換臉技術: 生成器學習將一張臉轉換為目標臉,判別器則判斷生成的圖像是否真實。

自編碼器(Autoencoder)

  • 概念: 自編碼器是一種無監督學習模型,通過壓縮和解壓縮數據,學習數據的低維表示。
  • 應用於換臉技術: 自編碼器可以學習人臉的特徵表示,實現人臉的重建和轉換。
    https://ithelp.ithome.com.tw/upload/images/20240916/20169508iZWYcJbMjl.png
    圖8 生成對抗網絡在換臉技術中的結構示意圖。

總結

通過今天的學習,我們深入了解了深度學習的概念、結構和應用,並詳細探討了各種激活函數及其特性,這對理解和構建神經網絡模型至關重要。深度學習為我們開啟了新的可能性,未來我們將進一步探討生成式模型和具體的換臉技術實現。
那我們就明天見!


推薦資源

影片:究竟神經網路是什麼? l 第一章 深度學習


參考資料:

圖1 來源 History of deep learning
圖3 來源 Introduction to Exponential Linear Unit
圖4 來源 传统视觉方法与深度学习
圖5 來源PyTorch vs TensorFlow – Which to Pick ?
圖6 來源關於影像辨識,所有你應該知道的深度學習模型
圖7 來源深度学习在语音增强中的应用
圖8 來源Deepfake大解密!「換臉」技術更簡單,到底怎麼辦到的?


上一篇
2024 Day 1:人工智能與機器學習概論
下一篇
2024 Day 3:神經網絡(Neural Network)基礎
系列文
AI 到底是怎麼換臉的?31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言