1. 程式人生 > >Hulu機器學習問題與解答系列 | 十五:多層感知機與布爾函數

Hulu機器學習問題與解答系列 | 十五:多層感知機與布爾函數

功能 目標 機器學習 分享圖片 研究 vue gic per 發展

今天沒有別的話,好好學習,多多轉發!

本期內容是

【多層感知機與布爾函數】

場景描述

神經網絡概念的誕生很大程度上受到了神經科學的啟發。生物學研究表明,大腦皮層的感知與計算功能是通過分多層實現的,例如視覺圖像,首先光信號進入大腦皮層的V1區,即初級視皮層,之後依次通過V2層,V4層,即紋外皮層,進入下顳葉參與物體識別。深度神經網絡,除了其模擬人腦功能的多層結構,最大的優勢在於能夠以緊湊簡潔的方式來表達比淺層網絡更復雜的函數集合(這裏的“簡潔”可定義為隱層單元的數目與輸入單元的數目呈多項式關系)我們的問題將從一個簡單的例子引出,已知神經網絡中每個節點都可以進行“邏輯與/或/非”的運算,如何構造一個多層感知機 (Multi-Layer Perceptron, MLP) 網絡實現n個輸入比特的奇偶校驗碼(任意布爾函數)?

問題描述

  1. 如何用多層感知機實現一個異或邏輯(僅考慮二元輸入)?

  2. 如果只使用一個隱層,需要多少隱節點能夠實現包含n元輸入的任意布爾函數?

  3. 上面的問題中,由單隱層變為多隱層,需要多少節點?

  4. 合理配置後所需的最少網絡層數是多少?

背景知識:數理邏輯、深度學習

解答與分析

1. 如何用多層感知機實現一個異或邏輯(僅考慮二元輸入)?

如下圖所示(可有其他解法):

技術分享圖片

2. 如果只使用一個隱層,需要多少隱節點能夠實現包含n元輸入的任意布爾函數?

包含n元輸入的任意布爾函數可以唯一表示為“析取範式 (Disjunctive Normal Form, DNF)”(由有限個簡單合取式構成的析取式)的形式。先看一個簡單的例子:

技術分享圖片

由於每個隱節點可以表示析取範式中的一個簡單合取式,所以該函數可由包含六個隱節點的三層感知機實現,如下圖:

技術分享圖片

我們可以使用卡諾圖表示析取式,即用網格表示真值表,當輸入的合取式值為1時,則填充相應的網格。卡諾圖中相鄰的填色區域可以進行規約,以達到化簡布爾函數的目的,如下圖所示,七個填色網格最終可規約為三個合取式,故該函數可由包含三個隱節點的三層感知機實現:

技術分享圖片技術分享圖片

於是我們的問題可轉化為,尋找“最大不可規約的”n元析取範式DNF,也等價於最大不可規約的卡諾圖,直觀上,我們只需間隔填充網格即可實現,其表示的布爾函數恰為n元輸入的異或操作,如圖:

技術分享圖片

因此,n元布爾函數的析取範式最多包含2(n-1)個合取式,對於單隱層的MLP,需要2(n-1)

個隱節點可以實現。

3. 上面的問題中,由單隱層變為多隱層,構造一個n元異或函數需要多少節點?

考慮二元輸入的情況,需要三個節點可完成一次異或操作;對於四元輸入,包含三次異或操作,需要3×3=9個節點即可完成;而對於六元輸入,包含五次異或操作,需要3×5=15個節點…依此類推,n元異或函數需要3(n-1)個節點(包括最終輸出節點)。網絡的構造方式可參考下圖:

技術分享圖片技術分享圖片技術分享圖片技術分享圖片

我們可以發現,多隱層結構可以將隱節點的數目從指數級O(2(n-1))直接減少至線性級O(3(n﹣1))!

4. 合理配置後所需的最少網絡層數是多少?

根據二分思想,每層節點兩兩分組進行異或運算,需要兩個隱層操作完成,故合理配置後需要的網絡層數為2㏒2(N)。


下一題預告

【經典優化算法

場景描述

針對我們遇到的各類優化問題,研究者們提出了多種有各自適用場景的求解算法,並逐漸發展出了有嚴格理論支撐的研究領域——凸優化[1]。在這眾多的算法中,有幾種經典的優化算法是值得被牢記的,了解它們的適用場景有助於我們在面對新的優化問題時有求解思路。

問題描述

有一道無約束優化問題擺在你面前

技術分享圖片

其中目標函數 L(·) 是光滑的。請問求解該問題的優化算法有哪些?它們的適用場景是什麽?

參考材料與文獻:

11-785 CMU Deep Learning Course (Fall 2017)

http://deeplearning.cs.cmu.edu/slides/lec2.universal.pdf

[1] Boyd, Stephen, and Lieven Vandenberghe. Convex optimization. Cambridge university press, 2004.

Hulu機器學習問題與解答系列 | 十五:多層感知機與布爾函數