神經網絡與模型訓練過程筆記

1.專有名詞

ANN

????????人工神經網絡,一種受生物神經元啟發的監督學習算法。輸入數據通過網絡中的層級函數傳遞,激活特定神經元。函數復雜度越高,模型對數據的擬合能力越強,預測精度越高。

偏置項

????????其中x下表從1開始的是輸入變量,\omega下標為0的是偏置項,從1開始的都是權重。

前向傳播

????????前向傳播是神經網絡的核心計算過程,指輸入數據從輸入層逐層傳遞到輸出層的路徑。其目的是通過網絡的權重和激活函數,計算最終的預測輸出。

????????如果隱藏層沒有非線性激活函數,那么輸入和輸出是線性關系的。

激活函數

????????激活函數是神經網絡的核心組件,用于引入非線性,使網絡能夠擬合復雜的數據模式。如果沒有激活函數,神經網絡將退化為線性回歸模型。

????????假如激活函數為Sigmoid函數。

損失值

????????損失值是神經網絡訓練的核心指標,用于衡量模型預測結果與真實值之間的差異。通過最小化損失值,模型逐步優化參數,提升預測精度。

連續變量預測過程中計算損失值

????????其中,y_i實際輸出,\hat{y}是由神經網絡\eta(權重為\theta)得到的預測輸出,x_i輸入,m為訓練的樣本數。

????????假設上面的圖預測的是連續變量。

離散變量預測過程中計算損失值

? ? ? ? 二元交叉熵

? ? ? ? 分類交叉熵

????????

反向傳播

  • 反向傳播是“反著來”的過程,用于根據損失函數對各個權重進行微調。

  • 關鍵步驟:

    1. 每次只對網絡中每個權重做一點點修改(微調)

    2. 測量在權重變化(\delta W)時,損失值(Loss)的變化(\delta L)情況(偏導數)

    3. 使用學習率 k控制更新步長:

學習率

????????是一個控制每次更新步幅的超參數。太大容易發散,太小學習慢。有助于在訓練時穩定地下降損失函數,使模型最終達到最優或近似最優的狀態。

epoch

????????所有數據被重復用于訓練若干次,每一次完整地訓練整個數據集叫做一個 epoch

梯度下降

? ? ? ? 更新權重以減少誤差值的整個過程稱為梯度下降。

實現向前傳播

import numpy as npdef feed_forward(inputs, outputs, weights):# 計算隱藏層的加權輸入:inputs 與隱藏層權重 weights[0] 做點積,加上偏置 weights[1]pre_hidden = np.dot(inputs, weights[0]) + weights[1]# 使用 sigmoid 激活函數對隱藏層加權輸入進行非線性變換hidden = 1 / (1 + np.exp(-pre_hidden))# 計算輸出層的加權輸入:隱藏層輸出與輸出層權重 weights[2] 做點積,加上偏置 weights[3]pred_out = np.dot(hidden, weights[2]) + weights[3]# 計算預測輸出與實際輸出之間的均方誤差(MSE)mean_squared_error = np.mean(np.square(pred_out - outputs))# 返回均方誤差作為損失值return mean_squared_error
  • 輸入特征 → 加權求和 → 加上偏置

  • 進入隱藏層(激活函數變換)

  • 再次加權 → 輸出預測結果

  • 比較預測值和真實值 → 得到損失

實現梯度下降算法

from copy import deepcopy# 更新神經網絡的權重
def update_weights(inputs, outputs, weights, lr):"""使用數值梯度下降法更新神經網絡的權重。enumerate(),用來在遍歷可迭代對象(如列表、元組)時,同時獲取元素的索引和值。參數:inputs  —— 輸入數據,形狀為 (樣本數, 輸入特征數)outputs —— 真實標簽,形狀為 (樣本數, 輸出特征數)weights —— 當前神經網絡的權重列表(包含4個部分)lr      —— 學習率(learning rate),控制更新步長返回:updated_weights —— 更新后的權重original_loss   —— 更新前的損失(MSE)"""original_weights = deepcopy(weights)     # 保存原始權重(不修改)temp_weights = deepcopy(weights)         # 用于臨時嘗試修改某個權重updated_weights = deepcopy(weights)      # 保存最終更新后的權重original_loss = feed_forward(inputs, outputs, original_weights)  # 當前權重下的損失# 遍歷每一層的權重(共4個部分:輸入到隱藏權重、隱藏偏置、隱藏到輸出權重、輸出偏置)for i, layer in enumerate(original_weights):# 遍歷當前層中的每個元素(權重或偏置)for index, weight in np.ndenumerate(layer):temp_weights = deepcopy(weights)  # 復制當前權重temp_weights[i][index] += 0.0001  # 對當前權重增加一個微小擾動(用于計算導數)_loss_plus = feed_forward(inputs, outputs, temp_weights)  # 計算擾動后新的損失# 使用數值導數公式估計梯度:grad ≈ (L(w+ε) - L(w)) / εgrad = (_loss_plus - original_loss) / (0.0001)# 用梯度下降法更新當前權重:w = w - lr * gradupdated_weights[i][index] -= grad * lrreturn updated_weights, original_loss

用一個只有一個隱藏層的小神經網絡(輸入 → 隱藏 → 輸出)

為啥偏置也要微調

使用鏈式法則實現反向傳播

網絡損失值:

Loss_{MSE}\left(C\right)=(y-\hat{y})^2

預測輸出值\hat{y}

\hat{y}=a_{11}*w_{31}+a_{12}*w_{32}+a_{13}*w_{33}

隱藏層激活值;

a_{11}=\frac{1}{1+e^{-h_{11}}}

隱藏層值:

h_{11}=x_1*w_{11}+x_2*w_{21}

計算損失值C的變化相對權重w_{11}的變化:

\frac{\partial C}{\partial w_{11}}=\frac{\partial C}{\partial\hat{y}}*\frac{\partial\hat{y}}{\partial a_{11}}*\frac{\partial a_{11}}{\partial h_{11}}*\frac{\partial h_{11}}{\partial w_{11}}

\frac{\partial C}{\partial w_{11}}=-2*(y-\hat{y})*w_{31}*a_{11}*(1-a_{11})*x_1

更新權重值:

updated_weight=original_weight-lr*gradient_of_loss

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

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

相關文章

【計算機網絡 | 第二篇】常見的通信協議(一)

HTTP和HTTPS有什么區別? 端口號:HTTP默認是80端口,HTTPS默認是443。 URL前綴:HTTPHTTP 的 URL 前綴是 http://,HTTPS 的 URL 前綴是 https://。 安全性和資源消耗:HTTP協議運行在TCP上,都是明…

【python實用小腳本系列】用 Python 自己手搓一個給視頻“靜音”的小腳本,批量處理,輕松高效制作“無聲電影”!

嘿,小伙伴們!今天我來給大家介紹一個超實用的 Python 小工具——一個能給視頻“靜音”的“聲音消除器”!是不是聽起來很酷?想象一下,你可以把任何有聲視頻變成無聲視頻,是不是很有趣?接下來&…

【gpt生成-總覽】怎樣才算開發了一門編程語言,需要通過什么測試

開發一門真正的編程語言需要經歷完整的設計、實現和驗證過程,并通過系統的測試體系驗證其完備性。以下是分階段開發標準及測試方法: 一、語言開發核心階段 1. 語言規范設計(ISO/IEC 標準級別) ??語法規范??:BNF/…

leetcode222 完全二叉樹的節點個數

完全二叉樹 的定義如下:在完全二叉樹中,除了最底層節點可能沒填滿外,其余每層節點數都達到最大值,并且最下面一層的節點都集中在該層最左邊的若干位置。若最底層為第 h 層(從第 0 層開始),則該層…

若依集成BladeX單點登錄的令牌管理與api請求流程

目錄 概述系統架構單點登錄流程令牌管理機制接口調用流程關鍵代碼實現數據結構安全性考慮常見問題與解決 概述 本文檔詳細說明若依系統如何實現與BladeX的單點登錄集成,包括令牌管理和接口調用的完整流程。整個集成采用基于OAuth2的授權碼流程,允許用…

《AI大模型應知應會100篇》第27篇:模型溫度參數調節:控制創造性與確定性

第27篇:模型溫度參數調節:控制創造性與確定性 摘要 在大語言模型的使用中,“溫度”(Temperature)是一個關鍵參數,它決定了模型輸出的創造性和確定性之間的平衡。通過調整溫度參數,您可以根據任…

愛普生SG2520VGN差分晶振5G基站的時鐘解決方案

在 5G 通信時代,數據流量呈爆發式增長,5G 基站作為信號的核心中轉樞紐,承載著前所未有的數據傳輸與處理重任。從海量的物聯網設備連接,到高速移動用戶的數據交互,每一個環節都對基站的性能提出了嚴苛要求。而精準穩定的…

GitHub SSH連接終極解決方案

GitHub SSH連接終極解決方案:443端口修改多場景故障排查指南 一、問題現象速查 當開發者執行以下命令時出現連接異常: ssh -T gitgithub.com常見報錯類型: 經典端口阻塞ssh: connect to host github.com port 22: Connection refused密鑰驗…

面向新一代擴展現實(XR)應用的物聯網框架

中文標題: 面向新一代擴展現實(XR)應用的物聯網框架 英文標題: Towards an IoT Framework for the New Generation of XR Applications 作者信息 Joo A. Dias,UNIDCOM - IADE,歐洲大學,里斯本&…

Qt unknown module(s) in qt:serialport解決方法

在Ubuntu和CentOS系統中,若使用Qt時遇到Unknown module(s) in QT: serialport錯誤,通常是由于未正確安裝Qt的串口模塊(QSerialPort)或項目配置不當導致。以下是針對兩種系統的解決方案: 一、安裝Qt串口模塊 1. Ubuntu/Debian系列 安裝開發包: 執行以下命令安裝Qt5串口模…

閥門軸承電動車工件一鍵精修軟件

若需定制開發“ComfyUI意見精修軟件” 技術棧建議: 前端:React/Vue Figma插件API(直接讀取設計稿)。 后端:Node.js/Python NLP庫(spaCy/NLTK)。 數據庫:MongoDB(存儲…

chapter32_SpringMVC與DispatcherServlet

一、簡介 從本章節開始進入SpringMVC的學習,SpringMVC最重要的類就是DispatcherServlet DispatcherServlet的本質是一個Servlet,回顧一下Servlet JavaWeb就是基于Servlet的Servlet接口有5個方法Servlet實現類是HttpServlet,自定義的Servle…

《Learning Langchain》閱讀筆記3-基于 Gemini 的 Langchain如何從LLMs中獲取特定格式

純文本輸出是有用的,但在某些情況下,我們需要 LLM 生成結構化輸出,即以機器可讀格式(如 JSON、XML 或 CSV)或甚至以編程語言(如 Python 或 JavaScript)生成的輸出。當我們打算將該輸出傳遞給其他…

中間件--ClickHouse-12--案例-1-日志分析和監控

1、案例背景 一家互聯網公司需要實時分析其服務器日志、應用日志和用戶行為日志,以快速發現潛在問題并優化系統性能。 2、需求分析 目標:實時分析日志數據,快速發現問題并優化系統性能。數據來源: 服務器日志:如 Ng…

多道程序和多任務操作系統區別

多道程序 vs. 多道任務:對比分析 ? 共同點 方面共同特征核心機制都依賴于進程/任務切換執行需求實現多個程序或任務"并發"執行系統支持都需要操作系統的支持(如調度算法、內存管理)本質目標提高資源利用率(CPU不空轉…

齊次坐標變換+Unity矩陣變換

矩陣變換 變換(transform):指的是我們把一些數據,如點,方向向量甚至是顏色,通過某種方式(矩陣運算),進行轉換的過程。 變換類型 線性變換:保留矢量加和標量乘的計算 f(x)…

閑來無事,用HTML+CSS+JS打造一個84鍵機械鍵盤模擬器

今天閑來無聊,突發奇想要用前端技術模擬一個機械鍵盤。說干就干,花了點時間搞出來了這么一個有模有樣的84鍵機械鍵盤模擬器。來看看效果吧! 升級版的模擬器 屏幕錄制 2025-04-18 155308 是不是挺像那么回事的?哈哈! 它…

智慧城市:如同為城市裝上智能大腦,開啟智慧生活

智慧城市的概念隨著信息技術的飛速發展而逐漸興起,它通過集成物聯網、大數據、人工智能和數字孿生等先進技術,為城市管理和居民生活帶來了前所未有的智能化變革。本文將深入探討這些核心技術及其在智慧城市的典型應用場景,展示智慧城市如何提…

科技快訊 | 智譜開源最新GLM模型系列;“AI 洗頭店”現身廣州;ChatGPT上線圖庫功能

智譜開源最新GLM模型系列,啟用全球域名“Z.ai” 4月15日,智譜開源最新GLM模型系列,包括32B和9B尺寸,涵蓋基座、推理、沉思三類模型,全部遵循MIT開源許可協議。推理模型GLM-Z1-32B-0414實測推理速度達200 tokens/秒&…

第32講:衛星遙感與深度學習融合 —— 讓地球“讀懂”算法的語言

目錄 ?? 一、講講“遙感+深度學習”到底是干啥的? ? 能解決什么問題? ?? 二、基礎原理串講:深度學習如何“看懂”遙感圖? ?? 遙感圖像數據類型: ?? CNN的基本思路: ?? 三、實戰案例:用CNN對遙感圖像做地類分類 ?? 所需R包: ??? 步驟一:構建訓…