AI技术讲座精选:深度学习和AI技术是如何加速领域驱动设计的
【AI100 导读】你的代码库与企业模型是否匹配?深度学习和其他人工智能技术正在帮助领域驱动设计与组织业务目标进行匹配,这是如何做到的呢?
当下,人工智能技术得到了广泛地应用,用于提高各种应用的性能。ThoughtWorks 总部位于芝加哥,是一家应用开发咨询公司,Steven Lowe 是其首席咨询师。Steven Lowe 在 San Francisco 的 DeveloperWeek 上表示:现在的软件开发工程者开始考虑类似深度学习的人工智能技术如何能提高理解复杂软件的能力。Lowe 正在致力于使用深度学习,来分析软件架构快速从旧代码库中获得见解的新方法。
Lowe 表示,或许在短期内深度学习最大的用途是探测软件编码方式和公司现行业务模型之间的差距。他认为,对于一个现代软件组织来说,应用领域驱动设计是一个最重要的工具,可以利用其构建员工理解公司现行业务流程的模型。这个模型提供了一个验证假设的假说。深度学习的真正价值源于其底层模型能被现实世界中的部署所验证。将企业代码库与域模型匹配使其能以较少的努力而更容易对新的业务想法进行迭代。
深度学习需要付出的代价更小
当下总共有上百种人工智能技术,它们大多都是相互依赖的。深度学习是一种很有意思的形式,它允许开发者用最小的代价定制算法。开发者可以简单地从一个大的数据集训练算法开始,并且不需要监督过程。在华盛顿 Jeopardy 挑战中,读唇术和教计算机从图片中识别猫等都已经证明了 Google 的 AlphaGo 项目的能力。
Lowe 表示,他想开发一个深度学习算法集以使大代码库更容易实现可视化过程。有一天,一个同事请他帮忙看一个超过两百万行代码的相当大的遗留系统。于是,他便开始使用各种代码分析工具来对这些代码进行度量,这样可以更方便的看到可疑的地方。
Lowe 猜想,很可能存在某种方法实现复杂代码的可视化。于是,他便利用各种可视化工具做实验。这使得力图的创造成为可能,力图可以表现出各节点之间的权重,也就是代码相互作用的力图。但这毫无意义,因为它仅仅能够显示出巨大的泥球而已。
使代码可视化变得有用
软件可视化方面还有很多其他的有发展前景的技术。Adrian Kuhn 大约在8年前为软件制图开发了一款工具。Primitive.io 为代码结构可视化展示了一个虚拟现实工具。这些工具使得代码结构的理解变得非常容易,但是对开发者寻找下一步正确的方向来说,仍然有很多挑战。
令人沮丧的是,想要找到 bug 和坏的数据模型之间的差异是非常困难的。想在代码中识别出任何形式深层的继承层次也是非常困难的。Lowe 认为给事物贴标签是有可能实现的,但那可能会与强大的可视化背道而驰。
大数据可视化与业务设计的结合
有前景的技术能够应用于潜在语义的检索,深度学习技术能通过分析文档来挖掘其中所含单词的语义或意思。潜在语义分析运用深度学习为单词建模生成矢量图形,这些单词有些是语料库的文档,有些甚至是应用代码。Word2vec 是一个有前景的工具,运行于 Google 的 TensorFlow 之上,它能表示出:王后(Queen)=国王(King)-男人(man)+女人(woman)。
Lowe 应用 Word2vec 来为软件项目处理用户故事和代码。他表示,在比较应用代码与业务领域模型的匹配的紧密度上,这可能是一个非常有前景的技术。领域驱动设计利用用户故事和领域专业知识来快速生成业务模型。该初始模型仅仅代表业务运作方面的假说,假说的基础是企业领域专家。它必须通过实际的工作代码来检验的,查验假说与现实的紧密程度。
随着组织将该模型在其软件中的逐步实现过程,有偏差的假设和错误的假设等均可以被检测出来。随后,业务团队能够调整其模型来观察哪些功能可以提高其业务流程和目标。但是,当应用代码不能显示可行的业务模式的时候,调整模型的过程将会极具挑战性。开发者需要花费大量的时间来填补其中的空白。
深度学习只是个开始
Lowe 表示,他相信将来会有更好的工具,实现代码和业务模型偏差的快速可视化过程,这个工具能使决定在哪投放资源来提高业务灵活性变得更容易。把代码和用户故事的潜在语义分析的结果绘制到同一个可视化模型中,能使寻找这些偏差变得更容易。
对于开发者来说,使用深度学习来分析软件架构只是其中的一个例子。其他的研究着眼于利用深度学习以及其他人工智能技术实现代码开发的自动化过程。 Lowe 表示,这种类型的研究尚且处于初级阶段。同时,他也鼓励其他开发者开始他们自己的研究项目。
Lowe 说:“我们不能否认深度学习和其他相关技术是相当强大的工具,但是我们还没有使用过它们。问题不在于软件,而是我们的大脑有限,我们读代码是为了了解并理解代码的基本情况和意义。如果我们能用机器学习来加速这个过程,将是一个巨大的进步。可视化和虚拟现实可以帮我们更多的利用理解能力。”
接下来
使用认知分析(cognitive analytics)来揭露数据的隐藏模式
认知计算(cognitive computing)和它在真实世界中的位置
深度学习驱动 Loop AI quests
本文作者 George Lawton 是一位位于加利福尼亚州旧金山附近的记者。在过去的15年里,他为关于计算机,通信,知识管理,商业,健康和其他感兴趣的领域的出版物撰写了超过2000个故事。
本文由 AI100 编译,转载需得到本公众号同意。
编译:AI100
原文链接:http://www.theserverside.com/news/450413273/How-deep-learning-and-AI-techniques-accelerate-domain-driven-design