jax可微分編程的筆記

jax可微分編程的筆記

1.1.1 求導的基本概念

所謂的導數是一個從集合F到自身的映射.
有時,我們也將一個從函數到函數的映射稱為一個操作,
這里的操作在物理學中也被稱作一個算符.
但在計算機中的操作符相當于數學中的一個函數,而非從
函數到函數的映射.

應該指出的是,如果我們將求導(包括偏導數)這樣的操作
視一個由程序所定義的操作grad,那么,grad操作的
輸入和輸出都將是相同的類型的函數。換言之,一個求導
操作應該被視作一個從函數的集合Fmn到其自身的映射;
容易看出,這樣的映射是確定并且唯一的。求導作為一種
操作的唯一性,是對其進行程序實現的數學前提。

1.1.2 梯度操作

梯度操作是一個從函數集Fn1到Fnn的映射。
從幾何的角度來看,f:Rn->R給出了一個n維空間之中的標量場。
它將n維空間中的一個點對應到一個實數;則grad f 對應著一個
n維空間之中的矢量場,它將n維空間中的一個點對應到一個n維
的矢量。映射的結果 grad f(x) 屬于 n 維空間,給出了n維空間
中標量場f在點x=(x1,x2,....xn)上增長最快的方向。有時,我也會
認為梯度操作 grad:Fn1->Fnn本身是n維的。

而從程序實現的角度來看,它等價于對多元函數同時進行了n次偏導數
的操作。

1.1.3 雅可比矩陣

矩陣形式記法,使得諸如鏈式求導法則,這樣的過程,可以被簡單的
寫成矩陣相乘。

1.2 手動求導

優點是不會引入額外的計算誤差,同時程序運行性能有保證。
缺點程序編寫易出錯,代碼難以擴展和復用。

1.3 數值微分

優點:原理簡單,程序易于實現
缺點:有誤差的引入的可能,輸入的函數的參數數量有限制。

1.4.1 計算圖

在編譯原理中,可能通過計算圖的構建,實現中綴表達表,和
前綴表達式,后綴表達式之間的相互轉化。
應該指出的是,計算圖在符號微分和自動微分中所扮演的地位是
本質性的。

1.4.2 計算圖的構建

由于求導操作作用于乘法時,表達式的長度將顯著地增長,因此,
在遞歸深度較大時,我們常常會面臨表達式的長度的指數級膨脹,
這是符號微分在實際場景中所面臨的困境之一。

1.4.3 SymPy庫簡介

SymPy庫能夠為我們保留到精確的分數,根號,及無理數Pi,這是
符號計算在解決實際問題時的一大應用。
不過,符號微分在實現對程序框架的設計提出了過高的要求:
所有的表達式必須是“閉合的”,即表達式中不得有條件語句和
循環語句等

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

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

相關文章

vue小記——this(2)

在Vue的方法中使用普通函數作為回調函數,那么在該回調函數中,this將不會指向Vue實例,而是指向全局對象(在瀏覽器中是window)。 錯誤 : export default { data() { return { message: Hello Vue! }; …

npm 包發布

name publish必填項(version,nameverson構成唯一標識),唯一,所以publish前驗證庫里是否存在該名稱,方式npm info xxx npm ERR! 404 cy_test is not in the npm registry.可以使用。規則:不能以.或者_開頭…

maven工程打包引入本地jar包

1、通過maven生成本地區倉庫包 mvn install:install-file --settings D:\lkx\download\apache-maven-3.6.3\conf\settings.xml -Dfileaspose-cad-21.8.jar -DartifactIdaspose-cad -DgroupIdsystem.core -Dversion21.8 -Dpackagingjar -DgeneratePomtrue # --settings&#xf…

進程線程間的通信:2024/2/22

作業1&#xff1a;代碼實現線程互斥機制 代碼&#xff1a; #include <myhead.h>//臨界資源 int num10;//創建一個互斥鎖 pthread_mutex_t mutex;//任務一 void *task1(void *arg) {//獲取鎖資源pthread_mutex_lock(&mutex);num123;sleep(3);printf("task1:num…

PacketSender-用于發送/接收 TCP、UDP、SSL、HTTP 的網絡實用程序

PacketSender-用于發送/接收 TCP、UDP、SSL、HTTP 的網絡實用程序 PacketSender是一款開源的用于發送/接收 TCP、UDP、SSL、HTTP 的網絡實用程序&#xff0c;作者為dannagle。 其官網地址為&#xff1a;https://packetsender.com/&#xff0c;Github源代碼地址&#xff1a;htt…

【AI繪畫工具分別有哪些?】

目前有許多AI繪畫工具可供選擇&#xff0c;以下列舉了一些常見的AI繪畫工具&#xff1a; 1. DeepArt.io&#xff1a;該工具使用深度學習算法生成藝術風格的圖像&#xff0c;并可以將輸入圖像與指定的藝術風格進行合并。 2. Prisma&#xff1a;這是一款非常流行的AI繪畫應用&a…

SQL Server —— While語句循環

一&#xff1a;簡介 while 循環是有條件的循環控制語句。滿足條件后&#xff0c;再執行循環體中的SQL語句。 while: break, 如果有多條語句可以在while后面添加begin-end。關于while的語法 while(條件) -- begin -- 語句1 -- 語句2 -- break 根據情況是否添加break -- end 二…

leetcode日記(32)字符串相乘

做了很久很久……真的太繁瑣了&#xff01;&#xff01; class Solution { public:string multiply(string num1, string num2) {string s;string str;if (num1 "0" || num2 "0") return "0";for(int inum2.size()-1;i>0;i--){int c2num2[…

Open CASCADE學習|全局屬性

目錄 1、概念解釋 質心&#xff1a; 重心&#xff1a; 慣性矩&#xff1a; 慣性矩陣&#xff1a; 主慣性矩&#xff1a; 靜態慣性矩&#xff1a; 2、API 1、概念解釋 質心&#xff1a; 質心是質量中心的簡稱&#xff0c;指物質系統上被認為質量集中于此的一個假想點。…

Qt:tabWidget控件

一、tabWidget用來做什么 tabWidget控件用來進行不同控件頁面的跳轉&#xff0c; 二、控件的一些函數功能 添加一個頁面&#xff0c;返回index int addTab(QWidget *widget, const QString &); int addTab(QWidget *widget, const QIcon& icon, const QString &…

pytest教程-11-初識fixture

領取資料&#xff0c;咨詢答疑&#xff0c;請?wei: June__Go 上一小節我們學習了使用allure生成html測試報告的方法&#xff0c;本小節我們講解一下pytest fixture測試夾具的使用方法。 前言 在做自動化的過程中&#xff0c;編寫用例時候需要用到用例的前置和用例的后置&a…

2024年了,抖店還能做嗎?適合新手嗎?

我是電商珠珠 現在已經24年了&#xff0c;抖店也已經發展了四年了。其中有很多在門外觀望的人&#xff0c;還在猶豫不決。認為抖店發展到今天&#xff0c;所有的紅利早已在20年的時候就消失殆盡了&#xff0c;特別是沒有經驗的如果入駐了&#xff0c;既不能享受平臺紅利&#…

后端程序員入門react筆記(四)-綜合運用,寫一個小demo

樣式模塊化 有時候我們會遇到這樣的問題&#xff0c;有兩個css對一個class聲明了樣式&#xff0c;這樣的話后引入的css會覆蓋前面的css樣式&#xff0c;導致樣式沖突&#xff0c;那么我們怎么解決這種問題呢&#xff0c;我們可以使用樣式的模塊化&#xff0c;我們起名一個inde…

全棧筆記_瀏覽器擴展篇(插件開發 - chrome瀏覽器proxy代理)

代理類型 常用的包括http、https、socks代理 配置權限 要讓擴展使用代理接口,需要聲明proxy權限: // manifest.json "permissions": ["proxy" ]設置代理服務器 chrome.proxy.settings.set({ scope: ‘regular’, value: 代理配置},回調函數) 代理配…

【前端面經2】京東一面

題目來源&#xff1a;牛客網 自我介紹 動態參數解析的解決方案 對于動態部分使用…args進行接受&#xff0c;可以把動態部分提取成數組 前端安全問題 CDN劫持 內容安全策略CSP 安全沙箱 Iframe 跨站腳本攻擊XSS 攻擊者通過在目標網站上注入惡意腳本&#xff0c;使之在…

OpenHarmony驅動框架HDF中設備管理服務構建過程詳解

前言 如下圖&#xff0c;開源鴻蒙系統驅動框架HDF在內核中的實現&#xff0c;可以分為向用戶層提供設備服務的管理模塊&#xff08;Manager&#xff09;&#xff0c;和實際管理硬件的Host模塊。 Manager分為DeviceManageService和 DeviceServiceManage&#xff0c;前者負責提供…

1.WEB滲透測試-前置基礎知識-ip地址

ip地址&#xff1a; ip地址指的是互聯網協議地址&#xff0c;是IP協議提供的一種統一的地址格式&#xff0c;以每一臺聯網的主機都有一個對應的ip地址&#xff0c;ip地址也可以理解為分配給用戶上網使用的網際協議的設備的數字標簽。通俗的來說就是你打電話時候的每個人都有自己…

AIGC 實戰:如何使用 Docker 在 Ollama 上離線運行大模型(LLM)

Ollama簡介 Ollama 是一個開源平臺&#xff0c;用于管理和運行各種大型語言模型 (LLM)&#xff0c;例如 Llama 2、Mistral 和 Tinyllama。它提供命令行界面 (CLI) 用于安裝、模型管理和交互。您可以使用 Ollama 根據您的需求下載、加載和運行不同的 LLM 模型。 Docker簡介 D…

在Mac上搭建MongoDB環境

最近工作中需要裝MongoDB環境&#xff0c;搭建過程中遇到了一些問題&#xff0c;在這里記錄一下安裝MongoDB環境的方法以及問題的解決方法。有兩種安裝MongoDB的方法&#xff1a;brew安裝和手動安裝。 目錄 使用Homebrew安裝MongoDB 手動安裝MongoDB&#xff08;不使用Homebr…

備戰藍橋杯 Day11(滾動數組優化+完全背包)

01背包的滾動數組優化 【題目描述】 經典0—1背包問題,有n個物品&#xff0c;編號為i的物品的重量為w[i]&#xff0c;價值為c[i]&#xff0c;現在要從這些物品中選一些物品裝到一個容量為m的背包中&#xff0c;使得背包內物體在總重量不超過m的前提下價值盡量大。 #include&…