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

五行代碼用圖提升模型表現(xiàn),TensorFlow開源NSL神經(jīng)結(jié)構(gòu)學(xué)習(xí)框架

新聞 深度學(xué)習(xí)
今日,谷歌 TensorFlow 宣布推出神經(jīng)結(jié)構(gòu)學(xué)習(xí)(NSL)開源框架,它使用神經(jīng)圖學(xué)習(xí)方法來訓(xùn)練帶有圖和結(jié)構(gòu)化數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)。

 今日,谷歌 TensorFlow 宣布推出神經(jīng)結(jié)構(gòu)學(xué)習(xí)(NSL)開源框架,它使用神經(jīng)圖學(xué)習(xí)方法來訓(xùn)練帶有圖和結(jié)構(gòu)化數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)。

五行代碼用圖提升模型表現(xiàn),TensorFlow開源NSL神經(jīng)結(jié)構(gòu)學(xué)習(xí)框架

據(jù)谷歌 TensorFlow 博客介紹,NSL 是一個新手和高級開發(fā)人員都可以用來訓(xùn)練具有結(jié)構(gòu)化信號神經(jīng)網(wǎng)絡(luò)的簡易框架,可用于構(gòu)建精確且穩(wěn)健的視覺、語言理解和預(yù)測模型。

  • 項(xiàng)目地址:https://github.com/tensorflow/neural-structured-learning

結(jié)構(gòu)化數(shù)據(jù)包含樣本之間豐富的關(guān)系信息,許多機(jī)器學(xué)習(xí)任務(wù)都得益于此。例如,建模引用網(wǎng)絡(luò)、句子語言學(xué)結(jié)構(gòu)的知識圖推斷與推理,以及學(xué)習(xí)分子指紋,這些都需要模型來學(xué)習(xí)結(jié)構(gòu)化輸入,而不只是個別樣本。

這些結(jié)構(gòu)可以是明確給出的(例如,作為圖形),或者隱式推斷的(例如,作為對抗性示例)。在訓(xùn)練階段利用結(jié)構(gòu)化信號可以使開發(fā)人員獲得更高的模型準(zhǔn)確度,尤其是當(dāng)標(biāo)記數(shù)據(jù)量相對較小時(shí)。谷歌的研究表明,使用結(jié)構(gòu)化信號進(jìn)行訓(xùn)練也可以帶來更穩(wěn)健的模型。

五行代碼用圖提升模型表現(xiàn),TensorFlow開源NSL神經(jīng)結(jié)構(gòu)學(xué)習(xí)框架

圖網(wǎng)絡(luò)學(xué)習(xí)的一般流程。

使用這些技術(shù),谷歌極大的提升了模型性能,例如學(xué)習(xí)圖像語義嵌入。

神經(jīng)結(jié)構(gòu)學(xué)習(xí)(NSL)是一種用于訓(xùn)練具有結(jié)構(gòu)化信號深度神經(jīng)網(wǎng)絡(luò)的開源框架。它實(shí)現(xiàn)了谷歌在論文《Neural Graph Learning: Training Neural Networks Using Graphs》中介紹的神經(jīng)圖學(xué)習(xí),使開發(fā)人員能夠使用圖訓(xùn)練神經(jīng)網(wǎng)絡(luò)。

這里的圖可以是多樣的,例如知識圖、醫(yī)療記錄、基因組數(shù)據(jù)或多模式關(guān)系(例如,圖像 - 文本對)。此外,NSL 還可以應(yīng)用到對抗性學(xué)習(xí),也就是說輸入樣本之間的結(jié)構(gòu)可以是使用對抗性擾動動態(tài)構(gòu)建的。

NSL 讓 TensorFlow 用戶能夠輕松地結(jié)合各種結(jié)構(gòu)化信號來訓(xùn)練神經(jīng)網(wǎng)絡(luò),且適用于不同的學(xué)習(xí)場景:監(jiān)督、半監(jiān)督和無監(jiān)督(表示)設(shè)置。

NSL 如何工作

在 NSL 框架中,結(jié)構(gòu)化信息(如可以定義為圖的數(shù)據(jù)或隱性的對抗樣本),都可以被用來歸一化神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,使得模型學(xué)習(xí)精確地進(jìn)行預(yù)測(通過最小化監(jiān)督損失)。同時(shí),保證從同一種結(jié)構(gòu)中的所有輸入保持同樣的相似度(通過最小化近鄰損失)。這種技術(shù)是可以泛化的,可以使用在神經(jīng)網(wǎng)絡(luò)架構(gòu)上,如前向神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)等。

五行代碼用圖提升模型表現(xiàn),TensorFlow開源NSL神經(jīng)結(jié)構(gòu)學(xué)習(xí)框架

NSL 的基本架構(gòu)。

用 NSL 建立一個模型

有了 NSL,建立一個使用結(jié)構(gòu)化數(shù)據(jù)的模型就會很容易,而且非常直觀。給定一個圖(有具體結(jié)構(gòu))和訓(xùn)練樣本,NSL 提供了相關(guān)的工具,用于將這些樣本輸入到 TFRcords 中,用于降采樣操作。

具體代碼如下,可以使用相關(guān)的命令行工具將圖和數(shù)據(jù)進(jìn)行輸入:

  1. python pack_nbrs.py --max_nbrs=5 \ 
  2. labeled_data.tfr \ 
  3. unlabeled_data.tfr \ 
  4. graph.tsv \ 
  5. merged_examples.tfr 

之后,NSL 提供了一些 API,可以將定制化的模型「打包起來」,將處理過的樣本輸入進(jìn)去,使用圖結(jié)構(gòu)進(jìn)行歸一化操作。以下為具體代碼:

  1. import neural_structured_learning as nsl 
  2. # Create a custom model — sequential, functional, or subclass.  
  3. base_model = tf.keras.Sequential(…) 
  4. # Wrap the custom model with graph regularization.  
  5. graph_config = nsl.configs.GraphRegConfig( 
  6.  neighbor_config=nsl.configs.GraphNeighborConfig(max_neighbors=1))  
  7. graph_model = nsl.keras.GraphRegularization(base_model, graph_config) 
  8. # Compile, train, and evaluate.  
  9. graph_model.compile(optimizer=’adam’,  
  10.  loss=tf.keras.losses.SparseCategoricalCrossentropy(), metrics=[‘accuracy’])  
  11. graph_model.fit(train_dataset, epochs=5)  
  12. graph_model.evaluate(test_dataset) 

只需要額外的 5 行代碼(包括注釋),NSL 就可以將一個神經(jīng)模型和圖信號結(jié)合起來。從數(shù)據(jù)上來說,使用圖結(jié)構(gòu)可以讓模型在訓(xùn)練中使用更少的標(biāo)注數(shù)據(jù),而且不會損失太多的準(zhǔn)確率(和原有的監(jiān)督學(xué)習(xí)相比只少 10% 甚至是 1%)。

使用沒有顯式結(jié)構(gòu)的圖進(jìn)行訓(xùn)練

如果沒有顯形結(jié)構(gòu)的圖、或者不是作為輸入的情況下,NSL 怎么訓(xùn)練呢?NSL 提供了相關(guān)的工具,用于從原始數(shù)據(jù)中建立一個圖。另外,NSL 提供了相關(guān)的工具,用于從隱性結(jié)構(gòu)信號中「推導(dǎo)」出對抗樣本。對抗樣本用于故意誘導(dǎo)模型,使得訓(xùn)練出的模型對于小的輸入擾動更為魯棒。以下為相關(guān)代碼:

  1. import neural_structured_learning as nsl # Create a custom model — sequential, functional, or subclass.  
  2. base_model = tf.keras.Sequential(…)# Wrap the custom model with graph regularization.  
  3. graph_config = nsl.configs.GraphRegConfig( 
  4.  neighbor_config = nsl.configs.GraphNeighborConfig(max_neighbors=1))  
  5. graph_model = nsl.keras.GraphRegularization(base_model, graph_config) # Compile, train, and evaluate.  
  6. graph_model.compile(optimizer=’adam’,  
  7.  loss=tf.keras.losses.SparseCategoricalCrossentropy(), metrics=[‘accuracy’])  
  8. graph_model.fit(train_dataset, epochs=5)  
  9. graph_model.evaluate(test_dataset) 

通過少于額外 5 行代碼(包括注釋),就能獲得一個使用帶有隱性結(jié)構(gòu)對抗樣本訓(xùn)練的神經(jīng)模型。根據(jù)經(jīng)驗(yàn),在沒有對抗性樣本的情況下,當(dāng)將具有惡意但人類無法檢測出的擾動數(shù)據(jù)添加到輸入時(shí),模型會遭受顯著的準(zhǔn)確度損失(例如,低 30%),加入對抗樣本進(jìn)行訓(xùn)練則可以避免這樣的問題。

 

責(zé)任編輯:張燕妮 來源: 機(jī)器之心
相關(guān)推薦

2024-12-13 13:58:53

2023-07-03 07:51:47

2010-07-19 11:07:13

Perl控制結(jié)構(gòu)

2019-11-26 09:47:50

代碼開發(fā)工具

2024-03-26 09:11:13

TensorFlow深度學(xué)習(xí)Pipeline

2018-06-13 08:53:39

HadoopHBase存儲

2016-09-26 17:06:29

2022-12-21 19:06:55

機(jī)器學(xué)習(xí)人工智能

2023-03-07 18:55:05

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

2009-08-13 16:02:29

C#結(jié)構(gòu)

2020-03-16 10:16:19

代碼開發(fā)工具

2020-11-26 15:48:37

代碼開發(fā)GitHub

2020-03-26 12:38:15

代碼節(jié)點(diǎn)數(shù)據(jù)

2020-04-20 13:45:32

神經(jīng)網(wǎng)絡(luò)模型代碼

2009-12-22 18:36:17

WCF知識結(jié)構(gòu)

2010-04-19 11:21:32

天御五行可信行為管理

2022-05-11 07:41:31

Python驗(yàn)證碼

2022-12-22 13:18:54

深度學(xué)習(xí)框架

2011-04-11 17:09:37

稀疏矩陣矩陣C++

2018-07-10 08:40:36

JavaScript機(jī)器學(xué)習(xí)框架
點(diǎn)贊
收藏

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