谷歌開發者曾經整理了機器學習常見的一些術語與概念。爲了便於你們學習,先薦將這些術語與基本概念編譯、整理,分兩篇文章分享給你們,如下是從A到Z的基本術語與概念。算法
H數組
啓發式(heuristic)服務器
一個問題的實際的和非最優的解,但能從學習經驗中得到足夠多的進步。微信
隱藏層(hidden layer)網絡
神經網絡中位於輸入層(即特徵)和輸出層(即預測)之間的合成層。一個神經網絡包含一個或多個隱藏層。session
合頁損失函數(Hinge loss)數據結構
損失函數的一個類型,用於分類模型以尋找距離每一個樣本儘量遠的決策邊界,即最大化樣本和邊界之間的邊緣。KSVMs 使用 hinge 損失函數(或相關的函數,好比平方 hinge 函數)。在二元分類中,hinge 損失函數按如下方式定義:架構
其中 y'是分類器模型的列輸出:app
y 是真實的標籤,-1 或+1。框架
所以,hinge 損失將是下圖所示的樣子:
測試數據(holdout data)
有意不用於訓練的樣本。驗證數據集(validation data set)和測試數據集(test data set)是測試數據(holdout data)的兩個例子。測試數據幫助評估模型泛化到除了訓練數據以外的數據的能力。測試集的損失比訓練集的損失提供了對未知數據集的損失更好的估計。
超參數(hyperparameter)
連續訓練模型的過程當中能夠擰動的「旋鈕」。例如,相對於模型自動更新的參數,學習率(learning rate)是一個超參數。和參量對照。
I
獨立同等分佈(independently and identically distributed,i.i.d)
從不會改變的分佈中獲取的數據,且獲取的每一個值不依賴於以前獲取的值。i.i.d. 是機器學習的理想狀況——一種有用但在現實世界中幾乎找不到的數學構建。例如,網頁訪客的分佈多是短暫時間窗口上的 i.i.d;即分佈不會在該時間窗口發生改變,每一個人的訪問都與其餘人的訪問獨立。可是,若是你擴展了時間窗口,則會出現網頁訪客的季節性差別。
推斷(inference)
在機器學習中,一般指將訓練模型應用到無標註樣原本進行預測的過程。在統計學中,推斷指在觀察到的數據的基礎上擬合分佈參數的過程。
輸入函數 (input function)
在 TensorFlow 中,用於將輸入數據返回到 Estimator 的訓練、評估或預測方法的函數。例如,訓練輸入函數會返回訓練集中的一批特徵和標籤。
輸入層(input layer)
神經網絡的第一層(接收輸入數據)。
可解釋性 (interpretability)
模型的預測可解釋的難易程度。深度模型一般不可解釋,也就是說,很難對深度模型的不一樣層進行解釋。相比之下,線性迴歸模型和寬度模型的可解釋性一般要好得多。
評分者間一致性(inter-rater agreement)
用來衡量一項任務中評分者意見一致的指標。若是意見不一致,則可能須要改進任務說明。有時也叫標註者間信度(inter-annotator agreement)或評分者間信度(inter-rater reliability)。
迭代 (iteration)
模型的權重在訓練期間的一次更新。迭代包含計算參數在單批次數據上的梯度損失。
K
Kernel 支持向量機(Kernel Support Vector Machines/KSVM)
一種分類算法,旨在經過將輸入數據向量映射到更高維度的空間使正類和負類之間的邊際最大化。例如,考慮一個輸入數據集包含一百個特徵的分類問題。爲了使正類和負類之間的間隔最大化,KSVM 從內部將特徵映射到百萬維度的空間。KSVM 使用的損失函數叫做 hinge 損失。
L
L1 損失函數(L1 loss)
損失函數基於模型對標籤的預測值和真實值的差的絕對值而定義。L1 損失函數比起 L2 損失函數對異常值的敏感度更小。
L1 正則化(L1 regularization)
一種正則化,按照權重絕對值總和的比例進行懲罰。在依賴稀疏特徵的模型中,L1 正則化幫助促使(幾乎)不相關的特徵的權重趨近於 0,從而從模型中移除這些特徵。
L2 損失(L2 loss)
參見平方損失。
L2 正則化(L2 regularization)
一種正則化,按照權重平方的總和的比例進行懲罰。L2 正則化幫助促使異常值權重更接近 0 而不趨近於 0。(可與 L1 正則化對照閱讀。)L2 正則化一般改善線性模型的泛化效果。
標籤(label)
在監督式學習中,樣本的「答案」或「結果」。標註數據集中的每一個樣本包含一或多個特徵及一個標籤。好比,在房屋數據集中,特徵可能包括臥室數量、衛生間數量、房齡,而標籤可能就是房子的價格。在垃圾郵件檢測數據集中,特徵可能包括主題、發出者何郵件自己,而標籤多是「垃圾郵件」或「非垃圾郵件」。
標註樣本(labeled example)
包含特徵和標籤的樣本。在監督式訓練中,模型從標註樣本中進行學習。
lambda
正則化率的同義詞。(該術語有多種含義。這裏,咱們主要關注正則化中的定義。)
層(layer)
神經網絡中的神經元序列,能夠處理輸入特徵序列或神經元的輸出。
它也是 TensorFlow 的一種抽象化概念。層是將張量和配置選項做爲輸入、輸出其餘張量的 Python 函數。一旦必要的張量出現,用戶就能夠經過模型函數將結果轉換成估計器。
學習速率(learning rate)
經過梯度降低訓練模型時使用的一個標量。每次迭代中,梯度降低算法使學習率乘以梯度,乘積叫做 gradient step。
學習速率是一個重要的超參數。
最小二乘迴歸(least squares regression)
經過 L2 損失最小化進行訓練的線性迴歸模型。
線性迴歸(linear regression)
對輸入特徵的線性鏈接輸出連續值的一種迴歸模型。
logistic 迴歸(logistic regression)
將 sigmoid 函數應用於線性預測,在分類問題中爲每一個可能的離散標籤值生成機率的模型。儘管 logistic 迴歸經常使用於二元分類問題,但它也用於多類別分類問題(這種狀況下,logistic 迴歸叫做「多類別 logistic 迴歸」或「多項式 迴歸」。
對數損失函數(Log Loss)
二元 logistic 迴歸模型中使用的損失函數。
損失(Loss)
度量模型預測與標籤距離的指標,它是度量一個模型有多糟糕的指標。爲了肯定損失值,模型必須定義損失函數。例如,線性迴歸模型一般使用均方差做爲損失函數,而 logistic 迴歸模型使用對數損失函數。
M
機器學習(machine learning)
利用輸入數據構建(訓練)預測模型的項目或系統。該系統使用學習的模型對與訓練數據相同分佈的新數據進行有用的預測。機器學習還指與這些項目或系統相關的研究領域。
均方偏差(Mean Squared Error/MSE)
每一個樣本的平均平方損失。MSE 能夠經過平方損失除以樣本數量來計算。TensorFlow Playground 展現「訓練損失」和「測試損失」的值是 MSE。
小批量(mini-batch)
在訓練或推斷的一個迭代中運行的整批樣本的一個小的隨機選擇的子集。小批量的大小一般在 10 到 1000 之間。在小批量數據上計算損失比在所有訓練數據上計算損失要高效的多。
小批量隨機梯度降低(mini-batch stochastic gradient descent)
使用小批量的梯度降低算法。也就是,小批量隨機梯度降低基於訓練數據的子集對 梯度進行評估。Vanilla SGD 使用 size 爲 1 的小批量。
模型(model)
機器學習系統從訓練數據中所學內容的表示。該術語有多個含義,包括如下兩個相關含義:
模型訓練(model training)
肯定最佳模型的過程。
動量(Momentum)
一種複雜的梯度降低算法,其中的學習步不僅依賴於當前步的導數,還依賴於先於它的步。動量包括隨着時間計算梯度的指數加權移動平均數,相似於物理學中的動量。動量有時能夠阻止學習陷於局部最小值。
多類別(multi-class)
在多於兩類的類別中進行分類的分類問題。例如,有約 128 種楓樹,那麼分類楓樹品種的模型就是多類別的。反之,把電子郵件分紅兩個類別(垃圾郵件和非垃圾郵件)的模型是二元分類器模型。
N
NaN trap
訓練過程當中,若是模型中的一個數字變成了 NaN,則模型中的不少或全部其餘數字最終都變成 NaN。NaN 是「Not a Number」的縮寫。
負類(negative class)
在二元分類中,一個類別是正類,另一個是負類。正類就是咱們要找的目標,負類是另一種可能性。例如,醫療測試中的負類多是「非腫瘤」,電子郵件分類器中的負類多是「非垃圾郵件」。
神經網絡(neural network)
該模型從大腦中獲取靈感,由多個層組成(其中至少有一個是隱藏層),每一個層包含簡單的鏈接單元或神經元,其後是非線性。
神經元(neuron)
神經網絡中的節點,一般輸入多個值,生成一個輸出值。神經元經過將激活函數(非線性轉換)應用到輸入值的加權和來計算輸出值。
歸一化(normalization)
將值的實際區間轉化爲標準區間的過程,標準區間一般是-1 到+1 或 0 到 1。例如,假設某個特徵的天然區間是 800 到 6000。經過減法和分割,你能夠把那些值標準化到區間-1 到+1。參見縮放。
numpy
Python 中提供高效數組運算的開源數學庫。pandas 基於 numpy 構建。
O
目標(objective)
算法嘗試優化的目標函數。
離線推斷(offline inference)
生成一組預測並存儲,而後按需檢索那些預測。可與在線推斷對照閱讀。
one-hot 編碼(one-hot encoding)
一個稀疏向量,其中:
獨熱編碼經常使用於表示有有限可能值集合的字符串或標識符。例如,假設一個記錄了 15000 個不一樣品種的植物數據集,每個用獨特的字符串標識符來表示。做爲特徵工程的一部分,你可能將那些字符串標識符進行獨熱編碼,每一個向量的大小爲 15000。
一對多(one-vs.-all)
給出一個有 N 個可能解決方案的分類問題,一對多解決方案包括 N 個獨立的二元分類器——每一個可能的結果都有一個二元分類器。例如,一個模型將樣本分爲動物、蔬菜或礦物,則一對多的解決方案將提供如下三種獨立的二元分類器:
在線推斷(online inference)
按需生成預測。可與離線推斷對照閱讀。
運算(Operation/op)
TensorFlow 圖中的一個節點。在 TensorFlow 中,任何建立、控制或損壞張量的步驟都是運算。例如,矩陣乘法是一個把兩個張量做爲輸入、生成一個張量做爲輸出的運算。
優化器(optimizer)
梯度降低算法的特定實現。TensorFlow 的基類優化器是 tf.train.Optimizer。不一樣的優化器(tf.train.Optimizer 的子類)對應不一樣的概念,如:
咱們還能夠想象 NN-driven optimizer。
異常值(outlier)
與大多數值差異很大的值。在機器學習中,下列都是異常值:
異常值每每使模型訓練中出現問題。
輸出層(output layer)
神經網絡的「最後」一層。這一層包含整個·模型所尋求的答案。
過擬合(overfitting)
建立的模型與訓練數據很是匹配,以致於模型沒法對新數據進行正確的預測。
P
pandas
一種基於列的數據分析 API。不少機器學習框架,包括 TensorFlow,支持 pandas 數據結構做爲輸入。參見 pandas 文檔。
參數(parameter)
機器學習系統自行訓練的模型的變量。例如,權重是參數,它的值是機器學習系統經過連續的訓練迭代逐漸學習到的。可與超參數對照閱讀。
參數服務器(Parameter Server/PS)
用於在分佈式設置中跟蹤模型參數。
參數更新(parameter update)
在訓練過程當中調整模型參數的操做,一般在梯度降低的單個迭代中進行。
偏導數(partial derivative)
一個多變量函數的偏導數是它關於其中一個變量的導數,而保持其餘變量恆定。例如,f(x, y) 對於 x 的偏導數就是 f(x) 的導數,y 保持恆定。x 的偏導數中只有 x 是變化的,公式中其餘的變量都不用變化。
分區策略(partitioning strategy)
在多個參數服務器中分割變量的算法。
性能(performance)
具備多種含義:
困惑度(perplexity)
對模型完成任務的程度的一種度量指標。例如,假設你的任務是閱讀用戶在智能手機上輸入的單詞的頭幾個字母,並提供可能的完整單詞列表。該任務的困惑度(perplexity,P)是爲了列出包含用戶實際想輸入單詞的列表你須要進行的猜想數量。
困惑度和交叉熵的關係以下:
流程(pipeline)
機器學習算法的基礎架構。管道包括收集數據、將數據放入訓練數據文件中、訓練一或多個模型,以及最終輸出模型。
正類(positive class)
在二元分類中,有兩種類別:正類和負類。正類是咱們測試的目標。(不過必須認可,咱們同時測試兩種結果,但其中一種不是重點。)例如,醫療測試中正類多是「腫瘤」,電子郵件分類器中的正類多是「垃圾郵件」。可與負類對照閱讀。
精度(precision)
分類模型的一種指標。準確率指模型預測正類時預測正確的頻率。即:
預測(prediction)
模型在輸入樣本後的輸出結果。
預測誤差(prediction bias)
揭示預測的平均值與數據集中標籤的平均值的差距。
預製評估器(pre-made Estimator)
已經構建好的評估器。TensorFlow 提供多個預製評估器,包括 DNNClassifier、DNNRegressor 和 LinearClassifier。咱們能夠根據指導(www.tensorflow.org/extend/esti…)構建本身的預製評估器。
預訓練模型(pre-trained model)
已經訓練好的模型或模型組件(如嵌入)。有時,咱們將預訓練嵌入饋送至神經網絡。其餘時候,咱們的模型自行訓練嵌入,而不是依賴於預訓練嵌入。
先驗信念(prior belief)
訓練開始以前咱們對數據的信念。例如,L2 正則化依賴於權重值很小且正常分佈在 0 周圍的信念。
Q
隊列(queue)
實現隊列數據結構的 TensorFlow 操做。一般在輸入/輸出(I/O)中使用。
R
秩(rank)
機器學習領域中包含多種含義的術語:
評分者(rater)
爲樣本提供標籤的人,有時也叫「標註者」。
召回率(recall)
分類模型的一個指標,能夠回答這個問題:模型可以準確識別多少正標籤?即:
修正線性單元(Rectified Linear Unit/ReLU)
一種具有如下規則的激活函數:
迴歸模型(regression model)
一種輸出持續值(一般是浮點數)的模型。而分類模型輸出的是離散值,如「day lily」或「tiger lily」。
正則化(regularization)
對模型複雜度的懲罰。正則化幫助防止過擬合。正則化包括不一樣種類:
正則化率(regularization rate)
一種標量級,用 lambda 來表示,指正則函數的相對重要性。從下面這個簡化的損失公式能夠看出正則化率的做用:
提升正則化率可以下降過擬合,但可能會使模型準確率下降。
表徵
將數據映射到有用特徵的過程。
受試者工做特徵曲線(receiver operating characteristic/ROC Curve)
反映在不一樣的分類閾值上,真正類率和假正類率的比值的曲線。參見 AUC。
根目錄(root directory)
指定放置 TensorFlow 檢查點文件子目錄和多個模型的事件文件的目錄。
均方根偏差(Root Mean Squared Error/RMSE)
均方偏差的平方根。
S
Saver
負責存儲模型檢查點文件的 TensorFlow 對象。
縮放(scaling)
特徵工程中經常使用的操做,用於控制特徵值區間,使之與數據集中其餘特徵的區間匹配。例如,假設你想使數據集中全部的浮點特徵的區間爲 0 到 1。給定一個特徵區間是 0 到 500,那麼你能夠經過將每一個值除以 500,縮放特徵值區間。還可參見正則化。
scikit-learn
一種流行的開源機器學習平臺。網址:www.scikit-learn.org
序列模型(sequence model)
輸入具備序列依賴性的模型。例如,根據以前觀看過的視頻序列對下一個視頻進行預測。
會話(session)
保持 TensorFlow 程序的狀態(如變量)。
Sigmoid 函數(sigmoid function)
把 logistic 或多項式迴歸輸出(對數概率)映射到機率的函數,返回的值在 0 到 1 之間。sigmoid 函數的公式以下:
其中σ在 logistic 迴歸問題中只是簡單的:
在有些神經網絡中,sigmoid 函數和激活函數同樣。
softmax
爲多類別分類模型中每一個可能的類提供機率的函數。機率加起來的總和是 1.0。例如,softmax 可能檢測到某個圖像是一隻狗的機率爲 0.9,是一隻貓的機率爲 0.08,是一匹馬的機率爲 0.02。(也叫做 full softmax)。
稀疏特徵(sparse feature)
值主要爲 0 或空的特徵向量。好比,一個向量的值有 1 個 1,、一百萬個 0,則該向量爲稀疏向量。再好比,搜索查詢中的單詞也是稀疏向量:在一種語言中有不少能夠用的單詞,但給定的查詢中只用了其中的一些。
可與稠密特徵對照閱讀。
平方損失(squared loss)
線性迴歸中使用的損失函數(也叫做 L2 Loss)。該函數計算模型對標註樣本的預測值和標籤真正值之間差的平方。在平方以後,該損失函數擴大了不良預測的影響。即,平方損失比 L1 Loss 對異常值(outlier)的反應更增強烈。
靜態模型(static model)
離線訓練的模型。
穩態(stationarity)
數據集中的一種數據屬性,數據分佈在一或多個維度中保持不變。一般狀況下,維度是時間,意味着具有平穩性的數據不會隨着時間發生變化。好比,具有平穩性的數據從 9 月到 12 月不會改變。
步(step)
一個批量中的前向和後向評估。
步長(step size)
學習速率(learning rate)乘以偏導數的值,即梯度降低中的步長。
隨機梯度降低(stochastic gradient descent/SGD)
批量大小爲 1 的梯度降低算法。也就是說,SGD 依賴於從數據集中隨機均勻選擇出的一個樣本,以評估每一步的梯度。
結構風險最小化(structural risk minimization/SRM)
這種算法平衡兩個目標:
好比,在訓練集上的損失最小化 + 正則化的模型函數就是結構風險最小化算法。更多信息,參見 www.svms.org/srm/。可與經驗風險最小化對照閱讀。
摘要(summary)
在 TensorFlow 中,特定步計算的值或值的集合,一般用於跟蹤訓練過程當中的模型指標。
監督式機器學習(supervised machine learning)
利用輸入數據及其對應標籤來訓練模型。監督式機器學習相似學生經過研究問題和對應答案進行學習。在掌握問題和答案之間的映射以後,學生就能夠提供一樣主題的新問題的答案了。可與非監督機器學習對照閱讀。
合成特徵(synthetic feature)
不在輸入特徵中,而是從一個或多個輸入特徵中派生出的特徵。合成特徵的類型包括:
由歸一化或縮放單首創建的特徵不是合成特徵。
T
張量(tensor)
TensorFlow 項目的主要數據結構。張量是 N 維數據結構(N 的值很大),常常是標量、向量或矩陣。張量能夠包括整數、浮點或字符串值。
張量處理單元(Tensor Processing Unit,TPU)
優化 TensorFlow 性能的 ASIC(application-specific integrated circuit,專用集成電路)。
張量形狀(Tensor shape)
張量的元素數量包含在不一樣維度中。好比,[5, 10] 張量在一個維度中形狀爲 5,在另外一個維度中形狀爲 10。
張量大小(Tensor size)
張量包含的標量總數。好比,[5, 10] 張量的大小就是 50。
TensorBoard
展現一個或多個 TensorFlow 項目運行過程當中保存的摘要數據的控制面板。
TensorFlow
大型分佈式機器學習平臺。該術語還指 TensorFlow 堆棧中的基礎 API 層,支持數據流圖上的通用計算。
儘管 TensorFlow 主要用於機器學習,可是它也適用於要求使用數據流圖進行數值運算的非機器學習任務。
TensorFlow Playground
一個能夠看到不一樣超參數對模型(主要是神經網絡)訓練的影響的平臺。前往 playground.tensorflow.org,使用 TensorFlow Playground。
TensorFlow Serving
幫助訓練模型使之可部署到產品中的平臺。
測試集(test set)
數據集的子集。模型通過驗證集初步測試以後,使用測試集對模型進行測試。可與訓練集和驗證集對照閱讀。
tf.Example
一種標準 protocol buffer,用於描述機器學習模型訓練或推斷的輸入數據。
訓練(training)
肯定組成模型的完美參數的流程。
訓練集(training set)
數據集子集,用於訓練模型。可與驗證集和測試集對照閱讀。
真負類(true negative,TN)
被模型正確地預測爲負類的樣本。例如,模型推斷某封電子郵件不是垃圾郵件,而後該電郵真的不是垃圾郵件。
真正類(true positive,TP)
被模型正確地預測爲正類的樣本。例如,模型推斷某封電子郵件是垃圾郵件,結果該電郵真的是垃圾郵件。
真正類率(true positive rate,TP rate)
召回率(recall)的同義詞。即:
TruePositiveRate=TruePositives/(TruePositives+FalseNegatives)
真正類率是 ROC 曲線的 y 軸。
U
無標籤樣本(unlabeled example)
包含特徵但沒有標籤的樣本。無標籤樣本是推斷的輸入。在半監督學習和無監督學習的訓練過程當中,一般使用無標籤樣本。
無監督機器學習(unsupervised machine learning)
訓練一個模型尋找數據集(一般是無標籤數據集)中的模式。
無監督機器學習最經常使用於將數據分紅幾組相似的樣本。例如,無監督機器學習算法能夠根據音樂的各類屬性聚類數據。用這種方式收集的數據能夠做爲其餘機器學習算法(如音樂推薦服務)的輸入。聚類在難以獲取真正標籤的情景中很是有用。例如,在反欺詐和反濫用的情景中,聚類能夠幫助人類更好地理解數據。
無監督機器學習的另外一個例子是主成分分析(principal component analysis,PCA)。如,將 PCA 應用於包含數百萬購物車內容的數據集中時,就有可能發現有檸檬的購物車每每也有解酸劑。可與監督式機器學習對照閱讀。
V
驗證集(validation set)
數據集的一個子集(與訓練集不一樣),可用於調整超參數。可與訓練集和測試集對照閱讀。
W
權重(weight)
線性模型中的特徵係數,或者深度網絡中的邊緣。線性模型的訓練目標是爲每一個特徵肯定一個完美的權重。若是權重爲 0,則對應的特徵對模型而言是無用的。
寬度模型(wide model)
線性模型一般具有不少稀疏輸入特徵。咱們稱之爲「寬度」模型,因其具備大量與輸出節點直接鏈接的輸入,是一種特殊類型的神經網絡。寬模型一般比深度模型更容易調試(debug)和檢查。儘管寬模型沒法經過隱藏層表達非線性,但它們可使用特徵交叉和 bucketization 等轉換用不一樣方式對非線性建模。與深度模型相對。
如欲申請產品試用,歡迎添加先薦小助手微信號(ID:recsysfc)。
本帳號爲第四範式智能推薦產品先薦的官方帳號。帳號立足於計算機領域,特別是人工智能相關的前沿研究,旨在把更多與人工智能相關的知識分享給公衆,從專業的角度促進公衆對人工智能的理解;同時也但願爲人工智能相關人員提供一個討論、交流、學習的開放平臺,從而早日讓每一個人都享受到人工智能創造的價值。