微软在5月释出由微软研究院开发、发展了十年的机器学习框架ML.NET,今释出了ML.NET 0.5,最大的更新便是开始支持TensorFlow,开发者可以在ML.NET中直接使用已经训练好的TensorFlow模型,进行评分(Scoring)。另外,微软正在开发新的ML.NET API,届时将会弃用现行的LearningPipeline API。适逢.NET Conf 2018,微软顺势释出ML.NET 0.5,距离5月释出的ML.NET 0.1已经距离一段时间,这次带来巨大的更新,微软在ML.NET 0.5中,增加了TensorFlow模型评分转换(TensorFlow Transform)。微软提到,深度学习是人工智能和机器学习的子集,能够透过实例来学习人类自然习得的能力,与传统机器学习相比,深度学习可以直接从图像、声音以及文本中,学习对象侦测或是分类任务,甚至可以提供语音识别以及语言翻译等功能,但传统的机器学习依赖特征工程以及数据处理。

深度学习模型需要大量标记数据以及多层类神经网络进行训练,微软认为,深度学习之所以会开始流行,除了对于计算机视觉任务表现良好外,刚好适用于现今数据爆炸情况。微软也想让ML.NET支持深度学习,因此透过新的TensorFlow Transform,在ML.NET中与TensorFlow进行第一阶段的整合,开发者可以自己训练或是从任何地方下载TensorFlow模型,在ML.NET中使用进行结果预测。微软表示,这种整合方式,让开发者不需要具备TensorFlow内部细节知识,另外,从长远来看,使用ML.NET开发深度学习应用将更加容易。开发者只要增加ML.NET NuGet套件参照,到.NET Core或.NET Framework应用程序中就可以了。在ML.NET底层也是参照了原生TensorFlow函式库,让开发者可以撰写加载TensorFlow模型的程序代码,并且进行评分。

不过,由于现在ML.NET使用TensorFlow仍然有一些限制,微软正在更新API以提高整体灵活性。目前使用LearningPipeline API时,只能在LearningPipeline中作为数字和向量输入,给分类器学习器(Classifier Learner)等学习器。但在即将要推出的全新ML.NET API,将能存取TensorFlow模型的分数,开发者可以直接使用TensorFlow模型进行评分,不像现在,还需要增加额外的学习器相关的训练程序。届时当新的API释出时,现行的LearningPipeline API将被弃用。微软提到,虽然现在ML.NET框架支持了TensorFlow,未来也不排除整合其他诸如Torch和CNTK深度学习函式库。