戰(zhàn):如何用矩陣乘法實(shí)現(xiàn)8國(guó)貨幣兌換)
AIPND線性映射實(shí)戰(zhàn)如何用矩陣乘法實(shí)現(xiàn)8國(guó)貨幣兌換【免費(fèi)下載鏈接】AIPNDCode and associated files for the AI Programming with Python Nanodegree Program項(xiàng)目地址: https://gitcode.com/gh_mirrors/ai/AIPND你是否曾為看不懂線性代數(shù)而苦惱本篇文章將帶你走進(jìn)AIPNDAI Programming with Python Nanodegree Program中的線性映射實(shí)驗(yàn)用一個(gè)真實(shí)、有趣的問(wèn)題——8國(guó)貨幣兌換——徹底搞懂矩陣乘法的原理與應(yīng)用。你不需要深厚的數(shù)學(xué)功底只需要理解輸入向量 × 權(quán)重矩陣 輸出向量這一個(gè)核心公式就能用NumPy輕松完成復(fù)雜的多幣種換算并為后續(xù)學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)打下堅(jiān)實(shí)基礎(chǔ)。線性映射是什么為什么用貨幣兌換來(lái)理解最直觀線性映射Linear Mapping是線性代數(shù)中最重要的概念之一它描述了一種把輸入變成輸出的規(guī)則而矩陣乘法就是執(zhí)行這種映射的計(jì)算工具。簡(jiǎn)單來(lái)說(shuō)矩陣就像一本換算手冊(cè)向量就是你要處理的數(shù)據(jù)兩者相乘一次得到全部結(jié)果。在 AIPND 的 線性映射實(shí)驗(yàn) 中貨幣兌換被選為理解線性映射的絕佳案例因?yàn)樗銐蛏罨滞暾故玖司仃嚦朔ǖ娜齻€(gè)要素輸入向量你手里各國(guó)貨幣的數(shù)量權(quán)重矩陣8國(guó)貨幣之間的匯率表輸出向量?jī)稉Q成各國(guó)貨幣后的總額8國(guó)貨幣兌換問(wèn)題一次環(huán)球旅行留下的數(shù)學(xué)難題假設(shè)你多年間去過(guò)8個(gè)國(guó)家手里恰好留有各國(guó)的零錢70美元、100歐元、20日元、80英鎊、40瑞士法郎、70加元、60澳元和100港幣?,F(xiàn)在你要去其中某個(gè)國(guó)家旅行出發(fā)前想把所有貨幣一次性換成目的國(guó)的貨幣并且要核對(duì)銀行算得對(duì)不對(duì)。如果手工計(jì)算你需要對(duì)8個(gè)目標(biāo)國(guó)家分別做8次換算一共64次乘法想想就頭大。這正是矩陣乘法的用武之地——一次運(yùn)算全部搞定核心思路輸入向量 × 權(quán)重矩陣 輸出向量整個(gè)問(wèn)題的數(shù)學(xué)模型可以濃縮為一行公式輸入向量各國(guó)貨幣數(shù)量 × 權(quán)重矩陣匯率表 輸出向量?jī)稉Q總額其中匯率矩陣來(lái)自 currencyConversionMatrix.csv它是一張 8×8 的表格記錄了 USD、EUR、JPY、GBP、CHF、CAD、AUD、HKD 八種貨幣兩兩之間的兌換比例。比如第1行第1列的1.0000美元換美元比例當(dāng)然是1第1行第2列的0.83641美元只能換0.8364歐元第2行第1列的1.19561歐元可以換1.1956美元當(dāng)你把各國(guó)零錢向量與這張匯率矩陣相乘時(shí)每個(gè)目標(biāo)貨幣的總額都會(huì)自動(dòng)累加所有幣種的貢獻(xiàn)——這就是矩陣乘法的精髓一次計(jì)算批量產(chǎn)出。5分鐘實(shí)戰(zhàn)用NumPy矩陣乘法完成貨幣兌換下面我們進(jìn)入動(dòng)手環(huán)節(jié)。AIPND 在 matrixMultCurrency.ipynb 中提供了完整的實(shí)驗(yàn)框架你只需補(bǔ)上關(guān)鍵的矩陣乘法代碼。第一步讀取匯率權(quán)重矩陣實(shí)驗(yàn)先用 Pandas 讀取匯率 CSV 文件再轉(zhuǎn)換成 NumPy 矩陣得到 8×8 的權(quán)重矩陣并打印確認(rèn)import numpy as np import pandas as pd # 讀取匯率矩陣權(quán)重矩陣 conversion_rates_df pd.read_csv(currencyConversionMatrix.csv, header0, index_col0) conversion_rates conversion_rates_df.values第二步一行代碼完成矩陣乘法核心運(yùn)算這是整個(gè)實(shí)驗(yàn)的靈魂步驟。實(shí)驗(yàn)文件里留了一個(gè) TODO要求你用np.matmul把貨幣向量money與匯率矩陣conversion_rates相乘得到輸出向量money_totals# 8國(guó)貨幣零錢向量輸入向量 money np.asarray([70, 100, 20, 80, 40, 70, 60, 100]) # 核心矩陣乘法計(jì)算兌換總額輸出向量 money_totals np.matmul(money, conversion_rates)如果你卡住了可以直接參考參考答案 matrixMultCurrencySolution.ipynb其中給出的正是money_totals np.matmul(money, conversion_rates)這一行。讀懂結(jié)果把8國(guó)貨幣全部換算成目標(biāo)貨幣運(yùn)行上面的代碼你會(huì)得到下面這張兌換總額表——它一次性給出了把所有零錢兌換成任意一種目標(biāo)貨幣后的金額舉例來(lái)說(shuō)全部換成美元USD約454.28美元 全部換成歐元EUR約379.96歐元 全部換成日元JPY約50593.59日元日元面值小所以數(shù)字大全部換成港幣HKD約3553.31港幣現(xiàn)在無(wú)論你的目的地是哪個(gè)國(guó)家都能在幾毫秒內(nèi)得知自己值多少錢核對(duì)銀行的報(bào)價(jià)也變得輕而易舉。從貨幣兌換到神經(jīng)網(wǎng)絡(luò)矩陣乘法的更大舞臺(tái)這個(gè)貨幣兌換實(shí)驗(yàn)看似簡(jiǎn)單但它揭示的模式在 AI 領(lǐng)域無(wú)處不在。實(shí)際上神經(jīng)網(wǎng)絡(luò)的前向傳播正是同樣的計(jì)算結(jié)構(gòu)輸入層的特征向量 這里的貨幣向量神經(jīng)元之間的權(quán)重矩陣 這里的匯率矩陣輸出的預(yù)測(cè)結(jié)果 這里的兌換總額理解了 8 國(guó)貨幣兌換的矩陣乘法你就理解了深度學(xué)習(xí)中最基礎(chǔ)也最重要的運(yùn)算。AIPND 課程正是這樣層層遞進(jìn)先用生活化的線性映射實(shí)驗(yàn)幫你建立直覺(jué)再帶你進(jìn)入真實(shí)的 AI 編程世界??偨Y(jié)一次實(shí)驗(yàn)打通線性代數(shù)與AI的任督二脈通過(guò) AIPND 的線性映射實(shí)驗(yàn)我們學(xué)會(huì)了線性映射的本質(zhì)輸入向量經(jīng)過(guò)矩陣乘法映射為輸出向量匯率矩陣的構(gòu)造與解讀8×8 矩陣編碼了全部貨幣換算關(guān)系np.matmul 一行代碼完成64次手工乘法既快又不易出錯(cuò)矩陣乘法的通用性從貨幣兌換到神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)完全一致如果你也想親手體驗(yàn)只需克隆 AIPND 項(xiàng)目倉(cāng)庫(kù)地址https://gitcode.com/gh_mirrors/ai/AIPND 進(jìn)入linearalgebra-linear_mapping目錄安裝依賴后打開(kāi) matrixMultCurrency.ipynb 即可開(kāi)始。相信我當(dāng)你在終端看到那一排兌換數(shù)字瞬間算出時(shí)你會(huì)愛(ài)上線性代數(shù)【免費(fèi)下載鏈接】AIPNDCode and associated files for the AI Programming with Python Nanodegree Program項(xiàng)目地址: https://gitcode.com/gh_mirrors/ai/AIPND創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考