1. 程式人生 > >機器學習的數學基礎一

機器學習的數學基礎一

一、概述

我們知道,機器學習的特點就是:以計算機為工具和平臺,以資料為研究物件,以學習方法為中心;是概率論、線性代數、數值計算、資訊理論、最優化理論和電腦科學等多個領域的交叉學科。所以本文就先介紹一下機器學習涉及到的一些最常用的的數學知識。

 

二、線性代數

2-1、標量

一個標量就是一個單獨的數,一般用小寫的的變數名稱表示。

2-2、向量

一個向量就是一列數,這些數是有序排列的。用過次序中的索引,我們可以確定每個單獨的數。通常會賦予向量粗體的小寫名稱。當我們需要明確表示向量中的元素時,我們會將元素排
列成一個方括號包圍的縱柱:

我們可以把向量看作空間中的點,每個元素是不同的座標軸上的座標。

2-3、矩陣

矩陣是二維陣列,其中的每一個元素被兩個索引而非一個所確定。我們通常會賦予矩陣粗體的大寫變數名稱,比如A。 如果一個實數矩陣高度為m,寬度為n,那麼我們說A\epsilon R^{m\times n}

矩陣這東西在機器學習中就不要太重要了!實際上,如果我們現在有N個使用者的資料,每條資料含有M個特徵,那其實它對應的就是一個N*M的矩陣呀;再比如,一張圖由16*16的畫素點組成,那這就是一個16*16的矩陣了。現在才發現,我們大一學的矩陣原理原來這麼的有用!要是當時老師講課的時候先普及一下,也不至於很多同學學矩陣的時候覺得莫名其妙了。

2-4、張量

幾何代數中定義的張量是基於向量和矩陣的推廣,通俗一點理解的話,我們可以將標量視為零階張量,向量視為一階張量,那麼矩陣就是二階張量。

例如,可以將任意一張彩色圖片表示成一個三階張量,三個維度分別是圖片的高度、寬度和色彩資料。將這張圖用張量表示出來,就是最下方的那張表格:

其中表的橫軸表示圖片的寬度值,這裡只擷取0~319;表的縱軸表示圖片的高度值,這裡只擷取0~4;表格中每個方格代表一個畫素點,比如第一行第一列的表格資料為[1.0,1.0,1.0],代表的就是RGB三原色在圖片的這個位置的取值情況(即R=1.0,G=1.0,B=1.0)。

當然我們還可以將這一定義繼續擴充套件,即:我們可以用四階張量表示一個包含多張圖片的資料集,這四個維度分別是:圖片在資料集中的編號,圖片高度、寬度,以及色彩資料。

張量在深度學習中是一個很重要的概念,因為它是一個深度學習框架中的一個核心元件,後續的所有運算和優化演算法幾乎都是基於張量進行的。

2-5、範數

有時我們需要衡量一個向量的大小。在機器學習中,我們經常使用被稱為範數(norm) 的函式衡量矩陣大小。Lp 範數如下:

\left| \left| x \right| \right| _{p}^{} =\left( \sum_{i}^{}{\left| x_{i} \right| ^{p} } \right) _{}^{\frac{1}{p} }

所以:

L1範數\left| \left| x \right| \right|:為x向量各個元素絕對值之和;

L2範數\left| \left| x \right| \right| _{2}:為x向量各個元素平方和的開方。

這裡先說明一下,在機器學習中,L1範數和L2範數很常見,主要用在損失函式中起到一個限制模型引數複雜度的作用,至於為什麼要限制模型的複雜度,這又涉及到機器學習中常見的過擬合問題。具體的概念在後續文章中會有詳細的說明和推導,大家先記住:這個東西很重要,實際中經常會涉及到,面試中也常會被問到!!!

2-6、特徵分解

許多數學物件可以通過將它們分解成多個組成部分。特徵分解是使用最廣的矩陣分解之一,即將矩陣分解成一組特徵向量特徵值

方陣A的特徵向量是指與A相乘後相當於對該向量進行縮放的非零向量\nu

A\nu =\lambda \nu

標量\lambda被稱為這個特徵向量對應的特徵值。

使用特徵分解去分析矩陣A時,得到特徵向量構成的矩陣V和特徵值構成的向量\lambda,我們可以重新將A寫作:

A=Vdiag\left( \lambda \right) V^{-1}

2-7、奇異值分解(Singular Value Decomposition,SVD)

矩陣的特徵分解是有前提條件的,那就是隻有對可對角化的矩陣才可以進行特徵分解。但實際中很多矩陣往往不滿足這一條件,甚至很多矩陣都不是方陣,就是說連矩陣行和列的數目都不相等。這時候怎麼辦呢?人們將矩陣的特徵分解進行推廣,得到了一種叫作“矩陣的奇異值分解”的方法,簡稱SVD。通過奇異分解,我們會得到一些類似於特徵分解的資訊。

它的具體做法是將一個普通矩陣分解為奇異向量和奇異值。比如將矩陣A分解成三個矩陣的乘積:

A=UDV^{T}

假設A是一個m\timesn矩陣,那麼U是一個m\timesm矩陣D是一個m\timesn矩陣V是一個n\timesn矩陣

這些矩陣每一個都擁有特殊的結構,其中U和V都是正交矩陣,D是對角矩陣(注意,D不一定是方陣)。對角矩陣D對角線上的元素被稱為矩陣A的奇異值。矩陣U的列向量被稱為左奇異向量,矩陣V 的列向量被稱右奇異向量

SVD最有用的一個性質可能是拓展矩陣求逆到非方矩陣上。另外,SVD可用於推薦系統中。

2-8、Moore-Penrose偽逆

對於非方矩陣而言,其逆矩陣沒有定義。假設在下面問題中,我們想通過矩陣A的左逆B來求解線性方程:

Ax=y

等式兩邊同時左乘左逆B後,得到:

x=By

是否存在唯一的對映將A對映到B取決於問題的形式。

如果矩陣A的行數大於列數,那麼上述方程可能沒有解;如果矩陣A的行數小於列數,那麼上述方程可能有多個解。

Moore-Penrose偽逆使我們能夠解決這種情況,矩陣A的偽逆定義為:

但是計算偽逆的實際演算法沒有基於這個式子,而是使用下面的公式:

其中,矩陣U,D 和V 是矩陣A奇異值分解後得到的矩陣。對角矩陣D 的偽逆D+ 是其非零元素取倒之後再轉置得到的。