自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

什么是神經(jīng)網(wǎng)絡?神經(jīng)網(wǎng)絡開發(fā)框架——PyTorch和架構Transformer的區(qū)別和聯(lián)系 原創(chuàng)

發(fā)布于 2025-1-13 10:30
瀏覽
0收藏

“ PyTorch就是工具,而Transformer就是理論;而理論指導工具?!?/strong>

我們都知道大模型的本質是一個神經(jīng)網(wǎng)絡模型,因此我們學習大模型就是在學習神經(jīng)網(wǎng)絡模型;但了解了很多關于神經(jīng)網(wǎng)絡的理論,但大部分人對神經(jīng)網(wǎng)絡都沒有一個清晰的認識,也就是說神經(jīng)網(wǎng)絡到底是什么?它長什么樣?

事實上所謂的神經(jīng)網(wǎng)絡本質上就是一個數(shù)學模型,里面涉及大量的數(shù)學運算;只不過其運算的主要數(shù)據(jù)類型是——向量,具體表現(xiàn)為多維矩陣。

PyTorch和Transformer

在神經(jīng)網(wǎng)絡的學習研究過程中,有兩個東西是繞不過去的;一個是PyTorch神經(jīng)網(wǎng)絡開發(fā)框架,另一個就是Transformer神經(jīng)網(wǎng)絡架構。它們兩者之間的關系就類似于編程語言和算法之間的關系,PyTorch就是編程語言;而Transformer就是算法。

Transformer即可以通過PyTorch框架實現(xiàn),也可以通過其它框架實現(xiàn),比如Tensorflow;PyTorch也可以實現(xiàn)其它的網(wǎng)絡架構模型,比如CNN和RNN等。

因此,PyTorch也被稱為科學計算框架,原因就在于神經(jīng)網(wǎng)絡的本質就是數(shù)學模型,而數(shù)學模型就是不停地做科學計算。

如下就是一個簡單的使用PyTorch實現(xiàn)的簡單神經(jīng)網(wǎng)絡模型,從代碼中可以看出,一個神經(jīng)網(wǎng)絡主要由兩部分組成,init初始化方法和forward前向傳播方法。

import torch
import torch.nn as nn


# 定義簡單的神經(jīng)網(wǎng)絡架構
class SimpleNeuralNetwork(nn.Module):
    def __init__(self):
        super(SimpleNeuralNetwork, self).__init__()
        self.layer1 = nn.Linear(10, 5)  # 輸入層10維,輸出5維
        self.layer2 = nn.Linear(5, 2)   # 隱藏層5維,輸出2維


    def forward(self, x):
        x = torch.relu(self.layer1(x))  # 使用ReLU激活函數(shù)
        x = self.layer2(x)              # 輸出層不需要激活函數(shù)
        return x


# 創(chuàng)建模型實例并輸出網(wǎng)絡結構
model = SimpleNeuralNetwork()
print(model)

在init方法中主要用來初始化一些參數(shù),以及神經(jīng)網(wǎng)絡的網(wǎng)絡層;比如Linear就是一個線性神經(jīng)網(wǎng)絡層——也叫做全連接層。

而forward方法就用來做一些科學計算,也就是神經(jīng)網(wǎng)絡模型中的傳播算法等。比如上面代碼中,就是對目標數(shù)據(jù)x先使用layer1網(wǎng)絡層做一次線性變換,然后再使用relu函數(shù)進行激活。之后在使用layer2線性網(wǎng)絡做一次線性變換,最終返回變換之后x的值。

在神經(jīng)網(wǎng)絡中,除了輸入層與輸出層之外;任何一層網(wǎng)絡的輸入都來自上層網(wǎng)絡的輸出;而任何一層網(wǎng)絡的輸出就是下層網(wǎng)絡的輸入。

什么是神經(jīng)網(wǎng)絡?神經(jīng)網(wǎng)絡開發(fā)框架——PyTorch和架構Transformer的區(qū)別和聯(lián)系-AI.x社區(qū)

所以,神經(jīng)網(wǎng)絡的核心就是:“將現(xiàn)實問題轉化為數(shù)學問題,通過求解數(shù)學問題,從而解決現(xiàn)實問題”。

但是,為什么多維矩陣在經(jīng)過多層神經(jīng)網(wǎng)絡的多次變換之后,就能夠“理解”自然語言,“看懂”圖片和視頻;這個就是Transformer等神經(jīng)網(wǎng)絡架構需要解決的問題了。

從外面來看,神經(jīng)網(wǎng)絡就是一個黑盒,我們輸入一些數(shù)據(jù),然后神經(jīng)網(wǎng)絡這個黑盒就能根據(jù)某種規(guī)則給我們生成一些新的數(shù)據(jù);但我們并不知道神經(jīng)網(wǎng)絡中到底發(fā)生了什么。

但把這個黑盒打開之后就可以看到,Transformer這個黑盒是由Encoder-Decoder編碼器和解碼器組成的;而編碼器和解碼器又由更小的組件組成——比如多頭注意力,殘差層等組成。

什么是神經(jīng)網(wǎng)絡?神經(jīng)網(wǎng)絡開發(fā)框架——PyTorch和架構Transformer的區(qū)別和聯(lián)系-AI.x社區(qū)

如上圖所示就是Transformer論文提供的經(jīng)典架構圖;詳細說明了Transformer的編碼器和解碼器是怎么構成的。

因此,PyTorch和Transformer的關系就是工具和理論的關系;沒了工具就無法制造出神經(jīng)網(wǎng)絡,而沒有理論神經(jīng)網(wǎng)絡就無法解決實際問題;這里PyTorch就是制造神經(jīng)網(wǎng)絡的工具;而Transformer就是讓神經(jīng)網(wǎng)絡能夠正常運行的理論。


本文轉載自公眾號AI探索時代 作者:DFires

原文鏈接:??https://mp.weixin.qq.com/s/JjKU3j9-RLrxnRpkjv62Ow??

?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
收藏
回復
舉報
回復
相關推薦