自由、创新、研究、探索

自由、创新、研究、探索

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

Accord.NET重启4.0 开发-LMLPHP

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

06-12 19:15