Accord.NET重啟4.0 開發

張善友發表於2020-06-12

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的影子:

POSTS

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));

相關文章