機器學習瓶頸 從黑盒白盒之爭說起

2022-01-12 09:37:56 字數 2482 閱讀 3748

任何事物的發展都會遇到瓶頸。半導體業界的摩爾定律在很長的一段時間裡面一直是有效的,但是在近幾年也快走到盡頭了。

機器學習在alphago戰勝人類棋手之後,名聲大噪,我也是在那次比賽之後開始研究機器學習的。機器學習這項技術是不是有乙個天花板,這個天花板在**,我們現在的技術發展離開這個天花板到底有多遠,我們是在地板上呢,還是快觸碰到天花板了呢?

在五年前,intel公司的ceo就丟擲了無法繼續摩爾定律的危機說。摩爾定律由英特爾聯合創始人戈登-摩爾(gordon moore)提出,意思是說:當**不變時,積體電路上可容納的電晶體數目,約每隔 18 個月便會增加一倍,效能也將提公升一倍。換言之,每一美元所能買到的電腦效能,將每隔 18 個月翻兩倍以上。這個定律雖然奏效了數十年,但是從2023年開始,這個定律就已經失效

在知乎上有這樣一篇文章

大概的意思是用乙個神經網路來調控另乙個神經網路!

以前,雖然我們不知道alphago是怎麼想的,但是我們知道它是怎麼學的,

以後,我們不但不知道alphago是怎麼想的,我們還不知道它是怎麼學的!!!

1.ml 歸根到底是程式,如果log足夠多的話,如果你足夠耐心的話,你肯定可以知道,結果是如何產生的。

2.用神經網路去優化神經網路,其本質是一樣的,就想加法變成乘法,但是還沒有脫離實數的範圍,到達乙個更高的維度。

3.ml的程式,包括無監督的程式,都是人寫的,都是按照人的想法在執行的,所以,為什麼人不知道機器是怎麼想的?即使這個程式表現得再不可思議,但結果應該都在人的預料之中。alphago為什麼會做決定,背後是程式,程式的背後是寫程式的人的想法。除非是真正的隨機函式,不然,寫程式的人肯定知道程式是如何執行和預想結果的。

總結:不知道程式是怎麼想的,只是因為你不願意去閱讀程式的日誌和不願意除錯程式。如果有無窮的時間,你單步除錯所有的**,你肯定知道這個結果是怎麼來的。

如果整個機器學習慢慢進入黑盒的時代,則可以**,瓶頸快到了。我們不知道機器到底是怎麼學習的,我們就無法進行改進。就像我們不知道雨水的形成機理,我們光在地上求雨是徒勞的。

很多演算法中,都可以看到隨機的影子,rf的話,也就是多次隨機抽取樣本,訓練模型,這些模型再進行平均操作。當然,這是根據中心極限理論得出的好方法。神經網路的dropout也是如此,隨機的將一些神經節點進行遮蔽。但是隨機就意味著失控,意味著人工很難干預結果。包括梯度下降,是否能收斂到全域性最優解,很大程度上也是有運氣成分在裡面的。初始值,學習率都是影響結果的因素。

現在很多機器學習的比賽,已經從技術比拼轉向資源比拼了。

神經網路的層數越來越長,越來越深,微軟的神經網路是152層。

阿里巴巴的機器學習模型,已經是3gb的龐然大物了。

整個業界都從硬體和物理層面去獲得精度的收益了。

同時,超引數的選取,現在也都是經驗論:

神經網路的層數

我們首先需要確定網路的層數和每層的節點數。關於第乙個問題,實際上並沒有什麼理論化的方法,大家都是根據經驗來拍,如果沒有經驗的話就隨便拍乙個。然後,你可以多試幾個值,訓練不同層數的神經網路,看看哪個效果最好就用哪個。嗯,現在你可能明白為什麼說深度學習是個手藝活了,有些手藝很讓人無語,而有些手藝還是很有技術含量的。

k聚類的k取多少,自然語言處理的主題模型,主題數選擇多少比較合適等等。都還沒有,或者難以找到理論依據。

機器學習的本質就是數理統計?答案可能沒這麼簡單

如果從傳統意義上的資料分析師的觀點來說,這個問題的答案很簡單,無非是下面這兩點:

機器學習本質上是一種演算法,這種演算法由資料分析習得,而且不依賴於規則導向的程式設計;

統計建模則是以資料為基礎,利用數學方程式來**變數變化規律的一套規範化流程。

有一種觀點就是機器學習只是數理統計的乙個華麗包裝而已。

在自然語言處理裡面,原本是語言學家佔主導的,然後慢慢的統計學家開始占上風,特別是在翻譯領域,基本上都是靠強大的計算能力和巨大的模型在處理問題,也就是說從規則到統計的轉變。

如果說,機器學習的本質還是統計學的話,統計學,概率學這些東西,其實已經發展到盡頭,很難再有什麼革命性的突破了。是不是也意味著機器學習也走到盡頭了呢?

機器學習在很大程度上是對於大腦工作原理的仿生學。我覺得,機器學習的發展肯定和人類對於大腦研究的發展密不可分,神經網路就是乙個例子。也有可能在多年之後,我們會發現大腦的工作原理和我們現在的認知完全不同,這樣的話,當前的機器學習很有可能會被完全推翻,走向一條新的道路。

測試技術之白盒與黑盒

軟體測試時代 今天整理了一下自己的郵箱,把同行發來的問題整理了一下,其中有個測試新手 問了有關測試技術中用到的白盒與黑盒技術相關問題,在這裡我把我對這兩個技術的理解,希 望對測試新人有所幫助。對於白盒 黑盒測試技術,測試新人通常都喜歡問這類問題 1 目前所做的工作沒有應用到白盒測試技術,都是手工測試...

測試知識之 黑盒白盒和灰盒測試

黑盒測試 黑盒測試也稱功能測試,它是在已知產品所應具有的功能上,通過測試來檢測是否每個功能是否能夠按照需求規格說明書的規定正常使用。我們通過程式的介面進行測試,看程式能否適當的接收輸入資料而產生正確的輸出資訊,並且保持外部資訊 如資料庫或者檔案 的完整性。常見的黑盒測試方法有 等價類劃分法 邊界值 ...

軟體測試之黑盒測試 白盒測試

靜態測試 不用執行程式的測試,包括 檢查 靜態結構分析 質量度量 文件測試等等,它可以由人工進行,充分發揮人的邏輯思維優勢,也可以借助軟體工具 fxcop 自動進行。動態測試 需要執行 通過執行程式找到問題,包括功能確認與介面測試 覆蓋率分析 效能分析 記憶體分析等。白盒測試中的邏輯覆蓋包括語句覆蓋...