深度學習基礎 DL的侷限性

2021-09-30 16:30:07 字數 1866 閱讀 1334

1)當資料量偏少,效果不好

2)資料不具有區域性相關特性。

而對於不具有區域性相關特性的資料,沒法用特點的網路拓撲來捕捉了他的資訊,在深度學習中就只能用 mlp 來完成模型的訓練,而 mlp 的效果,一般要弱於 gdbt,randomforest 等傳統模型。

3)從輸入到輸出的幾何變化大必須光滑且連續。

在深度學習中,所有的東西都可以向量化,所有的東西都是幾何空間中的乙個點。模型的輸入和輸出首先被向量化,被轉換到輸入向量空間和目標向量空間中去。網路中的每一層都對通過它的資料進行簡單的幾何變化。而模型中的不同層鏈結起來便構成的複雜的幾何變化,將這一複雜的變換簡化成一系列簡單操作的組合變構成了深度學習的過程。

這一複雜的變換操作試圖將輸入空間對映到目標空間去。利用引數化的層間權重來實現之一變換,同時基於模型的表現來迭代地更新這些引數的取值。

這意味著深度學習需要遵循乙個十分重要的約束條件,從輸入到輸出的幾何變化大必須光滑且連續。

目前,深度學習還不能自然處理層級結構。喬姆斯基不斷地強調,語言有著層級結構,大的結構部件是由小部件遞迴構成的。但是,當前大多數基於深度學習的語言模型都將句子視為詞的序列。在遇到陌生的句子結構時,迴圈神經網路(rnn)無法系統地展示、擴充套件句子的遞迴結構。這種情況在其他需要複雜層級結構的領域也是一樣,比如規劃和電機控制。而深度學習學到的各組特徵之間的關聯是平面的,沒有層級關係,是乙個核心問題。

4)任何需要推理(類似程式設計)或者是需要科學方法(例如長期規劃,演算法類的資料操作等)相關的工作,都已經超出了目前深度學習技術的能力範疇。

舉個很實際的例子,你可能能建立乙個產品經理對於軟體描述的巨量文字庫,同時也擁有一大堆工程師為了滿足這些產品要求的巨量**,但是即使在這樣的條件下,你也不能訓練出乙個神經網路來閱讀產品需求,隨後就能夠生成合適的**和軟體。

這僅僅是其中的乙個例子,普遍意義上來說,任何需要推理(類似程式設計)或者是需要科學方法(例如長期規劃,演算法類的資料操作等)相關的工作,都已經超出了目前深度學習技術的能力範疇,無論多少的資料都無法實現完成的工作。甚至利用深度學習去學習乙個簡單的排序演算法都是十分複雜和困難的工作。

深度學習的能力受到模型所能表示範圍的限制,同時還受限於所希望學習的內容不能表示為資料流形到目標空間的連續的幾何變換!

5)深度學習模型只具有"局域泛化"的能力,同時只能處理與訓練資料非常相近的新情況,而人類則擁有"極致的泛化"能力,能迅速適應完全不同的狀況,同時能為長期狀況作出有效的安排。

6)「可解釋性」差

"機器學習系統通常具有較低的「可解釋性」,這意味著人類很難弄清楚系統是如何做出決定的。具有諷刺意味的是,即使我們已經開始克服polanyi的悖論,我們也面臨著另乙個版本:機器知道的比它們能告訴我們的更多。

最後乙個甚至仍有可能被低估的好訊息是,有效使用機器學習演算法所需要的資料可能沒有你想象的那麼多。

首先,機器可能有隱藏的偏見,不是來自設計者的任何意圖,而是來自提供給系統的資料。舉個例子,如果乙個系統了解到哪些求職者在面試中使用了過去招聘人員所做的一系列決定來接受面試,那麼它可能會無意中學會將他們的種族、性別、種族或其他偏見延續下去。

第二個風險是,與傳統的基於顯式邏輯規則的系統不同,神經網路系統處理的是統計學上的真理,而不是真實的事實。尤其是在沒有在培訓資料中表示的情況下工作很難,甚至不可能。缺乏可驗證性對於任務型的應用場景是乙個問題,例如控制核電站,或者涉及生死抉擇。

第三,當機器學習系統確實出現錯誤時,幾乎不可避免地會出現錯誤診斷和糾正錯誤。導致解決方案的底層結構可能是難以想象的複雜,如果系統被培訓的條件發生變化,那麼解決方案可能會遠遠不夠理想。

7)和以前的機器學習方法相比,dnn的劣勢:

在分類時容易受到對抗樣例(adversarial examples)的影響;

在強化學習中容易出現災難性遺忘(catastrophic forgetting);

在生成建模中容易發生模式崩潰(mode collapse)。

SQLite的侷限性

sql 92特性方面 正如前面提到的,sqlite不支援sql 92的在很多企業資料庫系統中可用的一些特性。如 外來鍵約束 可解析的,但非強制 很多alter table特性 一些trigger相關的特性 right和full outer join 更新乙個view grant和revoke 你可以...

SQLite的侷限性

sqlite和其他大部分現代sql資料庫在基本設計目標上是不同的,它的目標是簡單。sqlite遵循這一目標,即使這樣偶爾會導致某些特性實現的低效化。下面列舉了sqlite的一些缺陷 sql 92特性方面 正如前面提到的,sqlite不支援sql 92的在很多企業資料庫系統中可用的一些特性。如 外來鍵...

AutoPtr 的侷限性

因為std auto ptr是轉移語義,而stl容器的元素必須是值語義,也就是拷貝語義的。比如,stl容器都是以副本的形式來儲存元素。std vectorv int a 1 v.push back a v 0 也是值為1的int,但不是a.僅僅是乙個副本.a的值也並未被改變.std auto ptr...