如何将深度学习算法的能力移植到前端

如题所述

现在深度学习在机器学习领域是一个很热的概念,不过经过各种媒体的转载播报,这个概念也逐渐变得有些神话的感觉:例如,人们可能认为,深度学习是一种能够模拟出人脑的神经结构的机器学习方式,从而能够让计算机具有人一样的智慧;而这样一种技术在将来无疑是前景无限的。那么深度学习本质上又是一种什么样的技术呢?
深度学习是什么
深度学习是机器学习领域中对模式(声音、图像等等)进行建模的一种方法,它也是一种基于统计的概率模型。在对各种模式进行建模之后,便可以对各种模式进行识别了,例如待建模的模式是声音的话,那么这种识别便可以理解为语音识别。而类比来理解,如果说将机器学习算法类比为排序算法,那么深度学习算法便是众多排序算法当中的一种(例如冒泡排序),这种算法在某些应用场景中,会具有一定的优势。
深度学习的“深度”体现在哪里
论及深度学习中的“深度”一词,人们从感性上可能会认为,深度学习相对于传统的机器学习算法,能够做更多的事情,是一种更为“高深”的算法。而事实可能并非我们想象的那样,因为从算法输入输出的角度考虑,深度学习算法与传统的有监督机器学习算法的输入输出都是类似的,无论是最简单的Logistic Regression,还是到后来的SVM、boosting等算法,它们能够做的事情都是类似的。正如无论使用什么样的排序算法,它们的输入和预期的输出都是类似的,区别在于各种算法在不同环境下的性能不同。
那么深度学习的“深度”本质上又指的是什么呢?深度学习的学名又叫深层神经网络(Deep Neural Networks ),是从很久以前的人工神经网络(Artificial Neural Networks)模型发展而来。这种模型一般采用计算机科学中的图模型来直观的表达,而深度学习的“深度”便指的是图模型的层数以及每一层的节点数量,相对于之前的神经网络而言,有了很大程度的提升。
深度学习也有许多种不同的实现形式,根据解决问题、应用领域甚至论文作者取名创意的不同,它也有不同的名字:例如卷积神经网络(Convolutional Neural Networks)、深度置信网络(Deep Belief Networks)、受限玻尔兹曼机(Restricted Boltzmann Machines)、深度玻尔兹曼机(Deep Boltzmann Machines)、递归自动编码器(Recursive Autoencoders)、深度表达(Deep Representation)等等。不过究其本质来讲,都是类似的深度神经网络模型。
既然深度学习这样一种神经网络模型在以前就出现过了,为什么在经历过一次没落之后,到现在又重新进入人们的视线当中了呢?这是因为在十几年前的硬件条件下,对高层次多节点神经网络的建模,时间复杂度(可能以年为单位)几乎是无法接受的。在很多应用当中,实际用到的是一些深度较浅的网络,虽然这种模型在这些应用当中,取得了非常好的效果(甚至是the state of art),但由于这种时间上的不可接受性,限制了其在实际应用的推广。而到了现在,计算机硬件的水平与之前已经不能同日而语,因此神经网络这样一种模型便又进入了人们的视线当中。
“ 2012年6月,《纽约时报》披露了Google Brain项目,吸引了公众的广泛关注。这个项目是由著名的斯坦福大学机器学习教授Andrew Ng和在大规模计算机系统方面的世界顶尖专家Jeff Dean共同主导,用16000个CPU Core的并行计算平台训练一种称为“深层神经网络”(DNN,Deep Neural Networks) ”
从Google Brain这个项目中我们可以看到,神经网络这种模型对于计算量的要求是极其巨大的,为了保证算法实时性,需要使用大量的CPU来进行并行计算。
当然,深度学习现在备受关注的另外一个原因,当然是因为在某些场景下,这种算法模式识别的精度,超过了绝大多数目前已有的算法。而在最近,深度学习的提出者修改了其实现代码的Bug之后,这种模型识别精度又有了很大的提升。这些因素共同引起了深层神经网络模型,或者说深度学习这样一个概念的新的热潮。
深度学习的优点
为了进行某种模式的识别,通常的做法首先是以某种方式,提取这个模式中的特征。这个特征的提取方式有时候是人工设计或指定的,有时候是在给定相对较多数据的前提下,由计算机自己总结出来的。深度学习提出了一种让计算机自动学习出模式特征的方法,并将特征学习融入到了建立模型的过程中,从而减少了人为设计特征造成的不完备性。而目前以深度学习为核心的某些机器学习应用,在满足特定条件的应用场景下,已经达到了超越现有算法的识别或分类性能。
深度学习的缺点
深度学习虽然能够自动的学习模式的特征,并可以达到很好的识别精度,但这种算法工作的前提是,使用者能够提供“相当大”量级的数据。也就是说在只能提供有限数据量的应用场景下,深度学习算法便不能够对数据的规律进行无偏差的估计了,因此在识别效果上可能不如一些已有的简单算法。另外,由于深度学习中,图模型的复杂化导致了这个算法的时间复杂度急剧提升,为了保证算法的实时性,需要更高的并行编程技巧以及更好更多的硬件支持。所以,目前也只有一些经济实力比较强大的科研机构或企业,才能够用深度学习算法,来做一些比较前沿而又实用的应用。
温馨提示:内容为网友见解,仅供参考
无其他回答

如何将深度学习算法的能力移植到前端
深度学习提出了一种让计算机自动学习出模式特征的方法,并将特征学习融入到了建立模型的过程中,从而减少了人为设计特征造成的不完备性。而目前以深度学习为核心的某些机器学习应用,在满足特定条件的应用场景下,已经达到了超越现有算法的识别或分类性能。深度学习的缺点 深度学习虽然能够自动的学习模式的特征...

前端开发者如何掌握ai技术前端开发者如何掌握ai技术知识
不断学习和探索新的AI技术,并将它们应用到实际项目中,以提高自己的技能和能力。总之,前端开发者要掌握AI技术需要不断地学习和实践。通过不断地积累经验,可以更好地将AI技术应用到前端开发中,提高产品的智能化水平。前端开发者可以通过学习机器学习和深度学习等ai技术的基本概念和原理,了解ai算法的分...

陈天奇团队发布TVM:把深度学习部署到手机、树莓派等更多硬件
TVM采用编译器界的共同理念,提供两个中间表示层,以有效地将高级深度学习算法降低到多种硬件后端。在这次放出的版本中,开源的TVM软件包提供x86、ARM、OpenCL、Metal、CUDA和JavaScript的优化基元。团队正致力于增加对专业硬件加速和Nvidia GEMM优化的Volta架构的支持。TVM堆栈的目标是提供一个可重复使用的...

陈天奇寄语ACM班:拥抱未知,享受成长,全力以赴做最好的自己
第二个机器学习系统是MXNet。TensorFlow、PyTorch和MXNet并驾齐驱,MXNet更多是从开源社区成长出来的优秀深度学习框架。第三个系统是TVM。TVM是一个编译器的服务层,将前端深度学习语言和后端机器芯片指令集结合起来。这使得中国能够打造自己的芯片或体系架构,也让国外公司有机会颠覆Nvidia等垄断。TVM发布时,...

从SGD 到 Adam —— 深度学习优化算法概览(一)
首先,SGD虽基础但易震荡,引入动量Momentum可减小震荡并加速收敛。Nesterov Accelerated Gradient(NAG)则预测未来梯度,进一步优化。Adagrad和RMSprop针对参数更新频率差异,通过自适应学习率改善稀疏数据性能。Adam结合了RMSprop和Momentum的优点,而NAdam在此基础上融合了NAG的思想。可视化分析显示,Adagrad、...

什么是深度学习算法
具体来说,深度学习算法通过输入层接收原始数据,然后经过多个隐藏层进行特征转换和抽象,最终通过输出层得到预测结果。在训练过程中,深度学习算法采用反向传播技术,根据预测结果与真实结果之间的误差,调整神经网络的参数,使得模型能够逐渐学习到数据的内在规律和表示。深度学习算法具有强大的特征学习能力和良好...

论内容理解算法
一、相对有限的算法提升空间 过去的几年,内容理解算法的演进可以分为三个方向,一次是从传统的手工特征到神经网络特征的升级,通过大数据和大算力实现效果的明显提升,也极大降低了算法人员的准入门槛;二是对内容的理解从单一模态升级为多模态&跨模态,以及以图神经网络为基础的推理能力;三是极大规模数据的模型学习,即...

简洁而优雅地展示你的算法和数据——streamlit教程(一) 原理介绍与布 ...
要快速展示算法和数据,无需前端经验,Python的streamlit框架是一个理想选择。它为深度学习工程师提供了一个便捷的工具,让他们能在5-10分钟内创建一个满足团队协作需求的美观且功能齐全的Web应用。本文将分三部分介绍streamlit的使用,侧重于直观教学。首先,我们来看两个实例,一个是图像超分辨率重建的Web...

AI利用深度学习算法可以发现代码中的错误
微软推出AI工具,利用深度学习算法识别并发现代码中的错误,辅助开发者更高效、准确地调试程序。该AI工具能辨识常见错误,如不正确的符号使用、布尔运算符误用、变量滥用等。通过Python代码进行测试,验证了其识别能力。训练后的模型检测并修复错误的能力显著提高,发现Bug概率最多可达30%。该工具已用于检测...

基于改进Deeplabv3+的视频人像背景替换系统(源码&教程)
改进Deeplabv3+算法采用编码器与解码器并联结构,通过DCNN生成多维度特征,遵循ASPP规则增加感受视野,结合边缘校正通道算法对分割的人体图像进行后处理。改进后的算法前端采用空洞卷积获取浅层低级特征,后端采用vgg-16获取深层高级特征信息,输出尺寸为4的256通道特征用于图像分割。系统整合部分包含完整源码、...

相似回答