深度學習——詳細教學:神經元、神經網絡、感知機、激活函數、損失函數、優化算法(梯度下降)

神經網絡實戰:

深度學習——神經網絡簡單實踐(在乳腺癌數據集上的小型二分類示例)-CSDN博客https://blog.csdn.net/2302_78022640/article/details/150779819?spm=1001.2014.3001.5502

深度學習——神經網絡(PyTorch 實現 MNIST 手寫數字識別案例)-CSDN博客https://blog.csdn.net/2302_78022640/article/details/150781035


深度學習:人工智能的核心驅動力

一、什么是深度學習

深度學習(Deep Learning)是機器學習的一個重要分支

核心是通過構建多層神經網絡(深度神經網絡)?模擬人類大腦的信息處理方式,從數據中自動學習特征和規律,最終實現對復雜任務的預測、分類或生成。

與傳統的機器學習相比,深度學習能夠自動從數據中提取特征,減少人工設計特征的工作量,并在語音識別、圖像處理、自然語言處理等領域取得了突破性成果。

通俗來說,深度學習的本質是用多層非線性變換將原始數據映射到更高層次的抽象特征空間,從而讓計算機更好地理解復雜問題。


二、深度學習的核心要素

1. 神經網絡(Neural Network)

大腦中的神經元:

計算機中的神經元:

x1~xn這些外部信息,通過w1~wn這些突觸,傳入到神經元,神經元再傳給其他神經元或輸出。

怎樣得到這樣的神經元(推導):

  • 邏輯回歸(Logistic Regression)?是神經網絡的理論基礎之一。

  • 邏輯回歸模型的形式和 單層感知機(即由一個或多個神經元構成的最簡單神經網絡(沒有隱藏層) 很相似:

    • 輸入 → 權重加權求和 → 激活函數 → 輸出概率。

  • 單層感知機與邏輯回歸的主要不同在于激活函數

所以以邏輯回歸為例,為了得到劃分線

假設y=kx+b:

最終得到的結果可變換為矩陣形式即:

得到的神經元即可表達為:

?非線性函數sigmoid曲線(激活函數):

神經元(Neuron)神經網絡的基本計算單元

神經元的作用:

輸入 → 權重加和 → 激活函數 → 輸出

訓練神經網絡所要得到的目標就是:最優參數權重Wi和偏置b(b在此神經元內即是w3)

而目前得到的 權重Wi和偏置b 并非最優

訓練過程

  • 我們輸入大量訓練數據

  • 神經元根據當前的權重和偏置計算輸出

  • 與真實標簽比較(用損失函數)

  • 通過反向傳播調整權重 wi 和偏置 b,讓輸出越來越接近真實標簽。

整個神經網絡:由很多神經元組成,層層堆疊,訓練后形成能解決任務的模型。

每個節點代表一種特定的輸出函數,稱為激活函數(activation function)。

兩個節點間的連接都代表一個對于通過該連接信號的加權值,稱之為權重

(中間綠色為神經元,兩側為輸入輸出)

1、設計一個神經網絡時,輸入層與輸出層的節點數往往是固定的,中間層則可以自由指定;

2、神經網絡結構圖中的拓撲與箭頭代表著預測過程時數據的流向,跟訓練時的數據流有一定的區別;

3、結構圖里的關鍵不是圓圈(代表“神經元”),而是連接線(代表“神經元”之間的連接)。每個連接線對應一個不同的權重(其值稱為權值),這是需要訓練得到的。

節點該如何確定?

輸入層的節點數:與特征的維度匹配

輸出層的節點數:與目標的維度匹配。

中間層(隱藏層)的節點數:一般是根據經驗來設置。預設幾個可選值,通過切換這幾個值來看整個模型的預測效果,選擇效果最好的值作為最終選擇。

層次結構:輸入層 → 隱藏層 → 輸出層。(深度學習的“深”就來自于隱藏層的數量)

每個隱藏層 = 由多個神經元組成的一層

  • 一個神經元是一個點,而一層通常包含幾十、幾百、甚至上千個神經元。

  • 每一層的神經元 并行計算,然后把結果傳遞給下一層。

作用:

  • 輸入層:接收原始數據(像素、特征)。(對于圖片,像素就是其特征)

  • 隱藏層:由許多神經元組成,負責特征提取和非線性變換。

  • 輸出層:最終給出預測結果。


2.感知機(Perceptron)

單層感知機:

(輸入層→ 輸出層,無隱藏層)

用矩陣乘法來表達:

使用越階函數等激活函數,本質上是一種線性分類器,只能解決線性可分問題。

解釋:單層感知機的學習能力非常有限,對與像異或問題這樣的線性不可分情形,單層感知機就搞不定(線性不可分即輸入訓練數據存在一個線性超平面能夠將其進行線性分類

單層感知機即使使用非線性激活函數(如 Sigmoid、ReLU 等),仍然無法解決非線性可分問題,核心原因在于其網絡結構的局限性,而非激活函數本身。“輸入特征的線性組合” 是對輸入的一次線性變換(即權重與輸入的內積),而激活函數只是對這個線性結果進行 “非線性映射”。

多層感知器:

多層感知機(MLP)是最經典、最基礎的神經網絡結構

增加了隱藏層。隱藏層是神經網絡可以做非線性分類的關鍵。

第一層的輸出是對輸入的 “非線性特征映射”(線性變換 + 激活函數)

第二層再對這些非線性特征進行線性組合 —— 最終的決策邊界可以是曲線、曲面等非線性形式

假設我們的預測目標是一個向量,那么與前面類似,只需要在“輸出層”再增加節點即可。


3. 激活函數(Activation Function)

激活函數是神經網絡的“非線性開關”

其核心作用是為網絡注入非線性能力,使模型能夠學習和表示復雜的非線性關系。

常見類型

  • 階躍函數:最簡單的激活函數,輸出只有 0 或 1。

激活函數PyTorch 調用方式數學公式輸出范圍常見使用場景
Sigmoidnn.Sigmoid()torch.sigmoid(x)(0, 1)二分類輸出層
Tanhnn.Tanh()torch.tanh(x)(-1, 1)RNN、隱藏層
ReLUnn.ReLU()torch.relu(x)[0, ∞)CNN、MLP 隱藏層
Leaky ReLUnn.LeakyReLU(negative_slope=0.01)(-∞, ∞)改進版 ReLU
ELUnn.ELU(alpha=1.0)(-α, ∞)深層網絡
Swishtorch.nn.SiLU()torch.sigmoid(x) * x(-∞, ∞)Google 深度 CNN
Softmaxnn.Softmax(dim=1)torch.softmax(x, dim=1)(0,1),和=1多分類輸出層
Softplusnn.Softplus()(0, ∞)特殊任務
Maxout需自定義層(-∞, ∞)NLP、圖像分類

為什么需要激活函數

在神經元計算中:如果沒有激活函數,整個網絡就是線性函數的堆疊(多層線性還是線性),無法表示復雜關系。

激活函數的作用

  1. 引入非線性:讓神經網絡能夠逼近任意復雜函數(通用逼近定理)。

  2. 增加表達能力:不同函數適合不同任務。

  3. 控制輸出范圍:比如 Sigmoid 把輸出壓縮到 (0,1),適合概率建模。


4. 損失函數(Loss Function)

損失函數的作用:使得參數盡可能的與真實的模型接近。

1、衡量預測效果

  • 如果損失值很小,說明預測結果和真實結果接近;

  • 如果損失值很大,說明預測結果和真實結果差得遠。

2、指導參數更新

  • 訓練神經網絡時,目標是 最小化損失函數

  • 通過 梯度下降(Gradient Descent),我們利用損失函數對參數的梯度,更新神經元的權重和偏置。

3、防止過擬合 / 欠擬合

  • 一些損失函數里會引入 正則化懲罰項(比如 L1/L2 正則化),幫助模型防止過擬合:? 通過在損失函數中加入 “正則項”(懲罰項),人為增加 “復雜模型” 的損失,迫使模型在 “擬合訓練數據” 和 “保持自身簡單” 之間做權衡

  • 損失函數 = 預測誤差(如均方誤差、交叉熵) + 正則項(模型復雜度懲罰)

在訓練神經網絡中的損失函數:

  1. 輸入數據:外部信息xi(同時給所有參數賦上隨機值。我們使用這些隨機生成的參數值,來預測訓練數據中的樣本。)

  2. 前向傳播:計算預測值

  3. 計算損失:用損失函數比較預測值? 和真實標簽 y

  4. 反向傳播:根據損失函數的梯度更新權重 W,b (BP神經網絡(Back-propagation,反向傳播))

  5. 迭代優化,直到損失函數收斂

常用的損失函數

0-1損失函數

均方差損失(MSE)

平均絕對差損失

交叉熵損失(Cross Entropy)

合頁損失

損失函數PyTorch 調用方式數學公式輸出范圍常見使用場景
均方誤差 (MSELoss)nn.MSELoss()[0, ∞)回歸任務
平均絕對誤差 (L1Loss/MAE)- 不光滑,優化困難y_i - \hat{y}_i- 抗異常值
交叉熵 (CrossEntropyLoss)nn.CrossEntropyLoss()(0, ∞)多分類任務
二元交叉熵 (BCELoss)nn.BCELoss()(0, ∞)二分類任務
帶 Logits 的 BCE (BCEWithLogitsLoss)nn.BCEWithLogitsLoss()(0, ∞)二分類任務
KL 散度 (KLDivLoss)- 不對稱( D_{KL}(P- 度量分布差異
Huber Loss (SmoothL1Loss)[0, ∞)(\text{Huber}(y,\hat{y})=\begin{cases} \frac{1}{2}(y-\hat{y})^2 &y-\hat{y}-\frac{1}{2}\delta) & \text{else} \end{cases})
負對數似然 (NLLLoss)nn.NLLLoss()(0, ∞)多分類任務
余弦相似度損失 (CosineEmbeddingLoss)nn.CosineEmbeddingLoss()[0, 2]序列/文本相似度
對比損失 (ContrastiveLoss)需自定義實現[0, ∞)Siamese 網絡
Triplet Lossnn.TripletMarginLoss(margin=1.0)[0, ∞)人臉識別、度量學習


5. 優化算法(Optimization)

深度學習常用的優化方法是 梯度下降(Gradient Descent)

梯度可以定義為一個函數的全部偏導數構成的向量,梯度向量的方向即為函數值增長最快的方向

不斷調整神經網絡的參數(權重 W?和偏置 b),使得損失函數的值盡可能小。

本質:

  • 找到一個參數組合,使得損失函數 L(W,b) 達到最小值;

  • 梯度下降就是通過不斷“往損失函數下降最快的方向走”,逐步接近最優解。

常見優化算法:

優化算法PyTorch 調用方式特點
批量梯度下降 (BGD)手動實現,一般不用現成類每次用全部數據更新
隨機梯度下降 (SGD)torch.optim.SGD(model.parameters(), lr=0.01)每次用單個樣本更新
小批量梯度下降 (Mini-Batch SGD)torch.optim.SGD(model.parameters(), lr=0.01, batch_size=32)(通過 DataLoader 控制批量)平衡了穩定性和效率
Adamtorch.optim.Adam(model.parameters(), lr=0.001, betas=(0.9,0.999))結合 Momentum + RMSProp
Momentumtorch.optim.SGD(model.parameters(), lr=0.01, momentum=0.9)在 SGD 基礎上加動量項
NAG (Nesterov Accelerated Gradient)torch.optim.SGD(model.parameters(), lr=0.01, momentum=0.9, nesterov=True)預判未來位置再更新
Adagradtorch.optim.Adagrad(model.parameters(), lr=0.01)對每個參數自適應學習率
RMSProptorch.optim.RMSprop(model.parameters(), lr=0.001, alpha=0.9)引入指數加權平均
AdamWtorch.optim.AdamW(model.parameters(), lr=0.001, weight_decay=0.01)改進 Adam 正則化

三、常見的深度學習模型

1. 卷積神經網絡(CNN)

主要用于 圖像識別與處理。CNN 通過卷積層和池化層自動提取圖像的空間特征,典型應用有人臉識別、目標檢測。

2. 循環神經網絡(RNN)

擅長處理 序列數據,如時間序列預測、語音識別、機器翻譯。其改進版本 LSTM、GRU 解決了長序列的梯度消失問題。

3. Transformer

近年來最火的模型架構,基于 自注意力機制(Self-Attention)。Transformer 是 ChatGPT、BERT 等自然語言處理模型的核心。


四、深度學習的應用領域

  1. 計算機視覺(CV)

    • 人臉識別

    • 自動駕駛(目標檢測、車道檢測)

    • 醫學影像診斷

  2. 自然語言處理(NLP)

    • 智能翻譯

    • 問答系統

    • 文本生成

  3. 語音處理

    • 語音識別(語音轉文字)

    • 語音合成(智能助手發聲)

  4. 推薦系統

    • 電商推薦

    • 視頻內容推薦


五、深度學習的挑戰

  1. 數據需求大:深度模型通常需要大量標注數據。

  2. 計算成本高:GPU/TPU 等硬件加速是訓練大模型的關鍵。

  3. 可解釋性差:模型常常被視為“黑箱”,難以解釋其決策過程。

  4. 過擬合風險:如果模型太復雜而數據不足,容易只記住訓練集而無法泛化。


六、未來發展趨勢

  • 輕量化模型:移動端部署的需求推動模型壓縮與蒸餾技術。

  • 多模態學習:同時理解文本、圖像、語音等多種模態信息。

  • 可解釋性研究:讓模型的決策邏輯更透明。

  • 通用人工智能(AGI):深度學習將繼續作為核心推動力,向更通用、更強大的智能發展。


七、總結

深度學習是人工智能領域的核心技術,它的成功源于 大數據、強計算力與新算法 的結合。從圖像到語音,從文本到多模態,深度學習正在讓計算機具備前所未有的感知和理解能力。盡管存在挑戰,但它無疑是推動未來社會智能化的重要力量。


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

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

相關文章

Ubuntu 軟件安裝的五種方法

1、App Store 安裝 Ubuntu 里面有 一個App叫 “Ubuntu軟件” 2、Sudo apt-get install 安裝法 注意 使用apt工具安裝軟件,需要sudo,也就是root權限 例子 apt -get install git 會提示查看是否以root用戶運行,install-安裝sudo a…

Day15 (前端:JavaScript基礎階段)

接續上文:Day14——JavaScript 核心知識全解析:變量、類型與操作符深度探秘-CSDN博客 點關注不迷路喲。你的點贊、收藏,一鍵三連,是我持續更新的動力喲!!! 主頁:一位搞嵌入式的 genius-CSDN博…

在線旅游及旅行管理系統項目SQL注入

1.前言 之前在網上隨便逛逛的時候,發現一個有各種各樣的PHP項目的管理系統,隨便點進一個查看,發現還把mysql版本都寫出來了,而且還是PHP語言。 https://itsourcecode.com/free-projects/php-project/online-tours-and-travels-m…

Java網絡編程(UDP, TCP, HTTP)

1. OSI 七層網絡模型層級名稱核心功能協議示例數據單元7應用層提供用戶接口和網絡服務HTTP, FTP, SMTP, DNS報文6表示層數據格式轉換、加密/解密、壓縮/解壓SSL, JPEG, MPEG數據流5會話層建立、管理和終止會話連接NetBIOS, RPC會話數據4傳輸層端到端可靠傳輸、流量控制、差錯校…

【P2P】P2P主要技術及RELAY服務1:python實現

P2P 技術 P2P(點對點)網絡的核心是去中心化的網絡拓撲和通信協議。DP的應用相對較少,但可能出現在: 路由優化:在一些復雜的P2P網絡中,一個節點需要向另一個節點發送消息。為了找到一條延遲最低或跳數最少的路徑,可能會用到類似最短路徑的算法,而這類算法(如Bellman-F…

docker 安裝 redis 并設置 volumes 并修改 修改密碼(一)

在 Docker 中安裝 Redis 并設置volumes持久化數據,同時修改 Redis 密碼的完整步驟如下: 安裝 Docker 如果還沒有安裝 Docker,可以參考以下步驟安裝: 在 Alibaba Cloud Linux 上安裝 Docker # 更新系統 sudo yum update -y# 安裝 Docker 依賴 sudo yum install -y yum-util…

如何找出所有連接到本機指定端口的客戶端 IP

在日常運維或排查網絡問題時,我們常常需要知道:有哪些客戶端正在連接我的服務?連接數是否異常?是否存在惡意掃描或 DDoS 行為?本文將教你使用一條簡潔高效的 Linux 命令組合,統計連接到本機某個端口&#x…

java IDE安裝idea社區版步驟

IntelliJ IDEA 社區版(Community Edition)是一款功能強大且完全免費的集成開發環境,非常適合 Java 和 Kotlin 初學者或進行基礎開發2。我會為你提供詳細的安裝步驟。 🛠 IntelliJ IDEA 社區版安裝指南 📋 系統要求與…

Agent智能體

什么是 Agent? Agent 是一個智能體,可以接收用戶請求,利用大模型(LLM)的推理能力,自動決定: 自己回答還是調用外部工具(數據庫、API、腳本等) 最終把結果返回給用戶。 能…

【VSCode】使用VSCode打開md文件以及轉化為PDF

【VSCode】使用VSCode打開md文件以及轉化為PDF在 Visual Studio Code (VS Code) 中渲染 Markdown 并保存為 PDF,可以通過以下步驟實現。 首先安裝好 VSCode,可以參考下述鏈接 https://blog.csdn.net/weixin_43848614/article/details/148042035 安裝m…

蘋果ImageIO零日漏洞分析:攻擊背景與iOS零點擊漏洞歷史對比

蘋果公司已緊急發布全生態系統安全更新,修復編號為CVE-2025-43300的ImageIO框架高危零日漏洞(zero-day),該漏洞已被用于復雜的定向攻擊。這是蘋果在2025年修復的第七個零日漏洞,凸顯iOS和macOS設備面臨的威脅持續升級。…

面試 TOP101 遞歸/回溯專題題解匯總Java版(BM55 —— BM61)

8月刷題挑戰,多重好禮等你拿 遞歸/回溯 題號題目名稱核心思路時間復雜度空間復雜度代碼亮點牛客原題鏈接BM55沒有重復項數字的全排列使用回溯法生成所有排列O(n!)O(n)使用回溯法生成所有排列,邏輯清晰🔗 直達BM56有重復項數字的全排列使用回…

音頻相關數學知識

時域(Time domain)是描述數學函數或物理信號對時間的關系,如果聲音對應頻率正負波動,對應事件x軸為時間,y軸為振幅頻域信號在頻率方面特性,如射頻范圍正弦型函數可以用來虛擬音頻,正弦&#xff…

SAP-ABAP:SAP HANA 架構解析:主從(Scale-Out)與主備(High Availability)架構深度對比

SAP HANA 架構解析:主從(Scale-Out)與主備(High Availability)架構深度對比 一、架構概述 在SAP HANA數據庫系統中,兩種核心架構模式解決了不同的業務需求:主從架構(Scale-Out&#…

【Hadoop】HDFS 分布式存儲系統

Namenode是整個HDFS文件系統的前端,只有一個,管理數據塊映射信息,配置副本策略,處理客戶端的讀寫請求。Secondary namenode是namenode的熱備,當active namenode出現故障時,快速切換為新的active namenode。…

[特殊字符] 如何在自己的倉庫開發,同時保持同步原作者更新(超詳細教程)

在開源協作開發中,很多時候我們會遇到這樣一種情況: 👉 我們想基于一個開源項目繼續開發,代碼要推送到自己的倉庫里; 👉 但原作者可能還會更新,我們也希望能隨時把最新的改動同步過來。 本文以 …

Spring Ai (Function Calling / Tool Calling) 工具調用

1.工具調用介紹 工具調用是現代大語言模型(LLM)的一項重要能力,允許模型在生成回復時“決定”是否需要調用某個外部函數來獲取信息或執行操作。例如: 聯網搜索 (實現查詢到大模型未學習和RAG知識庫中不存在的數據&am…

LabVIEW 正弦波噪聲濾波

利用 LabVIEW 搭建程序,先合成含噪正弦波(正弦信號與高通濾波后的噪聲疊加),再通過低通濾波提取純凈正弦波,實現噪聲去除,常用于信號處理、測試測量場景,驗證濾波算法對正弦信號的降噪效果。?功…

基于django的梧桐山水智慧旅游平臺設計與開發(代碼+數據庫+LW)

摘要 隨著信息技術的飛速發展,旅游行業面臨著用戶需求多樣化、信息獲取不便、服務體驗不佳等問題。傳統的旅游服務多依賴人工管理和線下宣傳,難以高效整合資源與提供個性化服務。為解決這些問題,本文設計開發一個基于Django的梧桐山水智慧旅…

微服務相關面試題

寫在前面 🔥我把后端Java面試題做了一個匯總,有興趣大家可以看看!這里👉 ??在反復復習面試題時,我發現不同資料的解釋五花八門,容易造成概念混淆。尤其是很多總結性的文章和視頻,要么冗長難…