数量级

时间复杂度+常见复杂度解释

廉价感情. 提交于 2020-02-06 04:59:00
--------------------- 作者:CrankZ 来源:CSDN 原文:https://blog.csdn.net/CrankZ/article/details/84726408 版权声明:本文为博主原创文章,转载请附上博文链接! 前言 算法的效率 虽然计算机能快速的完成运算处理,但实际上,它也需要根据输入数据的大小和算法效率来消耗一定的处理器资源。要想编写出能高效运行的程序,我们就需要考虑到算法的效率。 算法的效率主要由以下两个复杂度来评估: 时间复杂度 :评估执行程序所需的时间。可以估算出程序对处理器的使用程度。 空间复杂度 :评估执行程序所需的存储空间。可以估算出程序对计算机内存的使用程度。 设计算法时,一般是要先考虑系统环境,然后权衡时间复杂度和空间复杂度,选取一个平衡点。不过,时间复杂度要比空间复杂度更容易产生问题,因此算法研究的主要也是时间复杂度,不特别说明的情况下,复杂度就是指时间复杂度。 本文只分析时间复杂度 什么是时间复杂度 了解时间复杂度之前,先了解时间频度 时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多

神经网络为什么要归一化

柔情痞子 提交于 2020-01-19 06:56:10
用神经网络的小伙伴都知道,数据需要做归一化,但是为什么要做归一化,这个问题一直模梭两可,网上也没有较全的回答,小编花费了一段时间,作了一些研究,给大家仔细分析分析,为什么要做归一化: 1.数值问题。 无容置疑,归一化的确可以避免一些不必要的数值问题。输入变量的数量级未致于会引起数值问题吧,但其实要引起也并不是那么困难。因为tansig的非线性区间大约在[-1.7,1.7]。意味着要使神经元有效,tansig( w1*x1 + w2*x2 +b) 里的 w1*x1 +w2*x2 +b 数量级应该在 1 (1.7所在的数量级)左右。这时输入较大,就意味着权值必须较小,一个较大,一个较小,两者相乘,就引起数值问题了。 假如你的输入是421,你也许认为,这并不是一个太大的数,但因为有效权值大概会在1/421左右,例如0.00243,那么,在matlab里输入 421*0.00243 == 0.421*2.43 可以看到两者不相等了,说明已经引起数值问题了。 2.求解需要 我们建立了神经网络模型后,只要找到的解足够好,我们的网络就能够正确的预测了。在训练前我们将数据归一化,说明数据归是为了更方便的求解。 那么,究竟给求解带来了什么方便呢? 这个问题不能一概而论,不同的算法,在归一化中得到的好处各不相同。假若有一个很牛B的求解算法,那完全用不着归一化,不过目前大部算法,都比较需要归一化

12.24日志

元气小坏坏 提交于 2019-12-24 14:48:41
1. multi_output还是有效果的 单输出的准确率只能达到0.9387 但是多输出的准确率最大能达到0.9439,整体也都是0.94数量级的。 单输出的loss最小是0.09340,大多数还都是0.094数量级的 而多输出可以达到0.079 综上,如果最后解码器的部分是逐层恢复分辨率的,那么多输出的训练绝对是有必要的。 来源: CSDN 作者: ---222 链接: https://blog.csdn.net/weixin_36697338/article/details/103681427