這次練習的重點是多分類問題和神經網絡的實現
randperm(n):隨機打亂一個數字序列,結果是從1到n隨機打亂得到的一個數字序列。
首先需要了解one VS all的核心思想和步驟。
這就是之前學習的線性擬合的升級版。
對於之前的線性擬合來說,指的是知道X和y,不斷調整參數使得X向量經過計算可以得到對應的y。
這次的應用背景是對20X20的圖片進行識別。所以每一個X向量共有401個屬性(有一個屬性衡爲1)。
這裏的all指的是10個數字(10變成0來處理)。one指的是每一個數字的識別。
所以問題就變成了先將這些數字分類爲10類,分別得到theta。將這些theta整合在一個矩陣中。然後對於測試矩陣的X做相乘,會得到十維的一個向量,即y。每一個取值的含義都是區對應位置數字的可能性。所以找出可能性最大的 ,就是最後預估出來的數字。
當然,在這裏沒有什麼新添加的代碼。重要的是解決這個問題的思路。
第二部分就是一個簡單的神經網絡的模擬。
等到下一個習題中會有具體的神經網絡的學習,在這裏就是一個簡單的熱身。
源代碼地址:
http://download.csdn.net/detail/yinyanting1/9906481