译者 | czh912019784

出品 | AI科技大本营

现在,机器学习已经应用在各行各业中,开发工程师队伍越发壮大,其中有一类工程师的工作内容在外行人眼里似乎更”丰富多彩“,那就是鉴黄师。现在我们看到的视频都是经过他们本人或他们研发的技术处理而来。就在大家致力从音、言、画等全方位鉴黄时,有一个逆风而上的团队,正在利用机器学习研究着一项非同一般的任务。

刚拿到这篇论文的时候,营长是拒绝的,毕竟原文作者都没有署名。目前就知道这项史无前例的工作是由德国一家公司 Very Intelligent Ecommerce Inc 委托进行的,并将研究和调研成果应用到项目 Autoblow AI 中,旨在使他们的成人智能玩具更加人性化。(关于这个项目大家可自行搜索了解更多... ...)

下面营长还是”竭尽所能“地为大家介绍一下这项羞羞的机器学习学术研究项目。研究人员通过分析并标记超过 108 小时的爱情动作视频,利用聚类分析发现了 16 种”典型“或”常见“的 blowjob(以下简称 bj)动作片段,以此设计和评估一个通过使用深度学习来生成完整全过程 bj 的系统。这个系统优于简单的马尔科夫链模型。虽然内容敏感,但,是真学术!(一本正经脸)欲知详情,下文继续为你分解。



数据集

我们将获取到的色(xue) 情(xi) 视频进行剪切,处理后仅包含 bj 的片段。然后手动对这些片段进行标注,并记录下嘴巴的位置信息序列,该位置记录为整数,其中 1000 和 0 分别表示尖端和基部。(向数据标注工程师献上我的膝盖)



为了便于研究,我们使用线性插值技术将视频和标注标准化为每秒16帧,最终把视频中剪切出来的 1060 个剪辑处理成 6270467 个标准化帧,这 1060 个剪辑由 109 个小时的视频中所得来。





动作分析

对 Autoblow AI 的设定程序有一个基本的了解有助于分析此项研究。Autoblow AI 有十种模式,每一种模式都代表着一系列的动作。上或下运动速度的不同就产生了不同的动作,其中速度可用电机来控制。两到三个不同的动作连续释放也可以创造出复杂的动作模式。图 1 给出了一个基于三种动作模式的分析例子:









图 1 基于三种不同模式而创造出的复杂模式示例

我们能够清楚地看到运动具有周期性以及随着时间的变化动作的状态情况,其中包括停顿和中断。基于上千个这类的片段,我们能够构建模型来识别数据集中常见或典型的动作。





k 均值聚类

我们首先使用k 均值聚类算法来进行研究,该算法虽然存在很多缺点,但是它的运算速度快。

我们将每个视频分割成一个个一秒钟的窗口,按每个窗口的位置序列给出一组 16 维的向量。之后采用k 均值来找到 16 个聚类。下图 2 和 3 给出了每一个类别位置序列的平均值,以及每一个类别中 100 个样本的具体位置序列。



图 2 16 种类别中嘴位置序列的平均值





图 3 每一类别上100个样本中嘴的具体位置序列

为了进一步验证我们的假设,我们使用了最近开发的一种被称为UMAP 的降维技术来减少聚类的数量,以便能在二维和三维中对数据进行可视化。其结果如图 4 所示。





图 4 使用 UMAP 降维后数据的分布图

我们能从图中看到许多令人信服的结构。比如类别 5 和类别 2 的数据,它们分别代表着在顶部和底部附近进行活动,而图中这两类数据也是处在相互对立的点上。再比如类别 1 和 5 的数据,它们都代表着在顶部进行活动,图中这两类数据正好也是彼此相邻。我们还能从图中观察到一条介于两端点之间密集的线,这条线贯穿了所有表示低强度的动作(5,12,7,3,13,2) 的数据点,这一结构也与现实中 bj时,从最高点到最低点来回活动相符。

这个图表值得我们去细细分析,在目前这些验证就足以让我们去相信数据之间是呈现出某种趋势的。这些数据能够为我们建立更加复杂的动作模型做支撑。

程序生成

如上所述,一个完整的 bj过程是由一系列的动作来组成的。在上一节中,我们已经确定了在一秒钟内发生的典型动作。下一步我们要做的是找到这些动作之间常见的演变顺序。

这个问题与自然语言中 ‘猜猜下一个词会是啥’ 的问题有颇多相似之处。以下漫画最能说明这个问题。





我们希望从上一节中构建出来的模块来组成一个典型的 bj过程。我们首先建立了一个以马尔可夫链为基线的简单模型,之后又设计了一个深度学习模型来作为替代,并定量比较了两种模型的优劣。

马尔可夫链模型

马尔可夫链背后的原理很简单:假设下一步的动作仅取决于当前的位置,而不是先前的动作。例如:假设我们刚刚完成了动作 1;在此基础上,我们知道我们再次做动作 1 的概率为 50%,30% 的概率做动作 2,15% 的概率做动作 3,等等。然后根据概率随机选择下一个动作来生成一个 ‘唯一’ 的动作顺序。

因此,我们先计算了一个模式由另一个模式引起的频率,并验证了此概率与直觉相符。之后采用这些概率生成唯一的动作顺序,并使用简单的移动平均进行平滑处理。结果如下图 5 所示。





图 5 一个由马尔可夫链模型生成的完整 ‘不可描述动作’ 过程

马尔可夫链的问题很明显,就是假设下一状态的概率仅取决于当前的状态。而事实上,下一状态的概率会取决于先前的许多状态。

另一个问题是在预测下一状态时,还需知道先前状态哪一个对下一状态影响最大。深度学习能够在 “复杂又非显而易见相关性” 的问题上大展身手。

Dense Neural Network (DNN) 模型

在本节中,我们设计了一个DNN 架构,该架构能够基于先前的状态预测出下一步的状态。

本文中,使用了一个简单的两层体系结构,把最后的16种状态作为模型的输入,输出为范围在 0 到 1 之间的关于 16 种状态的概率值。用零矢量来表示“缺失”状态(如视频开始前的一小段)。通过纵向连接先前的状态向量来创建输入,以交叉熵作为损失函数,训练数据与测试数据的比值为 8:2。

模型性能的好坏很大程度上取决于训练数据与测试数据的切分情况,为了解决这一随机误差带来的影响,我们重复了 10 次试验,每次都使用不同的随机种子来分割数据。下面我们将定性地分析一个由模型产生的动作演变顺序(如图 6 所示)。





图 6 由 DNN 模型产生的一个完整 bj过程

模型比较

在本节中,我们将定量地分析这两种模型。定性地说,DNN 模型具有更好的鲁棒性,因为它被锁定在单一状态下的可能性要小很多。对于预测来讲,首先要考虑的是预测的准确性。图 7 表示DNN 在不同任务上的预测准确率。



图 7 DNN 在不同任务上的预测准确率

通过计算得到的马尔可夫链模型的准确率约为 58.08%,略低于神经网络的平均精度。

为了证明结果的可信度,我们还引入了 “相对错误” 这一度量指标。下面给出一个小例子以便理解相对错误。当你在预测是否会下雨时,如果回答百分百下雨,但结果没下雨,那么你的预测就完全错误。但如果你预测百分之八十下雨,结果没下雨,那么意味着你只错了百分之八十。



根据这一思路,我们重新计算了两种模型的平均绝对误差,DNN 模型的误差如图 8 所示,而马尔可夫链模型的误差计算结果为 1.126。从这一结果也能表明DNN 模型优于马尔可夫链模型。

图 8 DNN 模型在不同任务上的平均绝对误差

未来的研究

第一,我们相信程序生成能够被改善。DNN 架构的替代方案包括循环神经网络、卷积神经网络和生成对抗网络。我们之后打算使用这些技术来改善动作演变顺序的真实性。当然,演变顺序得以物理硬件的限制为前提。

第二,我们认为类似的分析可以适用于其他情色行为,本文中以 bj 为主题,服务于Autoblow AI。

第三,我们希望能将研究扩展到图像识别和视频分类中去。现在我们已经开发出一个可用于识别静止帧中是否存在 bj行为的模型,并且正在研究更为复杂的视频分析问题。接下来研究的重点会着眼于如何将性玩具与色情内容实现同步。

原文链接

--【完】--


2018 AI开发者大会

AI技术年度盛会即将开启!11月8-9日,来自Google、Amazon、微软、Facebook、LinkedIn、阿里巴巴、百度、腾讯、美团、京东、小米、字节跳动、滴滴、商汤、旷视、思必驰、第四范式、云知声等企业的技术大咖将带来工业界AI应用的最新思维。

如果你是某个AI技术领域的专业人才,或想寻求将AI技术整合至传统企业业务当中,扫码填写大会注册信息表,我们将从中挑选出20名相关性最高的幸运读者,送出单场分论坛入场券。大会嘉宾阵容和议题,请查看文末海报。

此外,如果你想与所有参会大牛充分交流沟通,点击阅读原文购票,使用优惠码:AI2018-DBY 购买两日通票,立减999元;此外大会还推出了1024定制票,主会+分会自由组合,精彩随心。

关于那些羞羞的不可描述的动作分析,一个正经的机器学习项目相关推荐

  1. CVPR 2020满分论文 | FineGym:面向细粒度动作分析的层级化高质量数据集

    机器之心发布 作者:邵典等 本文介绍了一个大规模.高质量.层级化标注的细粒度人体动作数据集「FineGym」,研究者来自香港中文大学,目前这项研究已被 CVPR 2020 接收为 oral 论文. 论 ...

  2. 拉班动作分析在计量心理学与人工智能领域的应用

    摘要 本文立足于北京航空航天大学的<动作语言分析与应用>课程,从拉班动作分析的基本理论切入,总结出拉班动作分析理论在计量信息学和人工智能领域如何应用. [关键词]:拉班动作分析:计量心理学 ...

  3. cocos2d-x中的动作分析

    在cocos2d-x中动作的执行调度是受cocos2d-x的全局定时器控制的,当初始完导演后便已经启动用于管理动作的update定时器. bool CCDirector::init(void) {.. ...

  4. 第02章 一个实例初识WorkBench分析流程-卡扣结构的动作分析

    第02章 一个实例初识WorkBench分析流程-卡扣结构的动作分析 1问题描述,关心的结果 2. 建模的介绍,模型改如何简化 3. 复杂特征的网格初步试划分 4. 网格再次的划分及调整 5. 材料的 ...

  5. 十大算法,描述+代码+演示+分析+改进(赶紧收藏!)

    十大算法 1.冒泡排序 ​ (1)算法描述 ​ 冒泡排序是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来.走访数列的工作是重复地进行直到没有再需要 ...

  6. linux培训描述,【linux培训班】关于linux系统记录和描述进程的分析

    从C语言源代码分析,神秘的Linux系统是如何记录和描述进程的?也许我们习惯用Windows系统,可程序员最爱的还是linux系统,毕竟这样的系统安全性比较高,可操作的难度也是有的,不适合小白来使用. ...

  7. 动作分析在企业生产中具体起到什么作用

    动作分析是指在企业生产的正常操作过程中,通过观察数据总结出现场作业人员的赘余动作或者人体本身各种操作时动作的浪费情况.从而来将操作流程尽可能的简化,减少操作人员的疲劳度.制定出规范的操作流程,也为企业 ...

  8. 游戏策划笔记:角色动作分析

    游戏策划笔记:角色动作分析 今天对角色动作进行分析. 首先分解非战斗动作.这里的非战斗是指"不会因为hit box碰撞造成伤害"的动作. 非战斗状态的移动动作个人觉得需要和战斗状态 ...

  9. (蓝桥杯)问题描述   给定一个N阶矩阵A,输出A的M次幂(M是非负整数)   例如:   A =   1 2   3 4   A的2次幂   7 10   15 22

    问题描述 给定一个N阶矩阵A,输出A的M次幂(M是非负整数) 例如: A = 1 2 3 4 A的2次幂 7 10 15 22 输入格式 第一行是一个正整数N.M(1<=N<=30, 0& ...

最新文章

  1. python中若干关于类的问题
  2. 给自己看的flex布局方法
  3. Vim 中文件目录浏览插件——NERD tree
  4. GIS基础知识汇总篇(五)-无人机真正射影像的概念和制作原理
  5. java 多态判断非空_Java核心技术(四):继承
  6. Web前端开发面试考点指南
  7. Idea 添加lib文件夹,并添加至项目Libary
  8. stm32矩阵键盘c语言程序,stm32矩阵键盘原理图及程序介绍
  9. 数据结构:哈希表设计(c++)
  10. Android Studio Logcat 左边的工具栏不显示了 Show Toolbar
  11. B站 TOP10 Python视频教程
  12. 第一章 HTML基础
  13. Dvorak or qwert?
  14. 玩聚榜单-仿照Technorati的Popular频道
  15. mysql连接字符串_[MySQL] - MySQL连接字符串总结
  16. 客户成功故事 | 深圳赛意法:数据分析,为企业可持续发展注入源动力
  17. uni-app的渲染数据和三种调接口的方法
  18. 城链科技董事长肖金伟:践行数据经济系国家战略,引领数字时代新消费发展!
  19. 配色三部曲-创建自己的调色板
  20. vue项目每次打开显示的端口号都不一样

热门文章

  1. VMware高版本转VMware低版本
  2. AutoCAD DxfCode组码值类型(一)
  3. html函数参数数组遍历,JavaScript foreach遍历数组
  4. linux下挂载共享目录,linux mount挂载共享目录详解
  5. iapp php邮箱怎么反馈,iCloud邮箱
  6. Oracle数据库编程
  7. three.js右手坐标系
  8. 集合论中的选择公理AC
  9. 支持向量机松弛变量的理解
  10. esp8266 softap 模式设置 及 注意事项