从零开始学点管理学学简答题 你认为决策者应具备哪些品质?为什么呢?

Spring MVC 框架在 Java 的 Web 项目中应该是无人不知嘚吧你不会搭建一个 Spring 框架?作为身为一个刚刚学习Java的我都会如果你不会的话,那可真令人忧伤下面这篇文章主要给大家介绍了关于Spring MVC從零开始的相关资料,需要的朋友可以参考下

Spring MVC是一款基于MVC架构模式的轻量级Web框架目的是将Web开发模块化,对整体架构进行解耦

支持灵活嘚URL到页面控制器的映射

提供灵活的数据验证、格式化、数据绑定机制

Spring MVC框架的整体请求流程如下:

上图中涉及到Spring MVC的几个功能组件:

前端控制器(DispatcherServlet):接收用户请求并返回请求结果。它的作用相当于一个转发器或中央处理器控制整个执行流程,对各组件进行调度降低组件之间的耦匼

处理器映射器(HandlerMapping):根据用户请求的URL,通过注解或者XML配置查找相应的处理器Handler

处理器适配(HandlerAdapter):根据映射器查找出的Handler,完成调用处理器中的方法

处理器(Handler):请求处理的具体逻辑返回数据和视图信息

视图解析器(View Resolver):解析具体视图,通过ModelAndView对象中的View信息将逻辑视图名解析成真正的视图View

請求流程具体步骤详解:

3:处理器映射器(HandlerMapping)根据配置找到相应Handler(可以更具注解或者XML配置),可能包含多个Interceptor拦截器返回给前端控制器

5:适配器交由对应Handler处理器执行

7:处理器适配器接受Handler处理器的返回结果,并将该结果返回给前端控制器(DispatcherServlet)

8:前端控制器(DispatcherServlet)接收处理器适配器返回的数据囷视图信息请求视图解析器,解析对应的视图

9:视图解析器根据View信息匹配的相应的视图结果反回给前端控制器

10:前端控制器接收具体视圖,进行视图渲染将Model数据填充到View视图中,生成最终视图

11:前端控制器向用户返回结果

1.本站不保证该用户上传的文档完整性不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

2.该文档所得收入(下载+内容+预览三)归上传者、原创者

3.登录后可充值,立即自动返金币充值渠道很便利

AutoML和神经架构搜索(NAS)是深度学習领域的新一代王者。

这些方法能快糙猛地搞定机器学习任务简单有效,高度符合当代科技公司核心价值观

它们背后原理如何,怎样使用

技术博客TowardDataScience有一篇文章,就全面介绍了关于AutoML和NAS你需要了解的一切

要了解AutoML,还得从NAS说起

在开发神经网络的过程中,架构工程事关重夶架构先天不足,再怎么训练也难以得到优秀的结果

当然,提到架构很多人会想到迁移学习:把ImageNet上训练的ResNet拿来,换个我需要的数据集再训练训练更新一下权重不就好了嘛!

这种方法的确也可行,但是要想得到最好的效果还是根据实际情况设计自己的网络架构比较靠谱。

设计神经网络架构能称得上机器学习过程中门槛最高的一项任务了。想要设计出好架构需要专业的知识技能,还要大量试错

NAS僦为了搞定这个费时费力的任务而生。

这种算法的目标就是搜索出最好的神经网络架构。它的工作流程通常从定义一组神经网络可能會用到的“建筑模块”开始。比如说Google Brain那篇NasNet论文就为图像识别网络总结了这些常用模块:

其中包含了多种卷积和池化模块。

NAS算法用一个循環神经网络(RNN)作为控制器从这些模块中挑选,然后将它们放在一起来创造出某种端到端的架构。

这个架构通常会呈现出和ResNet、DenseNet等最湔沿网络架构一样的风格,但是内部模块的组合和配置有所区别一个架构的好坏,往往就取决于选择的模块和在它们之间构建的连接

接下来,就要训练这个新网络让它收敛,得到在留出验证集上的准确率这个准确率随后会用来通过策略梯度更新控制器,让控制器生荿架构的水平越来越高

这个过程很直观了。简单来说很有小朋友搭积木的风范:让一个算法挑出一些积木,然后把它们组装在一起莋成一个神经网络。训练、测试根据这个结果来调整选积木的标准和组装的方式。

这个算法大获成功NasNet论文展现出非常好的结果,有一蔀分原因是出于他们做出的限制和假设

论文里训练、测试NAS算法发现的架构,都用了一个比现实情况小得多的数据集当然,这是一种折衷的方法要在ImageNet那么大的数据集上训练验证每一种搜索结果,实在是太耗费时间了

所以,他们做出了一个假设:如果一个神经网络能在結构相似的小规模数据集上得到更好的成绩那么它在更大更复杂的数据集上同样能表现得更好。

在深度学习领域这个假设基本上是成竝的。

上面还提到了一个限制这指的是搜索空间其实很有限。他们设计NAS就要用它来构建和当前最先进的架构风格非常类似的网络。

在圖像识别领域这就意味着用一组模块重复排列,逐步下采样如下图所示:

这些模块也都是当前研究中常用的。NAS算法在其中所做的新工莋主要是给这些模块换个连接方式。

下面就是它发现的ImageNet最佳神经网络架构:

这篇NASNet论文带动了行业内的一次进步,它为深度学习研究指絀了一个全新方向

但是,用450个GPU来训练找到一个优秀的架构也需要训练3到4天。也就是说对于除了Google之外的普通贫民用户们,这种方法还昰门槛太高、效率太低

NAS领域最新的研究,就都在想方设法让这个架构搜索的过程更高效

2017年谷歌提出的渐进式神经架构搜索(PNAS),建议使用名叫“基于序列模型的优化(SMBO)”的策略来取代NASNet里所用的强化学习。用SMBO策略时我们不是随机抓起一个模块就试,而是按照复杂性遞增的顺序来测试它们并搜索结构

这并不会缩小搜索空间,但确实用更聪明的方法达到了类似的效果SMBO基本上都是在讲:相比于一次尝試多件事情,不如从简单的做起有需要时再去尝试复杂的办法。这种PANS方法比原始的NAS效率高5到8倍也便宜了许多。

高效神经架构搜索(ENAS)是谷歌打出的让传统架构搜索更高效的第二枪,这种方法很亲民只要有GPU的普通从业者就能使用。作者假设NAS的计算瓶颈在于需要把每個模型到收敛,但却只是为了衡量测试精确度然后所有训练的权重都会丢弃掉。

因此ENAS就要通过改进模型训练方式来提高效率。

在研究囷实践中已经反复证明迁移学习有助在短时间内实现高精确度。因为为相似任务训练的神经网络权重相似迁移学习基本只是神经网络權重的转移。

ENAS算法强制将所有模型的权重共享而非从零开始训练模型到收敛,我们在之前的模型中尝试过的模块都将使用这些学习过的權重因此,每次训练新模型是都进行迁移学习收敛速度也更快。

下面这张表格表现了ENAS的效率而这只是用单个1080Ti的GPU训练半天的结果。

深喥学习新方法AutoML

很多人将AutoML称为深度学习的新方式认为它改变了整个系统。有了AutoML我们就不再需要设计复杂的深度学习网络,只需运行一个預先设置好的NAS算法

最近,Google提供的Cloud AutoML将这种理念发挥到了极致只要你上传自己的数据,Google的NAS算法就会为你找到一个架构用起来又快又简单。

AutoML的理念就是把深度学习里那些复杂的部分都拿出去你只需要提供数据,随后就让AutoML在神经网络设计上尽情发挥吧这样,深度学习就变嘚像插件一样方便只要有数据,就能自动创建出由复杂神经网络驱动的决策功能

不过,AutoML价格也并不算亲民每小时收费20美元。此外┅旦你开始训练,则无法导出模型并且得用谷歌提供的API在云上运行你的网络,这些限制看起来都不是很方便.

AutoKeras也是一个使用了ENAS算法的GitHub项目可以使用pip安装。它是用Keras编写的因此很容易控制和使用,甚至可以自己深入研究ENAS算法并尝试进行一些改动

如果你喜欢用TensorFlow或者Pytorch,也有一些开源项目可用:

总的来说若你想使用AutoML,现在已经有很多不同的选择这完全取决于你是否会使用你想要的算法,以及你对这件事的预算如何

过去几年,在深度学习工作的自动化上整个领域都在大步向前,让深度学习更贴近大众、更易用

不过,进步的空间永远都有

架构搜索已经越来越高效了,用ENAS一个GPU一天就能找出一种新的网络架构。的确鹅妹子嘤但是这个搜索空间依然非常有限,而且现在NAS算法所用的基本结构和模块还是人工设计的,只是将组装的过程自动化了

将来要想取得重大突破,在更广阔的搜索范围里搜索真正的新架构是一个重要方向

如果这样的算法出现,甚至能为我们揭示庞大复杂深度神经网络中隐藏的秘密

当然,要实现这样的搜索空间需偠设计出更高效的算法。

最后附上原文传送门:

这篇文章全面介绍了用来自动寻找神经网络架构的AutoML,量子位之前还介绍过很多深度学习其他工作的自动化框架比如自动特征工程、自动调参等等。

我要回帖

更多关于 从零开始学点管理学 的文章

 

随机推荐