對機器學習的理解

2021-08-17 06:38:28 字數 2148 閱讀 4406

機器是什麼,機器就是電腦、晶元、**這些東西。讓電腦遵循人的指令,完成一件特定的任務從計算機發明那天開始就在研究了,現在的各種程式語言、資料結構和程式設計演算法等都是在做這個。但是它們只能依賴於程式設計師輸入的確定的**才能 work,也就是說他們不能「自己學習」,這樣對於有些問題就很尷尬,比如檢測一張中有幾個人,識別一句話中提到了幾個人名,識別一張是不是黃圖等等。這些任務要是寫乙個**,依靠規則去實現,那還是非常困難。但是我們可以換個思路,讓我們寫**去實現這些功能很困難,但是讓我們去給打標籤(比如給一批圖,人為的打上是不是黃圖的標籤…)不是很簡單的嘛,我們如果能讓機器自己從打好標籤的中自己學習那些是黃圖不就萬事大吉了嘛。這樣看的話,標註的工作就對應了傳統寫**中寫規則匹配的工作。

那麼有了標註好的,怎麼讓程式學習呢?這一步就需要借助於萬能的數學了。如果我們能構造乙個擬合函式,這個擬合函式可以擬合訓練集,比如這裡就是給函式輸入各個的畫素 rgb 值,輸出就是是不是黃圖。擬合完了之後給定一張沒見過的也就能用這個函式得到是不是黃圖了。

那麼具體是怎麼實現這個思路的呢?想一想最小二乘法的做法。舉個例子,比如有 100 個點(x0

,y0)

,...

,(

x100,y

100)

(x_,y_),...,(x_,y_)

(x0​,y

0​),

...,

(x10

0​,y

100​

),我們想用一條直線去擬合它。首先直線的方程就是 y=a

x+

by = ax+b

y=ax+b

, 其實這裡我們只要求出 a 和 b 就行了,a 和 b 的選擇有無數多種,我們要選一種最好的。沒有量化就沒有優化,我們首先要把 「最好的」 這個標準進行量化,在數學上就是選乙個目標函式,比較好的乙個目標函式就是讓每個點到 y 的距離之和最小(圖上畫圈部分就是每個點的誤差,目標就是讓每個點的誤差加起來最小)。

![這裡寫描述](

所以目標函式就是 ∑i=

0n∣a

xi−y

i+b∣

a2+1

\sum_^\frac - y_ + b \right |}+1}}

∑i=0n​

a2+1

​∣ax

i​−y

i​+b

∣​,我們要讓它最小。

但是這樣比較難算(點到直線的公式太煩了……),所以我們可以退而求其次,讓每個點到 y 的差的和最小,這裡只要關注距離,所以可以把乙個點的誤差寫成 ∣xi

−(ax

i+b)

∣\left | x_- (ax_+b)\right |

∣xi​−(

axi​

+b)∣

。然後把每個點的誤差加起來就是我們的目標函式了。我們要讓理論值和測試值之間誤差最小。

![這裡寫描述](

這樣表示的目標函式就是 ∑i=

0n∣x

i−(a

xi+b

)∣

\sum_^\left | x_- (ax_+b)\right |

∑i=0n​

∣xi​

−(ax

i​+b

)∣。但是絕對值是個令人頭痛的東西,是乙個分段函式並且還有不可導的點。所以我們用平方代替,最終的目標函式是 ∑i=

0n(x

i−(a

xi+b

))

2\sum_^ (x_- (ax_+b))^

∑i=0n​

(xi​

−(ax

i​+b

))2,現在的任務只要求使得這個式子最小的 a 和 b 就行了。在高等數學中,對於這個問題只要對 a 和 b 分別求偏導,並令其為 0,然後解乙個二元一次方程就行了。鑑別黃圖的思路也是類似的,只不過這個擬合函式就沒有 y=a

x+

by = ax+b

y=ax+b

這麼簡單了,可能還要用到高大上的深度學習什麼的……但是道理是一樣的。

對於其他的大部分機器學習演算法思路是一樣的。流程都是確定目標函式,然後對每個引數求導的方法找到目標函式的最大值(優化引數的過程)。只不過這裡每個步驟都有很多方法可以選擇。比如針對是否有訓練集可以分為有監督、無監督和半監督。目標函式有極大似然估計、貝葉斯估計、平方誤差、交叉熵之類的。優化引數可以直接求出解析解(如果可以的話),或者用 em 演算法、梯度下降法、牛頓法之類的進行迭代優化。

對機器學習中學習曲線的理解

學習曲線是一條關於樣本個數和經驗損失函式之間的曲線,對機器學習中的過程進行判斷,進一步調整學習引數,提高假設模型的泛化能力。在上面的圖中,藍線表示經驗損失函式隨著訓練樣本的增多而變大,相反綠線呈現出反向的關係。綠線是交叉驗證樣本,計算交叉驗證的樣本損失函式使用到的權值引數是由訓練樣本得到的,與該權值...

機器學習理解

關於機器學習最簡單的定義來自於berkeley所表述的 機器學習是ai的乙個分支,它探索了讓計算機根據經驗提高效率的方法。為了更深刻的理解這一定義,接下來我們將對其進行拆分分析。ai的分支 人工智慧是一種能夠使得計算機及其系統能夠成功完成通常需要人類智慧型行為才能完成的任務的研究和開發。機器學習是訓...

對NOSQL學習的理解

之前的5年職業生涯中沒有接觸過nosql的東西,到了現在的單位接觸了幾大主流的nosql平台,如redis mongodb hbase等,自己的能力得到一定的提公升,可是自己在這些方面的知識的深度還是不夠,如果在往深入一點的話就不行了,所以,雖然上班快8年了,自己的知識體系還是要繫豐富一下的,也就是...