基礎NLP | 02 深度學習基本原理

文章目錄

  • 深度學習基本原理
    • 數學基礎
      • 線代
      • numpy 常用操作
      • 導數, 梯度
      • 梯度下降法
        • 梯度下降代碼 GradientDescent.py
        • 反向傳播
        • 完整的反向傳播過程
        • 權重更新方式
  • pytorch
      • 網絡結構
        • 全連接層 (線性層)
          • 例子 - 手動實現模擬一個線性層 DNNforward.py
        • 激活函數
          • 激活函數-Sigmoid
          • 激活函數-tanh
          • 激活函數-relu
          • 激活函數-Gelu
          • 激活函數-Softmax
      • 損失函數
        • 均方差
        • 交叉熵
          • 例子-手動實現交叉熵-CrossEntropy.py
      • 代碼 - 二分類任務

深度學習基本原理

數學基礎

線代

向量運算

  • 加和
  • 內積
  • 向量夾角余旋值

矩陣

  • 加法
  • 乘法
  • 轉置

向量到矩陣的互轉

reshape

張量 tensor

將三個 2x2的矩陣排列在一起,就可以稱之為3x2x2的張量

是神經網絡的訓練中最為常見的數據形式,維度相同的幾個矩陣放在一起

這是2x2x2的張量
[ [ [ 1 , 2 ] , [ 3 , 4 ] ] , [ [ 5 , 6 ] , [ 7 , 8 ] ] ] \begin{bmatrix} [[1,2],\\ [3,4]],\\ [[5,6],\\ [7,8]]\end{bmatrix} ?[[1,2],[3,4]],[[5,6],[7,8]]? ?
張量的常見操作

轉置 x.transpose(1,2)
[ [ [ 1 , 3 ] , [ 2 , 4 ] ] , [ [ 5 , 7 ] , [ 6 , 8 ] ] ] \begin{bmatrix} [[1,3],\\ [2,4]],\\ [[5,7],\\ [6,8]]\end{bmatrix} ?[[1,3],[2,4]],[[5,7],[6,8]]? ?
在上面的基礎上轉置 x.transpose(0,1)
[ [ [ 1 , 2 ] , [ 5 , 6 ] ] , [ [ 3 , 4 ] , [ 7 , 8 ] ] ] \begin{bmatrix} [[1,2],\\ [5,6]],\\ [[3,4],\\ [7,8]]\end{bmatrix} ?[[1,2],[5,6]],[[3,4],[7,8]]? ?

numpy 常用操作

import numpy as np
import torchx = np.array([[1,2,3],[4,5,6]])print(x)
print(x.ndim)#維度  2
print(x.shape)# 獲取行列維度  (2, 3)
print(x.size)#一共多少個數字  6
print(x.dtype)#類型   int64
print(np.sum(x))#矩陣內所有元素的和 21
print(np.sum(x,axis=0))#行相加 [5 7 9]
print(np.sum(x,axis=1))#列相加 [ 6 15]
print(np.reshape(x,(3,2)))#變換維度[[1 2]#[3 4]#[5 6]]#[[1.         1.41421356 1.73205081]#[2.         2.23606798 2.44948974]]
print(np.sqrt(x))#每個數字開平方#[[  2.71828183   7.3890561   20.08553692]
# [ 54.59815003 148.4131591  403.42879349]]
print(np.exp(x))#每個數求指數
print(x.transpose())#轉置
print(x.flatten())#變成一維向量 [1 2 3 4 5 6]x = torch.FloatTensor(x)
print(x.shape)#torch.Size([2, 3])
#tensor([[  2.7183,   7.3891,  20.0855],# [ 54.5981, 148.4132, 403.4288]])
print(torch.exp(x))
print(torch.sum(x))#tensor(21.)
print(torch.sum(x,dim=0))#tensor([5., 7., 9.])
print(torch.sum(x,dim=1))#tensor([ 6., 15.])
'''
tensor([[1., 4.],[2., 5.],[3., 6.]])
'''
print(x.transpose(1,0))
print(x.flatten())#tensor([1., 2., 3., 4., 5., 6.])

導數, 梯度

表示函數變化的方向
f ′ ( x 0 ) = l i m Δ y Δ x = l i m f ( x 0 + Δ x ) ? f ( x 0 ) Δ x f'(x_0) = lim\frac{\Delta y}{\Delta x} = lim \frac{f(x_0 + \Delta x) - f(x_0)}{\Delta x} f(x0?)=limΔxΔy?=limΔxf(x0?+Δx)?f(x0?)?
求導法則

  • 加法
  • 乘法
  • 除法
  • 鏈式求導

梯度

多元函數的導數

原函數: y = 3 x 1 2 + 4 x 2 2 + 5 x 3 2 y = 3x_1^2 + 4x_2^2 + 5x_3^2 y=3x12?+4x22?+5x32?

導函數: y = 6 x 1 + 8 x 2 + 10 x 3 y = {6x_1 + 8x_2 + 10x_3} y=6x

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

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

相關文章

MySQL面試題及詳細答案 155道(001-020)

《前后端面試題》專欄集合了前后端各個知識模塊的面試題,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs&…

Ansible安裝與入門

目錄 Ansible ansible任務執行模式 ansible執行流程 ansible命令執行過程(背會) ansible的安裝方式 ansible的程序結構(yum安裝為例) ansible的配置文件查找順序(背會) 核心配置文件 ansible的配置…

【Spring】Spring Boot啟動過程源碼解析

目錄 一、啟動入口 二、SpringApplication的構造過程 2.1 設置應用類型 2.2 設置初始化器(Initializer) 2.2.1 獲取BootstrapRegistryInitializer對象 2.2.2 獲取ApplicationContextInitializer對象 2.3 設置監聽器(Listener&#xff…

CDN架構全景圖

CDN架構全景圖 CDN(內容分發網絡)是一種通過在全球范圍內部署邊緣節點服務器,將內容緩存至離用戶最近的位置,從而加速內容分發、降低延遲并減輕源站壓力的分布式網絡架構。其核心設計目標是優化互聯網內容傳輸效率,提升…

【pytest高階】源碼的走讀方法及插件hook

一、pytest源碼走讀方法 依賴庫認知篇 📦這是理解 pytest 源碼的 “前菜”,先認識 3 個超重要的小伙伴:iniconfig 📄:像個 “文件小管家”,專門負責讀取 ini 配置文件(比如 pytest 的配置&#…

算法訓練營day32 動態規劃理論基礎、509. 斐波那契數、70. 爬樓梯、746. 使用最小花費爬樓梯

今天開始動態規劃的部分! 其實說白了,動態規劃我感覺就是找類似遞歸的規律, 動態規劃理論基礎 動態規劃,英文:Dynamic Programming,簡稱DP,如果某一問題有很多重疊子問題,使用動態規…

基于神經網絡的手寫數字識別系統

基于神經網絡的手寫數字識別系統 結合模板匹配和神經網絡兩種方法進行手寫數字識別。這個系統包括圖像預處理、特征提取、神經網絡訓練和可視化分析。 %% 基于神經網絡的手寫數字識別系統%% 清理工作區 clear; clc; close all;%% 加載手寫數字數據集 % 使用MATLAB自帶的手寫數字…

機器學習?一文看懂這門熱門技術

🌟 什么是機器學習?一文看懂這門熱門技術在人工智能(AI)的大潮中,機器學習(Machine Learning, ML) 無疑是最耀眼的明星之一。它讓計算機具備了 “自我學習” 的能力,讓自動駕駛、智能…

Spring的初始化鉤子

1. PostConstruct JSR-250 標準注解(不是 Spring 獨有),用來標記 Bean 初始化完成后要執行的方法。會在 Bean 的構造方法執行完、依賴注入完成后執行。 使用實例: Component public class Demo {PostConstructpublic void init() …

【AI】Java生態對接大語言模型:主流框架深度解析

文章目錄1. Deep Java Library (DJL)2. LangChain4j(LLM)3. HuggingFace Inference API4. OpenAI Java Client技術對比矩陣架構設計建議在人工智能浪潮下,大語言模型(LLM)已成為技術核心。Java生態通過以下框架實現高效…

【06】C#入門到精通——C# 多個 .cs文件項目 同一項目下添加多個 .cs文件

文章目錄1 單個 .cs文件2 創建 多個 .cs文件2.1 添加Hero類2.1 添加ShowInfo類2.3 關于命名空間的引用2.4 所有.cs文件代碼3 test3項目文件下載1 單個 .cs文件 上一講中 描述游戲中英雄的角色 所有代碼在一個.cs文件中, 如果代碼很多,類很多&#xff0…

【MySQL基礎篇】:MySQL常用數據類型的選擇邏輯與正確使用

?感謝您閱讀本篇文章,文章內容是個人學習筆記的整理,如果哪里有誤的話還請您指正噢? ? 個人主頁:余輝zmh–CSDN博客 ? 文章所屬專欄:MySQL篇–CSDN博客 文章目錄數據類型1.數據類型分類2.數值類型int整形類型bit位類型float小…

三、搭建springCloudAlibaba2021.1版本分布式微服務-springcloud loadbalancer負載均衡

什么是負責均衡 Spring Cloud LoadBalancer是一個客戶端負載均衡器,類似于Ribbon,但是由于Ribbon已經進入維護模式,并且Ribbon 2并不與Ribbon 1相互兼容,所以Spring Cloud全家桶在Spring Cloud Commons項目中,添加了Sp…

Oracle不完全恢復實戰指南:從原理到操作詳解

核心提示:當誤刪表、日志損壞或控制文件丟失時,Oracle的不完全恢復是DBA最后的救命稻草。掌握關鍵恢復技術,可在數據災難中力挽狂瀾。一、不完全恢復核心概念 1. 核心特點 必須關閉數據庫:在MOUNT狀態下執行重做日志恢復權限要求&…

Linux之shell腳本篇(二)

一、shell編程之if語句引言Linux在shell編程中,通常都是以自上而下運行,但是為了提高其代碼嚴謹性,我們即引入了多條件 控制語句例如:if、for、while、case等語句,有時候針對條件我們還會結合正則表達式去運用。將這些…

如何在android framewrok dump camera data

實現dump 函數 實現1 void dumpBufferToFile(buffer_handle_t* buffer, int width, int height, int frameNum) {void* data NULL;GraphicBufferMapper::getInstance().lock(*buffer, GRALLOC_USAGE_SW_READ_OFTEN, Rect(width, height), &data);char filename[128];sprin…

機器學習中的可解釋性:深入理解SHAP值及其應用

機器學習可解釋性的重要性在人工智能技術快速發展的2025年,機器學習模型已經深度滲透到醫療診斷、金融風控、司法量刑等關鍵領域。然而,隨著模型復雜度的不斷提升,一個根本性矛盾日益凸顯:模型預測性能的提升往往以犧牲可解釋性為…

.NET9 使用 OData 協議項目實戰

.NET 中 ODate 協議介紹 OData(Open Data Protocol) 是一個開放的 Web 協議,用于查詢和更新數據。在 .NET 生態系統中,OData 被廣泛支持和使用。 主要特性 1. 統一的數據訪問方式 提供標準化的查詢語法支持 CRUD 操作支持元數據描述 2. 查詢能力 標…

Android 性能優化:提升應用啟動速度(GC抑制)

前言 在移動應用開發領域,啟動速度是用戶體驗的重要指標。對于Android應用而言,垃圾回收(Garbage Collection, GC)機制雖然是內存管理的核心,但在應用啟動期間頻繁觸發GC會顯著拖慢啟動速度。本文將深入探討如何通過GC…

做了一款小而美的本地校驗器

需求說明 前陣子收到一則讀者留言,指出:市面上AI核稿工具(ProWritingAid,WPS AI Spell Check,Writer,QuillBot,Grammarly)要么收費太高,要么讓人擔心文章泄露。 如下圖所…