在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

誰用NumPy手推了一大波ML模型?

新機(jī)器視覺 ? 來源:機(jī)器之心 ? 作者:機(jī)器之心 ? 2022-11-18 14:47 ? 次閱讀

	

NumPy作為 Python 生態(tài)中最受歡迎的科學(xué)計算包,很多讀者已經(jīng)非常熟悉它了。

它為 Python 提供高效率的多維數(shù)組計算,并提供了一系列高等數(shù)學(xué)函數(shù),我們可以快速搭建模型的整個計算流程。毫不負(fù)責(zé)任地說,NumPy 就是現(xiàn)代深度學(xué)習(xí)框架的「爸爸」。

盡管目前使用 NumPy 寫模型已經(jīng)不是主流,但這種方式依然不失為是理解底層架構(gòu)和深度學(xué)習(xí)原理的好方法。最近,來自普林斯頓的一位博士后將 NumPy 實(shí)現(xiàn)的所有機(jī)器學(xué)習(xí)模型全部開源,超過 3 萬行代碼、30 多個模型,并提供了相應(yīng)的論文和一些實(shí)現(xiàn)的測試效果。

項目地址:https://github.com/ddbourgin/numpy-ml

粗略估計,該項目大約有 30 個主要機(jī)器學(xué)習(xí)模型,此外還有 15 個用于預(yù)處理和計算的小工具,全部.py 文件數(shù)量有 62 個之多。平均每個模型的代碼行數(shù)在 500 行以上,在神經(jīng)網(wǎng)絡(luò)模型的 layer.py 文件中,代碼行數(shù)接近 4000。

這,應(yīng)該是目前用 NumPy 手寫機(jī)器學(xué)習(xí)模型的「最高境界」吧。

誰用 NumPy 手推了一大波 ML 模型?通過項目的代碼目錄,我們能發(fā)現(xiàn),作者基本上把主流模型都實(shí)現(xiàn)了一遍,這個工作量簡直驚為天人。作者 David Bourgin 是一位大神,于 2018 年獲得加州大學(xué)伯克利分校計算認(rèn)知科學(xué)博士學(xué)位,隨后在普林斯頓大學(xué)從事博士后研究。 盡管畢業(yè)不久,David 在頂級期刊與計算機(jī)會議上都發(fā)表了一些優(yōu)秀論文。在 ICML 2019 中,其關(guān)于認(rèn)知模型先驗(yàn)的研究就被接收為少有的 Oral 論文。 David Bourgin 就是用 NumPy 手寫 ML 模型、手推反向傳播的大神。這么多的工作量,當(dāng)然還是需要很多參考資源的,David 會理解這些資源或?qū)崿F(xiàn),并以一種更易讀的方式寫出來。 他表示,從 autograd repo 學(xué)到了很多,但二者的不同之處在于,他顯式地進(jìn)行了所有梯度計算,以突出概念/數(shù)學(xué)的清晰性。當(dāng)然,這么做的缺點(diǎn)也很明顯,在每次需要微分一個新函數(shù)時,你都要寫出它的公式…… 估計 David Bourgin 在寫完這個項目后,機(jī)器學(xué)習(xí)基礎(chǔ)已經(jīng)極其牢固了。項目總體介紹這個項目最大的特點(diǎn)是作者把機(jī)器學(xué)習(xí)模型都用 NumPy 手寫了一遍,包括更顯式的梯度計算和反向傳播過程。可以說它就是一個機(jī)器學(xué)習(xí)框架了,只不過代碼可讀性會強(qiáng)很多。 David Bourgin 表示他一直在慢慢寫或收集不同模型與模塊的純 NumPy 實(shí)現(xiàn),它們跑起來可能沒那么快,但是模型的具體過程一定足夠直觀。每當(dāng)我們想了解模型 API 背后的實(shí)現(xiàn),卻又不想看復(fù)雜的框架代碼,那么它可以作為快速的參考。 文章后面會具體介紹整個項目都有什么模型,這里先簡要介紹它的整體結(jié)構(gòu)。如下所示為項目文件,不同的文件夾即不同種類的代碼集。 15ccbc5a-66f7-11ed-8abf-dac502259ad0.jpg ?在每一個代碼集下,作者都會提供不同實(shí)現(xiàn)的參考資料,例如模型的效果示例圖、參考論文和參考鏈接等。如下所示,David 在實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)層級的過程中,還提供了參考論文。 15e600c0-66f7-11ed-8abf-dac502259ad0.jpg ?當(dāng)然如此龐大的代碼總會存在一些 Bug,作者也非常希望我們能一起完善這些實(shí)現(xiàn)。如果我們以前用純 NumPy 實(shí)現(xiàn)過某些好玩的模型,那也可以直接提交 PR 請求。因?yàn)閷?shí)現(xiàn)基本上都只依賴于 NumPy,那么環(huán)境配置就簡單很多了,大家差不多都能跑得動。手寫 NumPy 全家福作者在 GitHub 中提供了模型/模塊的實(shí)現(xiàn)列表,列表結(jié)構(gòu)基本就是代碼文件的結(jié)構(gòu)了。整體上,模型主要分為兩部分,即傳統(tǒng)機(jī)器學(xué)習(xí)模型主流的深度學(xué)習(xí)模型 其中淺層模型既有隱馬爾可夫模型和提升方法這樣的復(fù)雜模型,也包含了線性回歸或最近鄰等經(jīng)典方法。而深度模型則主要從各種模塊、層級、損失函數(shù)、最優(yōu)化器等角度搭建代碼架構(gòu),從而能快速構(gòu)建各種神經(jīng)網(wǎng)絡(luò)。 除了模型外,整個項目還有一些輔助模塊,包括一堆預(yù)處理相關(guān)的組件和有用的小工具。 該 repo 的模型或代碼結(jié)構(gòu)如下所示: 1. 高斯混合模型
  • EM 訓(xùn)練
2. 隱馬爾可夫模型
  • 維特比解碼
  • 似然計算
  • 通過 Baum-Welch/forward-backward 算法進(jìn)行 MLE 參數(shù)估計
3. 隱狄利克雷分配模型(主題模型)
  • 用變分 EM 進(jìn)行 MLE 參數(shù)估計的標(biāo)準(zhǔn)模型
  • 用 MCMC 進(jìn)行 MAP 參數(shù)估計的平滑模型
4. 神經(jīng)網(wǎng)絡(luò)4.1 層/層級運(yùn)算
  • Add
  • Flatten
  • Multiply
  • Softmax
  • 全連接/Dense
  • 稀疏進(jìn)化連接
  • LSTM
  • Elman 風(fēng)格的 RNN
  • 最大+平均池化
  • 點(diǎn)積注意力
  • 受限玻爾茲曼機(jī) (w. CD-n training)
  • 2D 轉(zhuǎn)置卷積 (w. padding 和 stride)
  • 2D 卷積 (w. padding、dilation 和 stride)
  • 1D 卷積 (w. padding、dilation、stride 和 causality)
4.2 模塊
  • 雙向 LSTM
  • ResNet 風(fēng)格的殘差塊(恒等變換和卷積)
  • WaveNet 風(fēng)格的殘差塊(帶有擴(kuò)張因果卷積)
  • Transformer 風(fēng)格的多頭縮放點(diǎn)積注意力
4.3 正則化項
  • Dropout
  • 歸一化
  • 批歸一化(時間上和空間上)
  • 層歸一化(時間上和空間上)
4.4 優(yōu)化器
  • SGD w/ 動量
  • AdaGrad
  • RMSProp
  • Adam
4.5 學(xué)習(xí)率調(diào)度器
  • 常數(shù)
  • 指數(shù)
  • Noam/Transformer
  • Dlib 調(diào)度器
4.6 權(quán)重初始化器
  • Glorot/Xavier uniform 和 normal
  • He/Kaiming uniform 和 normal
  • 標(biāo)準(zhǔn)和截斷正態(tài)分布初始化
4.7 損失
  • 交叉熵
  • 平方差
  • Bernoulli VAE 損失
  • 帶有梯度懲罰的 Wasserstein 損失
4.8 激活函數(shù)
  • ReLU
  • Tanh
  • Affine
  • Sigmoid
  • Leaky ReLU
4.9 模型
  • Bernoulli 變分自編碼器
  • 帶有梯度懲罰的 Wasserstein GAN
4.10 神經(jīng)網(wǎng)絡(luò)工具
  • col2im (MATLAB 端口)
  • im2col (MATLAB 端口)
  • conv1D
  • conv2D
  • deconv2D
  • minibatch
5. 基于樹的模型
  • 決策樹 (CART)
  • [Bagging] 隨機(jī)森林
  • [Boosting] 梯度提升決策樹
6. 線性模型
  • 嶺回歸
  • Logistic 回歸
  • 最小二乘法
  • 貝葉斯線性回歸 w/共軛先驗(yàn)
7.n 元序列模型
  • 最大似然得分
  • Additive/Lidstone 平滑
  • 簡單 Good-Turing 平滑
8. 強(qiáng)化學(xué)習(xí)模型
  • 使用交叉熵方法的智能
  • 首次訪問 on-policy 蒙特卡羅智能體
  • 加權(quán)增量重要采樣蒙特卡羅智能體
  • Expected SARSA 智能體
  • TD-0 Q-learning 智能體
  • Dyna-Q / Dyna-Q+ 優(yōu)先掃描
9. 非參數(shù)模型
  • Nadaraya-Watson 核回歸
  • k 最近鄰分類與回歸
10. 預(yù)處理
  • 離散傅立葉變換 (1D 信號)
  • 雙線性插值 (2D 信號)
  • 最近鄰插值 (1D 和 2D 信號)
  • 自相關(guān) (1D 信號)
  • 信號窗口
  • 文本分詞
  • 特征哈希
  • 特征標(biāo)準(zhǔn)化
  • One-hot 編碼/解碼
  • Huffman 編碼/解碼
  • 詞頻逆文檔頻率編碼
11. 工具
  • 相似度核
  • 距離度量
  • 優(yōu)先級隊列
  • Ball tree 數(shù)據(jù)結(jié)構(gòu)
項目示例由于代碼量龐大,這里整理了一些示例。 例如,實(shí)現(xiàn)點(diǎn)積注意力機(jī)制:1603bf84-66f7-11ed-8abf-dac502259ad0.png

								classDotProductAttention(LayerBase): def__init__(self,scale=True,dropout_p=0,init="glorot_uniform",optimizer=None): super().__init__(optimizer) self.init=init self.scale=scale self.dropout_p=dropout_p self.optimizer=self.optimizer self._init_params() def_fwd(self,Q,K,V): scale=1/np.sqrt(Q.shape[-1])ifself.scaleelse1 scores=Q@K.swapaxes(-2,-1)*scale#attentionscores weights=self.softmax.forward(scores)#attentionweights Y=weights@V returnY,weights def_bwd(self,dy,q,k,v,weights): d_k=k.shape[-1] scale=1/np.sqrt(d_k)ifself.scaleelse1 dV=weights.swapaxes(-2,-1)@dy dWeights=dy@v.swapaxes(-2,-1) dScores=self.softmax.backward(dWeights) dQ=dScores@k*scale dK=dScores.swapaxes(-2,-1)@q*scale returndQ,dK,dV
									在以上代碼中,Q、K、V 三個向量輸入到「_fwd」函數(shù)中,用于計算每個向量的注意力分?jǐn)?shù),并通過 softmax 的方式得到權(quán)重。而「_bwd」函數(shù)則計算 V、注意力權(quán)重、注意力分?jǐn)?shù)、Q 和 K 的梯度,用于更新網(wǎng)絡(luò)權(quán)重。
									在一些實(shí)現(xiàn)中,作者也進(jìn)行了測試,并給出了測試結(jié)果。如圖為隱狄利克雷(Latent Dirichlet allocation,LDA)實(shí)現(xiàn)進(jìn)行文本聚類的結(jié)果。左圖為詞語在特定主題中的分布熱力圖。右圖則為文檔在特定主題中的分布熱力圖。
									16214cd4-66f7-11ed-8abf-dac502259ad0.jpg圖注:隱狄利克雷分布實(shí)現(xiàn)的效果。

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4344

    瀏覽量

    62824
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8429

    瀏覽量

    132854
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4802

    瀏覽量

    84890

原文標(biāo)題:?Numpy手寫機(jī)器學(xué)習(xí)算法,3萬行代碼!

文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    LM98640是給個過滿度的正弦采集大量全碼數(shù)據(jù)進(jìn)行概率分布計算DNL還是給個斜坡進(jìn)行靜態(tài)測試?

    是給個過滿度的正弦采集大量全碼數(shù)據(jù)進(jìn)行概率分布計算DNL還是給個斜坡進(jìn)行靜態(tài)測試? 我的正弦測試結(jié)果怎么使兩頭各有
    發(fā)表于 12-25 07:11

    如何使用Python構(gòu)建LSTM神經(jīng)網(wǎng)絡(luò)模型

    NumPy:用于數(shù)學(xué)運(yùn)算。 TensorFlow:個開源機(jī)器學(xué)習(xí)庫,Keras是其高級API。 Keras:用于構(gòu)建和訓(xùn)練深度學(xué)習(xí)模型。 你可以使用pip來安裝這些庫: pip install
    的頭像 發(fā)表于 11-13 10:10 ?489次閱讀

    搓黨分享:Air700E開發(fā)板+毫米雷達(dá),搓個睡眠監(jiān)測儀!

    ?只能說,看到這個大佬分享的睡眠監(jiān)測儀,手上的手環(huán)瞬間不香了。。。 Air700E開發(fā)板+毫米雷達(dá),個開箱即用的睡眠監(jiān)測儀,不花冤枉錢!
    的頭像 發(fā)表于 10-15 11:18 ?318次閱讀
    <b class='flag-5'>手</b>搓黨分享:<b class='flag-5'>用</b>Air700E開發(fā)板+毫米<b class='flag-5'>波</b>雷達(dá),搓<b class='flag-5'>一</b>個睡眠監(jiān)測儀!

    Air700E開發(fā)板+毫米雷達(dá),搓了個睡眠監(jiān)測儀

    ? Air700E開發(fā)板+毫米雷達(dá),個開箱即用的睡眠監(jiān)測儀,不花冤枉錢!
    的頭像 發(fā)表于 10-05 14:43 ?290次閱讀
    <b class='flag-5'>用</b>Air700E開發(fā)板+毫米<b class='flag-5'>波</b>雷達(dá),<b class='flag-5'>手</b>搓了<b class='flag-5'>一</b>個睡眠監(jiān)測儀

    為AI、ML和數(shù)字孿生模型建立可信數(shù)據(jù)

    在當(dāng)今數(shù)據(jù)驅(qū)動的世界中,人工智能(AI)、機(jī)器學(xué)習(xí)(ML)和數(shù)字孿生技術(shù)正在深刻改變行業(yè)、流程和企業(yè)運(yùn)營環(huán)境。每天產(chǎn)生的超過3.28億TB數(shù)據(jù)已成為新“石油”——為下代數(shù)字系統(tǒng)提供所需的能源。
    的頭像 發(fā)表于 09-30 10:23 ?312次閱讀

    二只OPA548組成功率輸出電路,二只管子的電流工作時一大一小,為什么?

    我有電路,二只OPA548組成功率輸出電路,電流限在2.5A,電壓峰峰值50V,現(xiàn)的問題是電路輸出正弦正常,可二只管子的電流工作時一大一小(判斷方法:從散片上摸
    發(fā)表于 08-30 06:38

    TINA如何搭建仿真模型

    使用TINA仿真單極運(yùn)放的環(huán)路,仿真模型知道怎么搭建,現(xiàn)在要仿真由兩級TL082搭建的兩級運(yùn)放的環(huán)路穩(wěn)定性,請教,TINA如何搭建仿真模型,謝謝!
    發(fā)表于 08-15 08:10

    功率放大器在Lamb信號波包模型驗(yàn)證研究中的應(yīng)用

    ?實(shí)驗(yàn)名稱:窄帶激勵條件下的蘭姆時域信號參數(shù)估計研究研究方向:Lamb測試目的:基于Lamb的二階頻散理論,提出了時域信號的波包模型,為全文奠定理論基礎(chǔ)。
    的頭像 發(fā)表于 08-08 11:35 ?837次閱讀
    功率放大器在Lamb<b class='flag-5'>波</b>信號波包<b class='flag-5'>模型</b>驗(yàn)證研究中的應(yīng)用

    OPA454沒有放大波形輸出是怎么回事?

    你好,我3.3V單片機(jī)輸出PWM波形(也信號發(fā)生器模擬輸入波形),接線圖如上圖,OPA454采用單電源供電,OPA454沒有放大波形輸出,示波器測量的信號比輸入的信號還小,麻
    發(fā)表于 08-05 06:26

    如何訓(xùn)練個有效的eIQ基本分類模型

    在 MCX CPU和eIQ Neutron NPU上。 eIQPortal它是個直觀的圖形用戶界面(GUI),簡化了ML開發(fā)。開發(fā)人員可以創(chuàng)建、優(yōu)化、調(diào)試和導(dǎo)出ML模型,以及導(dǎo)入數(shù)據(jù)
    的頭像 發(fā)表于 08-01 09:29 ?1949次閱讀
    如何訓(xùn)練<b class='flag-5'>一</b>個有效的eIQ基本分類<b class='flag-5'>模型</b>

    Achronix新推出款用于AI/ML計算或者大模型的B200芯片

    近日舉辦的GTC大會把人工智能/機(jī)器學(xué)習(xí)(AI/ML)領(lǐng)域中的算力比拼又帶到了個新的高度,這不只是說明了通用圖形處理器(GPGPU)時代的來臨
    的頭像 發(fā)表于 03-28 15:48 ?857次閱讀
    Achronix新推出<b class='flag-5'>一</b>款用于AI/<b class='flag-5'>ML</b>計算或者大<b class='flag-5'>模型</b>的B200芯片

    請問下STM32G431CBT6的CANFD支持的最大波特率是多大呀?

    請問下STM32G431CBT6的CANFD支持的最大波特率是多大呀?
    發(fā)表于 03-14 07:14

    谷歌模型怎么PS打開文件和圖片

    谷歌模型本身并不是Adobe Photoshop(簡稱PS)打開的文件和圖片格式。谷歌模型通常是用于機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的模型文件,如TensorFlow
    的頭像 發(fā)表于 02-29 18:25 ?1513次閱讀

    使用ml configurator進(jìn)行tflite網(wǎng)絡(luò)模型的轉(zhuǎn)換不成功怎么解決?

    使用ml configurator進(jìn)行tflite網(wǎng)絡(luò)模型的轉(zhuǎn)換不成功,提示錯誤,請幫忙協(xié)助謝謝 [ERROR] Failed to run QEMU
    發(fā)表于 01-31 06:56

    最佳開源模型刷新多項SOTA,首次超越Mixtral Instruct!「開源版GPT-4」家族迎來大爆發(fā)

    Mixtral 8x7B模型開源后,AI社區(qū)再次迎來一大波微調(diào)實(shí)踐。來自Nous Research應(yīng)用研究小組團(tuán)隊微調(diào)出新代大模型Nous-Hermes 2 Mixtral 8x7B
    的頭像 發(fā)表于 01-30 15:29 ?990次閱讀
    最佳開源<b class='flag-5'>模型</b>刷新多項SOTA,首次超越Mixtral Instruct!「開源版GPT-4」家族迎來大爆發(fā)
    主站蜘蛛池模板: 熊出没之环球大冒险旧版免费观看| 一区二区三区四区免费视频| 福利视频自拍| 黄色免费在线网址| 91天天干| 6080yy午夜不卡一二三区| 一区三区三区不卡| 欧美日本一区| 有码日韩| 色欧美在线视频| tube亚洲高清老少配| 国产黄在线观看免费观看不卡| 手机在线观看免费视频| 又粗又长又爽又长黄免费视频| 男男互攻h啪肉np文厉世| 亚洲1页| 三级网站在线免费观看| 美女一级a毛片免费观看| 日本一卡二卡≡卡四卡精品| 亚洲高清毛片| 色多视频| 狠狠丁香激情久久综合| 777777777妇女亚洲| 久久天天躁狠狠躁夜夜躁| 欧洲三级网站| 中日韩在线视频| 日韩黄色免费| 国产特级毛片aaaaaa毛片| 午夜高清在线| 201天天爱天天做| 男人的午夜| 视频色版| 国产午夜人做人视频羞羞| 手机看片福利盒子久久青| 日本人xxxxxxxxxⅹ68| 99久久精品免费观看国产| 日本视频www| www五月天com| 国产一级毛片国语版| 男人j进女人j的一进一出视频| 色香焦|