深度神經網路 (DNN) 是一種機器學習技術,它允許計算機通過訓練它來完成使用傳統程式設計技術很難完成的任務。神經網路演算法的靈感來自人腦及其功能:就像我們的人類思維一樣,它不僅通過遵循預設的規則清單來工作,而且通過預測解決方案並根據以前的反覆運算和經驗得出結論。
什麼是神經網路架構?
神經網路由多層節點組成,這些節點接收來自其他層的輸入併產生輸出,直到達到最終結果。神經網路可以有任意數量的隱藏層:網路中的節點層越多,複雜性就越高。以下是不同的神經網路架構:
- 傳統的神經網路,通常由 2 或 3 個隱藏層組成;
- 深度學習網路,最多可以有150個隱藏層;
神經網路和深度神經網路有什麼區別?
深度神經網路是一個比「簡單」神經系統複雜得多的系統。神經網路類似於國際象棋遊戲,並根據演算法行事:將根據對手的動作和動作建議不同的策略。這個神經網路將僅限於程式師的輸入:
- 棋子如何移動;
- 棋盤的大小;
- 針對不同情況的不同策略;
超越輸入數據並可以從以前的經驗中學習的神經網路成為深度神經網路
例如,在同一台計算機上,您可以訓練一個神經網路,然後與其他人一起玩,讓它邊玩邊學習。從那裡開始,如果神經網路可以從不同的玩家那裡學習,那麼即使對於國際象棋大師來說,擊敗深度神經網路也可能變得困難或實際上是不可能的。
深度神經網路可以識別語音命令、識別聲音、識別聲音和圖形,並且比神經網路做得更多。深度學習網路利用「大數據」和演算法來解決問題,這些深度神經網路可以在有限或沒有人工輸入的情況下解決問題。
如何可視化深度神經網路的工作?
深度神經網路的過程最好通過查看示例來理解。想像一下,你有成千上萬的圖像,其中一些裡面有狗,你決定要編寫一個計算機程式來識別圖片中的狗。
您有兩個選擇。你可以編寫一個程式來顯式識別狗,也可以編寫一個“學習”如何識別狗的程式。
你不明智地決定嘗試做前者。
使用傳統的程式設計技術既漫長又困難,結果並不總是準確的
為了識別狗的圖片,你使用“if”和“then”語句創建了一個軟體程式,其中你看到狗的可能性被程式設計為每次你識別狗一樣的屬性,如皮毛、鬆軟的耳朵和尾巴。然而,這種類型的神經系統在許多層面上都很困難:
例如,如果一團像素類似於尾巴,則會增加您正在看狗的可能性。您的深度神經網路需要識別與狗類屬性對應的圖元組。即使你設法做到這一點,你的演算法也存在問題:
- 許多拍攝的物體具有一些類似狗的屬性,尤其是類似動物的照片。您將需要添加規則;
- 有時屬性存在但模糊不清。你的演算法不會拾取它們;
- 有時,僅當存在其他屬性時,屬性才具有重要意義。需要更多的決策規則;
分類失敗。您意識到您無法手動識別完整的屬性集,更不用說設計處理所有這些特殊情況所需的所有規則了。
你明智地放棄並決定嘗試后一種方法。使用神經網路,或者更好的是,使用深度神經網路。
深度學習模型可以節省編碼時間並提供更好的結果
神經網路之所以如此命名,是因為這種程式設計方法與大腦的工作方式之間存在相似性。
就像大腦一樣,神經網路演算法使用神經元或節點網路。像大腦一樣,這些神經元是離散的功能(如果你喜歡的話,也可以是小機器),它們接受輸入並產生輸出。這些節點按層排列,其中一層中神經元的輸出成為下一層神經元的輸入,直到網路外層的神經元產生最終結果。
因此,存在神經元層,每個單獨的神經元接收非常有限的輸入,併產生非常有限的輸出,就像在大腦中一樣。神經元的第一層(或輸入層)接收輸入,網路的最後一層神經元(或輸出層)輸出結果。
將這種類型的演算法稱為「神經網路」準確嗎?
當然,人類的大腦比神經網路複雜和強大得多。將演算法命名為「深度神經網路」是一種品牌政變,但它可能會對這些技術可以實現的目標產生不切實際的期望。也就是說,有人試圖使用非常複雜的神經網路重新設計大腦,希望通過這樣做,他們將能夠在機器人開發中複製一般的、類似人類的智慧。那麼神經網路和機器學習技術如何幫助我們解決狗識別問題呢?
好吧,深度神經網路演算法無需手動定義類似狗的屬性,而是可以識別重要屬性並處理所有特殊情況而無需程式設計。
深度神經網路如何運作?
它按如下方式執行此操作:
輸入層上的每個神經元從圖像接收一些資訊作為輸入,然後隨機加權(在 0 到 1 之間)該資訊是否暗示狗。低權重(小於0.5)意味著資訊與狗相關聯的可能性較小,高權重意味著資訊更有可能與狗相關聯。這種多層神經網路方法稱為深度學習。神經網路和深度學習是實現計算機理解的非常強大的技術。
深度神經網路由多層節點組成,這些節點的行為類似於我們大腦中的神經元
因此,為了繼續使用深度神經網路,這些神經元的權重作為輸入輸入到其他神經元層中,這些神經元層也隨機分配權重,並將它們作為輸入傳遞給網路中的更多神經元。這一直持續到神經元的輸出層給出二進位判斷。如果傳遞給他們的權重平均值大於 0.5,則它是一隻狗,否則不是。這些跨多層節點的神經元連接和激活賦予了深度神經網路應用程式強大的力量。
深度神經網路如何知道它是否產生正確的答案?
此時的相關問題是:深度神經網路猜對了還是猜對了,如果猜對了或猜錯了會發生什麼?神經網路如何知道它是否正確猜測?
它知道的一種方法是,您是否承擔了極其耗時的分類任務,將所有照片標記為“狗”或“非狗”,具體取決於照片中是否有狗。神經網路將簡單地查看標籤,看看它是否正確識別了狗。
當然,我們對它是否在一張狗圖片上正確回答了“狗與否”問題不感興趣。我們感興趣的是它是否為每張照片提供了正確的問題,或者至少找出在評估照片中是否有狗時準確的百分比。
深度神經網路如何使用訓練來學習?
神經網路通過數據從每次反覆運算中學習以提高其準確性
對於網路中所有神經元的一組給定權重,神經網路將對所有照片進行猜測,然後確定其準確性。它得到正確結果的時間百分比是多少,即說狗在照片中時在照片中,以及它得到錯誤結果的次數,說狗不在照片中,或者說狗不在照片中。這表明 AI 演算法的準確性是神經網路模型的基本反饋。
一旦它流覽了所有照片一次,它就可以隨機(或以其他方式)調整一些權重,然後再次進行猜測照片中內容的整個練習。如果第二次運行的結果更好,它將保留而不是恢復到上一組權重。如果第二次運行的結果更差,它可能會恢復到前一組權重,然後嘗試對這些權重進行不同的修改。
這個過程將以這種方式進行,直到神經網路擅長識別照片中的狗(希望如此)。
當演算法可以準確地識別狗時,它被稱為收斂。它已經被成功地「訓練」來識別狗。
神經網路有哪些不同類型?
卷積神經網路
卷積神經網路 (CNN) 是一種人工智慧,旨在處理大型數據集或從中學習。卷積神經網路是一個新創造的術語,專門描述這種類型的網路,或一般的人工智慧技術。
CNN是強大的圖像識別AI工具,它使用深度學習不僅可以執行生成任務,還可以執行描述性任務。生成任務的範例包括自動裁剪、字幕編寫、攝像、油印和圖像疊加。捲積神經網路包含所謂的捲積層。這些層中的每個神經元只處理來自視野一小部分的資訊。每個神經元的輸入都以類似校驗和的方式排列以生成特徵圖。
人工神經網路
人工神經網路 (ANN) 是由不同深度或層的許多感知器組成的網路,可以理解為邏輯回歸。ANN通常被稱為前饋神經網路,因為輸入僅在正向方向上處理:層接收輸入並以線性方式發送輸出。
人工神經網路也稱為通用函數逼近器。純神經網路演算法(如ANN和映射函數)可以作為深度學習實現,允許計算機學習任何函數。通用近似很重要的原因之一是啟動函數。啟動函數將非線性屬性引入網路,同時學習輸入和輸出之間的任何複雜關係。它説明不同類型的網路相互學習。
深度神經網路如何隨著時間的推移而改進?
想像演算法正在做什麼的一種方法是將每個神經元想像成一種確定性測試。不是對所有那些if-then語句進行編碼來識別狗,而是對每個神經元進行校準,以添加或消除照片中物體是狗的最終判斷。就好像判斷(例如狗與否)被分成大量相互關聯的判斷,這些判斷共同有助於最終判決。
當然,如果可能的話,主要目標是實現趨同。在合理的時間內完成此操作也是一個重要目標,最好是在短時間內完成。
深度學習演算法有一個學習過程,這使得人類難以理解它們
有趣的是,允許神經網路識別圖片中的狗的邏輯是人類無法理解的。深度學習模型具有隱藏邏輯,本質上是一個隱藏節點層的黑匣子,創建自己的深度網路。也就是說,已經有一些嘗試嘗試在圖像識別任務中直觀地表示神經網路背後的邏輯。對於其他情況,不可能看到演算法在幕後做什麼,深度學習方法仍然是隱藏的。
神經網路和機器學習現在很流行,但其中許多演算法在大約50年前就已經為人所知。
為什麼深度神經網路在各行各業越來越受歡迎?
神經網路現在比最初發明時更受歡迎的主要原因之一是處理能力比以前更快、更便宜。計算能力在實現快速融合方面起到了重要作用。另一個原因是數據現在無處不在,這增加了可以利用數據的演算法的價值,例如 chatbots 對於業務
先進的神經網路需要高處理能力和大量數據
深度學習神經網路是數據和處理器饑渴的技術,可以實現使用程式設計技術的程式員無法實現的結果。它們非常適合某些問題,其中存在無處不在的數據,並且很容易對首選結果進行分類或排名。
如果沒有數十萬張甚至數百萬張狗的照片,就不可能訓練演算法。這些技術僅在大量數據可用時才有效。這是相當明顯的,因為所有特殊情況都不太可能在一組僅 1000 張照片中呈現。
神經網路可以面對結構化數據或非結構化數據
上面示例中的一個問題是標記所有照片涉及大量手動工作。演算法更容易使用以結構化方式標記的數據。使用結構化數據的神經網路機器學習稱為監督學習。
這給我們帶來了一個核心問題:是否有可能避免所有這些標記工作?這將是件好事,因為您不僅可以避免大量的手動工作,而且互聯網上可用的大多數數據都是非結構化的,即沒有仔細標記或結構化。
神經網路可以使用非結構化數據嗎?
處理非結構化數據的人工神經網路和機器學習稱為無監督學習。當然,這是機器學習的聖杯,更類似於人類的學習方式。然而,即使是機器的無監督學習也需要比人類更多的數據來“學習”,而且機器不能輕易地推斷出超出它們所訓練範圍的例子。
許多深度學習模型試圖重現人腦過程
有些人認為,這些類型的演算法可以通過重新設計大腦來開發,以至於演算法開始接近人類水準的“理解”。他們認為,有可能使用複雜的大腦掃描技術來讓我們深入瞭解大腦的神經網路是如何工作的。通過複製這些設計和模式,我們可以複製人類水平的智慧。
雖然這些技術無疑是巧妙且非常有用的,尤其是在有大型數據集的情況下,但很難想像這種簡單的演算法可以成為高度創造性的類人智慧的基礎。