Accord.NET Framework 介紹


    Accord.NET Framework是在AForge.NET項目的基礎上封裝和進一步開發而來。因為AForge.NET更注重與一些底層和廣度,而Accord.NET Framework更注重與機器學習算法以及提供計算機視頻、音頻、信號處理以及統計應用相關的解決方案。該項目使用C#語言編寫,項目主頁:http://accord-framework.net/

    說明:該文章只是一個基本介紹,主要內容是翻譯的官方文檔和介紹,部分英文表述個人能力有限,不太熟悉,所以直接照搬原文,有比較確切的知道中文名稱的可以提醒一些我,非常感。本人將使用該組件進行一些簡單的數據挖掘和機器學習任務,過程和代碼都將發表在本博客,有興趣的可以關注。

NET開源目錄:【目錄】本博客其他.NET開源項目文章目錄

本文原文地址:.NET平台開源項目速覽(13)機器學習組件Accord.NET框架功能介紹

1.基本功能與介紹

    Accord.NET為.NET應用程序提供了統計分析、機器學習、圖像處理、計算機視覺相關的算法。Accord.NET框架擴展了AForge.NET框架,提供了一些新功能。同時為.NET環境下的科學計算提供了一個完整的開發環境。該框架被分成了多個程序集,可以直接從官網下載安裝文件或者使用NuGet得到。可以參考以下鏈接:https://github.com/accord-net/framework/wiki

1.1 框架的三大功能模塊

Accord.NET框架主要有三個大的功能性模塊。分別為科學技術,信號與圖像處理,支持組件。下面將對3個模型的命名空間和功能進行簡單介紹。可以讓大家更快的接觸和了解其功能是否是自己想要的,下面是主要的命名空間介紹。

1.1.1 科學計算

Accord.Math:包括矩陣擴展程序,以及一組矩陣數值計算和分解的方法,也包括一些約束和非約束問題的數值優化算法,還有一些特殊函數以及其他一些輔助工具。

Accord.Statistics:包含概率分布、假設檢驗、線性和邏輯回歸等統計模型和方法,隱馬爾科夫模型,(隱藏)條件隨機域、主成分分析、偏最小二乘判別分析、內核方法和許多其他相關的技術。

Accord.MachineLearning: 為機器學習應用程序提供包括支持向量機,決策樹,朴素貝葉斯模型,k-means聚類算法,高斯混合模型和通用算法如Ransac,交叉驗證和網格搜索等算法。

Accord.Neuro:包括大量的神經網絡學習算法,如Levenberg-Marquardt,Parallel Resilient Backpropagation,Nguyen-Widrow初始化算法,深層的信念網絡和許多其他神經網絡相關的算法。具體看參考幫助文檔。

1.1.2 信號與圖像處理

Accord.Imaging:包含特征點探測器(如Harris, SURF, FAST and  FREAK),圖像過濾器、圖像匹配和圖像拼接方法,還有一些特征提取器。

Accord.Audio:包含一些機器學習和統計應用程序說需要的處理、轉換過濾器以及處理音頻信號的方法。

Accord.Vision:實時人臉檢測和跟蹤,以及對人流圖像中的一般的檢測、跟蹤和轉換方法,還有動態模板匹配追蹤器。

1.1.3 支持組件

主要是為上述一些組件提供數據顯示,繪圖的控件,分為以下幾個命名空間:

Accord.Controls:包括科學計算應用程序常見的柱狀圖、散點圖和表格數據瀏覽。

Accord.Controls.Imaging:包括用來顯示和處理的圖像的WinForm控件,包含一個方便快速顯示圖像的對話框。 

Accord.Controls.Audio:顯示波形和音頻相關性信息的WinForm控件。

Accord.Controls.Vision:包括跟蹤頭部,臉部和手部運動以及其他計算機視覺相關的任務WinForm控件。

1.2 支持的算法介紹

下面將Accord.NET框架包括的主要功能算法按照類別進行介紹。來源主要是官網介紹,進行了簡單的翻譯和整理。

1.2.1 分類(Classification)

SVM(支持向量機)、Logistic Regression(邏輯回歸)、Decision Trees(決策樹)、 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(隱馬爾科夫分類器和隱藏條件隨機域)。

1.2.2 回歸(Regression)

Multiple linear regression(多元線性回歸-單因變量多自變量)、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。

1.2.3 聚類(Clustering)

K-Means、K-Modes、Mean-Shift(均值漂移)、Gaussian Mixture Models(高斯混合模型)、Binary Split(二元分裂)、Deep Belief Networks(深層的信念網絡)、 Restricted Boltzmann Machines(限制玻耳茲曼機)。聚類算法可以應用於任意數據,包括圖像、數據表、視頻和音頻。

1.2.4 概率分布(Distributions)

包括40多個分布的參數和非參數估計。包括一些常見的分布如正態分布、柯西分布、超幾何分布、泊松分布、伯努利;也包括一些特殊的分布如Kolmogorov-Smirnov , Nakagami、Weibull、and Von-Mises distributions。也包括多元分布如多元正態分布、Multinomial 、Independent 、Joint and Mixture distributions。

1.2.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 .

1.2.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 .

1.2.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。還有幾個圖像處理中經常用到的圖像過濾器。

1.2.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.

1.2.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。

1.3 相關資源

    從項目主頁:http://accord-framework.net/下載的“Archive”壓縮包中,包括了幾乎所有的在線資源。如下圖,介紹幾個主要的資源:

    Debug是一些用於調試的程序集,Docs是幫助文檔,Externals是一些輔助的組件,Release是不同.NET環境的Dll程序集版本,Samples是案例源代碼,Setup是安裝的程序,Sources是項目的源代碼,Unit Tests是單元測試代碼。

Accord.NET框架源代碼托管在GitHub:

https://github.com/accord-net/framework/

上面有大量的入門資源和教程,例如,查看頁面右邊的列表欄切換:

https://github.com/accord-net/framework/wiki/How-to-use

 


 轉自http://www.cnblogs.com/asxinyu


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM