Introduction
CNTK 包含了一些常見深度學習架構的實作,例如卷積神經網路(Convolutional Neural Networks, CNN)、遞歸神經網路(Recurrent Neural Networks, RNN)和長期短期記憶(Long Short-Term Memory, LSTM)。
當然也支持深度學習中的基礎架構,例如隨機梯度下降(Stochastic gradient descentSGD)和反向傳播(backpropagation)和平行處理。
CNTK 架構
Tensor
Tensor又稱張量。
是用來表示輸入、輸出和參數等的一種資料結構,是指三維以上的陣列,例如(640,480,3)是一個tensor的表示。
例如使用 tensor 來表示影像:
Numpy
Numpy是 Python 的一個模組,多用於資料處理,用以操作多維陣列。
Numpy 支援平行處理,操作大量陣列資料時,效能表現比 Phthon 的基礎資料結構快速。
而幾乎所有 Python 相關的資料科學模組,都使用 Numpy 操作陣列,例如 Pandas、SciPy、Scikit-learn。
Tasks
機器學習演算步驟:
1.資料讀取(Data reading):準備訓練資料集。
一般來說需要將樣本分成三部分:
訓練資料集(train set):用來估計模型
驗證資料集(validation set):用來控制模型複雜程度的參數
測試資料集(test set):用來檢驗最終選擇模型的性能
2.資料處理(Data preprocessing):訓練所需要的資料必須進行標準化。
又稱資料預先處理,此步驟雖可省略,但會對後續演算有相當大的影響。
3.建立模型(Model creation):引入一個基本的線性模型。
4.訓練模型(Learning the model):使用隨機梯度下降算法(SGD)或其他演算法架構。
5.評估模型(Evaluation):使用前述的測試資料集評估模型性能
Tesor Sequence
Tesor Sequence
遞歸神經網路(Recurrent Neural Networks, RNN)和長期短期記憶(Long Short-Term Memory, LSTM)。
當然也支持深度學習中的基礎架構,例如隨機梯度下降(Stochastic gradient descentSGD)和反向傳播(backpropagation)和平行處理。
遞歸神經網路(Recurrent Neural Networks, RNN),是一種遞迴學習先前一個階層(Layer)的輸出特徵(feature),歸化成一個固定維度的資料結構,他比起傳統神經網路更強大。
長期短期記憶(Long Short-Term Memory, LSTM),是 RNN 的一種 ,通過輸入值和狀態值,得到輸出值和新狀態值的可微分的函數。
Softmax,簡單來說是將多維的陣列,轉化為較低的維度陣列,例如轉化為一維陣列來表示。
轉化為較低的陣列常應用在某些場景,需要表示把資料更抽象化,以便更能辨識其特徵值的情況。
References
LSTM 模型常用於機器學習,語意分析中的斷詞,這裡補充一些常見的詞彙做為參考。
詞嵌入(word embeddings),是在自然語言處理(Natural Language Processing, NPL)中,每個單詞給定一個表示向量,也就是用一個低階的張量表示一個詞。
語料庫,集合大量單詞的成熟資料庫。