最近发布
出色地。我们先看看“泡沫是否破灭了”、“如何继续活下去”,然后谈谈这个花体字从何而来。
首先,我们来谈谈这条曲线的助推器是什么。她从哪儿来?他们可能会记住一切
- 2008年,“大数据”一词出现。真正的产品开始了
出现 自2010年以来。大数据与机器学习直接相关。如果没有大数据,当时存在的算法就不可能稳定运行。这些不是神经网络。 2012 年之前,神经网络一直是少数人的专利。但随后完全不同的算法开始发挥作用,这些算法已经存在了数年甚至数十年:支持向量机 (1963,1993),随机森林 (1995)阿达助推器 (2003),...那些年的初创公司主要与结构化数据的自动处理相关:收银机、用户、广告等等。第一波浪潮的衍生品是一组框架,例如 XGBoost、CatBoost、LightGBM 等。
- 2011-2012年
卷积神经网络 多次在图像识别竞赛中获奖。它们的实际使用有些延迟。我想说的是,具有巨大意义的初创公司和解决方案从 2014 年开始出现。我们花了两年的时间来消化神经元仍然有效的事实,创建可以在合理的时间内安装和启动的便捷框架,开发能够稳定和加快收敛时间的方法。卷积网络使得解决计算机视觉问题成为可能:图像和图像中物体的分类、物体检测、物体和人的识别、图像改进等等。
- 2015-2017。基于循环网络或其类似物(LSTM、GRU、TransformerNet 等)的算法和项目蓬勃发展。功能良好的语音到文本算法和机器翻译系统已经出现。它们部分基于卷积网络来提取基本特征。部分原因是我们学会了收集非常大且好的数据集。
“泡沫破裂了吗?炒作是否过热?他们作为区块链消亡了吗?”
否则!明天 Siri 将停止在你的手机上工作,后天特斯拉将不知道转弯和袋鼠之间的区别。
神经网络已经开始工作了。它们存在于数十种设备中。它们确实可以让你赚钱,改变市场和你周围的世界。炒作看起来有点不同:
只是神经网络不再是什么新鲜事了。是的,很多人都有很高的期望。但大量公司已经学会使用神经元并制造基于它们的产品。神经元提供新功能,允许您裁员并降低服务价格:
- 制造公司正在集成算法来分析生产线上的缺陷。
- 畜牧场购买系统来控制奶牛。
- 自动组合。
- 自动呼叫中心。
- SnapChat 中的过滤器。 (好吧,至少有一些有用的东西!)
但最主要的,但不是最明显的:“没有更多的新想法,否则它们不会带来即时资本。”神经网络已经解决了数十个问题。他们将做出更多决定。所有显而易见的想法都催生了许多初创公司。但表面上的一切都已经被收集起来了。在过去的两年里,我没有遇到任何使用神经网络的新想法。没有一种新方法(好吧,GAN 有一些问题)。
随后的每一次启动都变得越来越复杂。它不再需要两个人使用开放数据训练神经元。它需要程序员、服务器、标记团队、复杂的支持等。
结果,初创企业越来越少。但产量更多。需要添加车牌识别吗?市场上有数百名具有相关经验的专家。您可以雇用某人,几个月后您的员工就会制作该系统。或者买现成的。但是要创办一家新公司吗?……太疯狂了!
您需要创建一个访客跟踪系统 - 当您可以在 3-4 个月内制作自己的许可证并为您的业务提供改进时,为什么要支付一堆许可证的费用。
现在,神经网络正在经历与其他数十种技术相同的道路。
您还记得自 1995 年以来“网站开发人员”的概念发生了怎样的变化吗?市场尚未饱和。专业人士很少。但我可以打赌,5-10 年内 Java 程序员和神经网络开发人员之间不会有太大区别。市场上将有足够的这两种专家。
只是有一类问题可以通过神经元来解决。出现了一项任务 - 聘请专家。
“下一步是什么?承诺的人工智能在哪里?”
但这里有一个小但有趣的误解:)
显然,当今存在的技术堆栈不会引导我们走向人工智能。想法和它们的新颖性在很大程度上已经耗尽了。我们来谈谈目前的发展水平。
限制
让我们从自动驾驶汽车开始。显然,利用当今的技术制造全自动汽车是可能的。但这种情况会在多少年后发生还不清楚。特斯拉相信这将在几年内发生 -
还有很多其他的
在我看来,15 年内,城市基础设施本身很可能会发生变化,自动驾驶汽车的出现将不可避免,并将成为其延续。但这不能被视为智力。现代特斯拉是一个非常复杂的数据过滤、搜索和再训练管道。这些是规则-规则-规则,数据收集和过滤器(这里
第一个问题
这就是我们看到的地方 第一个基本问题。大数据。这正是当前神经网络和机器学习浪潮的诞生。如今,要执行复杂且自动化的操作,您需要大量数据。不只是很多,而是非常非常多。我们需要自动化算法来收集、标记和使用它们。我们想让汽车看到面向太阳的卡车——我们必须首先收集足够数量的卡车。我们希望汽车不会因用螺栓固定在后备箱上的自行车而变得疯狂 - 更多样品。
此外,仅举一个例子是不够的。数百个?数千?
第二个问题
第二个问题 ——我们的神经网络所理解的内容的可视化。这是一项非常重要的任务。到目前为止,很少有人了解如何形象化这一点。这些文章是最近才发表的,只是一些例子,即使是遥远的:
嗯,是的,那套很好的“看看网格里面有什么”
我没有提到其他几十种小工具、方法、黑客、关于如何显示网络内部的研究。这些工具有用吗?它们是否可以帮助您快速了解问题所在并调试网络?...获得最后的百分比?嗯,大致相同:
您可以在 Kaggle 上观看任何比赛。以及人们如何做出最终决定的描述。我们堆叠了 100-500-800 个模型单元,结果成功了!
当然,我有点夸张。但这些方法并不能提供快速、直接的答案。
有了足够的经验,研究了不同的选项,您就可以对系统做出这样的决定的原因做出判断。但纠正系统的行为将很困难。安装拐杖,移动阈值,添加数据集,采用另一个后端网络。
第三个问题
第三个基本问题 — 网格教授的是统计数据,而不是逻辑。据统计这个
从逻辑上讲,这不是很相似。除非被迫,神经网络不会学习任何复杂的东西。他们总是教尽可能简单的手语。你有眼睛、鼻子、头吗?所以这就是脸!或者举个例子,眼睛并不代表脸。再说一遍 - 数以百万计的例子。
底部有足够的空间
我想说,目前限制神经网络和机器学习发展的正是这三个全球性问题。这些问题并没有限制它,它已经被积极使用。
这就是结局?神经网络启动了吗?
未知。但是,当然,每个人都希望不会。
解决我上面强调的基本问题有很多方法和方向。但到目前为止,这些方法都无法从根本上做一些新的事情,解决尚未解决的问题。到目前为止,所有基础项目都是在稳定方法的基础上完成的(特斯拉),或者仍然是机构或公司的测试项目(谷歌大脑,OpenAI)。
粗略地说,主要方向是创建输入数据的一些高级表示。从某种意义上来说,就是“记忆”。记忆最简单的例子是各种“嵌入”——图像表示。嗯,例如,所有面部识别系统。网络学习从面部获取一些不依赖于旋转、光照或分辨率的稳定表示。本质上,网络最小化了“不同的面孔较远”和“相同的面孔较近”的度量。
对于这样的训练,需要数以万计、数十万个示例。但结果具备了“一次性学习”的一些基础。现在我们不需要数百张面孔来记住一个人。只有一张脸,这就是我们的全部
只有一个问题......网格只能学习相当简单的对象。当试图区分的不是面孔,而是“通过衣服来区分人”时(任务
从数百万个例子中学习也是一种乐趣。
正在努力大幅减少选举。例如,人们可以立即回忆起第一个作品之一 一次性学习
只有一个缺点——通常训练在一些简单的“MNIST”示例上效果很好。当继续执行复杂的任务时,您需要一个大型数据库、对象模型或某种魔法。
总的来说,One-Shot 训练工作是一个非常有趣的话题。你会发现很多想法。但在大多数情况下,我列出的两个问题(在巨大数据集上进行预训练/在复杂数据上不稳定)极大地干扰了学习。
另一方面,GAN(生成对抗网络)探讨了嵌入的主题。您可能已经读过很多有关该主题的 Habré 文章。 (
GAN 的一个特点是形成一些内部状态空间(本质上与 Embedding 相同),它允许您绘制图像。有可能
GAN 的问题在于,生成的对象越复杂,用“生成器-判别器”逻辑来描述它就越困难。因此,人们听说过的 GAN 唯一真正的应用是 DeepFake,它再次操纵面部表征(对此有巨大的基础)。
我很少看到其他有用的用途。通常是某种涉及完成图画的诡计。
然后再次。没有人知道这将如何让我们迈向更光明的未来。在神经网络中表示逻辑/空间是很好的。但我们需要大量的例子,我们不明白神经元本身如何表示这一点,我们不明白如何让神经元记住一些非常复杂的想法。
强化学习 - 这是一种来自完全不同方向的方法。你肯定还记得谷歌是如何在围棋领域击败所有人的。最近在《星际争霸》和《Dota》中取得的胜利。但这里的一切远没有那么美好和有希望。他对强化学习及其复杂性的谈论最深入
简单总结一下作者写的内容:
- 在大多数情况下,开箱即用的模型不适合/工作不佳
- 实际问题更容易通过其他方式解决。由于 RL 的复杂性/不可预测性/计算复杂性,波士顿动力公司不使用 RL
- 为了让强化学习发挥作用,你需要一个复杂的函数。创建/编写通常很困难
- 模型训练困难。你必须花费大量时间来提升并摆脱局部最优
- 导致模型很难重复,稍有改动模型就不稳定
- 通常会过度拟合某些随机模式,甚至是随机数生成器
关键是 RL 尚未在生产环境中发挥作用。谷歌有一些实验(
内存。上述所有内容的缺点是缺乏结构。尝试解决所有这些问题的方法之一是为神经网络提供对单独内存的访问。这样她就可以在那里记录并重写她的步骤结果。然后神经网络就可以根据当前的记忆状态来确定。这与经典处理器和计算机非常相似。
最著名和最受欢迎的
看来这就是理解智能的关键?但可能不会。该系统仍需要大量数据进行训练。它主要适用于结构化表格数据。此外,当脸书
解开。创建有意义的记忆的另一种方法是采用相同的嵌入,但在训练过程中,引入额外的标准,使您能够突出其中的“含义”。例如,我们想要训练一个神经网络来区分商店中的人类行为。如果我们遵循标准路径,我们将不得不建立十几个网络。一是找一个人,二是确定他在做什么,三是他的年龄,四是他的性别。单独的逻辑着眼于商店中执行/接受培训执行此操作的部分。第三个决定了它的轨迹,等等。
或者,如果有无限量的数据,那么就可以针对所有可能的结果训练一个网络(显然,无法收集这样的一组数据)。
解开方法告诉我们——让我们训练网络,使其本身能够区分概念。这样就会根据视频形成一个嵌入,一个区域决定动作,一个区域决定时间在地板上的位置,一个区域决定人的身高,一个区域决定人的性别。同时,在训练时,我几乎不希望向网络提示这些关键概念,而是让它突出显示和分组区域。类似的文章有很多(其中一些
但这个方向至少在理论上应该涵盖开头列出的问题。
根据参数“墙壁颜色/地板颜色/物体形状/物体颜色/等”进行图像分解。
根据“大小、眉毛、方向、肤色等”参数对脸部进行分解
其他
还有许多其他非全局性的领域可以让您以某种方式减少数据库、处理更多异构数据等。
注意。将其作为单独的方法分离出来可能没有意义。只是一种增强他人的方法。许多文章都是献给他的(
3D模拟。如果你制作了一个好的3D引擎,通常可以用它覆盖90%的训练数据(我什至看到一个例子,一个好的引擎几乎覆盖了99%的数据)。关于如何让在 3D 引擎上训练的网络使用真实数据工作(微调、风格迁移等),有很多想法和技巧。但往往制造一个好的引擎比收集数据要困难几个数量级。制造发动机时的示例:
机器人训练(
训练
在特斯拉进行培训(同样是上面的视频)。
发现
从某种意义上说,整篇文章都是结论。我想传达的主要信息可能是“免费赠品已经结束,神经元不再提供简单的解决方案。”现在我们需要努力做出复杂的决定。或者努力做复杂的科学研究。
总的来说,这个话题是有争议的。也许读者还有更有趣的例子?
来源: habr.com