AI理解与业务应用

AI产品经理基础(一)-深度学习模型

2019-07-01  本文已影响5人  沉默的羔洋

背景

这阵子学习了吴恩达老师的深度学习系列课程,这里做次总结并且结合个人理解试图从产品的角度解答4个问题

1、是什么  2、模型如何学习 3、相对于传统需求的处理有何不同 4、深度学习是智能吗

深度学习是什么?

记得小时候上学,大家都做过这种数学题:给出一个某房地产商销量与时间的表格,让我们来评估未来几年的销量。我们可能拿张纸,画出xy散点图,然后根据数据分布,画出一条最符合大部分数据的曲线。可能是个直线,也有可能是个曲线,曲线所代表的函数即是对未来的预测。

虽然这是一个很简单的数学题,但是却蕴涵着某种思路:如果一个函数能对已有的数据进行较好的拟合,那么这个函数可能对同场景下未出现的数据也具有一定的预测/判断能力。

深度学习就是基于这样的思想,拟合数据的过程就是学习,学习后我们得到的函数参数就是对任务目标最佳的刻画,而数学模型是刻画的工具;

人类通过数学工具对客观世界进行刻画已经有过非常成功的先例:物理学,将所有的物理现象通过简单的数学公式表达,引导我们认知客观世界运行得规律,促进工业革命得发生。人类智能是生命史上的奇迹,尽管至今我们无法理解智能的本质是什么,但我相信智能现象也如同物理学一样遵循某些规律,都可以通过数学工具来刻画。而深度学习网络借鉴人脑神经元的分布式结构,通过多层神经元相互连接形成网络结构,在理论上可以刻画所有的函数。

所以深度学习就是:通过大数据学习得超级网络模型,可以用来刻画所有人类任务。简单来讲可以理解为建模。

深度学习是如何学习的?

既然深度学习网络框架能够刻画所有人类任务,但是对于我们想要处理的任务来讲,我们的目标就是通过学习得到最佳的网络参数,找出我们的目标模型;

通用模型结构

Ps:神经网络每个神经元是一个线性函数Z=Wx+b和一个非线性激活函数组合。多个神经元层层相连组成网络。包含输入层(训练数据)、隐藏层(特征处理)、以及输出层(与任务目标相关)。

通过代价函数衡量最佳模型参数

假设现在目标是识别猫,有训练集:X{…各种猫或者不是猫的图片…..}  Y{……0,1,1,1,0……};当把X灌给初始网络(随机给的参数)时,会得到输出Ypre,这个Ypre一开始必然与实际的Y不相符。

我们的目标是预期得到的Ypre 与实际的Y相差不大,如何将这种误差表征出来呢?这里可以参考方差概念,中学时我们通过方差描述数据群的离散程度,深度学习中通过某种代价函数J(w,b)来表征这种偏差,所以最佳的模型就是代价函数最小的模型,缩小误差的过程就是学习的过程。

Ypre是输入X通过一层一层网络得到的,代价函数包含X以及各层参数w、b等等,X是已知的,所以我们的目标就是什么样的参数可以使得我们的代价函数J(w,b)最小?

通过梯度得到最小代价函数

两个参数空间下的代价函数

如图,找到最低点最简单的办法就是通过计算机的算力一个一个试,总会试到最小的J(w,b)但明显这种方式明显不可取;

在深度学习中,是通过梯度下降来寻找最小的J(w,b);所谓梯度就是导数,梯度方向就是J随着w,b下降最快的方向,就可以更快速得找到最低点。通过反向传播算法求得导数,从而对w,b进行更新

如上图所示:J0就是我们的初始代价(w0,b0是随机初始化的,J0可能在曲面空间任意一点上),下一步是想要得到更小的J1,将w0,b0沿着梯度方向改变一个很小的dw,db,这种改变对J来讲是最快的变化方向,得到J1后再次沿着新的梯度方向调整w,b;直到最终得到最小的J。而此时的w,b就是我们最终学习到的结果,此时得到的模型对任务的刻画是最佳的。

正向与反向传播过程

在收敛的过程中我们执行了一遍又一遍前向传播(计算误差J)与反向传播(计算梯度);最终得到的参数网络就是我们的训练目标。

以上就是神经网络的通用结构,但是目前应用在业务上可能听到的都是CNN、RNN等。不考虑数据获取问题的话,神经网络的难度在于如何找到最小的代价函数,这个过程中会有很多技术问题。大牛们研究出的其他优化版的神经网络(CNN、RNN等)都是加入了人类的先验知识,从而降低训练难度。但是基本思路是不变的。(实际上所有的模型对现实任务刻画不可能会是完美,所以需要研究人员不断去做优化逼近最佳模型)

相对于传统需求的处理有何不同

通过深度学习网络实现需求不同于以往的传统方式,因为模型将相当一部分的策略过程黑箱化了。所以产品需要的关注点就略有不相同。

比如识别图片,以前可能需要设计规则,给图片打标签,做匹配;但是如果用CNN做计算机识别,所有的识别都交给了计算机了。

1、清晰定义训练目标

训练目标直接决定我们对训练数据的选择,简单举例:识别狗狗与识别哈士奇仍然具有较大的差异。在训练模型时,同样要考虑场景的多样性以及未来需求的变化。需求不清晰造成的团队目标偏差相比于开发传统需求的成本代价可能更大。

2、数据对训练结果影响

数据是影响实际业务中模型效果的根源。

根据训练目标选取合适的数据进行模型调整很重要,需要考虑实际业务中的场景,比如语音识别可能有背景音,自动驾驶可能要考虑阴雨天气,图像识别要考虑用户图片的模糊性;你所要解决的场景情况都应该在训练数据中有所体现。否则当业务发生时,模型可能并不拟合而造成偏差。

在数据不充足的情况下,可以通过迁移学习拿到别人训练好的东西,但是仍然要通过实际目标任务数据进行调整。

甚至有些情况下,由于业务的异常场景(儿童产品对黄色图片有考量)需要对模型进行调整(将你不希望出现的反例灌进去)

3、关注指标

*精确率*:识别为正确的样本数/识别出来的样本数

*召回率*:识别为正确的样本数/所有样本中正确的数

精确率描述了模型结果的可信度,召回率描述了模型对样本的适用度。这两个通常是相关的,如果对精确率做了要求,提高了阈值,那么必然有一部分正例不会被识别,那么召回率就会降低;通常根据业务会有平衡点。

3、交互场景

AI对交互的改变将会非常大,特别是语音产品。未来的交互方式更趋向于多维、多端。设计以人为本,最终形态取决于人对信息载体的接收与输入能力。

深度学习是智能吗

其实了解完神经网络后总有一种感觉,似乎和人类智能还是差点什么。思来想去,那个盖在头上的乌云可能就是知识或者说概念的形成。深度学习在处理信息的过程中,似乎总会出现梯度消失的问题,在模型层面这是一个数学问题,但我感觉从智能的维度更像是一个人的分析、学习能力很强,但是他对信息判断没有重点,更没有认知模型,迷失在大量数据中无法找到路。所以会看到CNN与RNN在优化过程中,人为得帮助机器建立一些先验知识,比如CNN中的卷积、RNN中的序列与注意力设置等等。也许这样的修修补补最终会使得机器有一定的概念、认知能力,但也许需要抽象另一套系统为机器建立认知模型,如果这方面有突破,可能真的会见到电影里的AI了。

所以我更倾向于深度学习像是智能体系中的分析模块,可以认为一种初级智能或者说弱人工智能。

有时候不得不赞叹生命进化出智能之伟大。

上一篇下一篇

猜你喜欢

热点阅读