Accord.NET Framework是在AForge.NET基礎上封裝和進一步開發來的。功能也很強大,因為AForge.NET更注重與一些底層和廣度,而Accord.NET Framework更注重與機器學習這個專業,在其基礎上提供了更多統計分析和處理函式,包括影像處理和計算機視覺演算法,所以側重點不同,但都非常有用。 官方網站:http://accord-framework.net/
在專案中斷2年時間之後,作者cesarsouza 在2020年5月1日更新了專案狀態, 他在歐洲完成博士,雖然他的工作中主要使用Python完成他的工作,但是他喜歡C#/.NET,一直在考慮Accprd.NET的發展問題,5月15日重新設定了4.0 版本的路線圖https://github.com/accord-net/framework/issues/2123, 其中他寫道:“我看到這個專案仍然被認為對許多人有用,我不認為讓專案消亡符合任何人的利益。我最初認為這個專案將由ML.NET取代,但事實並非如此。我們可以轉換框架,轉而與它合作。”
我們在ML.NET的最初宣佈文章中有Accord.NET的影子:
CNTK 已經死了,目前只有 Tensoflow.NET在蓬勃發展,發展的情況很不錯,隨著Accord.NET的加入,這個生態又重新啟用,期待大家一起加入,推動.NET機器學習生態的發展。
(一)框架的三大功能模組
Accord.NET框架主要有三個大的功能性模組。
- 分別為科學技術,
- 訊號與影像處理,
- 支援元件。
下面將對3個模型的名稱空間和功能進行簡單介紹。可以讓大家更快的接觸和了解其功能是否是自己想要的,下面是主要的名稱空間介紹。
(二) 科學計算
Accord.Math:包括矩陣擴充套件程式,以及一組矩陣數值計算和分解的方法,也包括一些約束和非約束問題的數值優化演算法,還有一些特殊函式以及其他一些輔助工具。
Accord.Statistics:包含概率分佈、假設檢驗、線性和邏輯迴歸等統計模型和方法,隱馬爾科夫模型,(隱藏)條件隨機域、主成分分析、偏最小二乘判別分析、核心方法和許多其他相關的技術。
Accord.MachineLearning: 為機器學習應用程式提供包括支援向量機,決策樹,樸素貝葉斯模型,k-means聚類演算法,高斯混合模型和通用演算法如Ransac,交叉驗證和網格搜尋等演算法。
Accord.Neuro:包括大量的神經網路學習演算法,如Levenberg-Marquardt,Parallel Resilient Backpropagation,Nguyen-Widrow初始化演算法,深層的信念網路和許多其他神經網路相關的演算法。具體看參考幫助文件。
(三)訊號與影像處理
Accord.Imaging:包含特徵點探測器(如Harris, SURF, FAST and FREAK),影像過濾器、影像匹配和影像拼接方法,還有一些特徵提取器。
Accord.Audio:包含一些機器學習和統計應用程式說需要的處理、轉換過濾器以及處理音訊訊號的方法。
Accord.Vision:實時人臉檢測和跟蹤,以及對人流影像中的一般的檢測、跟蹤和轉換方法,還有動態模板匹配追蹤器。
(四) 支援元件
主要是為上述一些元件提供資料顯示,繪圖的控制元件,分為以下幾個名稱空間:
Accord.Controls:包括科學計算應用程式常見的柱狀圖、散點圖和表格資料瀏覽。
Accord.Controls.Imaging:包括用來顯示和處理的影像的WinForm控制元件,包含一個方便快速顯示影像的對話方塊。
Accord.Controls.Audio:顯示波形和音訊相關性資訊的WinForm控制元件。
Accord.Controls.Vision:包括跟蹤頭部,臉部和手部運動以及其他計算機視覺相關的任務WinForm控制元件。
(五) 支援的演算法介紹
下面將Accord.NET框架包括的主要功能演算法按照類別進行介紹。來源主要是官網介紹,進行了簡單的翻譯和整理。
1、分類(Classification)
SVM(支援向量機,類SupportVectorMachine、類KernelSupportVectorMachine、類SequentialMinimalOptimization—序列最小優化演算法)、
K-NN鄰近演算法(類KNearestNeighbors);
Logistic Regression(邏輯迴歸)、
Decision Trees(決策樹,類DecisionTree、ID3Learning、C45Learning)、
Neural Networks(神經網路)、
Deep Learning(深度學習)
(Deep Neural Networks深層神經網路)、
Levenberg-Marquardt with Bayesian Regularization、
Restricted Boltzmann Machines(限制玻耳茲曼機)、
Sequence classification (序列分類),
Hidden Markov Classifiers and Hidden Conditional Random Fields(隱馬爾科夫分類器和隱藏條件隨機域)。
2、迴歸(Regression)
Multiple linear regression(多元線性迴歸-單因變數多自變數)、
SimpleLinearRegression(線性迴歸,類SimpleLinearRegression)、
Multivariate linear regression(多元線性迴歸-多因變數多自變數)、polynomial regression (多項式迴歸)、logarithmic regression(對數迴歸)、Logistic regression(邏輯迴歸)、multinomial logistic regression(多項式邏輯迴歸)(softmax) and generalized linear models(廣義線性模型)、L2-regularized L2-loss logistic regression , L2-regularized logistic regression , L1-regularized logistic regression , L2-regularized logistic regression in the dual form and regression support vector machines。
3、聚類(Clustering)
K-Means、K-Modes、Mean-Shift(均值漂移)、Gaussian Mixture Models(高斯混合模型)、Binary Split(二元分裂)、Deep Belief Networks(深層的信念網路)、 Restricted Boltzmann Machines(限制玻耳茲曼機)。聚類演算法可以應用於任意資料,包括影像、資料表、視訊和音訊。
4、概率分佈(Distributions)
包括40多個分佈的引數和非引數估計。包括一些常見的分佈如正態分佈、柯西分佈、超幾何分佈、泊松分佈、伯努利;也包括一些特殊的分佈如Kolmogorov-Smirnov , Nakagami、Weibull、and Von-Mises distributions。也包括多元分佈如多元正態分佈、Multinomial 、Independent 、Joint and Mixture distributions。
5、假設檢驗(Hypothesis Tests)
超過35統計假設測試,包括單向和雙向方差分析測試、非引數測試如Kolmogorov-Smirnov測試和媒體中的訊號測試。contingency table tests such as the Kappa test,with variations for multiple tables , as well as the Bhapkar and Bowker tests; and the more traditional Chi-Square , Z , F , T and Wald tests .
6、核方法(Kernel Methods)
核心支援向量機,多類和多標籤向量機、序列最小優化、最小二乘學習、概率學習。Including special methods for linear machines such as LIBLINEAR's methods for Linear Coordinate Descent , Linear Newton Method , Probabilistic Coordinate Descent , Probabilistic Coordinate Descent in the Dual , Probabilistic Newton Method for L1 and L2 machines in both the dual and primal formulations .
7、影像(Imaging)
興趣和特徵點探測器如Harris,FREAK,SURF,FAST。灰度共生矩陣,Border following,Bag-of-Visual-Words (BoW),RANSAC-based homography estimation , integral images , haralick textural feature extraction , and dense descriptors such as histogram of oriented gradients (HOG) and Local Binary Pattern (LBP).Several image filters for image processing applications such as difference of Gaussians , Gabor , Niblack and Sauvola thresholding。還有幾個影像處理中經常用到的影像過濾器。
8、音訊訊號(Audio and Signal)
音訊訊號的載入、解析、儲存、過濾和轉換,如在空間域和頻域應用音訊過濾器。WAV檔案、音訊捕捉、時域濾波器,高通,低通,波整流過濾器。Frequency-domain operators such as differential rectification filter and comb filter with Dirac's delta functions . Signal generators for Cosine , Impulse , Square signals.
9、視覺(Vision)
實時人臉檢測和跟蹤,以及影像流中檢測、跟蹤、轉換的一般的檢測方法。Contains cascade definitions , Camshift and Dynamic Template Matching trackers . Includes pre-created classifiers for human faces and some facial features such as noses。
10、降維技術
SVD奇異值分解(OctaveEnvironment.svd方法);
PCA主成分分析(類PrincipalComponent);
ICA獨立成份分析(類IndependentComponetAnalysis)
11、演算法精度測算
混淆矩陣(類ConfusionMatrix);
ROC曲線評估(類ReceiverOperatingCharacteristic);
Bootstrap演算法(自助演算法;類(Bootstrap));
CrossValidation演算法(交叉檢驗;類(CrossValidation));