機(jī)器學(xué)習(xí)算法
首先介紹下什么是KNN,為什么不是CNN、DNN之類的呢?KNN的全名是K-th Nearest Neighbor,中文意思是第K位最接近的鄰居。什么是“第k位最接近的鄰居”呢?假設(shè)在一個(gè)廣場(chǎng)上,有100個(gè)朋友,每位朋友都是你的鄰居,最接近你的鄰居,就是“第一位距離最近的鄰居”了,比第一位稍微遠(yuǎn)一點(diǎn)的鄰居,就是“第二位距離最近的鄰居”了,以此類推,第10位距離最近的鄰居,就是k=10的時(shí)候了。 KNN是一種機(jī)器學(xué)習(xí)算法,,機(jī)器學(xué)習(xí)就是讓機(jī)器接收外界輸入的資料以后,依照某種算法(一些步驟的集合),訓(xùn)練出一種模型,這個(gè)模型是一種從資料學(xué)習(xí)出來的東西,有了這個(gè)模型,機(jī)器看到新的資料的時(shí)候,不會(huì)空空如也,而是有某種程度的經(jīng)驗(yàn)和智慧,可以了解新的資料了。 在這個(gè)過程中,有兩種訓(xùn)練的方法:監(jiān)督式和非監(jiān)督式的學(xué)習(xí)。所謂監(jiān)督式的學(xué)習(xí),是指在訓(xùn)練機(jī)器學(xué)出一個(gè)模型的之前,會(huì)先有一段訓(xùn)練的時(shí)間,在這段時(shí)間里面,每一筆資料會(huì)有一個(gè)正確答案,機(jī)器學(xué)習(xí)以后,會(huì)根據(jù)答案調(diào)整自己學(xué)習(xí)的方法。舉例來說:我們學(xué)習(xí)數(shù)學(xué)的時(shí)候,可能會(huì)練習(xí)一些題目,練習(xí)以后,會(huì)對(duì)一下答案,如果算錯(cuò)了,就會(huì)調(diào)整自己的計(jì)算方式,或是檢查有沒有粗心算錯(cuò)的地方。機(jī)器學(xué)習(xí)里面的監(jiān)督式學(xué)習(xí)正是如此,訓(xùn)練之后,才開始有預(yù)測(cè)的階段,這個(gè)時(shí)候輸入機(jī)器的資料沒有正確答案,機(jī)器必須根據(jù)他之前學(xué)習(xí)的模型來判斷,預(yù)測(cè)新的資料應(yīng)該輸出哪一個(gè)正確答案,而不像再訓(xùn)練階段的時(shí)候,輸入的資料會(huì)有人類提供的正確答案了。 另外一種非監(jiān)督式的學(xué)習(xí),則是連訓(xùn)練的階段都沒有。我們只給予機(jī)器簡(jiǎn)單的學(xué)習(xí)方法,或是一個(gè)簡(jiǎn)單的價(jià)值觀,然后就開始把資料輸入機(jī)器,讓機(jī)器自行判斷正確答案。舉例來說:我們還沒上小學(xué)之前,已經(jīng)有了一些基本的說話能力。我們從嬰兒開始啞啞學(xué)語,我們并不曉得,什么是主詞、動(dòng)詞、受詞。我們可能連注音符號(hào)都不曉得。但是我們的父母一直跟我們講話,我們有一天就突然蹦出一些詞,第一句可能是「媽媽」!第二句可能是「爸爸」!之后可能開始簡(jiǎn)單的對(duì)話,最后在上小學(xué)之前,我們至少會(huì)問簡(jiǎn)單的問題,老師講的句子也都聽的懂,才有辦法起立、立正、敬禮,還有學(xué)習(xí)注音符號(hào),練習(xí)寫字了。非監(jiān)督式的學(xué)習(xí)就是類似如此,我們給機(jī)器資料,簡(jiǎn)單的規(guī)則和價(jià)值觀,剩下的就交給機(jī)器一邊學(xué)習(xí)一邊預(yù)測(cè)正確答案是什么了。 下面來看一個(gè)實(shí)例,如圖所示。我們的目標(biāo)是要機(jī)器學(xué)會(huì)怎樣子分出紅點(diǎn)和藍(lán)點(diǎn)。 每個(gè)點(diǎn)在平面上有個(gè)位置,分別用(x,y)來代表,舉個(gè)例子來說:紅點(diǎn)代表女生的大頭照,藍(lán)點(diǎn)代表男生的大頭照,x軸代表照片中頭發(fā)的長(zhǎng)度,y軸代表照片中臉面積的大小。現(xiàn)在機(jī)器已經(jīng)知道某些點(diǎn)是男生的大頭照(藍(lán)色的點(diǎn))、某些是女生的大頭照(紅色的點(diǎn))。當(dāng)一張新的大頭照輸入機(jī)器以后(圖片里面打問號(hào)沒有顏色的點(diǎn)),KNN算法就先計(jì)算這個(gè)點(diǎn),和其他已經(jīng)知道男生或女生的資料點(diǎn)之間的距離(圖里面畫了幾條線代表在計(jì)算距離)。今天KNN的K如果設(shè)定成1,也就是(1-NN)的話,代表機(jī)器會(huì)找第一位距離最近的點(diǎn),然后看這個(gè)點(diǎn)是男生(圖中藍(lán)色點(diǎn))或是女生(圖中紅色點(diǎn))。如果這個(gè)點(diǎn)是男生,那么我們也預(yù)測(cè)剛才打問號(hào)的這個(gè)點(diǎn)(新的資料點(diǎn))是男生的大頭照。之后這個(gè)問號(hào)點(diǎn)就變成藍(lán)色的,然后繼續(xù)反覆同樣的動(dòng)作在下一個(gè)新輸入的資料點(diǎn),預(yù)測(cè)新的問號(hào)點(diǎn)是男生或是女生。如果k=3,也就是使用3-NN學(xué)習(xí),情況會(huì)變成怎樣子呢?機(jī)器同樣先計(jì)算圖中打問號(hào)的點(diǎn)和各個(gè)顏色的點(diǎn)的距離,接著選出前三名距離最近的點(diǎn),然后看看里面紅色的點(diǎn)比較多(2個(gè)以上的點(diǎn)是紅色)還是藍(lán)色的點(diǎn)比較多(2個(gè)以上的點(diǎn)是藍(lán)色),如果藍(lán)色點(diǎn)比較多,就判斷這個(gè)新問號(hào)點(diǎn),是男生的大頭照了。以此類推,會(huì)有5-NN,7-NN,9-NN學(xué)習(xí)法,端看問題的需要而定。 KNN學(xué)習(xí)法就是如此簡(jiǎn)單。然而KNN也有他困難的地方。首先是每個(gè)機(jī)器學(xué)習(xí)法都要面對(duì)的問題,就是選擇特征,用剛才的例子,我們用頭發(fā)長(zhǎng)度和臉大小的面積來讓機(jī)器學(xué)習(xí),如果遇到留長(zhǎng)發(fā)的男生或是輪廓比較大的女生,可能就判斷不大出來:或是說,如果我們改用膚色來判斷,比較白的是女生,比較黑的是男生,萬一這個(gè)規(guī)則拿來判斷歐洲人,可能也不大行。 另一個(gè)困難則是距離的訂定。剛才的例子中,頭發(fā)長(zhǎng)度如果用公分來算,差距1公分的頭發(fā)長(zhǎng)度,可能有辦法分辨男女。如果是用頭發(fā)的顏色來判斷的話,那么顏色的「距離」就不知道要怎么定了,或許可以定成光線頻率的距離,那機(jī)器還可以學(xué)習(xí),不然「紅色」和「黑色」兩種顏色之間的距離,可能就不知道要怎么定了。 這上面講解的我都同意,但是作者在文后特意修正,KNN是一種監(jiān)督式機(jī)器學(xué)習(xí)算法。這在我看來,這個(gè)修正不是太過于正確。在某些情況下,KNN可以說是一種監(jiān)督式學(xué)習(xí)算法,然后在另外一些情況下卻不盡然。舉個(gè)例子來說,對(duì)于一系列沒有分類的數(shù)據(jù)集來說,如何應(yīng)用KNN算法對(duì)其進(jìn)行分類呢? 我的思路是:首先輸入第一個(gè)數(shù)據(jù),然后將其判為一類,接著輸入第二個(gè)數(shù)據(jù),如果他們之間的相似性度量滿足一定的條件,即measurement
提交
2025中歐綠色建筑工業(yè)化論壇9月北京啟幕 全球智慧共推建筑產(chǎn)業(yè)“雙碳”轉(zhuǎn)型
喜訊!華強(qiáng)電子網(wǎng)榮獲“2025年中國(guó)產(chǎn)業(yè)互聯(lián)網(wǎng)創(chuàng)新企業(yè)”
深入實(shí)施“人工智能+”行動(dòng) 浪潮軟件集團(tuán)看好人工智能+工業(yè)質(zhì)檢廣闊前景,持續(xù)布局線纜行業(yè)智能質(zhì)檢
海爾新增2家卓越級(jí)智能工廠,總數(shù)品類行業(yè)雙第一
深度剖析格力打破磁懸浮壓縮機(jī)國(guó)外壟斷,底氣來自對(duì)自主創(chuàng)新的堅(jiān)守!

投訴建議