【Wolfram 语言发布最新版本11.1】
数学篇
Wolfram 语言11.1已经正式发布, 那么在此版本中有什么新功能? 让我们一同来探索下.
本次版本共加入了 132 个新的指令, 此外 98 个原有命令功能得到显著增强. 下面是一个单词云来可视化展示新加入的功能.
Wolfram 公司在每次整数版本(如 11.0 ), 通常会引入更多完整的新领域命令, 但在 x.1版本中(如 11.1), 一般做法是添加新的命令到原有框架中, 及发布试验性"Experimental"的指令, 以便再进一步修改增强, 在未来版本中正式推出.
帮助文档的调整
11.1中有一个非常明显的变化:整个帮助文档重新进行了设计, 支持了自响应窗口的宽度, 在不同的平台上, 即便是在手机上查看也会获得更好的阅读体验.
以往很多用户都会忽略命令帮助中的"更多信息和选项"部分, 在 11.1 中则提供了一个小缩略图, 来提示用户阅读这部分进阶的内容.
神经网络
版本11.1的一个非常热门的领域是神经网络, Wolfram 目标是定义一个非常高级的神经网络接口,并完全集成到Wolfram语言当中. 版本11.1添加了一些新的最近开发的构建块,特别是30种新型的神经网络层(超过11.0中的两倍),以及自动支持结构递归神经网络.
Wolfram语言中的神经网络的另一个关键特征是它被设置为自动以适当的方式编码图像,文本或任何东西。 在版本11.1中, NetEncoder和NetDecoder涵盖了许多新的案例 - 扩展了集成到Wolfram语言的内容.
现在将神经网络应用到一些实际数据,并看到它得到识别出手写字的正确答案:
因为神经网络是符号化描述,所以很容易观察在每一层中“看看它在想什么”。 这里有一个小的(但整洁的)函数式编程示例,用来可视化在网络中的每一层发生了什么 - 是的,在最后第一个方块点亮红色,表明输出的结果识别数字为 0:
更多机器学习
神经网络是机器学习的重要方法. Wolfram语言的核心原则之一是提供高度自动化功能,底层如何实现对用户是完全透明的. 在11.1中,在机器学习领域有更多的功能和指令.
其中一个新机器学习功能是 FeatureSpacePlot . 给它任何对象(图像, 文本, 数值等),它会试着把它们放在一个适当的“特征空间”, 比如像这里是欧洲国家的国旗处理 :
FeatureSpacePlot的特别之处在于,它将立即对特定类别的输入, 如图片, 文本等使用复杂的预训练的特征提取器。现在还有一个FeatureNearest函数是类似于 Nearest的 ,但在特征空间中运行 哦,所有的NetModel和预训练的神奇网络模型就可以被该命令直接调用,所以它变得微不足道,例如,基于“词义空间”来对 dog, ant 等词在特征空间展示:
值得注意的例子是ActiveClassification和ActivePrediction -- 通过主动抽样空间来构建分类器和预测器,学习如何尽可能高效地完成这一工作.
音频
版本 11.0 开始极大的丰富了音频处理的部分, 并在 11. 1 继续提升相应的功能. 比如 AudioCapture 可以立即从计算机上的麦克风捕获音频. 这里有一个例子,我说“hello”:
那么理解可以生成一个通信的倒谱图形出来:
图形和可视化
版本11.1有各种各样的图像和可视化的新功能。 CurrentImage 越来越快; ImageEffect 添加了许多新效果. 图像 Image 更被集成为一类对象 - 例如现在可以立即对其执行算术计算, 来产生一种类似素描效果:
11.1 现在能将一张图片, 转成矢量图:
文本字符识别 TextRecognize 也变得显着更强 - 特别是能够处理文本中的结构,如段落和列等等.
在可视化中,增添了 GeoBubbleChart 命令来在地图显示气泡图,这里显示美国最大的城市的人口:
对于原有可视化命令也有增强和改进, 比如支持饼图中的任意标注 ,优化的离散直方图的标记和完全支持Plot3D等的缩放函数.
更多可计算数据
Wolfram知识库总有新的数据流入,自11.0版以来,还有许多新的东西被添加:130,000+ 种新食物 ,250,000+ 原子谱线 ,12,000+ 新的山脉 ,10,000+ 新的着名建筑物 ,300 +类型的神经元 ,650+新的瀑布 ,200+ 新的外行星 (因为它们最近被发现)和许多其他(更不要说7,000+新的拼写单词). 还有,例如,更高分辨率的地理海拔数据 - 现在一个3D打印的珠穆朗玛峰可以有更多的细节(11.0 中曾想制作一起相关的计算思维地理课堂示例, 让译者十分痛苦):
整合了更多外部服务
版本11.1中的新功能是集成外部服务 - 允许通过调用外部API工作的内置函数。 两个示例是WebSearch 和 WebImageSearch 。 这里是通过在网上搜索“缤纷的鸟”找到的缩略图:
对于这些搜索到结果的,让我们看看ImageIdentify(图像识别)认为它们是什么种类(哦,在11.1中, ImageIdentify是更准确)
由于WebSearch和WebImageSearch使用外部API(Google等) ,用户需要给这些公司单独付费. 但 Wolfram 已经设置了我们所谓的服务积分(Service Credits) ,使这用户可以更方便地使用.
这些调用外部接口的功能, 需要付费给Wolfram, 用$ServiceCreditsAvailable 指令来查询当前剩余的点数, 不够的话还可以额外充值点数), 下面是译者当前的点数(应该是每个月初会重置):
在未来的版本中将会有更多的集成服务的例子,但在11.1中,除了网络搜索之外,还有TextTranslation . WordTranslation ( 11.0中的新功能 )处理数百种语言的单个字翻译;现在在11.1 TextTranslation使用外部服务也翻译几十种语言的完整文本片段:
注: 想要省银子的话, 还得要自己查找免费的API来编写程序调用吧.
更多数学,更多算法处理功能
11.1版本在数学和算法领域取得了各种进展, 比如有空间填充曲线 , 分形网格 , 等距分布球体上点的新指令:
还多变量统计, Hankel变换, 内置模块化, 逆变器等等。 即使在微积分方面 ,也有新的增强: 比如求 n 阶导数,即便是符号 n 计算起来也没问题:
在版本10.1中,我们介绍了AnglePath函数,它从具有指定长度和角度的连续计算路径. 在某种程度上, AnglePath 就像一个工业规模版本的Logo(或Scratch)"海龟语言"。 但是AnglePath已经被证明是非常有用的,因此对于版本11.1,我们已经将它推广到了AnglePath3D, 下面就是跟欧拉角相关的动态模型示例:
更多的语言调整
又添加一些更方便用户的命令, 版本11.1中的一个非常简单的示例是ReverseSort(之前版本用户想要降序排列需要 verse[Sort[...]])
CellularAutomaton(元胞自动机)是一个非常广泛的命令, 现在通过允许通过与带标签的元素的关联来指定规则,版本11.1使其更容易用于常见情况:
Wolfram 总是确保所建立的语言模式用户可以尽可能广泛地使用. 像11.1一样,我们可以在许多新的地方使用UpTo ,比如指定 ImageSize等.
IntegerString 现在不仅可以标准英语表示,而且与用于世界各地不同语言下的传统的表示方法:
系统级编程
Wolfram语言的目标之一是能够与所有计算生态系统尽可能广泛地交互. 版本11.1增加了对M4A音频格式,.ubj 二进制, JSON格式以及.ini文件和Java .properties 文件的支持。还有一个新的函数BinarySerialize ,将任何Wolfram语言表达式转换为新的二进制(“ WXF”)形式,针对运行效率或空间大小进行了优化:
使用 BinaryDeserialize 命令可以读取它:
版本11.0引入了 WolframScript -a Wolfram语言的脚本命令行,在本地或在云端中运行.
使用WolframScript,您可以创建从Shell运行的独立Wolfram语言程序. 在11.1中有几个对 WolframScript 增强的地方 ,但现在还有一个新的脚本菜单项,它为你创建一个笔记本界面,用于创建由WolframScript运行的.wls (“Wolfram语言脚本”)文件:
还有更多如日期处理, 数据持久化, 系统级的编程以及云端部署等方面的新功能以及改善功能, 还有很多可以仔细研究学习的地方. 每一个 Wolfram 版本都是令人激动的, 不过对于明年的 12 , 我们将会看到另一次 Wolfram 飞跃, 一起期待吧!
好了, 现在让我们在下一篇的神奇代码再见. 这里感谢各位每一位看到这里的老师和朋友!
Thanks! Happy Weekend!