成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

什么?神經網絡還能創造新知識?

人工智能 深度學習 開發工具
本文通過神經網絡透明原則來揭示其“黑盒知識”,為此來檢驗一個布爾異或函數的神經網絡。

神經網絡(NNs)可以在不知道用顯式算法執行工作的情況下被設計和訓練于特定的任務,很多人都對此表示驚嘆。例如,著名的手寫體數字識別教程很容易執行,但其背后的邏輯還是隱藏在神經網絡下,僅能通過層次化結構、權值和激活函數略知一二。

[[269379]]

圖片來源:Unsplash

本文通過神經網絡透明原則來揭示其“黑盒知識”,為此來檢驗一個布爾異或函數的神經網絡。首先,利用已知異或屬性過程構造了一個自底向上的神經網絡,即清晰包含已知的代數關系。在第二步中使用TensorFlow Keras從簡易圖形化編程工具到異或邏輯運算訓練神經網絡。

***比較兩種方法。將Keras神經網絡分解為布爾組件,發現邏輯設置與***步中構造的神經網絡不同。被訓練的神經網絡發現了使用不同布爾函數的另一種異或運算表示方法。

這另一種異或公式在數學領域不是未知的,但至少很新奇。這或許表明神經網絡可以創造新的知識。但要提取它,必須能夠將神經網絡的設置和參數轉化為顯式規則。

自底向上構造異或運算神經網絡(XOR NN)

異或運算是由映射定義的布爾函數,

  1. XOR (0,0) = XOR (1,1) = 0 
  2. XOR (1,0) = XOR (0,1) = 1 

為異或運算構造一個已知的神經網絡或谷歌標識列

  1. XOR (x,y) = AND ( NAND (x,y) , OR (x,y) ) 

這很有幫助,因為操作符AND、NAND(而非AND)和OR是眾所周知的,并且都可以用簡單的神經網絡來表示,其中有2個輸入和1個輸出結點、偏移量和sigmoid激活函數。

神經網絡

布爾函數操作符的神經網絡

在此基礎上可通過連接NAND、AND和OR的NNs來構造異或運算神經網絡。所以異或變成了一個三層神經網絡。

異或運算的神經網絡

異或運算的神經網絡

輸送可能的輸入配置并檢查輸出(本文使用Excel工作表)。分別得到有效的(0,0)、(1,1)的0.0072以及(0,1)、(1,0)的0.9924。

可以用以下異或運算的表示來建構其他的神經網絡:

  1. XOR (x,y) = OR ( AND ( NOT(x) , y ) , AND ( x , NOT(y) ) ) 
  2. XOR (x,y) = NAND ( NAND ( x , NAND ( x,y) ) , NAND ( y , NAND ( x,y) ) ) 

然而這些標識列導致了更復雜的網絡。

此外,由于異或運算不能通過線性可分(且激活函數嚴格單調),因此,不可能建立兩層的神經網絡。

但也許還有其他方法可以構建異或運算的神經網絡呢?下一節將通過訓練神經網絡來尋找另一種解決方案。

使用TensorFlow Keras構建異或神經網絡

Keras是一個功能強大且易于使用的神經網絡庫。上一節中建立了一個三層的2-2-1模型,并與之前建構的神經網絡進行了比較。

使用梯度下降優化器與學習率1和均方誤差損失函數的誤差反向傳播,這是建構神經網絡的標準方法。

以下是Python的代碼片段:

  1. # Generate NN for XOR operation 
  2. # input layer: <NODES> nodes, one for each bit (0 = false and +1 = true
  3. # output layer: 1 node for result (0 = false and +1 = true
  4. # Use sigmoid activation function, gradient descent optimizer and mean squared error loss function 
  5. # Last update: 28.05.2019 
  6.   
  7. import tensorflow as tf 
  8. import numpy as np 
  9. import matplotlib.pyplot as plt 
  10.   
  11. # Define model 
  12. nodes = 2 
  13. model = tf.keras.Sequential() 
  14. model.add(tf.keras.layers.Dense(nodes, input_dim=2activation=tf.nn.sigmoid)) 
  15. model.add(tf.keras.layers.Dense(1, activation=tf.nn.sigmoid)) 
  16. model.compile(optimizer=tf.train.GradientDescentOptimizer(1), loss=tf.keras.losses.mean_squared_error, metrics=['binary_accuracy']) 
  17. model.summary() 
  18.   
  19. # Generate train & test data 
  20. epochs = 10000 
  21. data_in = np.array([[0,0],[0,1],[1,0],[1,1]]) 
  22. data_out = np.array([0,1,1,0]) 
  23.   
  24. # Train model 
  25. history = model.fit(data_in, data_out, epochsepochs=epochs, verbose=0
  26.   
  27. # Analysis of training history 
  28. for key in history.history.keys(): 
  29.     plt.scatter(range(epochs), history.history[key], s=1
  30.     plt.ylabel(key) 
  31.     plt.xlabel('epochs') 
  32.     plt.show() 
  33.   
  34. # Predict with model 
  35. result = model.predict(data_in) 
  36.   
  37. # Print results 
  38. def printarray(arr): 
  39.     return np.array2string(arr).replace('\n','') 
  40.   
  41. print() 
  42. print('input', printarray(data_in)) 
  43. print('output (calculation)', printarray(data_out)) 
  44. print('output (prediction) ', printarray(result)) 
  45. print('output (pred. norm.)', printarray(np.round(result))) 
  46.   
  47. # Get weights of model 
  48. print() 
  49. print(model.get_weights()) 

異或運算的好處是可以訓練整個參數空間,因為只有四種可能的配置可以教。然而,需要一些在神經網絡中傳遞數據集的過程來驅動模型達到零損耗和100%精準,即輸出趨向于一個分別是(0,1)、(1,0)和(0,0)、(1,1)的零。

異或運算神經網絡的Loss和epochs對比

異或運算神經網絡的Loss和epochs對比

異或運算神經網絡的Accuracy 和epochs對比

異或運算神經網絡的Accuracy 和epochs對比

然而,訓練期也可能陷入停滯,無法銜接。接著精準度停止在75%甚至50%,即一個或兩個二元元組的映射是不正確的。在這種情況下就要重新構建神經網絡,直到得到合適的解決方案。

分析和結論

現在驗證Keras神經網絡是否與建構的具有相似結構。通過返回權值(參見代碼片段的末尾),得到了權值和偏差值。

Python的腳本輸出

Python的腳本輸出

使用這些參數來重建神經網絡(再次使用Excel)。由三個操作符組成。

基于Keras訓練的異或運算神經網絡

基于Keras訓練的異或運算神經網絡

通過輸入所有可能的配置,可以識別與H1、H2和O操作符關聯的布爾函數。

Keras在異或運算神經網絡中的布爾函數

Keras在異或運算神經網絡中的布爾函數

有趣的是,本以為Keras 神經網絡與所建構的邏輯是一樣的,但它卻創建了另一種解決方案。使用OR,AND和(相對沒人知道的)INH,而非操作符NAND, OR 和AND,即神經網絡找到的公式。

  1. XOR (x,y) = INH ( OR (x,y), AND (x,y) ) 

這表明神經網絡可以獲得以前沒有的知識!當然“新知識”是相對的,并且取決于知道的程度。也就是說,若一個人知道異或運算的所有表示形式,Keras 神經網絡就不會有其他價值。

此外,對于更復雜的神經網絡,將權值轉換為顯式算法或公式并不容易。但也許這種專業知識是未來人工智能專家必須具備的能力。

責任編輯:趙寧寧 來源: 讀芯術
相關推薦

2022-06-07 11:14:23

神經網絡AI中科院

2015-10-22 09:05:12

2018-07-03 16:10:04

神經網絡生物神經網絡人工神經網絡

2020-05-29 17:21:33

神經網絡學習函數

2021-10-26 09:00:00

圖形機器學習深度學習

2023-12-15 12:52:32

模型數據

2025-06-09 09:04:00

2022-06-23 12:12:31

達摩院自動駕駛

2025-02-19 15:12:17

神經網絡PyTorch大模型

2024-07-08 08:43:19

2025-05-14 08:25:00

深度學習AI人工智能

2024-12-02 01:10:04

神經網絡自然語言DNN

2021-03-30 17:16:44

神經網絡數據圖形

2018-05-16 09:41:13

神經網絡NN函數

2025-04-27 09:23:00

模型訓練AI

2017-09-10 07:07:32

神經網絡數據集可視化

2025-02-25 14:13:31

2025-02-20 08:10:00

神經網絡模型AI

2022-04-07 09:01:52

神經網絡人工智能

2019-05-07 19:12:28

機器學習神經網絡Python
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产免费一区 | 91视频免费 | 日韩欧美在线观看视频 | 91视视频在线观看入口直接观看 | 亚洲欧美日韩电影 | 久久国产精品色av免费观看 | 噜噜噜噜狠狠狠7777视频 | 黑人精品xxx一区一二区 | 国产精品美女久久久久aⅴ国产馆 | 亚洲免费人成在线视频观看 | 欧美成人一区二区三区 | 国产精品明星裸体写真集 | 国产精品一区二区在线播放 | 日韩欧美网 | 一级大片免费 | 精品久久国产老人久久综合 | 一区二区三区久久久 | 国产激情精品一区二区三区 | 欧美αv | 日本中文在线视频 | 欧美区日韩区 | 成人做爰999 | 欧美456| 日韩中文字幕在线观看 | 不卡视频一区二区三区 | 欧美9999 | 亚洲天堂日韩精品 | 黄色国产在线视频 | 免费网站在线 | cao在线 | 国产福利精品一区 | 国产色在线 | 日韩a在线| 亚洲欧美日韩国产综合 | 91精品国产色综合久久不卡98口 | 欧美视频1区 | 91九色porny首页最多播放 | 亚洲成人精品免费 | 国产成人高清视频 | 精品国产乱码一区二区三 | 午夜视频一区二区 |