機器學習的基本原理。就像下面的漫畫:你告訴一台電腦,1+1 =2 然後,問它,它回答等於500,你一邊丟他老木,一邊不停的矯正,告訴它等於2,等於2,經過無數次的矯正,最後電腦終於知道1+1 =2,那麼第一階段目標達成。。。然後你就可以開始教它1+2 =3 了。
不管是啥學習,關鍵在於學習兩個字,從人類獲取知識的角度來說,最標準的流程就是:教——學。首先要有老師教,也就是所謂的啟蒙,之後再進去引導,最後才是完全的自學。哪怕是在自學中,如果有人正確的提點,那麼效果也會比自學好很多倍。
機器學習也是一樣,首先要有「教」的過程,這個過程就是人們先設定好很多樣本,不斷的告訴機器,這個東西是啥,告訴的過程就是所謂的「訓練」,比如識別蘋果,人們先準備幾百張(幾千?幾萬?幾十萬?)張不同角度,不同顏色、不同表現的蘋果的,然後用相應的模式提取出表達為蘋果的特徵,然後這些特徵轉換成機器能夠讀懂的資料模型,比如rgb為255,0,0的就是紅色,大部分蘋果的顏色都是紅色——諸如此類的。
然後就可以呼叫分類演算法,把這些特徵的閾值都計算出來,做出分類模型,這樣啟蒙的過程就算完成了。
下面來了一張新的,繼續把這張提取特徵,用新提取的特徵,去原來訓練好的模型裡面去驗證一下,如果符合某些設定,那麼機器就會告訴你,這個裡面有沒有蘋果。
接下去,機器判別之後,人類還可以繼續介入,肯定機器是正確的,還是錯誤,然後給定乙個評分,就像老師批改家庭作業和測試一樣,然後把新的再加入到樣本集中,修正模型。
如此往復,當時這個模型訓練的次數足夠多(五年高考,三年模擬)……那麼識別的能力也會越難越強。
好吧,寫完之後,發現,我們的考試制度,實際上就是為了把人當成機器來培養……題目做得多,就考得更好。(也不知道是人在學習機器,還是機器在學習人……)
通過前面的接受,大家基本上知道機器學習的乙個基本原理了,那麼現在影像提取中,如何去應用呢?
實際上在很多年前,影像提取就已經有物件導向提取方法以及監督分類方法等,利用了機器學習的基本思想,但是每次去做,只是針對當次處理的資訊和結果。
現在遙感解譯領域, 最大的乙個點,依然是「人工向量化」。
通過人工對遙感影象進行解讀,然後手動向量化,提取相應的資料:地塊、道路等等。這種工作的方式本來無可厚非(自動解譯的準確度實在太低了)。但是在我們做人工解譯的過程中,確沒有留下任何可以復用的成果。
比如有一副影像圖,交給內業工作人員,讓他們進行道路提取,一般情況下就是工作人員直接在影像圖上進行向量化,把道路的線直接給繪製,生成向量的line,然後賦予屬性,最後結束工作。
第一年這樣做,第二年也這樣做,第三年、第四年……
做了n年之後,依然沒有任何幫助。訓練出來了一堆精通向量化的勞動密集型工作者。
那麼為什麼我們不換乙個思路呢?有這麼多老師,為什麼不能把他們從畫圖者轉換為訓練員呢?如果說在其他領域裡面,樣本庫的獲得是最難的,那麼恰恰在我們gis裡面,它們是最容易的。
如果說進行人工解譯的時候,把所有的特徵資料通過提取——標記的方式,製作成樣本庫,將這些樣本庫作為機器學習的樣本來提供給程式進行訓練。這種方法會被人直接跳出來準備用磚頭呼在蝦神臉上:你說得輕鬆,向量化本來就很辛苦了,還給你去做提取標記,這是n倍的工作量好吧!你來開工資麼?就算你你開得出工資,專案時間呢?我們爭分奪秒的幹活,你還在這裡不切實際的在幻想……最後總結出一句話:不懂的走開,瞎指揮……
實際人的工作量完全沒有增加,也不用重複工作。當繪製出向量資訊之後,把向量線(或者面)寫入屬性資訊,那麼需要做僅僅是利用這些向量的面(或者線)直接對柵格資料進行乙個按掩膜提取就可以了。
如果說從柵格變成向量,需要人工來處理,那麼從向量回過頭來提取柵格,這個過程完成可以利用指令碼或者modelbuilder自動化來實現:看下面這個示例:
如下影像資料
向量化之後:
只需要利用向量化之後的地塊進行掩膜提取即可:
提取結果如下:
草地1:
花田1:
打完收工。
最後做乙個簡單總結:
1、遙感影像要進行機器學習獲取樣本,很容易的可以從向量化結果中來。
2、向量化將不再是結果,而只是乙個中間的過程。
3、gis的傳統工具,在大資料中,依然會變得很有用,正如英國人發明了坦克,而德國人僅僅在使用的手法上做出了一些改變,就改變了整個戰爭的形態。
4、當我們做的工作越來多,那麼我們的樣本庫就會越來越豐富,那麼機器就會越來越聰明……千里之行始於足下,就從基礎資料提取開始吧。
基於向量的運動
有三個三角形小車,其中預設行為是紅車追綠車躲藍車,綠車追藍車躲紅車,藍車追紅車躲綠車。在追逐的過程中,如果遇到牆壁就換方向。其中紅車可以受滑鼠的影響,如果滑鼠在畫布中按下,紅車就會無視預設規則,向滑鼠位置移動。這個demo中所有的運動都是基於2d向量的,沒有直接進行x,y,三角函式等運算。另外,追逐...
基於統計的詞向量
glove 的訓練過程 實質上還是監督學習 雖然 glove 不需要人工標註為無監督學習,但實質還是有 label 就是 log xij 向量 和 為學習引數,本質上與監督學習的訓練方法一樣,採用了 adagrad 的梯度下降演算法,對矩陣 x 中的所有非零元素進行隨機取樣,學習曲率 learnin...
基於向量檔案渲染思考 mapnik
作為一名giser,現處於交通行業 交通行業與gis結合確實是一件很有意思的事情 最近遇到乙個大資料量下的向量檔案在前台載入渲染直接崩潰問題,處於這個節點上,做了如下思考 var mapnik require mapnik var fs require fs var img new mapnik.i...