簡明機器學習 01機器學習的幾個基本要素

2022-03-14 02:47:10 字數 2998 閱讀 9277

什麼是學習演算法,學習當然不是乙個動詞,學習演算法最簡單的理解便是能夠從資料中學習的演算法,學習的解釋根據mitchell提出的定義:「對於某類任務task和效能度量performace,如果乙個電腦程式在任務中,效能能夠隨著經驗experience而自我完善,那麼我們就稱為程式在經驗中學習。」

舉乙個非常簡單的例子,加入你有乙個女朋友,你們每次約好出去吃飯的時候,你總是興沖沖的去等她,但是每次都要等很久,你也不敢抱怨什麼,但是也不想和個孤兒一樣站著。於是你就開始了學習。你的任務就是「縮小等待的時間」,然後你在約好時間後等待了五分鐘再出門,結果你還是等了15分鐘。下一次,你等待了十分鐘再出門,你還是等了十分鐘。後來你不斷的調整等待的時間,這就是乙個學習的過程。那麼有一次,你等了25分鐘再出門,結果被臭罵了一頓,這也就是我們機器學習裡面很常見的乙個東西,叫做懲罰。當然學習也是有乙個前提條件,就是任務必須要有潛在的規律,它不可以是乙個無規律的事物。

事實上很多人會有一種誤解,認為我們學習的就是任務。請記住,我們學習的永遠不是任務本身,學習指的是獲得執行任務的能力。比如,我們要實現人臉的自動識別,那麼識別就是任務,我們要獲得識別的能力。說到底,機器學習就是試圖讓程式替代或者輔助人的智慧型行為。

我們在評估學習演算法裡面某項任務的好壞的時候,我們常常需要設計一些東西去量化它的效能。比如人臉識別的任務重,我們需要衡量識別的正確率和準確率,通常我們稱之為精度,當然還有錯誤率。

為了衡量乙個演算法的好壞,我們常常需要人為的製作出資料,我們稱為測試資料(test set of data),不過通常來說,測試資料也是已知資料的一部分,只是我們單獨的劃分開,只用於訓練完成後的最終測試。那麼平時我們進行引數的優化時所使用的資料,我們稱為訓練資料(train set of data),同時還有驗證資料等等。

\[p=\frac

\]查全率r就是真實類標為"1」的資料中分類器**正確的比率。

\[r=\frac

\]通常來說,查全率和查準率是矛盾關係,當查準率很高的時候,查全率往往很低。比如講一張**中的人全部查詢出來,你可以將所有的動物都標記為人,那麼你的查全率就是1了,但是查準率顯然是很低。所以你需要有時候謹慎的選擇,有時候寧可錯殺一千也不放過乙個,有時候你需要反其道行之。

在評估多個演算法的時候,我們可以作出p-r圖,如果乙個演算法的p-r圖將另乙個演算法的圖完全包住,那麼可以判定後者的效能更優秀。如果它們發生了交叉,我們通常很難判定它們的效能,通常會進行比較bep(p=r的點),不過bep過於簡陋了,所以我們使用f1度量:

\[f1=\frac=\frac

\]有的時候我們對查全率和查準率的要求不同,比方說,我們進行內容推薦的時候,要盡可能降低查全率提高查準率,因為我們的要求是更少的打擾。我們使用f1度量的一般形式——\(f_\beta\):

\[f_\beta=\frac

\]其實我們可以發現,f1是基於查準率和查全率的調和平均,也就是\(\frac=\frac(\frac+\frac)\),\(f_\beta\)則是廣義的f1,也就是加權調和平均,\(\frac=\frac(\frac+\frac)\)。

對於\(f_\beta\),如果\(\beta > 1\),展開表示式很容易發現查全率會有更大的影響,如果\(\beta < 1\),則查準率更有影響。

在這裡我會很粗略的講一下監督學習(supervised learning)和非監督學習(unsupervised learning)。事實上機器學習的演算法則是粗略的分為這兩種。

監督學習演算法:簡單地說就是我們試圖將每乙個資料都用乙個相對應的類標(label)進行關聯,就好比我指著一堆車子,告訴你,這種形狀的就是車,或者說,以江西省為例,所有籍貫江西的人的身份證號前兩位都是36,這也是乙個類標。我們讓乙個小朋友去學習認識這些,每次錯誤的時候,我們相應的提醒糾正他,他慢慢的就會調整自己,不斷學習提高自己的識別能力。你可以把監督學習認為是一種對映關係,對於每乙個資料x,都會有乙個對應的y

非監督學習演算法:現實生活中,大部分資料是沒有標記的,即使我們人為的給它新增上標記,這個工作量基本上是無法估量的。非監督學習就是在沒有標記的情況下,學習資料內部自有的結構和規律。最常使用的非監督學習演算法就是聚類,例如我們聽到了兩種毫無關聯的聲音,我們在此之前也從來沒有聽過。但是我們能很清楚的分辨出這兩種聲音,儘管我們並不知曉這兩種聲音是什麼。但是我們的任務只是將他們以最大的共同點進行分類就行了。

監督學習費時費力,半監督學習能力有限,那麼有沒有什麼是可以取到兩種演算法的優點呢?這個時候,我們提出了半監督學習

半監督學習很好理解,就是我們在面對大量無標記資料或者只有少部分有標記資料時,我們將兩種資料一起運用上,這就是半監督學習。

不過對於乙個演算法的學習來說,即使我們只標記一部分資料,這樣的工作量也是很大的。並且存在乙個問題,很多標記使用人為的方式並不好,標記通常都從環境中獲取。那麼我們怎麼評判這些資料的標記是否合適呢?我們只需要提供某些評價機制(獎勵和懲罰)。這一種學習方式我們稱為強化學習。不知道讀者中養狗的多不多,這種機制類似我們教狗上廁所,小狗可能不懂你的意思,但是它亂撒尿我們打它一頓,當它前往指定位置的撒尿我們獎勵它乙個食物。慢慢的它自然就懂了。

我的掘金:warrenryan

歡迎關注我的部落格獲得第一時間更新

我的github:steveneco

機器學習01 初識機器學習

4.基本步驟 5.基本術語 6.參考 機器學習 machine learning 是一門人工智慧的學科,它模擬人類的學習行為,從已有的資料中習得經驗,再利用這些經驗對未知的資料進行 或判斷,以此來改善計算機演算法的效能。與傳統程式設計和演算法相比 傳統程式設計由程式設計師給演算法指定規則,機器學習由...

機器學習筆記01 機器學習簡介

機器學習是人工智慧的乙個分支,它業是一類演算法的總稱。這些演算法能夠根據提供的訓練資料按照一定的方式來學習,最終用於 或者分類。更具體的說,機器學習可以看作是尋找乙個函式,輸入是樣本資料,輸出是期望的結果,只是這個函式過於複雜,以至於不太方便形式化表達。需要注意的是,機器學習的目標是使學到的函式很好...

簡明機器學習系統概述

業務成長迅速,使用者量和收錄的電影量都在增加,現有的業務結構如圖所示 可以看到,現有的系統不斷的收錄使用者資料,然後通過人工的方式選擇和推薦電影實現對使用者的推薦和批量營銷。那麼現在就有問題了,也許有人會質疑你,原有的方式不好嗎?為什麼非要機器學習?事實上,使用機器學習的理由有很多,不使用機器學習的...