了解什么是機器學習?為什么需要機器學習?
一、什么是機器學習?
字面上,「機器學習」可以拆分為兩個詞:機器、學習。
那么,簡單理解:機器學習就是讓機器去學習?
的確是這樣的,但是我們學習的目的是什么?我們學習是為了能夠掌握某種能力或者技巧。
機器學習也一樣!所以從廣義上來說,機器學習可以理解為:讓機器通過學習,具有某種能力。
現在,我們來回憶一下人類的學習過程。
想象這樣一個場景:你有一個半歲的小孩,你現在需要教你的小孩識別蘋果、香蕉。
這里面涉及到一個學習的過程:首先,你會向小孩展示蘋果和香蕉,并且告訴他:這個圓圓的是蘋果,長長的是香蕉。然后,你會重復這個過程無數遍!最終,你的小孩具有了識別蘋果和香蕉的能力。
想讓機器通過學習,掌握識別蘋果和香蕉的能力。首先,我們也需要反復多次的告訴它什么是蘋果,什么是香蕉。
與人類小孩學習過程不同的是,機器學習是從數據中提取知識。
所以,我們需要將蘋果和香蕉數據化,比如:大小、形狀、顏色。我們整理出成百上千的蘋果、香蕉數據,最后輸入電腦,再利用某個神奇的算法處理這些數據,電腦會基于這些數據生成一個文件,這個文件,我們稱之為"模型"(可以理解為人類學習后的記憶或者總結出的經驗)。
算法利用數據生成模型的過程,我們稱之為"訓練"。訓練是一個持續反復的過程,就如人類學習,需要不斷記憶、不斷總結。
最后,我們再將新的蘋果或者香蕉數據輸入,計算機利用模型就能判斷出是蘋果還是香蕉。
所以,從實踐的意義上來說:機器學習(machine learning,縮寫ML)是一種基于數據,通過算法,訓練出模型,讓程序可以基于模型預測結果的一種方法。
二、為什么需要機器學習?
在"智能"應用的早期,還沒有機器學習。當時許多"智能"系統,其實并不是我們想象中的那么智能!
機器學習之前,許多看上去智能的系統,內部采用的是人為制定的條件決策規則來處理某些智能邏輯。比如:一個早期的電影推薦系統
如果,看了"鋼鐵俠":
推薦"復仇者聯盟";
否則:
推薦"喜羊羊"吧;
對應到程序代碼中,這樣的邏輯就是"if-else"條件選擇。早期這樣的"智能"系統中,往往會包含很多很多的"if-else"。畢竟條件越多,推薦越準確~
好在計算機與人相比,計算機記憶力超強、運算速度超級快。成百上千的條件選擇也能輕松記住,并且快速計算,給出結果。
這種人為制定規則的方法并不適用所有場景。比如:人臉檢測、指紋解鎖等。
如今,每臺智能手機都能檢測人臉或者指紋。對于圖像的識別,計算機感知的是像素(像素組成了計算機中的圖像),與人類感知圖像的方式完全不同。所以,人類想要制定出一套好的規則來描述圖像構成,基本上是不可能的!
這時候機器學習就應運而生了。我們僅僅通過向程序輸入成千上萬的人臉圖像,就可以讓計算機識別出人臉特征,從而區分每一個人。
END.
系列文章:
本系列文章后期不定時更新,后續內容會首發在我的公眾號上。微信讀者,可以搜一搜:【程序員的一天】,即可關注!
另外,每一個關注、點贊,都是極大支持和鼓勵。最后,非常感謝閱讀本系列文章。