機器是如何學習的?

2021-08-20 18:14:42 字數 3596 閱讀 1480

注:  本系列 課程源於李燁 · (微軟高階軟體工程師)老師的文件   在gitbook 上可以買到***課程。

什麼是機器學習?字面理解,就是讓機器自己學會某種東西。

更準確一點,機器學習就是:讓電腦程式(機器),不是通過人類直接指定的規則,而是通過自身執行,習得(學習)事物的規律,和/或事物間的關聯。

對人類而言,乙個概念對應的是具體的事物,一般而言,人類對其有所認知的事物,都不是孤立的,互相之間有著各種各樣的關聯。

比如說:

當我們對乙個人說「蘋果」的時候,ta 可能馬上就會想到那個圓圓的,香甜的,有皮有核的水果。

也許還會想到香蕉、菠蘿等其他水果;或是想到美味的蘋果派、伊甸園裡的故事、咬了蘋果一口的白雪公主等等……

如果我們將 「蘋果」這兩個字輸入給計算機,計算機並不會幻視出乙個水果,也不會像人那樣「意識到」這個單詞的含義。

電腦程式所能夠處理,只有數值和運算。

電腦程式不過是一段儲存在硬碟上的零一**,執行時被讀取進記憶體,cpu 根據**轉換成的指令來做一組特定的操作,讓這些01數字通過邏輯電路進行若干運算後,生成計算結果。

要讓一段程式了解客觀世界變化萬千的事物,則必須將這些事物數值化,將事物的變化和不同事物之間的關聯轉化為運算。

當若干現實世界的事物轉換為數值之後,計算機通過在這些數值之上的一系列運算來確定它們之間的關係,再根據乙個全集之中個體之間的相互關係,來確定某個個體在整體(全集)中的位置。

我們繼續前面的舉例——很可能,我說「蘋果」的時候,有些人首先想到的不是蘋果,而是喬幫主創立的科技公司。

但是,我繼續說:「蘋果一定要生吃,蒸熟了再吃就不脆了。」——在這句話裡,「蘋果」一詞確定無疑指的是水果,而不是公司。

因為在我們的知識庫裡,都知道水果可以吃,但是公司不能吃。出現在同一句話中的 「吃」對「蘋果」起到了限定作用——這是人類的理解。

對於計算機, 「蘋果」被輸入進去的時候,就被轉化為乙個數值 va。

經過計算,這個數值和對應「吃」的數值 ve 產生了某種直接的關聯,而同時和 ve 產生關聯的還有若干數值,它們對應的概念可能是「香蕉」(vb)、「菠蘿」(vp)、「獼猴桃」(vc)……

那麼據此,計算機就會發現 va、vb、vp、vc 之間的某些關聯(怎麼利用這些關聯,就要看具體的處理需求了)。

note 1:說到數值,大家可能本能的想到 int、double、 float……但實際上,如果將乙個語言要素對應成乙個標量的話,太容易出現兩個原本相差甚遠的概念經過簡單運算相等的情況。

假設「蘋果「被轉化為2,而「香蕉」被轉化為4,難道說兩個蘋果等於乙個香蕉嗎?

因此,一般在處理時會將自然語言轉化成 n 維向量。只要轉化方式合理,規避向量之間因為簡單運算而引起歧義的情況還是比較容易的。

這種現實世界和計算機之間,概念 數值,關係 運算的對映,造就了機器可以自主學習獲得事物規律的可能。

既然機器是有可能自己學習事物規律的,那麼如何才能讓它學到規律呢? 我們先來看乙個故事:

貓媽媽讓小貓去捉老鼠,小貓問:「老鼠是什麼樣子啊?」

貓媽媽說:「老鼠長著鬍鬚。」結果小貓找來一頭大蒜。

貓媽媽又說:「老鼠四條腿。」結果小貓找來乙個板凳。

貓媽媽再說:「老鼠有一條尾巴。」結果小貓找來乙個蘿蔔。

在這個故事裡,小貓就是乙個基於規則的(rule-based) 電腦程式,它完全聽命於開發者貓媽媽的指令行事。但是因為三次指令都不夠全面,結果,三次都得出了錯誤的結果。

如果要把小貓變成乙個基於機器學習模型的(model-based) 電腦程式,貓媽媽該怎麼做呢?

貓媽媽應該這樣做,應該給小貓看一些**,並告訴小咪咪,有些是老鼠,有些不是,比如下面這些:

貓媽媽可以先告訴它:要注意老鼠的耳朵、鼻子和尾巴。

然後小貓通過對比發現:老鼠的耳朵是圓的,別的動物要麼沒耳朵,要麼不是圓形耳朵;老鼠都有尾巴,比的動物有的有,有的沒有;老鼠的鼻子是尖的,別的動物不一定是這樣。

然後小貓就用自己學習到的:「老鼠是圓耳朵,有尾巴,尖鼻子的動物」的信念去抓老鼠,那麼小貓就成了乙個「老鼠分類器」。

小貓(在此處模擬乙個電腦程式)是機器(machine),它成為「老鼠分類器「的過程,就叫做學習(learning)

貓媽媽給的那些**是用於學習的資料(data)

貓媽媽告知要注意的幾點,是這個分類器的特徵(feature)

學習的結果——老鼠分類器——是乙個模型(model)。這個模型的型別可能是邏輯回歸,或者樸素貝葉斯,或者決策樹……總之是乙個分類模型。

小貓思考的過程就是演算法(algorithm)

無論有監督學習,還是無監督學習,都離不開這三要素。

什麼叫有監督學習?什麼又叫無監督學習?我們來解釋一下。

有監督學習

小貓通過學習成為「老鼠分類器「,就屬於典型的有監督學習(supervised learning)。

大家請看上面的圖1,其上面不僅有老鼠、非老鼠的**,還在每個老鼠**下面有乙個綠色的對勾,標明這是乙隻老鼠;而非老鼠的**下是乙個紅叉子,說明這不是乙隻老鼠。

每一張**是乙個資料樣本(sample)。下面對勾或者叉子,就是這個資料樣本的標籤(label)。而給樣本打上標籤的過程,就叫做標註(labeling)。

標註這件事情,機器學習程式自己是解決不了的,必須依靠外力。這些勾叉都是貓媽媽打上去的,而不是小貓。

小貓通過學習過程獲得的,就是給打勾打叉的能力。如果小貓已經能夠給打勾或者打叉了,就說明它已經是乙個學習成的模型了。

這種通過標註資料進行學習的方法,就叫做有監督學習或直接叫監督學習(supervised learning)。

無監督學習

反過來,如果用於學習的資料只有樣本,沒有標籤,那麼通過這種無標註資料進行學習的方法,就叫做無監督學習(unsupervised learning)

比如說,我們有這樣六個樣本:

要做的事情是,將根據她們的體貌將區分她們的種族。

明明是六匹馬,為什麼還要分種族?因為在小馬(《little pony》)的世界裡,小馬(pony)在馬這個大類之下,還有細分的種族。我可以告訴你,要關注的特徵(features)是:獨角和翅膀。而她們一共可以被歸為3個小馬種族。

這樣你是不是就能分出來了——兩個有獨角的一組(她們叫獨角獸);兩個有翅膀的一族(她們叫飛馬);另外兩個很正常的一組(她們叫陸馬)。

ok!聚類完成。我們經歷了一次有趣的無監督學習的過程。

GDPR到底是如何影響機器學習的?

摘要 gdpr時代來臨,你的機器學習模型還能訓練嗎?一般資料保護條例 本文主要討論gdpr與機器學習 ml 之間三個最常見的問題。1.gdpr 是否禁止機器學習?總的來說,在gdpr生效後,ml不會在歐盟被禁止。但是,從技術的角度來看,這個問題的答案是肯定的。gdpr作為法律條文,確實做出了對使用自...

GDPR到底是如何影響機器學習的?

一般資料保護條例 本文主要討論gdpr與機器學習 ml 之間三個最常見的問題。1.gdpr 是否禁止機器學習?總的來說,在gdpr生效後,ml不會在歐盟被禁止。但是,從技術的角度來看,這個問題的答案是肯定的。gdpr作為法律條文,確實做出了對使用自動化決策的全面禁止的規定。當gdpr使用 自動化決策...

機器學習1 什麼是機器學習

原文 arthur samuel定義機器學習為,在無特定程式設計的情況下,給予計算機學習能力的領域。這個定義不正式而又古老。tom mitchell提供了乙個更現代的定義 乙個程式被認為能從經驗e中學習,解決任務 t,達到 效能度量值p,當且僅當,有了經驗e後,經過p評判,程式在處理 t 時的效能有...