機器學習筆記【Week4】

一、 為什么要用神經網絡?

  • 邏輯回歸只能處理線性可分問題。
  • 例如,經典的 XOR 異或問題無法用單層邏輯回歸準確分類。
  • 神經網絡通過多層結構和非線性激活函數,能學習復雜的決策邊界,解決非線性問題。

二、神經網絡的基本組成

神經網絡由多層組成:

層級說明
輸入層接收輸入特征,比如像素或數值。
隱藏層通過若干個神經元(單元)進行非線性變換。
輸出層輸出最終結果,如分類概率。

三、神經元和權重的定義

  • 每個神經元代表一個計算單元,輸出稱為“激活值” a i ( j ) a_i^{(j)} ai(j)?,表示第 j j j 層第 i i i 個神經元的輸出。
  • 每層之間的連接由權重矩陣 Θ ( j ) \Theta^{(j)} Θ(j) 表示,從第 j j j 層到第 j + 1 j+1 j+1 層。
  • 權重矩陣的維度為: s j + 1 × ( s j + 1 ) s_{j+1} \times (s_j + 1) sj+1?×(sj?+1),其中 s j s_j sj? 是第 j j j 層神經元數(不包含偏置單元), + 1 +1 +1 是因為偏置項。

四、前向傳播(Forward Propagation)

假設有一個3層神經網絡(輸入層-隱藏層-輸出層),執行前向傳播的過程如下:

  1. 輸入層激活 a ( 1 ) = x a^{(1)} = x a(1)=x,在輸入層加上偏置單元 a 0 ( 1 ) = 1 a_0^{(1)} = 1 a0(1)?=1
  2. 計算隱藏層的輸入值:

z ( 2 ) = Θ ( 1 ) a ( 1 ) z^{(2)} = \Theta^{(1)} a^{(1)} z(2)=Θ(1)a(1)

這里, z ( 2 ) z^{(2)} z(2) 是隱藏層每個神經元的線性組合輸入(權重 * 輸入 + 偏置)。

  1. z ( 2 ) z^{(2)} z(2) 使用激活函數(sigmoid)得到隱藏層激活:

a ( 2 ) = g ( z ( 2 ) ) = 1 1 + e ? z ( 2 ) a^{(2)} = g(z^{(2)}) = \frac{1}{1 + e^{-z^{(2)}}} a(2)=g(z(2))=1+e?z(2)1?

  1. 在隱藏層激活前加偏置單元 a 0 ( 2 ) = 1 a_0^{(2)} = 1 a0(2)?=1
  2. 計算輸出層的輸入:

z ( 3 ) = Θ ( 2 ) a ( 2 ) z^{(3)} = \Theta^{(2)} a^{(2)} z(3)=Θ(2)a(2)

  1. 輸出層激活:

a ( 3 ) = h Θ ( x ) = g ( z ( 3 ) ) a^{(3)} = h_\Theta(x) = g(z^{(3)}) a(3)=hΘ?(x)=g(z(3))

a ( 3 ) a^{(3)} a(3) 就是網絡最終的輸出,可能是多類分類的概率向量。


五、激活函數:sigmoid 函數

  • 公式:

g ( z ) = 1 1 + e ? z g(z) = \frac{1}{1 + e^{-z}} g(z)=1+e?z1?

  • 作用:
    • 將任意實數映射到 (0, 1) 之間。
    • 模擬生物神經元“激活”的概率。
    • 輸出值可解釋為概率,方便做分類。
  • 形狀:
    • z → + ∞ z \to +\infty z+, g ( z ) → 1 g(z) \to 1 g(z)1
    • z → ? ∞ z \to -\infty z?, g ( z ) → 0 g(z) \to 0 g(z)0
    • z = 0 z = 0 z=0, g ( z ) = 0.5 g(z) = 0.5 g(z)=0.5

六、神經網絡舉例:用來實現 XOR 函數

XOR 真值表:

x 1 x_1 x1? x 2 x_2 x2?XOR 輸出 y y y
000
011
101
110

邏輯回歸不能擬合這個非線性邊界,但神經網絡可以。


七、Python代碼示例:手寫3層神經網絡實現 XOR

import numpy as npdef sigmoid(z):return 1 / (1 + np.exp(-z))# 輸入數據:4個樣本,2個特征
X = np.array([[0, 0],[0, 1],[1, 0],[1, 1]])
m = X.shape[0]# 添加偏置單元
X = np.hstack((np.ones((m,1)), X))  # shape (4,3)# 手動設定權重參數 Theta
# 輸入層到隱藏層 (2隱藏單元 + 偏置),shape = (2,3)
Theta1 = np.array([[-30, 20, 20],    # 模擬AND[10, -20, -20]])  # 模擬NOR# 隱藏層到輸出層 (1輸出單元 + 偏置), shape = (1,3)
Theta2 = np.array([-10, 20, 20])     # 模擬ORdef forward_propagation(X):# 輸入層到隱藏層z2 = X @ Theta1.T          # (4,3) @ (3,2).T => (4,2)a2 = sigmoid(z2)# 添加偏置單元到隱藏層激活a2 = np.hstack((np.ones((m,1)), a2))  # (4,3)# 隱藏層到輸出層z3 = a2 @ Theta2.T         # (4,3) @ (3,1) => (4,1)a3 = sigmoid(z3)return a3y_pred = forward_propagation(X)
print("預測結果(概率):\n", y_pred)
print("預測結果(四舍五入):\n", np.round(y_pred))

結果:

預測結果(概率):[[0.0000454 ][0.9999546 ][0.9999546 ][0.0000454 ]]
預測結果(四舍五入):[[0.][1.][1.][0.]]

成功模擬 XOR 輸出。


八、神經網絡參數維度

層間連接權重矩陣維度
輸入層(含偏置)到隱藏層 Θ ( 1 ) ∈ R s 2 × ( s 1 + 1 ) \Theta^{(1)} \in \mathbb{R}^{s_2 \times (s_1 + 1)} Θ(1)Rs2?×(s1?+1)
隱藏層(含偏置)到輸出層 Θ ( 2 ) ∈ R s 3 × ( s 2 + 1 ) \Theta^{(2)} \in \mathbb{R}^{s_3 \times (s_2 + 1)} Θ(2)Rs3?×(s2?+1)
  • s j s_j sj?:第 j j j 層神經元個數,不含偏置。
  • 偏置項在矩陣維度中體現為多加的一列。

九、神經網絡如何支持多分類?

  • 輸出層每個神經元對應一個類別。
  • 網絡輸出是一個概率向量,表示輸入屬于各類別的概率。
  • 常用于 One-vs-All 多分類。

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

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

相關文章

java交易所,多語言,外匯,黃金,區塊鏈,dapp類型的,支持授權,劃轉,挖礦(源碼下載)

目前這套主要是運營交易所類型的,授權的會貴點,編譯后的是可以直接跑的,圖片也修復了,后門也掃了 都是在跑的項目支持測,全開源 源碼下載:https://download.csdn.net/download/m0_66047725/90887047 更多…

2025CCPC河北省賽題解

題目區分度不錯&#xff0c;不過兩題手快銅確實沒想到。 Attention is all you need&#xff01; H - What is all you need? 簽到題 #include <bits/stdc.h> #define x first #define y second #define int long long #define double long doubleusing namespace st…

【IOS】【OC】【應用內打印功能的實現】如何在APP內實現打印功能,連接本地打印機,把想要打印的界面打印成圖片

【IOS】【OC】【應用內打印功能的實現】如何在APP內實現打印功能&#xff0c;連接本地打印機&#xff0c;打印想打印的界面 設備/引擎&#xff1a;Mac&#xff08;14.1.1&#xff09;/cocos 開發工具&#xff1a;Xcode 開發語言&#xff1a;OC/C 開發需求&#xff1a;工程中…

AWS WebRTC:獲取信令服務節點和ICE服務節點

建立WebRTC的第一步是獲取信令服務節點和ICE服務節點。 前提條件是有訪問AWS的密鑰&#xff0c;主要是ak&#xff0c;sk&#xff0c;token&#xff0c;我這邊是業務云有接口可以返回這些信息&#xff0c;所以我直接從業務云獲取。 先介紹一下什么是ak&#xff0c;sk&#xff…

C++23 新成員函數與字符串類型的改動

文章目錄 引言std::basic_string::contains 與 std::basic_string_view::contains (P1679R3)功能介紹示例代碼優勢 禁止從 nullptr 構造 std::basic_string 和 std::basic_string_view (P2166R1)背景改動影響 std::basic_string_view 的顯式范圍構造函數 (P1989R2)功能介紹示例…

VMware-MySQL主從

MySQL主從 服務器信息 服務器類型角色主機地址主機名稱虛擬機master192.168.40.128test-1虛擬機slave192.168.40.129test-2 Master 配置&#xff08;192.168.40.128&#xff09; 刪除自動生成的配置 /var/lib/mysql/auto.cnf [roottest-1 ~]# rm -rf /var/lib/mysql/auto.…

Java組合、聚合與關聯:核心區別解析

在Java中&#xff0c;組合、聚合和關聯是描述類之間關系的三種不同方式&#xff0c;它們的核心區別在于對象間的依賴強度和生命周期管理。以下是它們的詳細對比&#xff1a; 1. 關聯&#xff08;Association&#xff09; 定義&#xff1a;最基本的類間關系&#xff0c;表示一個…

如何保護網絡免受零日漏洞攻擊?

零日漏洞&#xff08;Zero-Day Vulnerability&#xff09;是指軟件或系統中尚未被廠商發現或修補的安全漏洞。這個名稱中的“零日”意味著&#xff0c;從漏洞被發現到廠商發布修復補丁的時間是零天&#xff0c;也就是說&#xff0c;黑客可以利用這個漏洞進行攻擊&#xff0c;而…

linux快速入門-VMware安裝linux,配置靜態ip,使用服務器連接工具連接,快照和克隆以及修改相關配置信息

安裝VMWare 省略&#xff0c;自己檢索 安裝操作系統-linux 注意&#xff1a;需要修改的我會給出標題&#xff0c;不要修改的直接點擊下一步就可以 選擇自定義配置 選擇稍后安裝操作系統 選擇合適的內存 選擇NAT模式 僅主機模式 虛擬機只能和主機通信&#xff0c;不能上網…

Nest全棧到失業(一):Nest基礎知識掃盲

Nest 是什么? 問你一個問題,node是不是把js拉出來瀏覽器環境運行了?當然,他使用了v8引擎加上自己的底層模塊從而實現了,在外部編輯處理文件等;然后它使用很多方式來發送請求是吧,你知道的什么http.request 或 https.request; 我們瀏覽器中,使用AJAX以及封裝AJAX和http的Axios…

Streamlit 項目知識點總結

目錄 1. 單選框、下拉框格式化 2. 多媒體資源的引用 2.1 搭建一個簡易的http服務器 2.2 約定多媒體資源的輸入格式 2.3 解析多媒體資源 3. 設置頁面的全局背景圖片 4. 輸出流式文本&#xff08;類似打字效果&#xff09; 4.1 使用內置的 st.write_stream 方法實現 4.2…

maven模塊化開發

使用方法 將項目安裝到本地倉庫 mvn install 的作用 運行 mvn install 時&#xff0c;Maven 會執行項目的整個構建生命周期&#xff08;包括 compile、test、package 等階段&#xff09;&#xff0c;最終將構建的 artifact 安裝到本地倉庫&#xff08;默認路徑為 ~/.m2/repos…

(11)Service Mesh架構下Java應用實現零信任安全模型

Service Mesh架構下Java應用實現零信任安全模型 ?? TL;DR: 本文詳細介紹如何在Service Mesh架構中實現零信任安全模型,包括身份認證、授權控制、加密通信和持續監控四大核心技術,以及與Istio、Envoy等組件的集成方案。 目錄 零信任安全模型概述關鍵技術實現最佳實踐Service…

修改 K8S Service 資源類型 NodePort 的端口范圍

在 Kubernetes 中&#xff0c;Service 類型為 NodePort 時&#xff0c;默認分配的端口范圍為 30000~32767。如果你希望使用自定義端口&#xff08;如 8080、8888 等&#xff09;&#xff0c;就需要修改 kube-apiserver 的默認配置。 本文將詳細介紹如何修改 Kubernetes 中 Nod…

MySQL 可觀測性最佳實踐

MySQL 簡介 MySQL 是一個廣泛使用的開源關系型數據庫管理系統&#xff08;RDBMS&#xff09;&#xff0c;以其高性能、可靠性和易用性而聞名&#xff0c;適用于各種規模的應用&#xff0c;從小型網站到大型企業級系統。 監控 MySQL 指標是維護數據庫健康、優化性能和確保數據…

CentOS安裝最新Elasticsearch8支持向量數據庫

大家都知道Elasticsearch是支持向量的存儲和查詢的&#xff0c;今天我們來介紹下如何安裝支持向量數據庫的Elasticsearch &#xff0c; 操作環境是CentOS。 成功安裝截圖 大家進入系統shell&#xff0c;跟我執行下面命令進行安裝。 更新系統 [rootlocalhost ~]# sudo yum u…

SDL2常用函數SDL事件處理:SDL_Event|SDL_PollEvent

SDL_Event SDL_Event是個聯合體&#xff0c;是SDL中所有事件處理的核心。 SDL_Event是SDL中使用的所有事件結構的并集。 只要知道了那個事件類型對應SDL_Event結構的那個成員&#xff0c;使用它是一個簡單的事情。 下表羅列了所有SDL_Event的所有成員和對應類型。 Uint32typ…

webpack吐環境分析

需要解決的問題 扣取下來的webpack文件過大 解決思路 用ast將需要的代碼扣下來 結果展示 實現步驟 第一步&#xff1a;我們得知道需要哪些模塊 在入口處&#xff0c;增加模塊記錄 第二步&#xff0c;分析ast代碼 通過分析發現,key 有三種值 分別為NumbericLiteral、StringLi…

微軟語音合成助手資源下載

微軟語音合成助手資源下載 【下載地址】微軟語音合成助手資源下載 微軟語音合成助手是一款基于先進AI技術的文本轉語音工具&#xff0c;能夠將文字內容快速轉換為自然流暢的語音。它支持高度自定義的語音參數&#xff0c;包括語速、音調、發音和停頓等&#xff0c;滿足多樣化需…

青少年編程與數學 02-020 C#程序設計基礎 01課題、C#編程概要

青少年編程與數學 02-020 C#程序設計基礎 01課題、C#編程概要 一、微軟.NET開發平臺1. 核心組件2. 特點3. 應用場景4. 開源與社區5. 版本與更新6. 學習資源 二、C# 編程語言1. 歷史背景2. 語言特性&#xff08;1&#xff09;面向對象&#xff08;2&#xff09;類型安全&#xf…