【AI前沿】深度學習基礎:訓練神經網絡

文章目錄

  • 📑前言
  • 一、前向傳播與反向傳播
    • 1.1 前向傳播(Forward Propagation)
    • 1.2 反向傳播(Backpropagation)
  • 二、損失函數和優化算法
    • 2.1 損失函數(Loss Function)
    • 2.2 優化算法(Optimization Algorithms)
  • 三、梯度下降法及其變種
    • 3.1 梯度下降法(Gradient Descent)
    • 3.2 梯度下降法的變種
  • 四、小結

📑前言

深度學習是當今人工智能領域的核心技術,尤其在圖像處理、語音識別、自然語言處理等領域表現出色。要理解深度學習,首先需要掌握神經網絡的訓練過程,包括前向傳播、反向傳播、損失函數、優化算法以及梯度下降法及其變種。

一、前向傳播與反向傳播

1.1 前向傳播(Forward Propagation)

前向傳播是神經網絡的計算過程,通過輸入層傳遞到輸出層。每個神經元接收輸入信號,進行加權求和,并通過激活函數得到輸出。這個過程層層遞進,最終在輸出層得到預測結果。以下是一個簡單的前向傳播過程的步驟:

  1. 輸入層: 輸入數據 x 傳入網絡。
  2. 隱藏層: 每個隱藏層節點在這里插入圖片描述接收上一層節點的輸出,并進行加權求和:image.png其中 image.png是權重,image.png是偏置。
  3. 激活函數: 通過激活函數image.png,將線性組合結果非線性化。
  4. 輸出層: 類似隱藏層的計算方式,最終輸出預測結果。

通過前向傳播,神經網絡可以將輸入映射到輸出,這一過程是通過層層傳遞的方式實現的。

1.2 反向傳播(Backpropagation)

反向傳播是神經網絡訓練的核心算法,用于調整網絡的權重和偏置,以最小化預測結果與真實值之間的誤差。其基本步驟如下:

  1. 計算損失: 使用損失函數計算預測輸出image.png與真實標簽 image.png 之間的誤差 image.png
  2. 反向傳遞誤差: 從輸出層開始,逐層向后計算每個神經元的誤差,并傳遞到前一層。
  3. 計算梯度: 對每個權重和偏置,計算損失函數關于它們的梯度 image.png
  4. 更新權重和偏置: 使用梯度下降法或其變種,更新網絡的權重和偏置,使得損失函數值逐步減小。

反向傳播的核心在于鏈式法則,通過逐層計算和傳播梯度,最終調整所有參數,使網絡的預測能力不斷提高。

二、損失函數和優化算法

2.1 損失函數(Loss Function)

損失函數是衡量神經網絡預測值與真實值之間差距的指標。常見的損失函數有:

  • 均方誤差(MSE): 主要用于回歸問題,計算預測值與真實值之間的平方誤差平均值。
    image.png
  • 交叉熵損失(Cross-Entropy Loss): 主要用于分類問題,衡量預測概率分布與真實分布之間的差異。
    image.png

2.2 優化算法(Optimization Algorithms)

優化算法用于調整神經網絡的權重和偏置,以最小化損失函數值。常見的優化算法包括:

  • 梯度下降法(Gradient Descent): 通過計算損失函數的梯度,并沿著梯度的反方向更新參數,逐步減小損失函數值。
  • 隨機梯度下降(SGD): 每次僅使用一個或小批量樣本來計算梯度并更新參數,適用于大規模數據集。
    image.png
  • 動量法(Momentum): 在更新參數時加入前一次更新的動量,幫助加速收斂并減少震蕩。
    image.png
  • AdaGrad: 根據梯度歷史動態調整學習率,對稀疏數據表現良好。
    image.png
  • RMSprop: 結合了動量和AdaGrad的優點,通過指數加權平均平滑梯度平方和。
    image.png
  • Adam: 結合動量和RMSprop,適用于各種類型的神經網絡和數據集。
    image.png

三、梯度下降法及其變種

3.1 梯度下降法(Gradient Descent)

梯度下降法是神經網絡訓練中最基本的優化算法,通過計算損失函數相對于參數的梯度,并沿梯度的反方向更新參數。基本的梯度下降法步驟如下:

  1. 初始化參數: 隨機初始化網絡的權重和偏置。
  2. 計算梯度: 使用反向傳播算法,計算損失函數關于每個參數的梯度。
  3. 更新參數: 根據梯度和學習率,更新網絡的權重和偏置。
    image.png

其中,η 為學習率,控制每次更新的步長。

3.2 梯度下降法的變種

為了提高訓練效率和效果,梯度下降法有多種變種,每種變種都有其獨特的特點和應用場景:

  1. 批量梯度下降(Batch Gradient Descent):
    • 使用整個訓練集來計算梯度和更新參數。
    • 優點:每次更新都使用了全部數據,梯度計算準確。
    • 缺點:計算開銷大,內存占用高,不適用于大規模數據集。
  2. 隨機梯度下降(Stochastic Gradient Descent, SGD):
    • 每次僅使用一個樣本來計算梯度并更新參數。
    • 優點:計算速度快,適用于大規模數據集。
    • 缺點:梯度更新波動較大,可能導致收斂速度慢。
  3. 小批量梯度下降(Mini-Batch Gradient Descent):
    • 使用一個小批量樣本來計算梯度并更新參數。
    • 優點:折中批量梯度下降和隨機梯度下降的優點,計算效率高,收斂較快。
    • 缺點:需要選擇合適的批量大小(通常在32到256之間)。
  4. 動量法(Momentum):
    • 在梯度更新中引入動量,幫助加速收斂并減少震蕩。
    • 公式:
      image.png
    • 優點:在凹谷形狀的損失面中加速收斂,減少震蕩。
  5. AdaGrad:
    • 根據梯度歷史動態調整學習率,對稀疏數據表現良好。
    • 公式:
      image.png
    • 優點:在學習率調整上表現出色,適用于稀疏數據集。
    • 缺點:學習率可能會過早地變得過小。
  6. RMSprop:
  • 結合了動量和AdaGrad的優點,通過指數加權平均平滑梯度平方和。
  • 公式:
    image.png
  • 優點:在深度學習中表現穩定,適應性好。
  1. Adam(Adaptive Moment Estimation):
    • 結合動量和RMSprop,適用于各種類型的神經網絡和數據集。
    • 公式:
      image.png
    • 優點:廣泛適用,具有良好的收斂性和穩定性。

四、小結

神經網絡的訓練過程是深度學習的核心,前向傳播和反向傳播是其基本步驟,而損失函數和優化算法則決定了模型的性能。梯度下降法及其變種提供了多種優化選擇,使得神經網絡能夠高效地學習和改進。

image.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/44453.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/44453.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/44453.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

極狐Gitlab使用

目錄 續接上篇:極狐Gitlab安裝部署-CSDN博客 1. 關閉注冊功能 2. 創建群組 3. 創建用戶 5. 邀請成員到群組 6. 設置導入導出項目源 7. 通過gitee導入庫 8. 通過倉庫URL導入 9. 自創建項目 10. 默認分支main的權限 11. 使用普通用戶進入自建庫 12. 創建用…

python的isinstance和type

class A:passclass B(A)passbB()#isinstance可以進行繼承關系的判斷 print(isinstance(b,B))#Trueprint(isinstance(b,A))#Trueprint(type(b) is B)#Trueprint(type(b) is A)#Falseprint(type(b),A,B,b)#<class __main__.B> <class __main__.A> <class __main__…

B. Corner Twist(cf956)

題意&#xff1a;給你兩個網格&#xff0c;a和b&#xff0c;都是n行和 m 列。網格中的所有數值都是 0 &#xff0c; 1 或 2 。 您可以多次對 a&#x1d44e; 執行以下操作&#xff1a; 選取網格中任意一個長寬的子矩形。您可以選擇整個網格作為子矩形。子矩形有四個角。取所選…

【Linux 線程】線程的基本概念、LWP的理解

文章目錄 一、ps -L 指令&#x1f34e;二、線程控制 一、ps -L 指令&#x1f34e; &#x1f427; 使用 ps -L 命令查看輕量級進程信息&#xff1b;&#x1f427; pthread_self() 用于獲取用戶態線程的 tid&#xff0c;而并非輕量級進程ID&#xff1b;&#x1f427; getpid() 用…

生成日志系統和監控

背景&#xff1a;已知某后臺服務將日志存放在本地硬盤的日志文件中&#xff0c;該服務也支持代碼熱更新&#xff0c;并在完成熱更新后輸出一條日志。我們需要對服務日志進行監控&#xff0c;以確保文件熱更新后的錯誤能被第一時間發現。 我們提供 Python 程序模擬&#xff08;…

matlab仿真 模擬調制(上)

&#xff08;內容源自詳解MATLAB&#xff0f;SIMULINK 通信系統建模與仿真 劉學勇編著第五章內容&#xff0c;有興趣的讀者請閱讀原書&#xff09; 1.幅度調制 clear all ts0.0025; %信號抽樣時間間隔 t0:ts:10-ts;%時間矢量 fs1/ts;%抽樣頻率 dffs/length(t); %fft的頻率分…

國內從事人機交互的團隊——浙江工業大學

一、背景 當我們選擇一個新的課題后&#xff0c;需要清楚的了解從事該方向的團隊都有哪些&#xff0c;這樣可以及時跟蹤和學習大牛團隊的最新進展&#xff0c;以免自己認為的good idea&#xff0c;其實早就已經研究過了。 隨著人形機器人的發展&#xff0c;機器人不僅需要在無…

人類遠未觸及自然規律的本質

我想知道上帝是如何創造這個世界的&#xff0c;對于這樣或那樣的現象我不感興趣&#xff0c;我想知道的是他的思想&#xff0c;其余的都是細枝末節。——愛因斯坦 人類對自然規律的研究已經取得了不少進展&#xff0c;但是看起來研究清楚了原理&#xff0c;其實只是發現了更深…

【Windows】實現窗口子類化(基于遠程線程注入)

目錄 前言 原理解釋 完整項目 相關文獻 文章出處鏈接&#xff1a;[https://blog.csdn.net/qq_59075481/article/details/140334106] 前言 眾所周知&#xff0c;DLL 注入有多種用途&#xff0c;如熱修補、日志記錄、子類化等。本文重點介紹使用 DLL 注入對窗口進行子類化。…

mysql中count的區別

count(1)和count(*) 從執行計劃來看&#xff0c;count(1)和count(*)的效果是一樣的當表的數據量大些時&#xff0c;對表分析之后&#xff0c;使用count(1)還要比使用count(*)用時多當數據量在1W以內時&#xff0c;count(1)會比count(*)的用時少&#xff0c;不過也差不多如果cou…

GOLLIE : ANNOTATION GUIDELINES IMPROVE ZERO-SHOT INFORMATION-EXTRACTION

文章目錄 題目摘要引言方法實驗消融 題目 Gollie&#xff1a;注釋指南改進零樣本信息提取 論文地址&#xff1a;https://arxiv.org/abs/2310.03668 摘要 大型語言模型 (LLM) 與指令調優相結合&#xff0c;在泛化到未見過的任務時取得了重大進展。然而&#xff0c;它們在信息提…

又上熱搜!曝iPhone 16將支持40W快充

ChatGPT狂飆160天&#xff0c;世界已經不是之前的樣子。 更多資源歡迎關注 7月9日晚&#xff0c;微博話題“iPhone16系列或將支持40W快充”上了熱搜榜&#xff0c;這已經是iPhone 16系列第N次上熱搜了。 據爆料&#xff0c;iPhone 16系列充電功率將提升至40W&#xff0c;并且…

Java自己實現動態數組

數組是由一組元素&#xff08;值或變量&#xff09;組成的數據結構&#xff0c;每個元素有至少一個索引或鍵來標識。 數組內的元素是連續存儲的&#xff0c;所以數組中元素的地址&#xff0c;可以通過其索引計算出來 空間占用 Java 中數組結構為 8 字節 markword 4 字節 cl…

米家立式學習燈怎么樣?書客、米家、孩視寶三款護眼大路燈巔峰PK!

米家立式學習燈怎么樣?不知從什么時候開始&#xff0c;青少年成為了近視重災區&#xff0c;主要促成近視的原因有長時間接觸電子產品、學習時的不正確姿勢、不良的燈光環境等&#xff0c;除了減少電子產品的使用以及多室外活動之外&#xff0c;剩下的就是室內孩子經常學習的光…

全球首款集成GPT-4o的智能眼鏡AirGo Vision:AI眼鏡的未來

引言 在人工智能和大模型技術迅猛發展的今天&#xff0c;AI硬件產品逐漸走入人們的生活。繼Meta Ray-Ban智能眼鏡之后&#xff0c;Solos公司在最近的香港智能眼鏡峰會上發布了全球首款集成GPT-4o的智能眼鏡AirGo Vision。本文將深入探討這款AI智能眼鏡的功能、技術特點以及其在…

侯捷C++面向對象高級編程(下)-2-non-explicit one argument constructor

1.構造函數 構造函數: Fraction(int num, int den 1) 初始化分子和分母&#xff0c;允許指定分子 num 和可選的分母 den。默認情況下&#xff0c;分母為 1。 加法運算符重載: Fraction operator(const Fraction& f) 重載了加法運算符 。這使得兩個 Fraction 對象可以通過 …

Qt 異步實現事件的定時執行 - QTimer和QThread的聯合使用

異步實現事件的定時執行 - QTimer和QThread的聯合使用 引言一、核心源碼二、其信號和槽函數簡述三、定時器及其moveToThread簡述 引言 在 Qt 中&#xff0c;如果想要定時執行某些事件或函數&#xff0c;通常會使用 QTimer 類。QTimer 允許設置一個時間間隔&#xff0c;當這個時…

echarts使用自定義圖形實現3D柱狀圖

先看下效果吧 實現思路 使用graphic創建并注冊自定義圖形。根據每組的數據值&#xff0c;得到一個對應的點&#xff0c;從點出發用canvas繪制一組圖形&#xff0c;分別為 頂部的菱形 const CubeTop echarts.graphic.extendShape({buildPath: function (ctx, shape) {const c1…

c++ primer plus 第15章友,異常和其他,15.3.8exception 類

c primer plus 第15章友&#xff0c;異常和其他,15.3.8exception 類 15.3.8exception 類 文章目錄 c primer plus 第15章友&#xff0c;異常和其他,15.3.8exception 類15.3.8exception 類1.stdexcept異常類3.空指針和 new 15.3.8exception 類 C異常的主要目的是為設計容錯程序…

NVIDIA良心給顯卡免費升級,只為挨更多的罵

起猛了&#xff0c;還真的以為 NVIDIA 良心發現了。 眾所周知&#xff0c;英偉達對于咱們普通游戲玩家向來不屑一顧。只因為游戲業務在 NVIDIA 收入中占比較少。 在最新的 40 系顯卡 RTX 4070 Ti Super 顯卡中&#xff0c;NVIDIA悄悄給它來了一次核心「升級」&#xff0c;將原…