我該如何使用測試數據以及如何與 培訓數據相關?
想想感知爲年幼的孩子。你想教孩子如何區分蘋果和橘子。告訴你它是5個不同的蘋果(全紅/黃色)和5橘子(不同形狀的),同時告訴它什麼它看到動輒(「這是一個蘋果。這是一個橙色)。假如孩子有完美的記憶,它會學習瞭解是什麼讓蘋果的蘋果和桔子桔子,如果你給他足夠的例子,他最終將開始沒有你居然告訴他使用的元功能(如形狀)。這是一個感知器做什麼之後你給他看所有的例子,你從頭開始,這就是所謂的新時代。
當你想測試孩子的知識,會發生什麼?你給它新的東西。青蘋果(不只是黃色/紅色),葡萄柚,也許是西瓜。爲什麼不在訓練期間向孩子展示與之前完全相同的數據?因爲孩子有完美的記憶,它只會告訴你你告訴他什麼。你不會看到它有多好,概括從已知到看不見數據,除非你有不同的訓練數據,你從來沒有在訓練中顯示他。如果孩子對測試數據,但在訓練數據100%的性能恐怖的表現,你就會知道他已經什麼也沒學到 - 訓練時它只是重複他已被告知 - 你訓練他太久,他只有記憶你的例子不理解是什麼讓一個蘋果一個蘋果,因爲你給了他太多的細節 - 這被稱爲過度擬合。爲了防止您的感知器只能(!)識別訓練數據,您必須在合理的時間停止訓練,並在訓練和測試集的大小之間找到一個良好的平衡點。
如何知道點是否被錯誤分類?
如果是從它應該是什麼樣的不同。假設一個蘋果的類爲0,橙色爲1(這裏您應該開始閱讀單/多層感知器以及多個感知器的神經網絡如何工作)。該網絡將採取您的輸入。它如何編碼與此無關,比方說輸入是一個字符串「apple」。你的訓練集是{(apple1,0),(apple2,0),(apple3,0),(orange1,1),(orange2,1).....}。既然你事先知道這個類,網絡將爲輸入「apple1」輸出1或0。如果它輸出1,則執行(targetValue-actualValue)=(1-0)= 1。在這種情況下,意味着網絡輸出錯誤。將此與增量規則進行比較,您會明白,這個小方程是較大更新方程的一部分。如果您得到1,您將執行重量更新。如果目標和實際值相同,您將始終得到0,並且您知道網絡沒有錯誤分類。
我該如何去選擇測試點,訓練點,門檻或 的偏見?
實際上,偏差和閾值本身不是「選擇」的。與其他任何單位一樣,使用簡單的「技巧」訓練偏差,即使用偏差作爲值爲1的附加輸入單位 - 這意味着實際偏差值在該附加單位的重量中編碼,我們使用的算法將確保它自動學習我們的偏見。
根據您的激活功能,閾值是預先確定的。對於一個簡單的感知器,會產生很多的分類如下:

由於我們使用二進制輸出,這是一個良好的開端(0和1之間)把門檻爲0.5,因爲這正好中間範圍[0,1]。
現在到您關於選擇培訓和測試要點的最後一個問題:這是非常困難的,您通過經驗來做到這一點。在你所在的位置,你首先實現簡單的邏輯函數,比如AND,OR,XOR等等。這很簡單。您將所有內容都放入您的訓練集中,並使用與您的訓練集相同的值進行測試(因爲對於x XOR y等,只有4個可能的輸入00,10,01,11)。對於像圖像,音頻等複雜數據,您必須嘗試並調整數據和功能,直到您感覺網絡可以像您希望的那樣良好地工作。
感謝您的迴應!我還有幾個問題:因此,對於我的訓練數據,我會喜歡[10] [3]數組,它是x值,y值還是標記?而且我對這個算法如何「訓練」訓練數據也有點困惑,你可以再擴展一下嗎? – Sarah 2015-01-31 23:44:59
在你提到的問題中,你提到「我知道你改變權重,如果一個點被錯誤分類,直到沒有人被誤分類」。 **是**的學習,它指的是找到合適的權重。 – Dave 2015-01-31 23:50:24
噢,那麼權重是否會從測試數據的訓練數據的最終權重開始? – Sarah 2015-01-31 23:57:24