干货 | 深度学习应用中需要思考的问题

关键字全网搜索最新排名

【机器学习算法】:排名第一

【机器学习】:排名第二

【Python】:排名第三

【算法】:排名第四

我在这儿只是列出了一部分该考虑的问题,各位小伙伴们可以在下面留言区进行补充。算法学习的过程不要想当然,从实际角度切入可能会让你少走很多弯路。

对于下列问题,我们无法给出统一的回答,因为答案取决于您想要解决的具体问题。但是,我们希望本文中列出的各项因素能引导您在初期系统地思考如何选择算法和工具:

我要解决的是有监督学习问题,还是无监督问题?如果是有监督学习,那么是分类问题还是回归问题?有监督学习是有“老师”的。这位“老师”就是一个确定输入和输出数据之间关联的训练数据集。例如,您可能需要标记图像。在这种分类问题中,输入是原始像素,而输出则是图片中的事物的名称。而在回归问题中,您可能需要教授神经网络如何预测连续值,例如根据住房面积这样的输入数据来判断房子的价格。无监督学习则能通过分析未标记的数据来检测相似性或异常状况。无监督学习没有“老师”;具体应用包括图像搜索和欺诈检测等。

如果是有监督学习,需要处理的标签数量有多少?需要准确标记的标签数量越多,问题的计算强度也就越大。ImageNet的训练数据集约有1000个类别;而鸢尾花数据库则只有3个类别。

每个批次应当包含多少数据?一个批次指的是数据集中的一组样例或实例,比如一组图像。在训练过程中,一个批次的实例全部输入神经网络,网络对这些实例进行预测,然后依据所有预测误差的平均值来更新模型的权重。批次越大,两次更新之间的等待时间(或称学习步骤)就越长。批次较小意味着网络从每个批次中学到的与问题数据集相关的信息较少。如果您有大量数据,一开始不妨将批次大小设定为1000,对于一些问题可以取得较好的学习效果。

需要处理的特征数量有多少?特征数量越多,需要的内存也越大。就图像而言,第一层的特征数量等于图像所包含的像素数。所以MNIST数据集中的28 x 28像素的图像有784个特征。医疗诊断中的图像则可能有14兆像素。

同样的问题,另一种表述是:应当选择哪种网络架构?微软研究院开发的Resnet网络在最近的ImageNet大赛中获得冠军,该网络有150个层。在其他条件相同的情况下,层数越多,需要处理的特征越多,所需要的内存也就越大。多层感知器(MLP)中的一个稠密层的特征密集度要远高于一个卷积层。人们之所以使用包含二次抽样层的卷积网络,正是因为这样可以大刀阔斧地“修剪”需要运算的特征。

要用怎样的方法来调试神经网络?许多人可能还对神经网络调试感到有些云里雾里。具体的操作方式有以下几种。可以根据实践经验来调试:观察网络的F1值,然后调整超参数。您也可以用超参数优化工具来实现一定程度的自动化调试。最后,您还可以采用示意性方法,比如用一个GUI来明确显示误差下降的速度以及激活分布的状况。

模型训练需要多少数据?怎样找到这些数据?

硬件:使用GPU、CPU还是两者并用?用单一GPU系统还是分布式系统?目前许多研究是用1~4个GPU的系统开展的。企业级解决方案通常需要更多资源,因此还必须使用大型CPU集群。

要使用哪种数据加工管道?如何进行数据的提取、转换和加载(ETL)?数据是在Oracle数据库中吗?还是在Hadoop集群上? 数据是在本地还是云端?

如何提取数据中的特征?虽然深度学习可以自动提取特征,但您可以用不同形式的特征工程来减轻计算负荷,加快训练速度,尤其是在特征比较稀疏的情况下。

应使用何种非线性函数、损失函数和权重初始化方式?非线性函数是与深度神经网络中每个层相对应的激活函数,可能是sigmoid函数、修正线性单元或其他函数。每种非线性函数通常与特定的损失函数搭配。

解决这个问题的最简架构是什么?并非所有人都愿意或有能力用Resnet来进行图像分类。

网络在哪里进行训练?模型要部署到哪里?需要与哪种平台集成?大多数人直到完成一个的原型时才开始思考这些问题,此时他们往往得用可扩展性更强的工具来重写自己的网络。您应当提前考虑最终需要使用的是Spark、AWS、Hadoop,还是别的平台。

我在这儿只是列出了一部分该考虑的问题,各位小伙伴们可以在下面留言区进行补充。算法学习的过程不要想当然,从实际角度切入可能会让你少走很多弯路。

原文:DL4J(https://deeplearning4j.org/cn/questions)

原文发布于微信公众号 - 机器学习算法与Python学习(guodongwei1991)

原文发表时间:2018-02-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

想要实现深度神经网络?一张 Excel 表格就够了

34460
来自专栏ATYUN订阅号

我的神经网络不工作了!我应该做什么? 详细解读神经网络的11种常见问题

“当你正在深入研究深度学习的下一个重大突破时,或许会遇到一个不幸的挫折:你的神经网络不起作用。你去找你的老板/主管,但他们也不知道如何去解决这个问题——他们和你...

31130
来自专栏AI科技评论

学界 | MnasNet论文解读:终端轻量化模型新思路

AI 科技评论按,本文作者陈泰红(ahong007@yeah.net),他为 AI 科技评论撰写了关于 MnasNet 论文的独家解读文章。

13010
来自专栏小鹏的专栏

深度学习这些坑你都遇到过吗?

原文地址:My Neural Network isn't working! What should I do? 如果你的神经网络不工作,该怎么办?本文作者列举...

21150
来自专栏大数据挖掘DT机器学习

数据挖掘18大算法实现以及其他相关经典DM算法

算法使用方法在每个算法中给出了3大类型,主算法程序,调用程序,输入数据,调用方法如下: 将需要数据的测试数据转化成与给定的输入格式相同,然后以Client类...

41190
来自专栏新智元

深度学习的这些坑你都遇到过吗?神经网络 11 大常见陷阱及应对方法

【新智元导读】如果你的神经网络不工作,该怎么办?本文作者列举了搭建神经网络时可能遇到的11个常见问题,包括预处理数据、正则化、学习率、激活函数、网络权重设置等,...

34740
来自专栏AI黑科技工具箱

新的正则化神器:DropBlock(Tensorflow实践)

在我们测试MNIST上,3层卷积+ dropXXX,所有参数均为改变的情况下,可以提升MNIST准确率1〜2点。

1.3K60
来自专栏企鹅号快讯

深度学习的这些坑你都遇到过吗?神经网络11大常见陷阱及应对方法

如果你的神经网络不工作,该怎么办?本文作者列举了搭建神经网络时可能遇到的11个常见问题,包括预处理数据、正则化、学习率、激活函数、网络权重设置等,并提供解决方法...

43570
来自专栏悦思悦读

利用逻辑回归模型判断用户提问意图

在之前开发聊天机器人的文章里,我们讲解了如何使用在线工具LUIS (https://luis.ai) 开发Chat bot的自然语言理解模型。 在构造问题解决型...

490140
来自专栏新智元

【CVPR 2018热文】MIT提出“透明设计”网络,揭开视觉黑盒

【新智元导读】MIT和普朗克航空系统公司的研究人员合作,提出了一类“透明设计网络”,在李飞飞等人提出的视觉理解数据库CLEVR上达到了99.1%的准确率,他们设...

35450

扫码关注云+社区

领取腾讯云代金券