導彈防御系統(tǒng),如何跟蜻蜓的大腦學習計算?
多雨的夏季,蜻蜓最為常見,這些美麗的生物的飛行速度極快,狩獵能力也極為出色:蜻蜓狩獵的成功率捕獲了高達 95% ,它們一天可以吃掉數(shù)百只蚊子。
這種狩獵能力吸引了不少研究中的注意,幾十年來,各國機構都在嘗試將蜻蜓設計用于監(jiān)視無人機的設計中。不過,桑迪亞國家實驗室的計算神經(jīng)科學家Frances Chance,想要探尋的,是這個“微型狩獵機器”的大腦。
Frances對蜻蜓的大腦能夠低功耗地完成高速計算的能力非常好奇,并就此展開了一系列猜想和神經(jīng)網(wǎng)絡構建。我們將她構建神經(jīng)網(wǎng)絡的心得文章編譯如下,或許你也能從中獲得一些對神經(jīng)網(wǎng)絡的新思考。
《從蜻蜓大腦中得到的啟發(fā)》
雖然蜻蜓的大腦可能無法進行像“下圍棋”這樣的策略類游戲,但它們確實展示了一種戰(zhàn)略形式:在獵物到達當前位置之前,就瞄準、****它的“盤中餐” 。這種“預判力”需要以極快的速度執(zhí)行計算——蜻蜓通常只需要 50 毫秒就可以開始轉動以響應獵物的動作。它可以同時跟蹤頭部和身體之間的角度,以便它知道哪個翅膀更快地扇動以在獵物前面轉動。
考慮到單個神經(jīng)元將其所有輸入相加所需的時間(稱為膜時間常數(shù))超過 10 毫秒,蜻蜓的大腦執(zhí)行的是一項非凡的工作。
蜻蜓只需要大約 50 毫秒就開始對獵物的動作做出反應。如果我們假設眼睛中的細胞需要 10 毫秒來檢測和傳輸有關獵物的信息,另外 5 毫秒讓肌肉開始產生力量,那么神經(jīng)回路只剩下 35 毫秒來進行計算。鑒于單個神經(jīng)元通常需要至少 10 毫秒來整合輸入,因此底層神經(jīng)網(wǎng)絡可以至少有三層深。
那么,人類可以建立一個像蜻蜓****系統(tǒng)一樣工作的神經(jīng)網(wǎng)絡嗎?這種神經(jīng)網(wǎng)絡又有什么用途呢?
模型蜻蜓根據(jù)獵物的轉動重新定向。較小的黑色圓圈是蜻蜓的頭部,保持在其初始位置。黑色實線表示蜻蜓飛行的方向;藍色虛線是模型蜻蜓眼睛的平面。紅星是獵物相對于蜻蜓的位置,紅色虛線表示蜻蜓的視線。
我首先想到的是防御上的應用,例如導彈防御,例如,讓未來的導彈快速計算****軌跡而不影響導彈重量或功耗的機載系統(tǒng)。
當然也可能會有民用應用,例如,控制自動駕駛汽車的算法可能會變得更高效,不再需要大量的計算設備。如果受蜻蜓啟發(fā)的系統(tǒng)可以執(zhí)行計算以繪制****軌跡,那么自主無人機或許可以使用它來避免碰撞。如果計算機可以制造成與蜻蜓大腦相同的大?。s 6 立方毫米),也許有一天驅蟲劑和蚊帳將成為過去,取而代之的是小型殺蟲無人機!
開始動手!
為了開始回答這些問題,我創(chuàng)建了一個簡單的神經(jīng)網(wǎng)絡來代替蜻蜓的神經(jīng)系統(tǒng),并用它來計算蜻蜓捕捉獵物的轉彎。我的三層神經(jīng)網(wǎng)絡作為軟件模擬存在。最初,我在 Matlab 中工作,因為那是我已經(jīng)在使用的編碼環(huán)境。之后,我將該模型移植到 Python 中。
因為蜻蜓必須看到它們的獵物才能捕捉到它,所以我首先模擬了蜻蜓眼睛的簡化版本,捕捉了追蹤獵物所需的最少細節(jié)。雖然蜻蜓有兩只眼睛,但人們普遍認為它們不使用立體深度感知來估計與獵物的距離。在我的模型中,我沒有對雙眼進行建模,也沒有嘗試蜻蜓的眼睛匹配的分辨率,相反,神經(jīng)網(wǎng)絡的第一層包括 441 個代表眼睛輸入的神經(jīng)元,每個神經(jīng)元描述視野的一個特定區(qū)域——這些區(qū)域被平鋪以形成一個 21×21 的神經(jīng)元陣列,覆蓋蜻蜓的視野。隨著蜻蜓轉動,獵物圖像在蜻蜓視野中的位置發(fā)生變化。蜻蜓計算將獵物的圖像與這些“眼睛”神經(jīng)元中的一個(或幾個,如果獵物足夠大)對齊所需的輪數(shù)。第二組包含441 個神經(jīng)元,也在網(wǎng)絡的第一層,告訴蜻蜓哪些眼睛神經(jīng)元應該與獵物的圖像對齊,即獵物應該在其視野內的哪個位置。
模型蜻蜓與獵物交戰(zhàn)。
接收描述物體在視野中運動的輸入并將其轉化為關于蜻蜓需要轉向哪個方向的指令的計算,這類處理能力在我的人工神經(jīng)網(wǎng)絡的第一層和第三層之間進行。在第二層中,我使用了 194,481 (21 4) 神經(jīng)元,可能比蜻蜓用于此任務的神經(jīng)元數(shù)量大得多。我預先計算了網(wǎng)絡中所有神經(jīng)元之間連接的權重。雖然這些權重可以用足夠的時間學習,但通過進化和預編程的神經(jīng)網(wǎng)絡架構“學習”是有優(yōu)勢的。一旦它作為有翼成蟲(技術上稱為天體)從若蟲階段出來,蜻蜓就沒有父母來喂養(yǎng)它或向它展示如何捕獵。蜻蜓需要適應新的身體,同時思考狩獵策略。我設置了網(wǎng)絡的權重以允許模型蜻蜓計算正確的轉彎以從傳入的視覺信息中****它的獵物。
什么樣轉彎呢?例如,一只蜻蜓想要抓住一只經(jīng)過的蚊子,它不能只瞄準蚊子。借用曲棍球運動員韋恩·格雷茨基 (Wayne Gretsky) 曾經(jīng)說過的關于冰球的說法,蜻蜓必須瞄準蚊子所在的位置。您可能認為遵循 Gretsky 的建議需要復雜的算法,但實際上該策略非常簡單:蜻蜓所需要做的就是在其視線與“午餐”和固定參考方向之間保持恒定的角度。
有任何駕駛船只經(jīng)驗的讀者都會明白其中含義。當另一艘船的視線與參考方向(例如正北)之間的角度保持不變時,船員們就會擔心,因為他們處于碰撞路線上。長期以來,水手們一直避免轉向這種稱為平行導航的航線,以避免碰撞。
這三個熱圖顯示了同一時刻神經(jīng)元的活動模式;第一組代表眼睛,第二組代表那些指定哪些眼睛神經(jīng)元與獵物的圖像對齊的神經(jīng)元,第三組代表那些輸出運動命令的神經(jīng)元。
轉化為想要與獵物碰撞的蜻蜓, 解決辦法很簡單:相對于某些外部參考,保持對獵物的視線恒定。然而,對于蜻蜓來說,這項任務也并非如此簡單,因為它會猛撲和轉身,收集食物。蜻蜓沒有內部陀螺儀,無論蜻蜓如何轉動,它都會保持恒定的方向。它也沒有始終指向北方的磁羅盤。在我對蜻蜓狩獵的簡化模擬中,蜻蜓轉向將獵物的圖像與其眼睛上的特定位置對齊,但它需要計算該位置應該是什么。
我的模擬神經(jīng)網(wǎng)絡的第三層,也是最后一層,是運動命令層。這一層神經(jīng)元的輸出是蜻蜓肌肉的高級指令,告訴蜻蜓向哪個方向轉動。蜻蜓還使用該層的輸出來預測它自己的動作對其視野中獵物圖像位置的影響,并相應地更新投影位置。這種更新允許蜻蜓在接近獵物時相對于外部世界保持其獵物的視線穩(wěn)定。
生物蜻蜓可能已經(jīng)進化出額外的工具來幫助進行這種預測所需的計算。例如,蜻蜓有專門的傳感器來測量飛行過程中的身體旋轉以及頭部相對于身體的旋轉——如果這些傳感器足夠快,蜻蜓可以直接從傳感器輸出或使用一種方法來交叉檢查另一種。我在模擬中沒有考慮這種可能性。
為了測試這個三層神經(jīng)網(wǎng)絡,我模擬了一只蜻蜓和它的獵物,它們在三維空間中以相同的速度移動。當他們這樣做時,我的建模神經(jīng)網(wǎng)絡大腦“看到”了獵物,計算指向哪里以將獵物的圖像保持在一個恒定的角度,并向肌肉發(fā)送適當?shù)闹噶睢N夷軌蜃C明蜻蜓大腦的這個簡單模型確實可以成功****其他蟲子,甚至是沿著彎曲或半隨機軌跡行進的獵物。
模擬蜻蜓沒有完全達到生物蜻蜓的成功率,也不具備蜻蜓眾所周知的所有優(yōu)點(例如驚人的飛行速度)。
我們還能從蜻蜓身上學到什么?
我們還需要做更多的工作來確定這個神經(jīng)網(wǎng)絡是否真的包含了蜻蜓大腦的所有秘密。弗吉尼亞州霍華德休斯醫(yī)學研究所 Janelia 研究園區(qū)的研究人員為蜻蜓開發(fā)了微型“背包”,可以在蜻蜓飛行時測量其神經(jīng)系統(tǒng)發(fā)出的電信號,并傳輸這些數(shù)據(jù)進行分析。背包足夠小,不會分散蜻蜓的注意力。同樣,神經(jīng)科學家還可以記錄蜻蜓大腦中單個神經(jīng)元的信號,同時昆蟲保持不動,但通過向其提供適當?shù)囊曈X提示,使其認為它在移動,從而創(chuàng)建了一個蜻蜓級的虛擬現(xiàn)實。
來自這些系統(tǒng)的數(shù)據(jù)允許神經(jīng)科學家通過將蜻蜓大腦模型的活動與活躍蜻蜓中生物神經(jīng)元的活動模式進行比較來驗證蜻蜓大腦模型。雖然我們還不能直接測量蜻蜓大腦中神經(jīng)元之間的個體連接,但我和我的合作者將能夠推斷出蜻蜓的神經(jīng)系統(tǒng)是否正在進行類似于我的人工神經(jīng)網(wǎng)絡預測的計算。這將有助于確定蜻蜓大腦中的連接是否類似于我在神經(jīng)網(wǎng)絡中預先計算的權重。我們將不可避免地找到我們的模型與實際蜻蜓大腦不同的方式。也許這些差異將為蜻蜓大腦加速計算的捷徑提供線索。
蜻蜓還可以教我們如何在計算機上實現(xiàn)“注意力”。它的神經(jīng)系統(tǒng)會提高對特定的、可能選定的目標的反應音量,即使在同一視野中可以看到其他潛在的獵物。蜻蜓一旦決定追逐特定的獵物,除非捕捉失敗,否則絕不改變目標。
即使我們最終發(fā)現(xiàn),用于引導注意力的“蜻蜓機制”不如人們在擁擠的咖啡店中集中注意力的那些機制那么復雜,但這種更簡單但功耗更低的機制可能有利于下一代算法和計算機系統(tǒng)的運算。
研究蜻蜓大腦的優(yōu)勢并不止于新算法;它們還會影響系統(tǒng)設計。蜻蜓的眼睛速度很快,相當于每秒 200 幀:這是人類視覺速度的幾倍。但它們的空間分辨率相對較差,可能只有人眼的百分之一。盡管感知能力有限,但了解蜻蜓如何如此有效地捕獵,可以為設計更高效系統(tǒng)提供建議。再回到導彈防御問題,蜻蜓的例子表明,我們具有快速光學傳感的反導彈系統(tǒng)可能需要較低的空間分辨率來擊中目標。
其他昆蟲“老師”們
蜻蜓并不是當今唯一可以為受神經(jīng)啟發(fā)的計算機設計提供信息的昆蟲。帝王蝶的遷徙距離令人難以置信地長,它們利用某種與生俱來的本能在一年中的適當時間開始它們的旅程,并朝著正確的方向前進。我們知道它們依賴于太陽的位置,通過太陽航行需要跟蹤一天中的時間。比如一只向南飛的蝴蝶,它可以感知到太陽早上在你的左邊,而在下午的時候在右邊。因此,為了確定路線,蝴蝶大腦必須讀取自己的晝夜節(jié)律,并將該信息與所觀察到的信息結合起來。
其他昆蟲,如撒哈拉沙漠螞蟻,必須長距離覓食。一旦找到食物來源,這只螞蟻不會簡單地原路返回巢穴,很可能是一條迂回的路徑。相反,它可以計算返回的直接路線。因為螞蟻食物來源的位置每天都在變化,所以它必須能夠記住它在覓食過程中走過的路徑,將視覺信息與一些內部距離測量結合起來,然后 從這些記憶中計算出它的返回路線。
雖然沒有人知道沙漠螞蟻的哪些神經(jīng)回路執(zhí)行這項任務,但 Janelia 研究園區(qū)的研究人員已經(jīng)確定了讓果蠅使用視覺地標進行自我定位的神經(jīng)回路 。沙漠螞蟻和帝王蝶可能使用類似的機制。這種神經(jīng)回路有朝一日可能會被被用在低功率無人機中。
如果受昆蟲啟發(fā)的計算效率使得這些專門組件的數(shù)百萬個實例可以并行運行以支持更強大的數(shù)據(jù)處理或機器學習,那又會怎樣?下一個 AlphaZero 能否結合數(shù)以百萬計的螞蟻覓食架構來改進其游戲玩法?也許昆蟲會激發(fā)新一代計算機。一小群類似蜻蜓****的算法可用于控制游樂園游樂設施的移動部件,確保即使在復雜但激動人心的駕駛中,設備也不會發(fā)生碰撞。
沒有人知道下一代計算機會是什么樣子,同樣,沒有人能說出平臺開發(fā)的最佳途徑是什么。雖然研究人員從人腦中汲取靈感開發(fā)了早期的神經(jīng)網(wǎng)絡,但今天的人工神經(jīng)網(wǎng)絡通常依賴于與大腦截然不同的計算。研究生物神經(jīng)回路中單個神經(jīng)元的計算——目前只能直接在非人類系統(tǒng)中實現(xiàn)——可能會教給我們更多。
昆蟲,看似簡單,但它們的能力往往令人驚訝,對下一代計算機的發(fā)展有很大貢獻。所以下次當你看到一只昆蟲做一些聰明的事情時,想象一下如果你能擁有一支由小蜻蜓、蝴蝶或螞蟻大腦組成的小軍隊的效率,它會對你的日常生活產生什么影響。也許未來的計算機會給“蜂巢思維”這個術語賦予新的含義,它擁有大量高度專業(yè)化但極其高效的微型處理器,能夠根據(jù)手頭的任務進行重新配置和部署。隨著當今神經(jīng)科學的進步,這種看似幻想的事物可能比您想象的更接近現(xiàn)實。
素材來源:https://spectrum.ieee.org/fast-efficient-neural-networks-copy-dragonfly-brains
*博客內容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。