機器學習分為頻率學派和貝葉斯學派,頻率學派認為模型的引數是固定的,不同的輸入資料進來,就會得到不同的輸出資料。這種思路衍生出了統計學習方法,統計學習方法的前提就是訓練資料和測試資料存在相同的統計規律。
那麼對大量資料的統計規律進行建模也是這樣,從輸入資料到輸出資料的對映,就需要構建乙個模型來反應。最簡單的,線性模型,樹模型,圖模型等等等等,其實都是在對問題分析之後提出的對這些資料建模的嘗試。這個過程依賴於對問題的理解,也依賴於數學。
模型一旦確定,計算規則就確定了,但是模型的引數卻沒有初始化,別忘了,這裡建模得出的都是模型集合,在這個集合空間裡,模型引數唯一確定模型。舉個例子,只有在確定斜率和截距之後,我們才能唯一確定乙個二維空間的線性模型。
那麼如何去確定引數?什麼樣的引數確定的模型才可以解決實際問題?這時便需要用到策略。
我們在確定引數之前,先給自己畫個餅,我們假設有乙個模型,它能夠準確無誤地表達資料的統計規律,稱為真實模型。那麼接下來要做的事情,就是不斷向這個真實模型靠近,為此提出通過損失函式來刻畫當前模型與真實模型之間的距離。
這個計算方法也有很多種,計數法,均方誤差,對數似然等等。這裡的選擇也很重要,選對了損失函式,那麼當損失值很小時(趨近0),模型也離真實模型不遠了。
可是,損失函式只是乙個度量方法,它只能衡量距離,但是卻並不能朝著讓距離更小的方向改變引數,這個工作就交給演算法了。
演算法一出場,世界都安靜了(盲目追捧的後果),演算法就是來調整模型引數,不斷朝著乙個方向調整,這種方向可以讓模型不斷朝著真實模型靠近,演算法的流程既可以很簡單,也可以很複雜。比如最簡單的,直接求解析解,這是最簡單的,在這種情況最優引數唯一並且可以直接算出來。
如果這種情況發生,那麼就說明這樣的模型實在太「複雜」了,因為它已經洞悉了資料之間的統計規律性,所以只需要通過計算就能直接得出結果。這樣統計規律差不多都被人類探索的差不多了,比如乙個邊長為a的正方形球場大概需要多少草皮,一本100頁的書本一天看一頁多少天能看完等等。現在用得著統計學習方法的,都是現實生活中一些還沒有被探索出規律的資料。比如,給你一張這個中的人是誰?給你一段中文,它的英文是什麼?這個時候,就需要不斷嘗試和探索新的模型。但是,更多的,是靠著梯度下降來實現的,基於損失值計算引數的偏導數,從而沿著負梯度的方向來更新引數。這個過程是個迭代的過程,一點點糾正,最後逼近了真實模型。
統計學習模型的三要素是模型+策略+演算法。
模型是第一步,是對現實問題的建模,它基本決定了解決問題能力的上限,因為它不能高於人類對現實世界的認知的維度上限,隨著人類科研不斷進步,不斷會湧現出新的模型;
策略是第二步,它衡量了模型與真實模型的差距,是努力的方向,通過策略可以看出選擇,有時候方向比努力更重要;
演算法是第三步,找到乙個方法來調整引數使得當前模型不斷逼近真實模型,它是努力的過程,有時候解空間很大,需要靠著不斷優化演算法來在有限時間找到最優解,它決定了解決問題速度的上限。
關於學習c 的一些想法
由12年年初開始到現在都過去差不多一年,一直說著要把c 學好,但是學到途中,總會被迷茫的感覺打斷,以此同時分心是學習殺手,可以讓你一晚夜的時間虛度,因此學習的時候最好看一本就只看一本書,其他的什麼都不要管了,這本書讓你去做的時候才去做,這樣才不會被撲面而來的問題掩蓋,我們只做一樣東西就可以,那就是看...
關於OCR,一些想法
ocr一般分為兩種 1,根據給定的字元特徵集合,提取未知字元的特徵進行匹配識別 典型例子 gocr 2,不知道字元特徵,但給出提取特徵的規則,通過機器學習training來獲取某個字符集的特徵集,對未知字元進行匹配識別。典型例子 tesseract 第一種方法簡單,在某些場合很高效,但比較侷限,字符...
關於tv app的一些想法
以前是做iptv機頂盒的,現在是做網際網路電視機頂盒的,在技術上的區別是不大的。通過這些年與電信,廣電打交道,現在對產品有了一些小想法。那麼在顯示上都是以web為主,用web來顯示epg內容,用osd來顯示狀態。但是隨著android的出現,現在大部分機頂盒或電視劇集廠家,都開始了智慧型之旅。乙個是...