谷歌開發者曾經整理了機器學習常見的一些術語與概念。爲了便於你們學習,先薦將這些術語與基本概念編譯、整理,分兩篇文章分享給你們,如下是從A到Z的基本術語與概念。算法
A緩存
A/B 測試 (A/B testing)微信
一種統計方法,用於將兩種或多種技術進行比較,一般是將當前採用的技術與新技術進行比較。A/B 測試不只旨在肯定哪一種技術的效果更好,並且還有助於瞭解相應差別是否具備顯著的統計意義。A/B 測試一般是採用一種衡量方式對兩種技術進行比較,但也適用於任意有限數量的技術和衡量方式。網絡
準確率 (accuracy)運維
分類模型的正確預測所佔的比例。在多類別分類中,準確率的定義以下:機器學習
在二元分類中,準確率的定義以下:函數
激活函數 (activation function)工具
一種函數(例如 ReLU 或 S 型函數),用於對上一層的全部輸入求加權和,而後生成一個輸出值(一般爲非線性值),並將其傳遞給下一層。post
AdaGrad性能
一種先進的梯度降低法,用於從新調整每一個參數的梯度,以便有效地爲每一個參數指定獨立的學習速率。
ROC 曲線下面積 (AUC, Area under the ROC Curve)
一種會考慮全部可能分類閾值的評估指標。ROC 曲線下面積表明分類器隨機預測真正類(Ture Positives)要比假正類(False Positives)機率大的確信度。
B
反向傳播算法 (backpropagation)
在神經網絡上執行梯度降低法的主要算法。該算法會先按前向傳播方式計算(並緩存)每一個節點的輸出值,而後再按反向傳播遍歷圖的方式計算損失函數值相對於每一個參數的偏導數。
基準 (baseline)
一種簡單的模型或啓發法,用做比較模型效果時的參考點。基準有助於模型開發者針對特定問題量化最低預期效果。
批次 (batch)
模型訓練的一次迭代(即一次梯度更新)中使用的樣本集。
批次大小 (batch size)
一個批次中的樣本數。例如,SGD 的批次大小爲 1,而小批次的大小一般介於 10 到 1000 之間。批次大小在訓練和推斷期間一般是固定的;不過,TensorFlow 容許使用動態批次大小。
誤差 (bias)
距離原點的截距或偏移。誤差(也稱爲誤差項)在機器學習模型中用 b 或 w0 表示。例如,在下面的公式中,誤差爲 b:y′=b+w_1x_1+w_2x_2+…w_nx_n
請勿與預測誤差混淆。
二元分類 (binary classification)
一種分類任務,可輸出兩種互斥類別之一。例如,對電子郵件進行評估並輸出「垃圾郵件」或「非垃圾郵件」的機器學習模型就是一個二元分類器。
分桶 (bucketing)
將一個特徵(一般是連續特徵)轉換成多個二元特徵(稱爲桶或箱),一般根據值區間進行轉換。例如,能夠將溫度區間分割爲離散分箱,而不是將溫度表示成單個連續的浮點特徵。假設溫度數據可精確到小數點後一位,則能夠將介於 0.0 到 15.0 度之間的全部溫度都納入一個分箱,將介於 15.1 到 30.0 度之間的全部溫度納入第二個分箱,並將介於 30.1 到 50.0 度之間的全部溫度納入第三個分箱。
C
校準層 (calibration layer)
一種調整後期預測的結構,一般是爲了下降預測誤差的影響。調整後的預測和機率應與觀察到的標籤集的分佈一致。
候選採樣 (candidate sampling)
一種訓練時進行的優化,會使用某種函數(例如 softmax)針對全部正類別標籤計算機率,但對於負類別標籤,則僅針對其隨機樣本計算機率。例如,若是某個樣本的標籤爲「小獵犬」和「狗」,則候選採樣將針對「小獵犬」和「狗」類別輸出以及其餘類別(貓、棒棒糖、柵欄)的隨機子集計算預測機率和相應的損失項。這種採樣基於的想法是,只要正類別始終獲得適當的正加強,負類別就能夠從頻率較低的負加強中進行學習,這確實是在實際中觀察到的狀況。候選採樣的目的是,經過不針對全部負類別計算預測結果來提升計算效率。
分類數據 (categorical data)
一種特徵,擁有一組離散的可能值。以某個名爲 house style 的分類特徵爲例,該特徵擁有一組離散的可能值(共三個),即 Tudor, ranch, colonial。經過將 house style 表示成分類數據,相應模型能夠學習 Tudor、ranch 和 colonial 分別對房價的影響。
有時,離散集中的值是互斥的,只能將其中一個值應用於指定樣本。例如,car maker 分類特徵可能只容許一個樣本有一個值 (Toyota)。在其餘狀況下,則能夠應用多個值。一輛車可能會被噴塗多種不一樣的顏色,所以,car color 分類特徵可能會容許單個樣本具備多個值(例如 red 和 white)。
分類特徵有時稱爲離散特徵,與數值數據相對。
形心 (centroid)
聚類的中心,由 k-means 或 k-median 算法決定。例如,若是 k 爲 3,則 k-means 或 k-median 算法會找出 3 個形心。
檢查點 (checkpoint)
一種數據,用於捕獲模型變量在特定時間的狀態。藉助檢查點,能夠導出模型權重,跨多個會話執行訓練,以及使訓練在發生錯誤以後得以繼續(例如做業搶佔)。請注意,圖自己不包含在檢查點中。
類別 (class)
爲標籤枚舉的一組目標值中的一個。例如,在檢測垃圾郵件的二元分類模型中,兩種類別分別是「垃圾郵件」和「非垃圾郵件」。在識別狗品種的多類別分類模型中,類別能夠是「貴賓犬」、「小獵犬」、「哈巴犬」等等。
分類不平衡的數據集 (class-imbalanced data set)
一種二元分類問題,在此類問題中,兩種類別的標籤在出現頻率方面具備很大的差距。例如,在某個疾病數據集中,0.0001 的樣本具備正類別標籤,0.9999 的樣本具備負類別標籤,這就屬於分類不平衡問題;但在某個足球比賽預測器中,0.51 的樣本的標籤爲其中一個球隊贏,0.49 的樣本的標籤爲另外一個球隊贏,這就不屬於分類不平衡問題。
分類模型 (classification model)
一種機器學習模型,用於區分兩種或多種離散類別。例如,某個天然語言處理分類模型能夠肯定輸入的句子是法語、西班牙語仍是意大利語。與迴歸模型成相互對比。
分類閾值 (classification threshold)
一種標量值條件,應用於模型預測的得分,旨在將正類別與負類別區分開。將邏輯迴歸結果映射到二元分類時使用。以某個邏輯迴歸模型爲例,該模型用於肯定指定電子郵件是垃圾郵件的機率。若是分類閾值爲 0.9,那麼邏輯迴歸值高於 0.9 的電子郵件將被歸類爲「垃圾郵件」,低於 0.9 的則被歸類爲「非垃圾郵件」。
聚類 (clustering)
將關聯的樣本分紅一組,通常用於非監督式學習。在全部樣本均分組完畢後,相關人員即可選擇性地爲每一個聚類賦予含義。
聚類算法有不少。例如,k-means 算法會基於樣本與形心的接近程度聚類樣本,以下圖所示:
以後,研究人員即可查看這些聚類並進行其餘操做,例如,將聚類 1 標記爲「矮型樹」,將聚類 2 標記爲「全尺寸樹」。
再舉一個例子,例如基於樣本與中心點距離的聚類算法,以下所示:
協同過濾 (collaborative filtering)
根據不少其餘用戶的興趣來預測某位用戶的興趣。協同過濾一般用在推薦系統中。
混淆矩陣 (confusion matrix)
一種 NxN 表格,用於總結分類模型的預測效果;即標籤和模型預測的分類之間的關聯。在混淆矩陣中,一個軸表示模型預測的標籤,另外一個軸表示實際標籤。N 表示類別個數。在二元分類問題中,N=2。例如,下面顯示了一個二元分類問題的混淆矩陣示例:
上面的混淆矩陣顯示,在 19 個實際有腫瘤的樣本中,該模型正確地將 18 個歸類爲有腫瘤(18 個正例),錯誤地將 1 個歸類爲沒有腫瘤(1 個假負例)。一樣,在 458 個實際沒有腫瘤的樣本中,模型歸類正確的有 452 個(452 個負例),歸類錯誤的有 6 個(6 個假正例)。
多類別分類問題的混淆矩陣有助於肯定出錯模式。例如,某個混淆矩陣能夠揭示,某個通過訓練以識別手寫數字的模型每每會將 4 錯誤地預測爲 9,將 7 錯誤地預測爲 1。
混淆矩陣包含計算各類效果指標(包括精確率和召回率)所需的信息。
連續特徵 (continuous feature)
一種浮點特徵,可能值的區間不受限制。與離散特徵相對。
收斂 (convergence) 通俗來講,收斂一般是指在訓練期間達到的一種狀態,即通過必定次數的迭代以後,訓練損失和驗證損失在每次迭代中的變化都很是小或根本沒有變化。也就是說,若是採用當前數據進行額外的訓練將沒法改進模型,模型即達到收斂狀態。在深度學習中,損失值有時會在最終降低以前的屢次迭代中保持不變或幾乎保持不變,暫時造成收斂的假象。
另請參閱早停法。
凸函數 (convex function)
一種函數,函數圖像以上的區域爲凸集。典型凸函數的形狀相似於字母 U。例如,如下都是凸函數:
相反,如下函數則不是凸函數。請注意圖像上方的區域如何不是凸集:
嚴格凸函數只有一個局部最低點,該點也是全局最低點。經典的 U 形函數都是嚴格凸函數。不過,有些凸函數(例如直線)則不是這樣。
不少常見的損失函數(包括下列函數)都是凸函數:
· L2 損失函數
· 對數損失函數
· L1 正則化
· L2 正則化
梯度降低法的不少變體都必定能找到一個接近嚴格凸函數最小值的點。一樣,隨機梯度降低法的不少變體都有很高的可能性可以找到接近嚴格凸函數最小值的點(但並不是必定能找到)。
兩個凸函數的和(例如 L2 損失函數 + L1 正則化)也是凸函數。
深度模型毫不會是凸函數。值得注意的是,專門針對凸優化設計的算法每每總能在深度網絡上找到很是好的解決方案,雖然這些解決方案並不必定對應於全局最小值。
凸優化 (convex optimization)
使用數學方法(例如梯度降低法)尋找凸函數最小值的過程。機器學習方面的大量研究都是專一於如何經過公式將各類問題表示成凸優化問題,以及如何更高效地解決這些問題。
凸集 (convex set)
歐幾里得空間的一個子集,其中任意兩點之間的連線仍徹底落在該子集內。例如,下面的兩個圖形都是凸集:
相反,下面的兩個圖形都不是凸集:
卷積 (convolution)
簡單來講,卷積在數學中指兩個函數的組合。在機器學習中,卷積結合使用卷積過濾器和輸入矩陣來訓練權重。
機器學習中的「卷積」一詞一般是卷積運算或卷積層的簡稱。
若是沒有卷積,機器學習算法就須要學習大張量中每一個單元格各自的權重。例如,用 2K x 2K 圖像訓練的機器學習算法將被迫找出 400 萬個單獨的權重。而使用卷積,機器學習算法只需在卷積過濾器中找出每一個單元格的權重,大大減小了訓練模型所需的內存。在應用卷積過濾器後,它只需跨單元格進行復制,每一個單元格都會與過濾器相乘。
卷積過濾器 (convolutional filter)
卷積運算中的兩個參與方之一。(另外一個參與方是輸入矩陣切片。)卷積過濾器是一種矩陣,其等級與輸入矩陣相同,但形狀小一些。以 28×28 的輸入矩陣爲例,過濾器能夠是小於 28×28 的任何二維矩陣。
在圖形操做中,卷積過濾器中的全部單元格一般按照固定模式設置爲 1 和 0。在機器學習中,卷積過濾器一般先選擇隨機數字,而後由網絡訓練出理想值。
卷積層 (convolutional layer)
深度神經網絡的一個層,卷積過濾器會在其中傳遞輸入矩陣。如下面的 3x3 卷積過濾器爲例:
下面的動畫顯示了一個由 9 個卷積運算(涉及 5x5 輸入矩陣)組成的卷積層。每一個卷積運算都涉及一個不一樣的 3x3 輸入矩陣切片。由此產生的 3×3 矩陣(右側)就包含 9 個卷積運算的結果:
卷積神經網絡 (convolutional neural network)
一種神經網絡,其中至少有一層爲卷積層。典型的卷積神經網絡包含如下幾層的組合:
· 卷積層
· 池化層
· 密集層
卷積神經網絡在解決某些類型的問題(如圖像識別)上取得了巨大成功。
卷積運算 (convolutional operation) 以下所示的兩步數學運算:
1. 對卷積過濾器和輸入矩陣切片執行元素級乘法。(輸入矩陣切片與卷積過濾器具備相同的等級和大小。)
2. 對生成的積矩陣中的全部值求和。
如下面的 5x5 輸入矩陣爲例:
如今,如下面這個 2x2 卷積過濾器爲例:
每一個卷積運算都涉及一個 2x2 輸入矩陣切片。例如,假設咱們使用輸入矩陣左上角的 2x2 切片。這樣一來,對此切片進行卷積運算將以下所示:
卷積層由一系列卷積運算組成,每一個卷積運算都針對不一樣的輸入矩陣切片。
成本 (cost)
與損失的含義相同。
交叉熵 (cross-entropy)
對數損失函數向多類別分類問題的一種泛化。交叉熵能夠量化兩種機率分佈之間的差別。另請參閱困惑度。
D
數據分析 (data analysis)
根據樣本、測量結果和可視化內容來理解數據。數據分析在首次收到數據集、構建第一個模型以前特別有用。此外,數據分析在理解實驗和調試系統問題方面也相當重要。
DataFrame
一種熱門的數據類型,用於表示 Pandas 中的數據集。DataFrame 相似於表格。DataFrame 的每一列都有一個名稱(標題),每一行都由一個數字標識。
數據集 (data set)
一組樣本的集合。
Dataset API (tf.data)
一種高級別的 TensorFlow API,用於讀取數據並將其轉換爲機器學習算法所需的格式。tf.data.Dataset 對象表示一系列元素,其中每一個元素都包含一個或多個張量。tf.data.Iterator 對象可獲取 Dataset 中的元素。
決策邊界 (decision boundary)
在二元分類或多類別分類問題中,模型學到的類別之間的分界線。例如,在如下表示某個二元分類問題的圖片中,決策邊界是橙色類別和藍色類別之間的分界線:
密集層 (dense layer)
與全鏈接層的含義相同。
深度模型 (deep model)
一種包含多個隱藏層神經網絡。深度模型依賴於可訓練的非線性關係。與寬度模型相對。
密集特徵 (dense feature)
一種大部分值是非零值的特徵,一般是浮點值張量。與稀疏特徵相對。
設備 (device)
一類可運行 TensorFlow 會話的硬件,包括 CPU、GPU 和 TPU。
離散特徵 (discrete feature)
一種特徵,包含有限個可能值。例如,某個值只能是「動物」、「蔬菜」或「礦物」的特徵即是一個離散特徵(或分類特徵)。與連續特徵相對。
丟棄正則化 (dropout regularization)
正則化的一種形式,在訓練神經網絡方面很是有用。丟棄正則化的運做機制是,在一個梯度步長中移除從神經網絡層中隨機選擇的固定數量的單元。丟棄的單元越多,正則化效果就越強。這相似於訓練神經網絡以模擬較小網絡的指數級規模集成學習。
動態模型 (dynamic model)
一種以持續更新的方式在線接受訓練的模型。也就是說,數據會源源不斷地進入這種模型。
E
早停法 (early stopping)
一種正則化方法,是指在訓練損失仍能夠繼續下降以前結束模型訓練。使用早停法時,您會在驗證數據集的損失開始增大(也就是泛化效果變差)時結束模型訓練。
嵌套 (embeddings)
一種以連續值特徵表示的分類特徵。一般,嵌套是指將高維度向量映射到低維度的空間。例如,咱們能夠用如下兩種方式分別表示英文句子中的單詞:
· 表示成包含百萬個元素(高維度)的稀疏向量,其中全部元素都是整數。向量中的每一個單元格都表示一個單獨的英文單詞,單元格中的值表示相應單詞在句子中出現的次數。因爲單個英文句子包含的單詞不太可能超過 50 個,所以向量中幾乎每一個單元格都包含 0。少數非 0 的單元格中將包含一個很是小的整數(一般爲 1),該整數表示相應單詞在句子中出現的次數。
· 表示成包含數百個元素(低維度)的密集向量,其中每一個元素都存儲一個介於 0 到 1 之間的浮點值。這就是一種嵌套。
在 TensorFlow 中,會按反向傳播損失訓練嵌套,和訓練神經網絡中的任何其餘參數同樣。
經驗風險最小化 (ERM, empirical risk minimization)
用於選擇能夠將基於訓練集的損失降至最低的函數。與結構風險最小化相對。
集成學習 (ensemble)
多個模型的預測結果的並集。咱們能夠經過如下一項或多項來建立集成學習:
· 不一樣的初始化
· 不一樣的超參數
· 不一樣的總體結構
深度模型和寬度模型屬於一種集成學習。
週期 (epoch)
在訓練時,整個數據集的一次完整遍歷,以便不漏掉任何一個樣本。所以,一個週期表示(N/批次大小)次訓練迭代,其中 N 是樣本總數。
Estimator
tf.Estimator 類的一個實例,用於封裝負責構建 TensorFlow 圖並運行 TensorFlow 會話的邏輯。您能夠建立自定義 Estimator(如需相關介紹,請點擊此處),也能夠實例化其餘人預建立的 Estimator。
樣本 (example)
數據集的一行。一個樣本包含一個或多個特徵,此外還可能包含一個標籤。包括有標籤樣本和無標籤樣本。
F
假負例 (FN, false negative)
被模型錯誤地預測爲負類別的樣本。例如,模型推斷出某封電子郵件不是垃圾郵件(負類別),但該電子郵件實際上是垃圾郵件。
假正例 (FP, false positive)
被模型錯誤地預測爲正類別的樣本。例如,模型推斷出某封電子郵件是垃圾郵件(正類別),但該電子郵件其實不是垃圾郵件。
假正例率(false positive rate, 簡稱 FP 率) ROC 曲線中的 x 軸。FP 率的定義以下:
特徵 (feature)
在進行預測時使用的輸入變量。
特徵列 (tf.feature_column)
指定模型應該如何解讀特定特徵的一種函數。此類函數的輸出結果是全部 Estimators 構造函數的必需參數。
藉助 tf.feature_column 函數,模型可對輸入特徵的不一樣表示法輕鬆進行實驗。
「特徵列」是 Google 專用的術語。特徵列在 Yahoo/Microsoft 使用的 VW 系統中稱爲「命名空間」(namespace),也稱爲場(field)。
特徵組合 (feature cross)
經過將單獨的特徵進行組合(求笛卡爾積)而造成的合成特徵。特徵組合有助於表達非線性關係。
特徵工程 (feature engineering)
指如下過程:肯定哪些特徵可能在訓練模型方面很是有用,而後將日誌文件及其餘來源的原始數據轉換爲所需的特徵。在 TensorFlow 中,特徵工程一般是指將原始日誌文件輸入到 tf.Example 協議緩衝中。特徵工程有時稱爲特徵提取。
特徵集 (feature set)
訓練機器學習模型時採用的一組特徵。例如,對於某個用於預測房價的模型,郵政編碼、房屋面積以及房屋情況能夠組成一個簡單的特徵集。
特徵規範 (feature spec)
用於描述如何從 tf.Example 協議緩衝中提取特徵數據。因爲 tf.Example 協議緩衝中只是一個數據容器,所以咱們必須指定如下內容:
· 要提取的數據(即特徵的關鍵信息)
· 數據類型(例如 浮點或 整數)
· 長度(固定或可變)
Estimator API 提供了一些可用來根據給定 FeatureColumns 列表生成特徵規範的工具。
少許樣本學習 (few-shot learning)
一種機器學習方法(一般用於對象分類),旨在僅經過少許訓練樣本學習有效的分類器。
全鏈接層 (fully connected layer)
一種隱藏層,其中的每一個節點均與下一個隱藏層中的每一個節點相連,又稱爲密集層。
G
泛化 (generalization)
指的是模型依據訓練時採用的數據,針對之前未見過的新數據作出正確預測的能力。
廣義線性模型 (generalized linear model)
最小二乘迴歸模型(基於高斯噪聲)向其餘類型的模型(基於其餘類型的噪聲,例如泊松噪聲或分類噪聲)進行的一種泛化。廣義線性模型的示例包括:
· 邏輯迴歸
· 多類別迴歸
· 最小二乘迴歸
能夠經過凸優化找到廣義線性模型的參數。
廣義線性模型具備如下特性:
· 最優的最小二乘迴歸模型的平均預測結果等於訓練數據的平均標籤。
· 最優的邏輯迴歸模型預測的平均機率等於訓練數據的平均標籤。
廣義線性模型的功能受其特徵的限制。與深度模型不一樣,廣義線性模型沒法「學習新特徵」。
梯度 (gradient)
偏導數相對於全部自變量的向量。在機器學習中,梯度是模型函數偏導數的向量。梯度指向最高速上升的方向。
梯度裁剪 (gradient clipping)
在應用梯度值以前先設置其上限。梯度裁剪有助於確保數值穩定性以及防止梯度爆炸。
梯度降低法 (gradient descent)
一種經過計算而且減少梯度將損失降至最低的技術,它以訓練數據爲條件,來計算損失相對於模型參數的梯度。通俗來講,梯度降低法以迭代方式調整參數,逐漸找到權重和誤差的最佳組合,從而將損失降至最低。
圖 (graph)
TensorFlow 中的一種計算規範。圖中的節點表示操做。邊緣具備方向,表示將某項操做的結果(一個張量)做爲一個操做數傳遞給另外一項操做。可使用 TensorBoard 直觀呈現圖。
如欲申請產品試用,歡迎添加先薦小助手微信號(ID:recsysfc)。
本帳號爲第四範式智能推薦產品先薦的官方帳號。帳號立足於計算機領域,特別是人工智能相關的前沿研究,旨在把更多與人工智能相關的知識分享給公衆,從專業的角度促進公衆對人工智能的理解;同時也但願爲人工智能相關人員提供一個討論、交流、學習的開放平臺,從而早日讓每一個人都享受到人工智能創造的價值。