偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

超強(qiáng)!深度學(xué)習(xí)Top10算法!

人工智能
自2006年深度學(xué)習(xí)概念被提出以來(lái),20年快過(guò)去了,深度學(xué)習(xí)作為人工智能領(lǐng)域的一場(chǎng)革命,已經(jīng)催生了許多具有影響力的算法。那么,你所認(rèn)為深度學(xué)習(xí)的top10算法有哪些呢?

自2006年深度學(xué)習(xí)概念被提出以來(lái),20年快過(guò)去了,深度學(xué)習(xí)作為人工智能領(lǐng)域的一場(chǎng)革命,已經(jīng)催生了許多具有影響力的算法。那么,你所認(rèn)為深度學(xué)習(xí)的top10算法有哪些呢?

以下是花哥我心目中的深度學(xué)習(xí)top10算法,它們?cè)趧?chuàng)新性、應(yīng)用價(jià)值和影響力方面都具有重要的地位。

1、深度神經(jīng)網(wǎng)絡(luò)(DNN)

背景:深度神經(jīng)網(wǎng)絡(luò)(DNN)也叫多層感知機(jī),是最普遍的深度學(xué)習(xí)算法,發(fā)明之初由于算力瓶頸而飽受質(zhì)疑,直到近些年算力、數(shù)據(jù)的爆發(fā)才迎來(lái)突破。

模型原理:它是一種包含多個(gè)隱藏層的神經(jīng)網(wǎng)絡(luò)。每一層都將其輸入傳遞給下一層,并使用非線性激活函數(shù)來(lái)引入學(xué)習(xí)的非線性特性。通過(guò)組合這些非線性變換,DNN能夠?qū)W習(xí)輸入數(shù)據(jù)的復(fù)雜特征表示。

模型訓(xùn)練:使用反向傳播算法和梯度下降優(yōu)化算法來(lái)更新權(quán)重。在訓(xùn)練過(guò)程中,通過(guò)計(jì)算損失函數(shù)關(guān)于權(quán)重的梯度,然后使用梯度下降或其他優(yōu)化算法來(lái)更新權(quán)重,以最小化損失函數(shù)。

優(yōu)點(diǎn):能夠?qū)W習(xí)輸入數(shù)據(jù)的復(fù)雜特征,并捕獲非線性關(guān)系。具有強(qiáng)大的特征學(xué)習(xí)和表示能力。

缺點(diǎn):隨著網(wǎng)絡(luò)深度的增加,梯度消失問題變得嚴(yán)重,導(dǎo)致訓(xùn)練不穩(wěn)定。容易陷入局部最小值,可能需要復(fù)雜的初始化策略和正則化技術(shù)。

使用場(chǎng)景:圖像分類、語(yǔ)音識(shí)別、自然語(yǔ)言處理、推薦系統(tǒng)等。

Python示例代碼:

import numpy as np
from keras.models import Sequential
from keras.layers import Dense
# 假設(shè)有10個(gè)輸入特征和3個(gè)輸出類別  
input_dim = 10
num_classes = 3
# 創(chuàng)建DNN模型  
model = Sequential()
model.add(Dense(64, activatinotallow='relu', input_shape=(input_dim,)))
model.add(Dense(32, activatinotallow='relu'))
model.add(Dense(num_classes, activatinotallow='softmax'))
# 編譯模型,選擇優(yōu)化器和損失函數(shù)  
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
# 假設(shè)有100個(gè)樣本的訓(xùn)練數(shù)據(jù)和標(biāo)簽  
X_train = np.random.rand(100, input_dim)
y_train = np.random.randint(0, 2, size=(100, num_classes))
# 訓(xùn)練模型  
model.fit(X_train, y_train, epochs=10)

2、卷積神經(jīng)網(wǎng)絡(luò)(CNN)

模型原理:卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一種專門為處理圖像數(shù)據(jù)而設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò),由Lechun大佬設(shè)計(jì)的Lenet是CNN的開山之作。CNN通過(guò)使用卷積層來(lái)捕獲局部特征,并通過(guò)池化層來(lái)降低數(shù)據(jù)的維度。卷積層對(duì)輸入數(shù)據(jù)進(jìn)行局部卷積操作,并使用參數(shù)共享機(jī)制來(lái)減少模型的參數(shù)數(shù)量。池化層則對(duì)卷積層的輸出進(jìn)行下采樣,以降低數(shù)據(jù)的維度和計(jì)算復(fù)雜度。這種結(jié)構(gòu)特別適合處理圖像數(shù)據(jù)。

模型訓(xùn)練:使用反向傳播算法和梯度下降優(yōu)化算法來(lái)更新權(quán)重。在訓(xùn)練過(guò)程中,通過(guò)計(jì)算損失函數(shù)關(guān)于權(quán)重的梯度,然后使用梯度下降或其他優(yōu)化算法來(lái)更新權(quán)重,以最小化損失函數(shù)。

優(yōu)點(diǎn):能夠有效地處理圖像數(shù)據(jù),并捕獲局部特征。具有較少的參數(shù)數(shù)量,降低了過(guò)擬合的風(fēng)險(xiǎn)。

缺點(diǎn):對(duì)于序列數(shù)據(jù)或長(zhǎng)距離依賴關(guān)系可能不太適用??赡苄枰獙?duì)輸入數(shù)據(jù)進(jìn)行復(fù)雜的預(yù)處理。

使用場(chǎng)景:圖像分類、目標(biāo)檢測(cè)、語(yǔ)義分割等。

Python示例代碼

from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
# 假設(shè)輸入圖像的形狀是64x64像素,有3個(gè)顏色通道  
input_shape = (64, 64, 3)
# 創(chuàng)建CNN模型  
model = Sequential()
model.add(Conv2D(32, (3, 3), activatinotallow='relu', input_shape=input_shape))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activatinotallow='relu'))
model.add(Flatten())
model.add(Dense(128, activatinotallow='relu'))
model.add(Dense(num_classes, activatinotallow='softmax'))
# 編譯模型,選擇優(yōu)化器和損失函數(shù)  
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
# 假設(shè)有100個(gè)樣本的訓(xùn)練數(shù)據(jù)和標(biāo)簽  
X_train = np.random.rand(100, *input_shape)
y_train = np.random.randint(0, 2, size=(100, num_classes))
# 訓(xùn)練模型  
model.fit(X_train, y_train, epochs=10)

3、殘差網(wǎng)絡(luò)(ResNet)

隨著深度學(xué)習(xí)的快速發(fā)展,深度神經(jīng)網(wǎng)絡(luò)在多個(gè)領(lǐng)域取得了顯著的成功。然而,深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練面臨著梯度消失和模型退化等問題,這限制了網(wǎng)絡(luò)的深度和性能。為了解決這些問題,殘差網(wǎng)絡(luò)(ResNet)被提出。

模型原理:

ResNet通過(guò)引入“殘差塊”來(lái)解決深度神經(jīng)網(wǎng)絡(luò)中的梯度消失和模型退化問題。殘差塊由一個(gè)“跳躍連接”和一個(gè)或多個(gè)非線性層組成,使得梯度可以直接從后面的層反向傳播到前面的層,從而更好地訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)。通過(guò)這種方式,ResNet能夠構(gòu)建非常深的網(wǎng)絡(luò)結(jié)構(gòu),并在多個(gè)任務(wù)上取得了優(yōu)異的性能。

模型訓(xùn)練:

ResNet的訓(xùn)練通常使用反向傳播算法和優(yōu)化算法(如隨機(jī)梯度下降)。在訓(xùn)練過(guò)程中,通過(guò)計(jì)算損失函數(shù)關(guān)于權(quán)重的梯度,并使用優(yōu)化算法更新權(quán)重,以最小化損失函數(shù)。此外,為了加速訓(xùn)練過(guò)程和提高模型的泛化能力,還可以采用正則化技術(shù)、集成學(xué)習(xí)等方法。

優(yōu)點(diǎn):

  1. 解決了梯度消失和模型退化問題:通過(guò)引入殘差塊和跳躍連接,ResNet能夠更好地訓(xùn)練深度神經(jīng)網(wǎng)絡(luò),避免了梯度消失和模型退化的問題。
  2. 構(gòu)建了非常深的網(wǎng)絡(luò)結(jié)構(gòu):由于解決了梯度消失和模型退化問題,ResNet能夠構(gòu)建非常深的網(wǎng)絡(luò)結(jié)構(gòu),從而提高了模型的性能。
  3. 在多個(gè)任務(wù)上取得了優(yōu)異的性能:由于其強(qiáng)大的特征學(xué)習(xí)和表示能力,ResNet在多個(gè)任務(wù)上取得了優(yōu)異的性能,如圖像分類、目標(biāo)檢測(cè)等。

缺點(diǎn):

  1. 計(jì)算量大:由于ResNet通常構(gòu)建非常深的網(wǎng)絡(luò)結(jié)構(gòu),因此計(jì)算量較大,需要較高的計(jì)算資源和時(shí)間進(jìn)行訓(xùn)練。
  2. 參數(shù)調(diào)優(yōu)難度大:ResNet的參數(shù)數(shù)量眾多,需要花費(fèi)大量時(shí)間和精力進(jìn)行調(diào)優(yōu)和超參數(shù)選擇。
  3. 對(duì)初始化權(quán)重敏感:ResNet對(duì)初始化權(quán)重的選擇敏感度高,如果初始化權(quán)重不合適,可能會(huì)導(dǎo)致訓(xùn)練不穩(wěn)定或過(guò)擬合問題。

使用場(chǎng)景:

ResNet在計(jì)算機(jī)視覺領(lǐng)域有著廣泛的應(yīng)用場(chǎng)景,如圖像分類、目標(biāo)檢測(cè)、人臉識(shí)別等。此外,ResNet還可以用于自然語(yǔ)言處理、語(yǔ)音識(shí)別等領(lǐng)域。

Python示例代碼(簡(jiǎn)化版):

在這個(gè)簡(jiǎn)化版的示例中,我們將演示如何使用Keras庫(kù)構(gòu)建一個(gè)簡(jiǎn)單的ResNet模型。

from keras.models import Sequential
from keras.layers import Conv2D, Add, Activation, BatchNormalization, Shortcut
def residual_block(input, filters):
x = Conv2D(filters=filters, kernel_size=(3, 3), padding='same')(input)
x = BatchNormalization()(x)
x = Activation('relu')(x)
x = Conv2D(filters=filters, kernel_size=(3, 3), padding='same')(x)
x = BatchNormalization()(x)
x = Activation('relu')(x)
return x

4、LSTM(長(zhǎng)短時(shí)記憶網(wǎng)絡(luò))

在處理序列數(shù)據(jù)時(shí),傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)面臨著梯度消失和模型退化等問題,這限制了網(wǎng)絡(luò)的深度和性能。為了解決這些問題,LSTM被提出。

模型原理:

LSTM通過(guò)引入“門控”機(jī)制來(lái)控制信息的流動(dòng),從而解決梯度消失和模型退化問題。LSTM有三個(gè)門控機(jī)制:輸入門、遺忘門和輸出門。輸入門決定了新信息的進(jìn)入,遺忘門決定了舊信息的遺忘,輸出門決定最終輸出的信息。通過(guò)這些門控機(jī)制,LSTM能夠在長(zhǎng)期依賴問題上表現(xiàn)得更好。

模型訓(xùn)練:

LSTM的訓(xùn)練通常使用反向傳播算法和優(yōu)化算法(如隨機(jī)梯度下降)。在訓(xùn)練過(guò)程中,通過(guò)計(jì)算損失函數(shù)關(guān)于權(quán)重的梯度,并使用優(yōu)化算法更新權(quán)重,以最小化損失函數(shù)。此外,為了加速訓(xùn)練過(guò)程和提高模型的泛化能力,還可以采用正則化技術(shù)、集成學(xué)習(xí)等方法。

優(yōu)點(diǎn):

  1. 解決梯度消失和模型退化問題:通過(guò)引入門控機(jī)制,LSTM能夠更好地處理長(zhǎng)期依賴問題,避免了梯度消失和模型退化的問題。
  2. 構(gòu)建非常深的網(wǎng)絡(luò)結(jié)構(gòu):由于解決了梯度消失和模型退化問題,LSTM能夠構(gòu)建非常深的網(wǎng)絡(luò)結(jié)構(gòu),從而提高了模型的性能。
  3. 在多個(gè)任務(wù)上取得了優(yōu)異的性能:由于其強(qiáng)大的特征學(xué)習(xí)和表示能力,LSTM在多個(gè)任務(wù)上取得了優(yōu)異的性能,如文本生成、語(yǔ)音識(shí)別、機(jī)器翻譯等。

缺點(diǎn):

  1. 參數(shù)調(diào)優(yōu)難度大:LSTM的參數(shù)數(shù)量眾多,需要花費(fèi)大量時(shí)間和精力進(jìn)行調(diào)優(yōu)和超參數(shù)選擇。
  2. 對(duì)初始化權(quán)重敏感:LSTM對(duì)初始化權(quán)重的選擇敏感度高,如果初始化權(quán)重不合適,可能會(huì)導(dǎo)致訓(xùn)練不穩(wěn)定或過(guò)擬合問題。
  3. 計(jì)算量大:由于LSTM通常構(gòu)建非常深的網(wǎng)絡(luò)結(jié)構(gòu),因此計(jì)算量較大,需要較高的計(jì)算資源和時(shí)間進(jìn)行訓(xùn)練。

使用場(chǎng)景:

LSTM在自然語(yǔ)言處理領(lǐng)域有著廣泛的應(yīng)用場(chǎng)景,如文本生成、機(jī)器翻譯、語(yǔ)音識(shí)別等。此外,LSTM還可以用于時(shí)間序列分析、推薦系統(tǒng)等領(lǐng)域。

Python示例代碼(簡(jiǎn)化版):

from keras.models import Sequential
from keras.layers import LSTM, Dense
def lstm_model(input_shape, num_classes):
model = Sequential()
model.add(LSTM(units=128, input_shape=input_shape))  # 添加一個(gè)LSTM層  
model.add(Dense(units=num_classes, activatinotallow='softmax'))  # 添加一個(gè)全連接層  
return model

5、Word2Vec

Word2Vec模型是表征學(xué)習(xí)的開山之作。由Google的科學(xué)家們開發(fā)的一種用于自然語(yǔ)言處理的(淺層)神經(jīng)網(wǎng)絡(luò)模型。Word2Vec模型的目標(biāo)是將每個(gè)詞向量化為一個(gè)固定大小的向量,這樣相似的詞就可以被映射到相近的向量空間中。

模型原理

Word2Vec模型基于神經(jīng)網(wǎng)絡(luò),利用輸入的詞預(yù)測(cè)其上下文詞。在訓(xùn)練過(guò)程中,模型嘗試學(xué)習(xí)到每個(gè)詞的向量表示,使得在給定上下文中出現(xiàn)的詞與目標(biāo)詞的向量表示盡可能接近。這種訓(xùn)練方式稱為“Skip-gram”或“Continuous Bag of Words”(CBOW)。

模型訓(xùn)練

訓(xùn)練Word2Vec模型需要大量的文本數(shù)據(jù)。首先,將文本數(shù)據(jù)預(yù)處理為一系列的詞或n-gram。然后,使用神經(jīng)網(wǎng)絡(luò)訓(xùn)練這些詞或n-gram的上下文。在訓(xùn)練過(guò)程中,模型會(huì)不斷地調(diào)整詞的向量表示,以最小化預(yù)測(cè)誤差。

優(yōu)點(diǎn)

  1. 語(yǔ)義相似性: Word2Vec能夠?qū)W習(xí)到詞與詞之間的語(yǔ)義關(guān)系,相似的詞在向量空間中距離相近。
  2. 高效的訓(xùn)練: Word2Vec的訓(xùn)練過(guò)程相對(duì)高效,可以在大規(guī)模文本數(shù)據(jù)上訓(xùn)練。
  3. 可解釋性: Word2Vec的詞向量具有一定的可解釋性,可以用于諸如聚類、分類、語(yǔ)義相似性計(jì)算等任務(wù)。

缺點(diǎn)

  1. 數(shù)據(jù)稀疏性: 對(duì)于大量未在訓(xùn)練數(shù)據(jù)中出現(xiàn)的詞,Word2Vec可能無(wú)法為其生成準(zhǔn)確的向量表示。
  2. 上下文窗口: Word2Vec只考慮了固定大小的上下文,可能會(huì)忽略更遠(yuǎn)的依賴關(guān)系。
  3. 計(jì)算復(fù)雜度: Word2Vec的訓(xùn)練和推理過(guò)程需要大量的計(jì)算資源。
  4. 參數(shù)調(diào)整: Word2Vec的性能高度依賴于超參數(shù)(如向量維度、窗口大小、學(xué)習(xí)率等)的設(shè)置。

使用場(chǎng)景

Word2Vec被廣泛應(yīng)用于各種自然語(yǔ)言處理任務(wù),如文本分類、情感分析、信息提取等。例如,可以使用Word2Vec來(lái)識(shí)別新聞報(bào)道的情感傾向(正面或負(fù)面),或者從大量文本中提取關(guān)鍵實(shí)體或概念。

Python示例代碼

from gensim.models import Word2Vec  
from nltk.tokenize import word_tokenize  
from nltk.corpus import abc  
import nltk  
  
# 下載和加載abc語(yǔ)料庫(kù)  
nltk.download('abc')  
corpus = abc.sents()  
  
# 將語(yǔ)料庫(kù)分詞并轉(zhuǎn)換為小寫  
sentences = [[word.lower() for word in word_tokenize(text)] for text in corpus]  
  
# 訓(xùn)練Word2Vec模型  
model = Word2Vec(sentences, vector_size=100, window=5, min_count=5, workers=4)  
  
# 查找詞"the"的向量表示  
vector = model.wv['the']  
  
# 計(jì)算與其他詞的相似度  
similarity = model.wv.similarity('the', 'of')  
  
# 打印相似度值  
print(similarity)

6、Transformer

背景:

在深度學(xué)習(xí)的早期階段,卷積神經(jīng)網(wǎng)絡(luò)(CNN)在圖像識(shí)別和自然語(yǔ)言處理領(lǐng)域取得了顯著的成功。然而,隨著任務(wù)復(fù)雜度的增加,序列到序列(Seq2Seq)模型和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)成為處理序列數(shù)據(jù)的常用方法。盡管RNN及其變體在某些任務(wù)上表現(xiàn)良好,但它們?cè)谔幚黹L(zhǎng)序列時(shí)容易遇到梯度消失和模型退化問題。為了解決這些問題,Transformer模型被提出。而后的GPT、Bert等大模型都是基于Transformer實(shí)現(xiàn)了卓越的性能!

模型原理:

Transformer模型主要由兩部分組成:編碼器和解碼器。每個(gè)部分都由多個(gè)相同的“層”組成。每一層包含兩個(gè)子層:自注意力子層和線性前饋神經(jīng)網(wǎng)絡(luò)子層。自注意力子層利用點(diǎn)積注意力機(jī)制計(jì)算輸入序列中每個(gè)位置的表示,而線性前饋神經(jīng)網(wǎng)絡(luò)子層則將自注意力層的輸出作為輸入,并產(chǎn)生一個(gè)輸出表示。此外,編碼器和解碼器都包含一個(gè)位置編碼層,用于捕獲輸入序列中的位置信息。

模型訓(xùn)練:

Transformer模型的訓(xùn)練通常使用反向傳播算法和優(yōu)化算法(如隨機(jī)梯度下降)。在訓(xùn)練過(guò)程中,通過(guò)計(jì)算損失函數(shù)關(guān)于權(quán)重的梯度,并使用優(yōu)化算法更新權(quán)重,以最小化損失函數(shù)。此外,為了加速訓(xùn)練過(guò)程和提高模型的泛化能力,還可以采用正則化技術(shù)、集成學(xué)習(xí)等方法。

優(yōu)點(diǎn):

  1. 解決了梯度消失和模型退化問題:由于Transformer模型采用自注意力機(jī)制,它能夠更好地捕捉序列中的長(zhǎng)期依賴關(guān)系,從而避免了梯度消失和模型退化的問題。
  2. 高效的并行計(jì)算能力:由于Transformer模型的計(jì)算是可并行的,因此在GPU上可以快速地進(jìn)行訓(xùn)練和推斷。
  3. 在多個(gè)任務(wù)上取得了優(yōu)異的性能:由于其強(qiáng)大的特征學(xué)習(xí)和表示能力,Transformer模型在多個(gè)任務(wù)上取得了優(yōu)異的性能,如機(jī)器翻譯、文本分類、語(yǔ)音識(shí)別等。

缺點(diǎn):

  1. 計(jì)算量大:由于Transformer模型的計(jì)算是可并行的,因此需要大量的計(jì)算資源進(jìn)行訓(xùn)練和推斷。
  2. 對(duì)初始化權(quán)重敏感:Transformer模型對(duì)初始化權(quán)重的選擇敏感度高,如果初始化權(quán)重不合適,可能會(huì)導(dǎo)致訓(xùn)練不穩(wěn)定或過(guò)擬合問題。
  3. 無(wú)法學(xué)習(xí)長(zhǎng)期依賴關(guān)系:盡管Transformer模型解決了梯度消失和模型退化問題,但在處理非常長(zhǎng)的序列時(shí)仍然存在挑戰(zhàn)。

使用場(chǎng)景:

Transformer模型在自然語(yǔ)言處理領(lǐng)域有著廣泛的應(yīng)用場(chǎng)景,如機(jī)器翻譯、文本分類、文本生成等。此外,Transformer模型還可以用于圖像識(shí)別、語(yǔ)音識(shí)別等領(lǐng)域。

Python示例代碼(簡(jiǎn)化版):

import torch  
import torch.nn as nn  
import torch.nn.functional as F  
  
class TransformerModel(nn.Module):  
    def __init__(self, vocab_size, embedding_dim, num_heads, num_layers, dropout_rate=0.5):  
        super(TransformerModel, self).__init__()  
        self.embedding = nn.Embedding(vocab_size, embedding_dim)  
        self.transformer = nn.Transformer(d_model=embedding_dim, nhead=num_heads, num_encoder_layers=num_layers, num_decoder_layers=num_layers, dropout=dropout_rate)  
        self.fc = nn.Linear(embedding_dim, vocab_size)  
      
    def forward(self, src, tgt):  
        embedded = self.embedding(src)  
        output = self.transformer(embedded)  
        output = self.fc(output)  
        return output

 pip install transformers

7、生成對(duì)抗網(wǎng)絡(luò)(GAN)

GAN的思想源于博弈論中的零和游戲,其中一個(gè)玩家試圖生成最逼真的假數(shù)據(jù),而另一個(gè)玩家則嘗試區(qū)分真實(shí)數(shù)據(jù)與假數(shù)據(jù)。GAN由蒙提霍爾問題(一種生成模型與判別模型組合的問題)演變而來(lái),但與蒙提霍爾問題不同,GAN不強(qiáng)調(diào)逼近某些概率分布或生成某種樣本,而是直接使用生成模型與判別模型進(jìn)行對(duì)抗。

模型原理:

GAN由兩部分組成:生成器(Generator)和判別器(Discriminator)。生成器的任務(wù)是生成假數(shù)據(jù),而判別器的任務(wù)是判斷輸入的數(shù)據(jù)是來(lái)自真實(shí)數(shù)據(jù)集還是生成器生成的假數(shù)據(jù)。在訓(xùn)練過(guò)程中,生成器和判別器進(jìn)行對(duì)抗,不斷調(diào)整參數(shù),直到達(dá)到一個(gè)平衡狀態(tài)。此時(shí),生成器生成的假數(shù)據(jù)足夠逼真,使得判別器無(wú)法區(qū)分真實(shí)數(shù)據(jù)與假數(shù)據(jù)。

模型訓(xùn)練:

GAN的訓(xùn)練過(guò)程是一個(gè)優(yōu)化問題。在每個(gè)訓(xùn)練步驟中,首先使用當(dāng)前參數(shù)下的生成器生成假數(shù)據(jù),然后使用判別器判斷這些數(shù)據(jù)是真實(shí)的還是生成的。接著,根據(jù)這個(gè)判斷結(jié)果更新判別器的參數(shù)。同時(shí),為了防止判別器過(guò)擬合,還需要對(duì)生成器進(jìn)行訓(xùn)練,使得生成的假數(shù)據(jù)能夠欺騙判別器。這個(gè)過(guò)程反復(fù)進(jìn)行,直到達(dá)到平衡狀態(tài)。

優(yōu)點(diǎn):

  1. 強(qiáng)大的生成能力:GAN能夠?qū)W習(xí)到數(shù)據(jù)的內(nèi)在結(jié)構(gòu)和分布,從而生成非常逼真的假數(shù)據(jù)。
  2. 無(wú)需顯式監(jiān)督:GAN的訓(xùn)練過(guò)程中不需要顯式的標(biāo)簽信息,只需要真實(shí)數(shù)據(jù)即可。
  3. 靈活性高:GAN可以與其他模型結(jié)合使用,例如與自編碼器結(jié)合形成AutoGAN,或者與卷積神經(jīng)網(wǎng)絡(luò)結(jié)合形成DCGAN等。

缺點(diǎn):

  1. 訓(xùn)練不穩(wěn)定:GAN的訓(xùn)練過(guò)程不穩(wěn)定,容易陷入模式崩潰(mode collapse)的問題,即生成器只生成某一種樣本,導(dǎo)致判別器無(wú)法正確判斷。
  2. 難以調(diào)試:GAN的調(diào)試比較困難,因?yàn)樯善骱团袆e器之間存在復(fù)雜的相互作用。
  3. 難以評(píng)估:由于GAN的生成能力很強(qiáng),很難評(píng)估其生成的假數(shù)據(jù)的真實(shí)性和多樣性。

使用場(chǎng)景:

  1. 圖像生成:GAN最常用于圖像生成任務(wù),可以生成各種風(fēng)格的圖像,例如根據(jù)文字描述生成圖像、將一幅圖像轉(zhuǎn)換為另一風(fēng)格等。
  2. 數(shù)據(jù)增強(qiáng):GAN可以用于生成類似真實(shí)數(shù)據(jù)的假數(shù)據(jù),用于擴(kuò)充數(shù)據(jù)集或改進(jìn)模型的泛化能力。
  3. 圖像修復(fù):GAN可以用于修復(fù)圖像中的缺陷或去除圖像中的噪聲。
  4. 視頻生成:基于GAN的視頻生成是當(dāng)前研究的熱點(diǎn)之一,可以生成各種風(fēng)格的視頻。

簡(jiǎn)單的Python示例代碼:

以下是一個(gè)簡(jiǎn)單的GAN示例代碼,使用PyTorch實(shí)現(xiàn):

import torch
import torch.nn as nn
import torch.optim as optim
import torch.nn.functional as F
# 定義生成器和判別器網(wǎng)絡(luò)結(jié)構(gòu)  
class Generator(nn.Module):
def __init__(self, input_dim, output_dim):
super(Generator, self).__init__()
self.model = nn.Sequential(
nn.Linear(input_dim, 128),
nn.ReLU(),
nn.Linear(128, output_dim),
nn.Sigmoid()
)
def forward(self, x):
return self.model(x)
class Discriminator(nn.Module):
def __init__(self, input_dim):
super(Discriminator, self).__init__()
self.model = nn.Sequential(
nn.Linear(input_dim, 128),
nn.ReLU(),
nn.Linear(128, 1),
nn.Sigmoid()
)
def forward(self, x):
return self.model(x)
# 實(shí)例化生成器和判別器對(duì)象  
input_dim = 100  # 輸入維度可根據(jù)實(shí)際需求調(diào)整  
output_dim = 784  # 對(duì)于MNIST數(shù)據(jù)集,輸出維度為28*28=784  
gen = Generator(input_dim, output_dim)
disc = Discriminator(output_dim)
# 定義損失函數(shù)和優(yōu)化器  
criterion = nn.BCELoss()  # 二分類交叉熵?fù)p失函數(shù)適用于GAN的判別器部分和生成器的logistic損失部分。但是,通常更常見的選擇是采用二元交叉熵?fù)p失函數(shù)(binary cross

8、Diffusion擴(kuò)散模型

Diffusion模型是一種基于深度學(xué)習(xí)的生成模型,它主要用于生成連續(xù)數(shù)據(jù),如圖像、音頻等。Diffusion模型的核心思想是通過(guò)逐步添加噪聲來(lái)將復(fù)雜數(shù)據(jù)分布轉(zhuǎn)化為簡(jiǎn)單的高斯分布,然后再通過(guò)逐步去除噪聲來(lái)從簡(jiǎn)單分布中生成數(shù)據(jù)。

模型原理

Diffusion模型包含兩個(gè)主要過(guò)程:前向擴(kuò)散過(guò)程和反向擴(kuò)散過(guò)程。

前向擴(kuò)散過(guò)程:

  • 從真實(shí)數(shù)據(jù)分布中采樣一個(gè)數(shù)據(jù)點(diǎn)(x_0)。
  • 在(T)個(gè)時(shí)間步內(nèi),逐步向(x_0)中添加噪聲,生成一系列逐漸遠(yuǎn)離真實(shí)數(shù)據(jù)分布的噪聲數(shù)據(jù)點(diǎn)(x_1, x_2, ..., x_T)。
  • 這個(gè)過(guò)程可以看作是將數(shù)據(jù)分布逐漸轉(zhuǎn)化為高斯分布。

反向擴(kuò)散過(guò)程(也稱為去噪過(guò)程):

  • 從噪聲數(shù)據(jù)分布(x_T)開始,逐步去除噪聲,生成一系列逐漸接近真實(shí)數(shù)據(jù)分布的數(shù)據(jù)點(diǎn)(x_{T-1}, x_{T-2}, ..., x_0)。
  • 這個(gè)過(guò)程是通過(guò)學(xué)習(xí)一個(gè)神經(jīng)網(wǎng)絡(luò)來(lái)預(yù)測(cè)每一步的噪聲,并用這個(gè)預(yù)測(cè)來(lái)逐步去噪。

模型訓(xùn)練

訓(xùn)練Diffusion模型通常涉及以下步驟:

  1. 前向擴(kuò)散:對(duì)訓(xùn)練數(shù)據(jù)集中的每個(gè)樣本(x_0),按照預(yù)定的噪聲調(diào)度方案,生成對(duì)應(yīng)的噪聲序列(x_1, x_2, ..., x_T)。
  2. 噪聲預(yù)測(cè):對(duì)于每個(gè)時(shí)間步(t),訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)來(lái)預(yù)測(cè)(x_t)中的噪聲。這個(gè)神經(jīng)網(wǎng)絡(luò)通常是一個(gè)條件變分自編碼器(Conditional Variational Autoencoder, CVAE),它接收(x_t)和時(shí)間步(t)作為輸入,并輸出預(yù)測(cè)的噪聲。
  3. 優(yōu)化:通過(guò)最小化真實(shí)噪聲和預(yù)測(cè)噪聲之間的差異來(lái)優(yōu)化神經(jīng)網(wǎng)絡(luò)參數(shù)。常用的損失函數(shù)是均方誤差(Mean Squared Error, MSE)。

優(yōu)點(diǎn)

  • 強(qiáng)大的生成能力:Diffusion模型能夠生成高質(zhì)量、多樣化的數(shù)據(jù)樣本。
  • 漸進(jìn)式生成:模型可以在生成過(guò)程中提供中間結(jié)果,這有助于理解模型的生成過(guò)程。
  • 穩(wěn)定訓(xùn)練:相較于其他一些生成模型(如GANs),Diffusion模型通常更容易訓(xùn)練,并且不太容易出現(xiàn)模式崩潰(mode collapse)問題。

缺點(diǎn)

  • 計(jì)算量大:由于需要在多個(gè)時(shí)間步上進(jìn)行前向和反向擴(kuò)散,Diffusion模型的訓(xùn)練和生成過(guò)程通常比較耗時(shí)。
  • 參數(shù)數(shù)量多:對(duì)于每個(gè)時(shí)間步,都需要一個(gè)單獨(dú)的神經(jīng)網(wǎng)絡(luò)進(jìn)行噪聲預(yù)測(cè),這導(dǎo)致模型參數(shù)數(shù)量較多。

使用場(chǎng)景

Diffusion模型適用于需要生成連續(xù)數(shù)據(jù)的場(chǎng)景,如圖像生成、音頻生成、視頻生成等。此外,由于模型具有漸進(jìn)式生成的特點(diǎn),它還可以用于數(shù)據(jù)插值、風(fēng)格遷移等任務(wù)。

Python示例代碼

下面是一個(gè)簡(jiǎn)化的Diffusion模型訓(xùn)練的示例代碼,使用了PyTorch庫(kù):

import torch  
import torch.nn as nn  
import torch.optim as optim  
  
# 假設(shè)我們有一個(gè)簡(jiǎn)單的Diffusion模型  
class DiffusionModel(nn.Module):  
    def __init__(self, input_dim, hidden_dim, num_timesteps):  
        super(DiffusionModel, self).__init__()  
        self.num_timesteps = num_timesteps  
        self.noises = nn.ModuleList([  
            nn.Linear(input_dim, hidden_dim),  
            nn.ReLU(),  
            nn.Linear(hidden_dim, input_dim)  
        ] for _ in range(num_timesteps))  
  
    def forward(self, x, t):  
        noise_prediction = self.noises[t](x)  
        return noise_prediction  
  
# 設(shè)置模型參數(shù)  
input_dim = 784  # 假設(shè)輸入是28x28的灰度圖像  
hidden_dim = 128  
num_timesteps = 1000  
  
# 初始化模型  
model = DiffusionModel(input_dim, hidden_dim, num_timesteps)  
  
# 定義損失函數(shù)和優(yōu)化器  
criterion = nn.MSELoss()  
optimizer = optim.Adam(model.parameters(), lr=1e-3)

9.圖神經(jīng)網(wǎng)絡(luò)(GNN)

圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Networks,簡(jiǎn)稱GNN)是一種專門用于處理圖結(jié)構(gòu)數(shù)據(jù)的深度學(xué)習(xí)模型。在現(xiàn)實(shí)世界中,許多復(fù)雜系統(tǒng)都可以用圖來(lái)表示,例如社交網(wǎng)絡(luò)、分子結(jié)構(gòu)、交通網(wǎng)絡(luò)等。傳統(tǒng)的機(jī)器學(xué)習(xí)模型在處理這些圖結(jié)構(gòu)數(shù)據(jù)時(shí)面臨諸多挑戰(zhàn),而圖神經(jīng)網(wǎng)絡(luò)則為這些問題的解決提供了新的思路。

模型原理:

圖神經(jīng)網(wǎng)絡(luò)的核心思想是通過(guò)神經(jīng)網(wǎng)絡(luò)對(duì)圖中的節(jié)點(diǎn)進(jìn)行特征表示學(xué)習(xí),同時(shí)考慮節(jié)點(diǎn)間的關(guān)系。具體來(lái)說(shuō),GNN通過(guò)迭代地傳遞鄰居信息來(lái)更新節(jié)點(diǎn)的表示,使得相同的社區(qū)或相近的節(jié)點(diǎn)具有相近的表示。在每一層,節(jié)點(diǎn)會(huì)根據(jù)其鄰居節(jié)點(diǎn)的信息來(lái)更新自己的表示,從而捕捉到圖中的復(fù)雜模式。

模型訓(xùn)練:

訓(xùn)練圖神經(jīng)網(wǎng)絡(luò)通常采用基于梯度的優(yōu)化算法,如隨機(jī)梯度下降(SGD)。訓(xùn)練過(guò)程中,通過(guò)反向傳播算法計(jì)算損失函數(shù)的梯度,并更新神經(jīng)網(wǎng)絡(luò)的權(quán)重。常用的損失函數(shù)包括節(jié)點(diǎn)分類的交叉熵?fù)p失、鏈接預(yù)測(cè)的二元交叉熵?fù)p失等。

優(yōu)點(diǎn):

  • 強(qiáng)大的表示能力:圖神經(jīng)網(wǎng)絡(luò)能夠有效地捕捉圖結(jié)構(gòu)中的復(fù)雜模式,從而在節(jié)點(diǎn)分類、鏈接預(yù)測(cè)等任務(wù)上取得較好的效果。
  • 自然處理圖結(jié)構(gòu)數(shù)據(jù):圖神經(jīng)網(wǎng)絡(luò)直接對(duì)圖結(jié)構(gòu)數(shù)據(jù)進(jìn)行處理,不需要將圖轉(zhuǎn)換為矩陣形式,從而避免了大規(guī)模稀疏矩陣帶來(lái)的計(jì)算和存儲(chǔ)開銷。
  • 可擴(kuò)展性強(qiáng):圖神經(jīng)網(wǎng)絡(luò)可以通過(guò)堆疊更多的層來(lái)捕獲更復(fù)雜的模式,具有很強(qiáng)的可擴(kuò)展性。

缺點(diǎn):

  • 計(jì)算復(fù)雜度高:隨著圖中節(jié)點(diǎn)和邊的增多,圖神經(jīng)網(wǎng)絡(luò)的計(jì)算復(fù)雜度也會(huì)急劇增加,這可能導(dǎo)致訓(xùn)練時(shí)間較長(zhǎng)。
  • 參數(shù)調(diào)整困難:圖神經(jīng)網(wǎng)絡(luò)的超參數(shù)較多,如鄰域大小、層數(shù)、學(xué)習(xí)率等,調(diào)整這些參數(shù)可能需要對(duì)任務(wù)有深入的理解。
  • 對(duì)無(wú)向圖和有向圖的適應(yīng)性不同:圖神經(jīng)網(wǎng)絡(luò)最初是為無(wú)向圖設(shè)計(jì)的,對(duì)于有向圖的適應(yīng)性可能較差。

使用場(chǎng)景:

  • 社交網(wǎng)絡(luò)分析:在社交網(wǎng)絡(luò)中,用戶之間的關(guān)系可以用圖來(lái)表示。通過(guò)圖神經(jīng)網(wǎng)絡(luò)可以分析用戶之間的相似性、社區(qū)發(fā)現(xiàn)、影響力傳播等問題。
  • 分子結(jié)構(gòu)預(yù)測(cè):在化學(xué)領(lǐng)域,分子的結(jié)構(gòu)可以用圖來(lái)表示。通過(guò)訓(xùn)練圖神經(jīng)網(wǎng)絡(luò)可以預(yù)測(cè)分子的性質(zhì)、化學(xué)反應(yīng)等。
  • 推薦系統(tǒng):推薦系統(tǒng)可以利用用戶的行為數(shù)據(jù)構(gòu)建圖,然后使用圖神經(jīng)網(wǎng)絡(luò)來(lái)捕捉用戶的行為模式,從而進(jìn)行精準(zhǔn)推薦。
  • 知識(shí)圖譜:知識(shí)圖譜可以看作是一種特殊的圖結(jié)構(gòu)數(shù)據(jù),通過(guò)圖神經(jīng)網(wǎng)絡(luò)可以對(duì)知識(shí)圖譜中的實(shí)體和關(guān)系進(jìn)行深入分析。

簡(jiǎn)單的Python示例代碼:

import torch  
from torch_geometric.datasets import Planetoid  
from torch_geometric.nn import GCNConv  
from torch_geometric.data import DataLoader  
import time  

# 加載Cora數(shù)據(jù)集  
dataset = Planetoid(root='/tmp/Cora', name='Cora')  

# 定義GNN模型  
class GNN(torch.nn.Module):
def __init__(self, in_channels, hidden_channels, out_channels):
        super(GNN, self).__init__()  
        self.conv1 = GCNConv(in_channels, hidden_channels)  
        self.conv2 = GCNConv(hidden_channels, out_channels)  

def forward(self, data):
        x, edge_index = data.x, data.edge_index  
        x = self.conv1(x, edge_index)  
        x = F.relu(x)  
        x = F.dropout(x, training=self.training)  
        x = self.conv2(x, edge_index)  
return F.log_softmax(x, dim=1)  

# 定義超參數(shù)和模型訓(xùn)練過(guò)程  
num_epochs = 1000
lr = 0.01
hidden_channels = 16
out_channels = dataset.num_classes  
data = dataset[0]  # 使用數(shù)據(jù)集中的第一個(gè)數(shù)據(jù)作為示例數(shù)據(jù)  
model = GNN(dataset.num_features, hidden_channels, out_channels)  
optimizer = torch.optim.Adam(model.parameters(), lr=lr)  
data = DataLoader([data], batch_size=1)  # 將數(shù)據(jù)集轉(zhuǎn)換為DataLoader對(duì)象,以支持批量訓(xùn)練和評(píng)估  
model.train()  # 設(shè)置模型為訓(xùn)練模式  
for epoch in range(num_epochs):  
for data in data:  # 在每個(gè)epoch中遍歷整個(gè)數(shù)據(jù)集一次  
        optimizer.zero_grad()  # 清零梯度  
        out = model(data)  # 前向傳播,計(jì)算輸出和損失函數(shù)值  
        loss = F.nll_loss(out[data.train_mask], data.y[data.train_mask])  # 計(jì)算損失函數(shù)值,這里使用負(fù)對(duì)數(shù)似然損失函數(shù)作為示例損失函數(shù)  
        loss.backward()  # 反向傳播,計(jì)算梯度  
        optimizer.step()  # 更新權(quán)重參數(shù)

10、深度Q網(wǎng)絡(luò)(DQN)

在傳統(tǒng)的強(qiáng)化學(xué)習(xí)算法中,智能體使用一個(gè)Q表來(lái)存儲(chǔ)狀態(tài)-動(dòng)作值函數(shù)的估計(jì)。然而,這種方法在處理高維度狀態(tài)和動(dòng)作空間時(shí)遇到限制。為了解決這個(gè)問題,DQN是種深度強(qiáng)化學(xué)習(xí)算法,引入了深度學(xué)習(xí)技術(shù)來(lái)學(xué)習(xí)狀態(tài)-動(dòng)作值函數(shù)的逼近,從而能夠處理更復(fù)雜的問題。

模型原理:

DQN使用一個(gè)神經(jīng)網(wǎng)絡(luò)(稱為深度Q網(wǎng)絡(luò))來(lái)逼近狀態(tài)-動(dòng)作值函數(shù)。該神經(jīng)網(wǎng)絡(luò)接受當(dāng)前狀態(tài)作為輸入,并輸出每個(gè)動(dòng)作的Q值。在訓(xùn)練過(guò)程中,智能體通過(guò)不斷與環(huán)境交互來(lái)更新神經(jīng)網(wǎng)絡(luò)的權(quán)重,以逐漸逼近最優(yōu)的Q值函數(shù)。

模型訓(xùn)練:

DQN的訓(xùn)練過(guò)程包括兩個(gè)階段:離線階段和在線階段。在離線階段,智能體從經(jīng)驗(yàn)回放緩沖區(qū)中隨機(jī)采樣一批經(jīng)驗(yàn)(即狀態(tài)、動(dòng)作、獎(jiǎng)勵(lì)和下一個(gè)狀態(tài)),并使用這些經(jīng)驗(yàn)來(lái)更新深度Q網(wǎng)絡(luò)。在線階段,智能體使用當(dāng)前的狀態(tài)和深度Q網(wǎng)絡(luò)來(lái)選擇和執(zhí)行最佳的行動(dòng),并將新的經(jīng)驗(yàn)存儲(chǔ)在經(jīng)驗(yàn)回放緩沖區(qū)中。

優(yōu)點(diǎn):

  • 處理高維度狀態(tài)和動(dòng)作空間:DQN能夠處理具有高維度狀態(tài)和動(dòng)作空間的復(fù)雜問題,這使得它在許多領(lǐng)域中具有廣泛的應(yīng)用。
  • 減少數(shù)據(jù)依賴性:通過(guò)使用經(jīng)驗(yàn)回放緩沖區(qū),DQN可以在有限的樣本下進(jìn)行有效的訓(xùn)練。
  • 靈活性:DQN可以與其他強(qiáng)化學(xué)習(xí)算法和技術(shù)結(jié)合使用,以進(jìn)一步提高性能和擴(kuò)展其應(yīng)用范圍。

缺點(diǎn):

  • 不穩(wěn)定訓(xùn)練:在某些情況下,DQN的訓(xùn)練可能會(huì)不穩(wěn)定,導(dǎo)致學(xué)習(xí)過(guò)程失敗或性能下降。
  • 探索策略:DQN需要一個(gè)有效的探索策略來(lái)探索環(huán)境并收集足夠的經(jīng)驗(yàn)。選擇合適的探索策略是關(guān)鍵,因?yàn)樗梢杂绊憣W(xué)習(xí)速度和最終的性能。
  • 對(duì)目標(biāo)網(wǎng)絡(luò)的需求:為了穩(wěn)定訓(xùn)練,DQN通常需要使用目標(biāo)網(wǎng)絡(luò)來(lái)更新Q值函數(shù)。這增加了算法的復(fù)雜性并需要額外的參數(shù)調(diào)整。

使用場(chǎng)景:

DQN已被廣泛應(yīng)用于各種游戲AI任務(wù),如圍棋、紙牌游戲等。此外,它還被應(yīng)用于其他領(lǐng)域,如機(jī)器人控制、自然語(yǔ)言處理和自動(dòng)駕駛等。

python
import numpy as np  
import tensorflow as tf  
from tensorflow.keras.models import Sequential  
from tensorflow.keras.layers import Dense, Dropout  
class DQN:  
def __init__(self, state_size, action_size):  
self.state_size = state_size  
self.action_size = action_size  
self.memory = np.zeros((MEM_CAPACITY, state_size * 2 + 2))  
self.gamma = 0.95
self.epsilon = 1.0
self.epsilon_min = 0.01
self.epsilon_decay = 0.995
self.learning_rate = 0.005
self.model = self.create_model()  
def create_model(self):  
        model = Sequential()  
        model.add(Dense(24, input_dim=self.state_size, activation='relu'))  
        model.add(Dense(24, activation='relu'))  
        model.add(Dense(self.action_size, activation='linear'))  
        model.compile(loss='mse', optimizer=tf.keras.optimizers.Adam(lr=self.learning_rate))  
return model  
def remember(self, state, action, reward, next_state, done):  
self.memory[self.memory_counter % MEM_CAPACITY, :] = [state, action, reward, next_state, done]  
self.memory_counter += 1
def act(self, state):  
if np.random.rand() <= self.epsilon:
return np.random.randint(self.action_size)  
        act_values = self.model.predict(state)  
return np.argmax(act_values[0])  
def replay(self):  
        batch_size = 32
        start = np.random.randint(0, self.memory_counter - batch_size, batch_size)  
        sample = self.memory[start:start + batch_size]  
        states = np.array([s[0] for s in sample])  
        actions = np.array([s[1] for s in sample])  
        rewards = np.array([s[2] for s in sample])  
        next_states = np.array([s[3] for s in sample])  
        done = np.array([s[4] for s in sample])  
        target = self.model.predict(next_states)  
        target_q = rewards + (1 - done) * self.gamma * np.max(target, axis=1)  
        target_q = np.asarray([target_q[i] for i in range(batch_size)])  
        target = self.model.predict(states)  
        indices = np.arange(batch_size)  
for i in range(batch_size):  
if done[i]: continue  # no GAE calc for terminal states (if you want to include terminal states see line 84)  
            target[indices[i]] = rewards[i] + self.gamma * target_q[indices[i]]  # GAE formula line 84 (https://arxiv.org/pdf/1506.02438v5) instead of line 85 (https://arxiv.org/pdf/1506.02438v5) (if you want to include terminal states see line 84)  
            indices[i] += batch_size  # resets the indices for the next iteration (https://github.com/ikostrikov/pytorch-a2c-ppo-acktr-gail/blob/master/a2c.py#L173) (if you want to include terminal states see line 84)  
            target[indices[i]] = target[indices[i]]  # resets the indices for the next iteration (https://github.com/ikostrikov/pytorch-a2c-ppo-acktr-gail/blob/master/a2c.py#L173) (if you want to include terminal states see line 84) (https://github.com/ikostrikov/pytorch-a2c-ppo-acktr-gail/blob/master/a2c.py#L173)


責(zé)任編輯:華軒 來(lái)源: 數(shù)據(jù)分析及應(yīng)用
相關(guān)推薦

2020-03-02 00:52:04

OWASP軟件安全漏洞

2021-01-04 09:27:19

Python 開發(fā)編程語(yǔ)言

2009-06-16 10:38:56

2018-11-14 10:36:47

Python 開發(fā)編程語(yǔ)言

2019-07-29 08:13:11

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

2024-11-13 16:19:12

2023-03-31 12:05:32

2020-08-04 22:21:54

漏洞掃描工具惡意軟件

2023-05-17 16:02:00

CSS工具代碼生成器

2009-04-15 08:40:04

2021-10-20 11:56:35

勒索軟件攻擊數(shù)據(jù)泄露

2019-11-29 18:03:27

數(shù)學(xué)R語(yǔ)言算法

2013-03-28 10:53:11

2011-04-21 15:39:26

HTML

2012-02-03 09:11:06

2014-08-07 09:47:30

2020-09-03 08:45:02

數(shù)據(jù)科學(xué)網(wǎng)站算法

2021-12-28 11:33:14

加密貨幣比特幣貨幣

2022-03-16 12:40:00

云安全書籍云安全

2013-04-22 10:30:31

云計(jì)算亞馬遜微軟
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)