我在网上看到你发的流体手环制作方法 没有看到图片 能说明一下是怎么编的吗?

我想买一辆带北京牌的车问一下需要什么手续2个回答rxby0126如果您是北京地区的户口,首先应该具有机动车驾驶证,且名下无机动车;然后参加机动车牌照的摇号;摇到号牌后方可购车上牌。如果您不是北京户口,需要先取得摇号资格。jzc124参加摇号其他回答热门问答1234567891011121314151617181920查看更多21222324252627282930相关问答1个回答Kelvin_411、进入控制面板,可以点击windows按钮,选择控制面板。
2、点击用户账户。
3、选择更改账户。
4、选择计算机管理员。
5、选择创建密码。
6、输入自己的密码。
...1个回答Lvst946O72燃气灶的技术已经很成熟了,各家的灶其实都差不多,技术上不会说谁碾压谁。区别较大的就是广告打的多不多,其实对质量并没有什么帮助。 所以小牌子就不好么?不一定。只要它能上市,就是质量没...1个回答longdexinmengFLOCELL EDF 系列聚氨酯改性橡胶颗粒减振垫是洛赛声学针对国内市场对建筑分户楼板与轨道道床振动与传声问题开发出来优质创新产品,广泛应用于对声环境要求较高的各类建筑与有砟轨道...1个回答Hdfvgddvi花旗松和樟子松都是松科常绿树种。花旗松是高大乔木最高可达百米,胸径在10米左右。树皮厚,深裂成鳞状。叶条形。长1.5—3厘米,先端钝或微尖,上面深绿色,下面色较淡,有两条灰绿色气孔...1个回答木棉纱快乐普通PTFE管是白色不透明的,主要有导管、软管、管道内衬管、编织增强管等。PTFE管具有优异的耐高低温性能和卓越的耐化学药品性,可以输送温度高达260℃的液体或气体,而且化学纯度高...1个回答妮露WWM其实嘛,这个还是可以的当然了,每个人都有每个人的看法的都有各人的喜好的都是不一样的的。自己挑一下比较好。1个回答广平王元赞你可以准备一个厨房快洁品,厨房橱柜灶台、瓷砖瓷片、玻璃门窗等各种硬质表面上的油污都能快速清洁干净,使用方便快捷,而且对人没有任何伤害。3个回答吴凌007实木的最好,也要看你选择什么木的了。我家定制的是松木的,不贵才两千多 定制带滑梯的
价格不算多,主要是孩子很喜欢玩,爬上爬下的
是在网上圆梦家居定的,把样式要求给老板
当时...2个回答失重的大猫1.有吊顶的,用吊顶型喷头,设在吊顶下; 2.无吊顶的,溅水盘距离屋顶板下底0.075m~0.55m,视距离梁的水平距离决定。 3.&0.8m的有可燃物的吊顶内须增设一排喷头,一般...1个回答围观黄狗572052家里盖房子不又省块砖嘛? 而乐而不为。免费验房免费设计黄道吉日建材优惠家具定制&figure&&img src=&https://pic4.zhimg.com/v2-2b5eac1b9f9de07beffa1_b.jpg& data-rawwidth=&720& data-rawheight=&345& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&https://pic4.zhimg.com/v2-2b5eac1b9f9de07beffa1_r.jpg&&&/figure&&p&作者 | Ray&/p&&p&【磐创AI导读】:本文主要分享了机器学习需要注意的几个面试问题。&/p&&p&&br&&/p&&p&在过去的几个月里,我面试了许多公司涉及数据科学和机器学习的实习岗位。介绍一下我的背景,我研究生期间的方向是机器学习,计算机视觉,并且以前大部分时间都是在研究学术,但在早期有8个月的创业经历(与ML无关)。我面试的岗位包括数据科学、传统机器学习、自然语言处理或者是计算机视觉,并且面试的都是像亚马逊、特斯拉、三星、Uber、华为这些大公司,也有许多创业公司。&/p&&p&&br&&/p&&p&今天,我将会分享所有我面试时遇到的问题,并分享如何去回答这些问题。这些问题中有些是比较正常的并且有一定的理论背景,但有一些问题则很有创新性。对于一些普通的面试题,我就简单的列一下,因为这些题在网上都很容易找到。主要深入讲解一下比较少见的面试。我希望阅读这篇文章后,能够帮助你在机器学习面试中表现的更好,并且找到你梦寐以求的工作。&/p&&p&&br&&/p&&p&让我们开始吧:&/p&&p&
1. 如何权衡偏差和方差?&br&&/p&&p&2. 什么是梯度下降?&/p&&p&3. 解释一下过拟合和欠拟合,如何解决这两种问题?&/p&&p&4. 如何处理维度灾难?&/p&&p&5. 什么是正则化项。为什么要使用正则化,说出一些常用的正则化方法?&/p&&p&6. 讲解一下PCA原理&/p&&p&7. 为什么在神经网络中Relu激活函数会比Sigmoid激活函数用的更多?&/p&&p&&br&&/p&&p&&b&8. 什么是数据标准化,为什么要进行数据标准化?&/b&&/p&&p&我认为这个问题需要重视。数据标准化是预处理步骤,将数据标准化到一个特定的范围能够在反向传播中保证更好的收敛。一般来说,是将该值将去平均值后再除以标准差。如果不进行数据标准化,有些特征(值很大)将会对损失函数影响更大(就算这个特别大的特征只是改变了1%,但是他对损失函数的影响还是很大,并会使得其他值比较小的特征变得不重要了)。因此数据标准化可以使得每个特征的重要性更加均衡。&/p&&p&&br&&/p&&p&&b&9. 解释什么是降维,在哪里会用到降维,它的好处是什么?&/b&&/p&&p&降维是指通过保留一些比较重要的特征,去除一些冗余的特征,减少数据特征的维度。而特征的重要性取决于该特征能够表达多少数据集的信息,也取决于使用什么方法进行降维。而使用哪种降维方法则是通过反复的试验和每种方法在该数据集上的效果。一般情况会先使用线性的降维方法再使用非线性的降维方法,通过结果去判断哪种方法比较合适。而降维的好处是:&/p&&p&
(1)节省存储空间;&/p&&p&
(2)加速计算速度(比如在机器学习算法中),维度越少,计算量越少,并且能够使用那些不适合于高维度的算法;&/p&&p&
(3)去除一些冗余的特征,比如降维后使得数据不会既保存平方米和平方英里的表示地形大小的特征;&/p&&p&
(4)将数据维度降到2维或者3维使之能可视化,便于观察和挖掘信息。&/p&&p&
(5)特征太多或者太复杂会使得模型过拟合。&/p&&p&&br&&/p&&p&&b&10. 如何处理缺失值数据?&/b&&/p&&p&数据中可能会有缺失值,处理的方法有两种,一种是删除整行或者整列的数据,另一种则是使用其他值去填充这些缺失值。在Pandas库,有两种很有用的函数用于处理缺失值:isnull()和dropna()函数能帮助我们找到数据中的缺失值并且删除它们。如果你想用其他值去填充这些缺失值,则可以是用fillna()函数。&/p&&p&&br&&/p&&p&&b&11. 解释聚类算法&/b&&/p&&p&请参考&i&(&a href=&https://link.zhihu.com/?target=https%3A//towardsdatascience.com/the-5-clustering-algorithms-data-scientists-need-to-know-a36d136ef68--& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&towardsdatascience.com/&/span&&span class=&invisible&&the-5-clustering-algorithms-data-scientists-need-to-know-a36d136ef68--&/span&&span class=&ellipsis&&&/span&&/a&&/i&详细讲解各种聚类算法&i&)&/i&&/p&&p&&br&&/p&&p&&b&12. 你会如何进行探索性数据分析(EDA)?&/b&&/p&&p&EDA的目的是去挖掘数据的一些重要信息。一般情况下会从粗到细的方式进行EDA探索。一开始我们可以去探索一些全局性的信息。观察一些不平衡的数据,计算一下各个类的方差和均值。看一下前几行数据的信息,包含什么特征等信息。使用Pandas中的&a href=&https://link.zhihu.com/?target=http%3A//df.info%28%29& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&df.info()&/span&&span class=&invisible&&&/span&&/a&去了解哪些特征是连续的,离散的,它们的类型(int、float、string)。接下来,删除一些不需要的列,这些列就是那些在分析和预测的过程中没有什么用的。&/p&&p&&br&&/p&&p&比如:某些列的值很多都是相同的,或者这些列有很多缺失值。当然你也可以去用一些中位数等去填充这些缺失值。然后我们可以去做一些可视化。对于一些类别特征或者值比较少的可以使用条形图。类标和样本数的条形图。找到一些最一般的特征。对一些特征和类别的关系进行可视化去获得一些基本的信息。然后还可以可视化两个特征或三个特征之间的关系,探索特征之间的联系。&/p&&p&&br&&/p&&p&你也可以使用PCA去了解哪些特征更加重要。组合特征去探索他们的关系,比如当A=0,B=0的类别是什么,A=1,B=0呢?比较特征的不同值,比如性别特征有男女两个取值,我们可以看下男和女两种取值的样本类标会不会不一样。&/p&&p&&br&&/p&&p&另外,除了条形图、散点图等基本的画图方式外,也可以使用PDF\CDF或者覆盖图等。观察一些统计数据比如数据分布、p值等。这些分析后,最后就可以开始建模了。&/p&&p&&br&&/p&&p&一开始可以使用一些比较简单的模型比如贝叶斯模型和逻辑斯谛回归模型。如果你发现你的数据是高度非线性的,你可以使用多项式回归、决策树或者SVM等。特征选择则可以基于这些特征在EDA过程中分析的重要性。如果你的数据量很大的话也可以使用神经网络。然后观察ROC曲线、查全率和查准率。&/p&&p&&br&&/p&&p&&b&13. 你是怎么考虑使用哪些模型的?&/b&&/p&&p&其实这个是有很多套路的。我写了一篇关于如何选择合适的回归模型,链接在这&i&(&a href=&https://link.zhihu.com/?target=https%3A//towardsdatascience.com/selecting-the-best-machine-learning-algorithm-for-your-regression-problem-20c330bad4ef& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&towardsdatascience.com/&/span&&span class=&invisible&&selecting-the-best-machine-learning-algorithm-for-your-regression-problem-20c330bad4ef&/span&&span class=&ellipsis&&&/span&&/a&)&/i&。&/p&&p&&br&&/p&&p&&b&14. 在图像处理中为什么要使用卷积神经网络而不是全连接网络?&/b&&/p&&p&这个问题是我在面试一些视觉公司的时候遇到的。答案可以分为两个方面:首先,卷积过程是考虑到图像的局部特征,能够更加准确的抽取空间特征。如果使用全连接的话,我们可能会考虑到很多不相关的信息。其次,CNN有平移不变性,因为权值共享,图像平移了,卷积核还是可以识别出来,但是全连接则做不到。&/p&&p&&br&&/p&&p&&b&15. 是什么使得CNN具有平移不变性?&/b&&/p&&p&正如上面解释,每个卷积核都是一个特征探测器。所以就像我们在侦查一样东西的时候,不管物体在图像的哪个位置都能识别该物体。因为在卷积过程,我们使用卷积核在整张图片上进行滑动卷积,所以CNN具有平移不变性。&/p&&p&&br&&/p&&p&&b&16. 为什么实现分类的CNN中需要进行Max-pooling?&/b&&/p&&p&Max-pooling可以将特征维度变小,使得减小计算时间,同时,不会损失太多重要的信息,因为我们是保存最大值,这个最大值可以理解为该窗口下的最重要信息。同时,Max-pooling也对CNN具有平移不变性提供了很多理论支撑,详细可以看吴恩达的benefits of MaxPooling&i&(&a href=&https://link.zhihu.com/?target=https%3A//www.coursera.org/learn/convolutional-neural-networks/lecture/hELHk/pooling-layers& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://www.&/span&&span class=&visible&&coursera.org/learn/conv&/span&&span class=&invisible&&olutional-neural-networks/lecture/hELHk/pooling-layers&/span&&span class=&ellipsis&&&/span&&/a&)&/i&。&/p&&p&&br&&/p&&p&&b&17. 为什么应用于图像切割的CNN一般都具有Encoder-Decoder架构?&/b&&/p&&p&Encoder CNN一般被认为是进行特征提取,而decoder部分则使用提取的特征信息并且通过decoder这些特征和将图像缩放到原始图像大小的方式去进行图像切割。&/p&&p&&br&&/p&&p&&b&18. 什么是batch normalization,原理是什么?&/b&&/p&&p&Batch Normalization就是在训练过程,每一层输入加一个标准化处理。&/p&&p&&br&&/p&&p&深度神经网络之所以复杂有一个原因就是由于在训练的过程中上一层参数的更新使得每一层的输入一直在改变。所以有个办法就是去标准化每一层的输入。具体归一化的方式如下图,如果只将归一化的结果进行下一层的输入,这样可能会影响到本层学习的特征,因为可能该层学习到的特征分布可能并不是正态分布的,这样强制变成正态分布会有一定影响,所以还需要乘上γ和β,这两个参数是在训练过程学习的,这样可以保留学习到的特征。&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-f510a38bf4edc5c18501e64_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1080& data-rawheight=&499& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&https://pic4.zhimg.com/v2-f510a38bf4edc5c18501e64_r.jpg&&&/figure&&p&&br&&/p&&p&&i&来自网络&/i&&/p&&p&&br&&/p&&p&神经网络其实就是一系列层组合成的,并且上一层的输出作为下层的输入,这意味着我们可以将神经网络的每一层都看成是以该层作为第一层的小型序列网络。这样我们在使用激活函数之前归一化该层的输出,然后将其作为下一层的输入,这样就可以解决输入一直改变的问题。&/p&&p&&br&&/p&&p&&b&19. 为什么卷积核一般都是3*3而不是更大?&/b&&/p&&p&这个问题在VGGNet模型中很好的解释了。主要有这2点原因:第一,相对于用较大的卷积核,使用多个较小的卷积核可以获得相同的感受野和能获得更多的特征信息,同时使用小的卷积核参数更少,计算量更小。第二:你可以使用更多的激活函数,有更多的非线性,使得在你的CNN模型中的判决函数有更有判决性。&/p&&p&&br&&/p&&p&&b&20. 你有一些跟机器学习相关的项目吗?&/b&&/p&&p&对于这个问题,你可以从你做过的研究与他们公司的业务之间的联系上作答。 你所学到的技能是否有一些可能与他们公司的业务或你申请的职位有关? 不需要是100%相吻合的,只要以某种方式相关就可以。这样有助于让他们认为你可以在这个职位上所产生的更大价值。&/p&&p&&br&&/p&&p&&b&21. 解释一下你现在研究生期间的研究?平时都在做什么工作?未来的方向是什么?&/b&&/p&&p&这些问题的答案都跟20题的回答思路是一致的。&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-077d5b2eb12417a31cba_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&720& data-rawheight=&345& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&https://pic3.zhimg.com/v2-077d5b2eb12417a31cba_r.jpg&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&&b&总结:&/b&&/p&&p&所有在我面试数据科学和机器学习岗位的时候遇到的面试题都在这里了。希望你能喜欢这篇文章并能从中学到一些新的有用的知识!&/p&&p&【文中所含链接】:&/p&&p&[1] The 5 Clustering Algorithms Data Scientists Need to Know:&a href=&https://link.zhihu.com/?target=https%3A//towardsdatascience.com/the-5-clustering-algorithms-data-scientists-need-to-know-a36d136ef68& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&towardsdatascience.com/&/span&&span class=&invisible&&the-5-clustering-algorithms-data-scientists-need-to-know-a36d136ef68&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&br&&/p&&p&[2] select the proper regression model:&/p&&p&&a href=&https://link.zhihu.com/?target=https%3A//towardsdatascience.com/selecting-the-best-machine-learning-algorithm-for-your-regression-problem-20c330bad4ef& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&towardsdatascience.com/&/span&&span class=&invisible&&selecting-the-best-machine-learning-algorithm-for-your-regression-problem-20c330bad4ef&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&br&&/p&&p&[3] benefits of max-pooling.:&/p&&p&&a href=&https://link.zhihu.com/?target=https%3A//www.coursera.org/lecture/convolutional-neural-networks/pooling-layers-hELHk& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://www.&/span&&span class=&visible&&coursera.org/lecture/co&/span&&span class=&invisible&&nvolutional-neural-networks/pooling-layers-hELHk&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&最后,对深度学习感兴趣,热爱Tensorflow的小伙伴,欢迎关注我们的网站!&a href=&https://link.zhihu.com/?target=http%3A//www.tensorflownews.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&http://www.tensorflownews.com&/a&。我们的公众号:磐创AI。&/b&&/p&
作者 | Ray【磐创AI导读】:本文主要分享了机器学习需要注意的几个面试问题。 在过去的几个月里,我面试了许多公司涉及数据科学和机器学习的实习岗位。介绍一下我的背景,我研究生期间的方向是机器学习,计算机视觉,并且以前大部分时间都是在研究学术,但…
&p&&/p&&p&&/p&&p&前言&br&作为一名工作了4年的程序猿,今天我将站在程序员的角度以MySQL为例探索数据库的奥秘!&br&数据库基本原理&br&&br&&br&&br&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-f12f41fbd01d68c6bd71f97fa8e5ccdc_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&700& data-rawheight=&546& class=&origin_image zh-lightbox-thumb& width=&700& data-original=&https://pic4.zhimg.com/v2-f12f41fbd01d68c6bd71f97fa8e5ccdc_r.jpg&&&/figure&&p&&br&&br&&br&&br&我对DB的理解&br&&br&&br&&br&&b&第一,数据库的组成:存储 + 实例&/b&&br&不必多说,数据当然需要存储;存储了还不够,显然需要提供程序对存储的操作进行封装,对外提供增删改查的API,即实例。&br&一个存储,可以对应多个实例,这将提高这个存储的负载能力以及高可用;多个存储可以分布在不同的机房、地域,将实现容灾。&br&&b&第二,按Block or Page读取数据&/b&&br&用大腿想也知道,数据库不可能按行读取数据(Why?
^_^)。实质上,数据库,如Oracle/MySQL,都是基于固定大小(比如16K)的物理块(Block or Page,我这里就不区分统一称为Block)来实现调度和管理的。要知道Block是数据库的概念,如何对应到文件系统呢?显然需要指出“这个Block的地址在哪里”,当查找到地址后,读取固定大小的数据就相当于完成了Block的读取了。&br&数据库很聪明的,它不会仅仅只读取需要读取的Block,它还会替我们把附近的Block块都读取加载至内存。实际上,这是为了减少IO次数,提高命中率。事实上,一个Block块的附近Block也是热点数据,这种处理方式很有必要!&br&&b&第三,磁盘IO是数据库的性能瓶颈&/b&&br&毫无疑问,数据在磁盘上,少不了磁盘IO。什么磁头旋转,定位磁道,寻址的过程,就不说了,我们是程序员,也管不了这些。但是这个过程确实是非常耗时的,和内存读取不是一个数量级,所以后来出现了很多方式来减少IO,提升数据库性能。&br&比如,增加内存,让数据库把数据更多的加载至内存。内存虽好,但也不能滥用,为什么这么说呢?假设数据库中有100G数据,如果都加载至内存,也就说数据库要管理100G磁盘数据+100G内存数据,你说累不累?(数据库要处理磁盘和内存的映射关系,数据的同步,还要对内存数据进行清理,如果涉及数据库事务,又是一系列复杂操作......)不过这里需要指出的是,为了加快内存查找速度,数据库一般对内存进行HASH存放。&br&比如,利用索引,索引相比内存,是一个性价比非常高的东西,后文详细介绍MySQL的索引原理。&br&比如,利用性能更好的磁盘...(和咱们就没关系呢)&br&&b&第四,提出一些问题思考下:&/b&&br&为什么我们说利用delete删除一个表的数据较trancate一个表要慢?&br&【一个按行查找删除,多费劲;一个基于Block的体系结构删除】&br&为什么我们说要小表驱动大表?&br&【小表驱动大表会快?什么鬼?M*N和N*M不是一样的么?有鬼的地方,就有索引!】&br&&br&&br&&br&探索MySQL索引背后的原理&br&&br&&b&对于绝大数的应用系统,读写比例在10:1,甚至100:1,而且insert/update很难出现性能问题,遇到最多的,最棘手的就是select了,select优化是重中之重,显然少不了索引!&/b&&br&&br&&b&说起MySQL的索引,我们会冒出很多这些东西:BTree索引/B+Tree索引/Hash索引/聚集索引/非聚集索引...这么多,晕头!&/b&&br&&br&&br&索引到底是什么,想解决什么问题?&br&&br&&b&老生常谈了,官网说MySQL索引是一种数据结构,索引的目的就是为了提高查询效率。&/b&&br&&b&说白了,不使用索引的话,磁盘IO次数比较多!要想减少磁盘IO次数,怎么办?&/b&&br&&b&我们想通过不断缩小想要获取的数据的范围来筛选出最终想要的结果,把每次查找数据的磁盘IO次数控制在一个很小的数量级,最好是常数数量级。&/b&&br&&b&为了应对上述问题,B+Tree索引出来了!&/b&&br&&br&&br&Hello,B+Tree&br&在MySQL中,不同存储引擎对索引的实现方式是不同的,这里将重点分析MyISAM和Innodb。&br&&br&&br&&br&&br&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-0b96eff612ba007dabb6f86_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&604& data-rawheight=&413& class=&origin_image zh-lightbox-thumb& width=&604& data-original=&https://pic2.zhimg.com/v2-0b96eff612ba007dabb6f86_r.jpg&&&/figure&&p&&br&&br&&br&&br&MyISAM引擎的B+Tree索引结构&br&&br&&br&&br&&b&我们知道对于MyISAM引擎而言,数据文件和索引文件是分离的。从图中也可以看出,通过索引查找到后,就得到了数据的物理地址,然后根据地址定位数据文件中的记录即可。这种方式也叫&非聚集索引&。&/b&&br&&b&而对于Innodb引擎而言,数据文件本身是索引文件!通俗点说,叶子节点上,MyISAM存储的是记录的物理地址,而Innodb上存储的是数据内容,这种方式即&聚集索引&。&/b&&br&&b&另外一点需要注意的是,对于Innodb而言,主键索引中叶子节点存储的是数据内容,而普通索引的叶子节点中存储的是主键值!也就是说,对于Innodb的普通索引字段查找,先通过普通索引的B+Tree查找到主键后,然后通过主键索引的B+Tree进行查找。从这里你可以看出,对于Innodb而言,主键的建立非常重要!&/b&&br&&b&而对于MyISAM而言,主键索引和普通索引仅仅的区别在于主键只需要查找到一条记录即可停止,而普通索引允许重复,找到一条记录后需要继续查找,在结构上没有区别,如上图所示。&/b&&br&&br&&br&深入B+Tree&br&提几个问题:&br&&i&为什么B+Tree把真实的数据放到叶子节点,而不是内层节点?&/i&&br&&i&为什么我们说索引字段要尽可能短,最好是单调递增的?&/i&&br&&i&为什么复合索引存在最左匹配原则?&/i&&br&&i&范围查询(&,&,between,like)对最左匹配有什么影响?&/i&&br&&br&&b&关于B+Tree的一些数学理论,咱们就不玩了,至少一点可以肯定的是:数据表的数据量N=F(树的高度h,每个Block存储的索引的个数m)。在N一定的情况下,索引字段越小,那么m会越大,这意味着h将越小!树越低,当然查找的更快!&/b&&br&&b&如果内层节点存放真实的数据,显然m会变小,树将变高。&/b&&br&&b&在实际应用中,我们应该尽可能采用单调递增的字段作为主键,一方面不会使得索引的数据结构变大,减小了索引占用的空间;另一方面也不会频繁的分裂B+Tree,使得效率下降。&/b&&br&&b&比如复合索引(name,age,sex),B+Tree会优先比较name来确定下一步的搜索方向。如果突然来了个(age,sex),根本上就无从下手。这也是符合常理的,对于一本书,我们说“找到第几章第几节的XXX”,从没有听说过“找到第几节的XXX”!这是复合索引的重要特性,即最左匹配特性。&/b&&br&&b&假设存在复合索引(name,age,sex),我们在进行select的时候,并没有按照这个顺序进行,而是sex = 'man' and name = 'zfz' and age = 27,是否会使用索引呢?数据库是很聪明的,在SQL优化的时候,会自动帮助我们调整!但是如果缺失了复合索引的第一列,数据库也将无能为力呢。&/b&&br&&b&对于最左匹配,MySQL会一直向右匹配直到遇到范围查询就停止匹配。什么意思?比如复合索引(name,age,sex),对于name = 'zhangfengzhe' and age & 26 and sex = 'man',实际上只利用到了复合索引的name列。&/b&&br&&br&&br&想利用索引,就得“干净”&br&&br&什么叫“干净”?就是不要让索引参与计算!比如在索引上应用函数,很可能导致索引失效。为什么呢?&br&其实不用想,B+Tree上存储的是数据,要比较的话,需要把所有的数据都应用上函数,显然成本太大。&br&&br&&br&想建立索引,看看区分度&br&索引虽然物美价廉,但是也别乱来。count(distinct col) / count(*)可以算一下col的区分度,显然对于主键而言,就是1。区分度太低的话,可以考虑下,是否还有必要建立索引呢?&br&Hash索引&br&&br&这里并不是要深入分析Hash索引,而是要说明一下Hash的思想真是无处不在!&br&&b&在MySQL的Memory存储引擎中,存在hash函数,给一个key,通过hash函数进行计算得到地址,所以通常情况下,hash索引查找,会非常快,O(1)的速度。但是也存在hash冲突,和HashMap一样,通过单链表的形式解决。&/b&&br&思考下,hash索引是否支持范围查询呢?&br&显然是不支持的,它只能给一个KEY去查找。就如同HashMap一样,查找key包含&zhangfengzhe&的,会很快么?&br&&br&&br&&br&SQL优化神器:explain&br&&br&&br&&br&SQL优化的场景很多,网上的技巧也很多,完全记不住!&br&&b&要想彻底解决这个问题,我想只有把索引背后的数据结构和原理做适当的理解,遇到书写SQL或者SQL慢查询的时候,我们有基础去分析,再利用好explain工具去验证,就应该问题不大呢。&/b&&br&explain查询的结果,可以告诉你哪些索引正在被使用,表是如何被扫描的等等。这里我将演示个Demo。&br&&br&&br&数据表student:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-5c39d65f39d2ad81bf13_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&501& data-rawheight=&158& class=&origin_image zh-lightbox-thumb& width=&501& data-original=&https://pic2.zhimg.com/v2-5c39d65f39d2ad81bf13_r.jpg&&&/figure&&p&注意复合索引(age,address)&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-6f014fae880fe5182c9f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&700& data-rawheight=&180& class=&origin_image zh-lightbox-thumb& width=&700& data-original=&https://pic4.zhimg.com/v2-6f014fae880fe5182c9f_r.jpg&&&/figure&&p&符合最左前缀匹配&br&&br&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-96cf35b67493f1fda5bd42_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&700& data-rawheight=&173& class=&origin_image zh-lightbox-thumb& width=&700& data-original=&https://pic1.zhimg.com/v2-96cf35b67493f1fda5bd42_r.jpg&&&/figure&&p&复合索引失效&br&&br&&br&&b&OK,到这里,准备结束了,查询容易,优化不易,且写且珍惜!&/b&&/p&&p&&/p&
前言 作为一名工作了4年的程序猿,今天我将站在程序员的角度以MySQL为例探索数据库的奥秘! 数据库基本原理 我对DB的理解 第一,数据库的组成:存储 + 实例 不必多说,数据当然需要存储;存储了还不够,显然需要提供程序对存储的操作进行封装,对外提供增删…
&figure&&img src=&https://pic2.zhimg.com/v2-e309ec3af45ad599f5fe4709_b.jpg& data-rawwidth=&896& data-rawheight=&896& class=&origin_image zh-lightbox-thumb& width=&896& data-original=&https://pic2.zhimg.com/v2-e309ec3af45ad599f5fe4709_r.jpg&&&/figure&&p&像大多数新手一样,我一开始是在 StackOverflow 上搜索 Git 命令,然后把答案复制粘贴,并没有真正理解它们究竟做了什么。&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-892a2bd9ce0c9c293a7910_b.jpg& data-rawwidth=&330& data-rawheight=&478& class=&content_image& width=&330&&&/figure&&p&&br&&/p&&p&&i&Image credit: &a href=&https://link.zhihu.com/?target=https%3A//xkcd.com/1597/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&XKCD&/a&&/i&&/p&&p&我曾经想过:“如果有一个最常见的 Git 命令的列表,以及它们的功能是什么,这不是极好的吗?”&/p&&p&多年之后,我编制了这样一个列表,并且给出了一些最佳实践,让新手们甚至中高级开发人员都能从中发现有用的东西。&/p&&p&为了保持实用性,我将这个列表与我过去一周实际使用的 Git 命令进行了比较。&/p&&p&几乎每个开发人员都在使用 Git,当然很可能是 GitHub。但大多数开发者大概有 99% 的时间只是使用这三个命令:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&git add --all
git commit -am &&message&&
git push origin master
&/code&&/pre&&/div&&p&如果你只是单枪匹马,或者参加一场黑客马拉松或开发一次性的应用时,它工作得很好,但是当稳定性和可维护性开始成为一个优先考虑的事情后,清理提交、坚持分支策略和提交信息的规范性就变得很重要。&/p&&p&我将从常用命令的列表开始,使新手更容易了解 Git 能做什么,然后进入更高级的功能和最佳实践。&/p&&h2&经常使用的命令&/h2&&p&要想在仓库&i&repo&/i&中初始化 Git,你只需输入以下命令即可。如果你没有初始化 Git,则不能在该仓库内运行任何其他的 Git 命令。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&git init
&/code&&/pre&&/div&&p&如果你在使用 GitHub,而且正在将代码推送到在线存储的 GitHub 仓库中,那么你正在使用的就是远程&i&(remote)&/i&仓库。该远程仓库的默认名称(也称为别名)为 origin。如果你已经从 Github 复制了一个项目,它就有了一个 origin。你可以使用命令 git remote -v 查看该 origin,该命令将列出远程仓库的 URL。&/p&&p&如果你初始化了自己的 Git 仓库,并希望将其与 GitHub 仓库相关联,则必须在 GitHub 上创建一个,复制新仓库提供的 URL,并使用 git remote add origin &URL& 命令,这里使用 GitHub 提供的 URL 替换 &URL&。这样,你就可以添加、提交和推送更改到你的远程仓库了。&/p&&p&最后一条命令用在当你需要更改远程仓库时。如果你从其他人那里复制了一个仓库,并希望将远程仓库从原始所有者更改为你自己的 GitHub 帐户。除了改用 set-url 来更改远程仓库外,流程与 git remote add origin 相同。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&git remote -v
git remote add origin &url&
git remote set-url origin &url&
&/code&&/pre&&/div&&p&复制仓库最常见的方式是使用 git clone,后跟仓库的 URL。&/p&&p&请记住,远程仓库将连接到克隆仓库原属于的帐户。所以,如果你克隆了一个属于别人的仓库,你将无法推送到 GitHub,除非你使用上面的命令改变了 origin。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&git clone &url&
&/code&&/pre&&/div&&p&你很快就会发现自己正在使用分支。如果你还不理解什么是分支,有许多其他更深入的教程,你应该先阅读它们,再继续下面的操作。(&a href=&https://link.zhihu.com/?target=https%3A//guides.github.com/introduction/flow/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&这里是一个教程&/a&)&/p&&p&命令 git branch 列出了本地机器上的所有分支。如果要创建一个新的分支,可以使用命令 git branch &name&,其中 &name& 表示分支的名字,比如说 master。&/p&&p&git checkout &name& 命令可以切换到现有的分支。你也可以使用 git checkout -b 命令创建一个新的分支并立即切换到它。大多数人都使用此命令而不是单独的 branch 和 checkout 命令。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&git branch
git branch &name&
git checkout &name&
git checkout -b &name&
&/code&&/pre&&/div&&p&如果你对一个分支进行了一系列的更改,假如说此分支名为 develop,如果想要将该分支合并回主分支(master)上,则使用 git merge &branch& 命令。你需要先检出(checkout)主分支,然后运行 git merge develop 将 develop 合并到主分支中。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&git merge &branch&
&/code&&/pre&&/div&&p&如果你正在与多个人进行协作,你会发现有时 GitHub 的仓库上已经更新了,但你的本地却没有做相应的更改。如果是这样,你可以使用 git pull origin &branch& 命令从远程分支中拉取最新的更改。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&git pull origin &branch&
&/code&&/pre&&/div&&p&如果您好奇地想看到哪些文件已被更改以及哪些内存正在被跟踪,可以使用 git status 命令。如果要查看每个文件的更改,可以使用 git diff 来查看每个文件中更改的行。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&git status
git diff --stat
&/code&&/pre&&/div&&h2&高级命令和最佳实践&/h2&&p&很快你会到达一个阶段,这时你希望你的提交看起来整洁一致。你可能还需要调整你的提交记录,使得提交更容易理解或者能还原一个意外的有破坏性的更改。&/p&&p&git log 命令可以输出提交的历史记录。你将使用它来查看提交的历史记录。&/p&&p&你的提交会附带消息和一个哈希值,哈希值是一串包含数字和字母的随机序列。一个哈希值示例如下:c3d882aa1aa4e3d5f18bfbeac912f7。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&git log
&/code&&/pre&&/div&&p&假设你推送了一些可能破坏了你应用程序的东西。你最好回退一个提交然后再提交一次正确的,而不是修复它和推送新的东西。&/p&&p&如果你希望及时回退并从之前的提交中检出(checkout)你的应用程序,则可以使用该哈希作为分支名直接执行此操作。这将使你的应用程序与当前版本分离(因为你正在编辑历史记录的版本,而不是当前版本)。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&git checkout c3d88eaa1aa4e4d5f
&/code&&/pre&&/div&&p&然后,如果你在那个历史分支中做了更改,并且想要再次推送,你必须使用强制推送。&/p&&p&&b&注意&/b&:强制推送是危险的,只有在绝对必要的时候才能执行它。它将覆盖你的应用程序的历史记录,你将失去之后版本的任何信息。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&git push -f origin master
&/code&&/pre&&/div&&p&在其他时候,将所有内容保留在一个提交中是不现实的。也行你想在尝试有潜在风险的操作之前保存当前进度,或者也许你犯了一个错误,但希望在你的版本历史中避免尴尬地留着这个错误。对此,我们有 git rebase。&/p&&p&假设你在本地历史记录上有 4 个提交(没有推送到 GitHub),你要回退这是个提交。你的提交记录看起来很乱很拖拉。这时你可以使用 rebase 将所有这些提交合并到一个简单的提交中。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&git rebase -i HEAD~4
&/code&&/pre&&/div&&p&上面的命令会打开你计算机的默认编辑器(默认为 Vim,除非你将默认修改为其他的),提供了几个你准备如何修改你的提交的选项。它看起来就像下面的代码:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&pick 130deo9 oldest commit message
pick 4209fei second oldest commit message
pick 4390gne third oldest commit message
pick bmo0dne newest commit message
&/code&&/pre&&/div&&p&为了合并这些提交,我们需要将 pick 选项修改为 fixup(如代码下面的文档所示),以将该提交合并并丢弃该提交消息。请注意,在 Vim 中,你需要按下 a 或 i 才能编辑文本,要保存退出,你需要按下 Esc键,然后按 shift + z + z。不要问我为什么,它就是这样。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&pick 130deo9 oldest commit message
fixup 4209fei second oldest commit message
fixup 4390gne third oldest commit message
fixup bmo0dne newest commit message
&/code&&/pre&&/div&&p&这将把你的所有提交合并到一个提交中,提交消息为 oldest commit message。&/p&&p&下一步是重命名你的提交消息。这完全是一个建议的操作,但只要你一直遵循一致的模式,都可以做得很好。这里我建议使用 &a href=&https://link.zhihu.com/?target=https%3A//github.com/angular/angular.js/blob/master/CONTRIBUTING.md%23-git-commit-guidelines& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Google 为 Angular.js 提供的提交指南&/a&。&/p&&p&为了更改提交消息,请使用 amend 标志。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&git commit --amend
&/code&&/pre&&/div&&p&这也会打开 Vim,文本编辑和保存规则如上所示。为了给出一个良好的提交消息的例子,下面是遵循该指南中规则的提交消息:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&feat: add stripe checkout button to payments page
- add stripe checkout button
- write tests for checkout
&/code&&/pre&&/div&&p&保持指南中列出的类型&i&(type)&/i&的一个优点是它使编写更改日志更加容易。你还可以在页脚&i&footer&/i&(再次,在指南中规定的)中包含信息来引用问题&i&issue&/i&。&/p&&p&&b&注意:&/b&如果你正在协作一个项目,并将代码推送到了 GitHub,你应该避免重新引用(rebase)并压缩(squash)你的提交。如果你开始在人们的眼皮子底下更改版本历史,那么你可能会遇到难以追踪的错误,从而给每个人都带来麻烦。&/p&&p&Git 有无数的命令,但这里介绍的命令可能是您最初几年编程所需要知道的所有。&/p&&hr&&p&Sam Corcos 是 &a href=&https://link.zhihu.com/?target=http%3A//sightlinemaps.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Sightline Maps&/a& 的首席开发工程师和联合创始人,Sightline Maps 是最直观的 3D 打印地形图的平台,以及用于构建 Phoenix 和 React 的可扩展生产应用程序的中级高级教程网站 &a href=&https://link.zhihu.com/?target=http%3A//learnphoenix.io/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&LearnPhoenix.io&/a&。使用优惠码:free&i&code&/i&camp 取得 LearnPhoenix 的20美元。&/p&&p&(题图:&a href=&https://link.zhihu.com/?target=https%3A//octodex.github.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub Octodex&/a&)&/p&&hr&&p&via: &a href=&https://link.zhihu.com/?target=https%3A//medium.freecodecamp.org/git-cheat-sheet-and-best-practices-c6ce5321f52& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&medium.freecodecamp.org&/span&&span class=&invisible&&/git-cheat-sheet-and-best-practices-c6ce5321f52&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&作者:&a href=&https://link.zhihu.com/?target=https%3A//medium.freecodecamp.org/%40SamCorcos%3Fsource%3Dpost_header_lockup& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Sam Corcos&/a& 译者:&a href=&https://link.zhihu.com/?target=https%3A//github.com/firmianay& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&firmianay&/a& 校对:&a href=&https://link.zhihu.com/?target=https%3A//github.com/wxy& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&wxy&/a&&/p&&p&本文由 &a href=&https://link.zhihu.com/?target=https%3A//github.com/LCTT/TranslateProject& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&LCTT&/a& 原创编译,&a href=&https://link.zhihu.com/?target=https%3A//linux.cn/article-8841-1.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Linux中国&/a& 荣誉推出&/p&
像大多数新手一样,我一开始是在 StackOverflow 上搜索 Git 命令,然后把答案复制粘贴,并没有真正理解它们究竟做了什么。 Image credit: 我曾经想过:“如果有一个最常见的 Git 命令的列表,以及它们的功能是什么,这不是极好的吗?”多年之后,我编制…
&h2&&b&常考面试算法题类型总结&/b&&/h2&&p&结合2017春招和秋招真题,以下几类算法题最常考,汇总了一下:&/p&&p&&br&&/p&&p&&b&一、暴力枚举&/b&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/e3dd485dd23a& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&好多鱼!&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/e110bcd8fad& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&DNA合成&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/c3e1bb2c9& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&连续整数&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/46eb436ebf9c9& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&序列和&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/9c4c9d10e3dbe6cea22b7f& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&01翻转&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/ccd7& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&最长公共连续子串&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/0c5d9dcb75c8c01bc4c6a& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&组装三角形&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/2b48f8c321aeb3492be9& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&最小的矩形&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/9fbb4d95ee859fbe8f4ec& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&字符串分类&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/cff8c9fa8c& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&优美的回文串&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/5cd7e80b526& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&赶去公司&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/ab423db91b1c109c133a52& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&调整队形&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/df5bb962ad58d91804ca& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&集合&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/79ed2f61eef7448aab10efe& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&涂棋盘&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/0b821b5deade1d304b976b2& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&小易记单词&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/44d0ee89b51bdf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&分饼干&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/f3aaf8fedcea43c6b12ab& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&买帽子&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/b96ad7a77fac& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&度度熊回家&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/c3f8d56fc9be4d55a36b0cf786c83ece& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&寻找三角形&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/adc291e7e79f452c8bd3a& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&有趣的排序&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/99fa7be28d5f4a9d9aa3c98a6a5b559a& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&神奇数&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/b2b816e20e8343b49abbaf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&添加字符&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/c55f4f15cc3f4ff0adede7f9c69fa0c1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&数组变换&/a&&/p&&p&&br&&/p&&p&&b&二、动态规划&/b&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/3a003cb6afa603e01d8b52& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&页码统计&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/b8bcaaa8c1af1328cab2432& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&创造新世界&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/9babcda77fa& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&双核处理&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/efe2f75a56934a& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&堆砖块&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/621eba479& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&不等式数列&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/4e6d88eba5db8f511692& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&牛牛的数列&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/7e7ccd90fefeb2190ad2& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&暗黑的字符串&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/7f24eb2ce& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&数字和为sum的方法数&/a&&/p&&p&&br&&/p&&p&&b&三、DFS/BFS&/b&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/d64d259eee1ea4be74030& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&推箱子&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/728fcf136cafd2b181da& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&工作安排&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/aec045ce9273beebdfe029ee& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&幸运的袋子&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/5ee8df553d82ad8898c3& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&饥饿的小易&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/814870baeec8& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&跳石板&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/571cfbeb5c0bfd2eb0a8ddf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&地下迷宫&/a&&/p&&p&&br&&/p&&p&&b&四、数学&/b&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/fb511c3f1ace& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&超级素数幂&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/f216fb2b6fa84fcbbaa0d2& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&找整除&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/79c639e02bc94e6b919edc5e& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&魔力手环&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/5b9f882970eca84b4785a& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&混合颜料&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/49cb3d0b28954decac5296& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&最大的奇约数&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/6ffdd7ec6a8aa3e7a332a& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&末尾0的个数&/a&&/p&&p&&br&&/p&&p&&b&五、模拟实现&/b&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/41cb7d4edd596d89ad12a2& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&平衡数&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/0df64aacd1e2d3e46abc6& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&消除重复元素&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/5f5388ceccca& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&奇怪的表达式求值&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/8c3df6efc81& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&变换次数&/a&&/p&&p&&br&&/p&&p&&b&六、贪心算法&/b&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/2d3f6ddd82da445d804c95db22dcc471& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&排序子序列&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/6736cc3ffd7dee89be789b& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&组队竞赛&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/2414bad33d6e287b61f3d& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&训练部队&/a&&/p&&p&&br&&/p&&p&&b&七、字符串算法&/b&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/questionTerminal/9d5fbeb91cd7d& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&循环单词&/a&&/p&&p&&br&&/p&&h2&&b&练习题库推荐&/b&&/h2&&p&推荐两个题库,面试算法题基本上都是从里面出的或者变形而来:&/p&&p&1、&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/ta/coding-interviews& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&剑指Offer&/a&&/p&&p&2、&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/ta/leetcode& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&leetcode在线编程&/a&&/p&&p&&br&&/p&&h2&&b&算法视频推荐&/b&&/h2&&p&1、&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/study/vod/1/intro& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&直通BAT:面试算法精讲课&/a&&/p&&p&2、&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/live/124& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&牛课堂算法精讲直播讲座(2017)&/a&&/p&&p&&br&&/p&&h2&&b&互联网名企面经精选&/b&&/h2&&p&因为每家公司的侧重点不同,所以他们面试时考的题目类型也不同。如果能提前知道每家公司考题的风格,临到自己上考场就会轻松很多。整理了一些前辈们的面试经验分享给大家:&/p&&p&&br&&/p&&p&&b&阿里巴巴:&/b&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/29617& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&成都蚂蚁金服三次面试面经&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/29609& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&阿里安卓一面_笔经面经&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/29606& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&阿里前端一面_笔经面经&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/29587& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&蚂蚁金服内推一面_笔经面经&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/29576& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&7月18蚂蚁金服后台开发岗位 55分钟&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/29537& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&阿里巴巴-蚂蚁金服-数据研发岗(一面)&/a&&/p&&p&&br&&/p&&p&&b&华为:&/b&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/29614& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&【山东地区华为优招面试】纪念我的首面&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/11495& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&阿里、百度、腾讯、华为面经(均已拿到offer)&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/7789& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&【面经】技术面+综合面【华为内推】【IT应用软件开发】&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/7624& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&华为优招面经-干货&/a&&/p&&p&&br&&/p&&p&&b&好未来:&/b&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/29366& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&[面经] 好未来 iOS实习生面经&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/29376& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&好未来-php实习面经&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/9855& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&好未来(已拿offer)+ CVTE(3面通过)&/a&&/p&&p&&br&&/p&&p&&b&网易:&/b&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/11971& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&网易+阿里内推面经&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/7565& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&网易互联网Java内推面试经验-19号&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/10560& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&网易雷火线下笔试&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/7534& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&网易内推测试岗面经&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/8435& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&网易测试二面&/a&&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&京东:&/b&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/12514& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&2017年校招【京东面经】 哈尔滨站&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/11185& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&京东Java研发(1面+2面)&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/9311& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&京东校招一面&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/9700& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&JD(北京)复试&/a&&/p&&p&&br&&/p&&p&&b&腾讯:&/b&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/11197& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&腾讯一面,攒人品!&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/12083& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&腾讯二面三面、百度二面三面面经&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/11495& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&阿里、百度、腾讯、华为面经(均已拿到offer)&/a&&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&百度:&/b&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/12094& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&北京百度C++一面二面经验&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/12083& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&腾讯二面三面、百度二面三面面经&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/9970& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&百度 北京 机器学习/数据挖掘 提前批&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/7654& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&百度网页搜索部三次面试面经&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/7707& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&百度运维电话面一面面经&/a&&/p&&p&&br&&/p&&p&&b&美团:&/b&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/11231& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&南京美团面试--机器学习岗&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/10634& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&新鲜的美团面经,机器学习岗&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/11584& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&滴滴,美团点评,腾讯一面面经&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/16853& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&美团面经(面的晚...发的晚)&/a&&/p&&p&&br&&/p&&h2&&b&更多面经汇总&/b&:&/h2&&p&1、&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&备战秋招,17年春招面经整理合集(170篇) - 知乎专栏&/a&&/p&&p&2、&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&23家互联网名企的300多篇精华笔经面经,免费领取 - 知乎专栏&/a&&/p&&p&&br&&/p&&p&最后,祝大家都能拿到自己最想要的那份offer,加油~&/p&
常考面试算法题类型总结结合2017春招和秋招真题,以下几类算法题最常考,汇总了一下: 一、暴力枚举
&figure&&img src=&https://pic1.zhimg.com/e05be1b3b3100_b.jpg& data-rawwidth=&1445& data-rawheight=&599& class=&origin_image zh-lightbox-thumb& width=&1445& data-original=&https://pic1.zhimg.com/e05be1b3b3100_r.jpg&&&/figure&&i&Tel-Aviv大学深度学习实验室的Ofir同学写了一篇如何入门深度学习的文章,顺手翻译一下,造福生物信息狗。&/i&&p&人工神经网络最近在很多领域(例如&a href=&http://link.zhihu.com/?target=https%3A//research.facebook.com/publications/deepface-closing-the-gap-to-human-level-performance-in-face-verification/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&面部识别&/a&,&a href=&http://link.zhihu.com/?target=http%3A//blogs.microsoft.com/next//microsoft-researchers-win-imagenet-computer-vision-challenge/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&物体发现&/a&和&a href=&http://link.zhihu.com/?target=https%3A//deepmind.com/alpha-go& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&围棋&/a&)都取得了突破,深度学习变得炙手可热。如果你对深度学习感兴趣的话,这篇文章是个不错的起点。&/p&&p&&b&如果你学过线性代数,微积分,概率论和编程&/b&,我建议你从斯坦福大学的&a href=&http://link.zhihu.com/?target=http%3A//cs231n.stanford.edu/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&CS231n课程&/a&开始。这门课内容广泛,写得很高。可每次课的幻灯片都可以下载,虽然官方网站删除了配套的视频,但是你很容易就能在网上搜索到。&/p&&p&&b&如果你没有学过那些数学课&/b&,网上也有很多免费的学习材料可以用来学习必要的数学知识。&a href=&http://link.zhihu.com/?target=http%3A//ocw.mit.edu/courses/mathematics/18-06sc-linear-algebra-fall-2011/index.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Gilbert Stange的线性代数课程&/a&很适合入门。对于其他科目,edX上有MIT的&a href=&http://link.zhihu.com/?target=https%3A//www.edx.org/course/calculus-1a-differentiation-mitx-18-01-1x& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&微积分&/a&和&a href=&http://link.zhihu.com/?target=https%3A//www.edx.org/course/introduction-probability-science-mitx-6-041x-1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&概率论&/a&课程。&/p&&p&&b&如果想学习更多关于机器学习的东西&/b&,&a href=&http://link.zhihu.com/?target=https%3A//www.coursera.org/learn/machine-learning& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Andrew Ng在Coursera上的机器学习课程&/a&是最佳入门选择。除此之外,&a href=&http://link.zhihu.com/?target=https%3A//work.caltech.edu/telecourse.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Yaser Abu-Mostafa的机器学习课程&/a&更关注理论,但也很适合初学者。学习深度学习并不要求掌握机器学习,但如果能有一些了解的话还是很有帮助的。此外,学习经典的机器学习,而不仅仅是深度学习,能让我们有深厚的理论背景————因为,深度学习并不总是最佳方案。&/p&&p&&b&CS231n并不是在线深度学习课程的唯一选择。&/b&&a href=&http://link.zhihu.com/?target=https%3A//www.coursera.org/course/neuralnets& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Geoffrey Hinton的Coursera课程『用于机器学习的神经网络』(Neural Nerworks for Machine Learning)&/a&涵盖了诸多内容,&a href=&http://link.zhihu.com/?target=https%3A//www.youtube.com/playlist%3Flist%3DPL6Xpj9I5qXYEcOhn7TqghAJ6NAPrNmUBH& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Hugo Larochelle的『神经网络课』(Neural Networks Class) &/a&也是如此。这两门课都有视频材料。&a href=&http://link.zhihu.com/?target=https%3A//www.cs.ox.ac.uk/people/nando.defreitas/machinelearning/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Nando de Freitas的在线课程&/a&也带有视频、幻灯片和家庭作业。&/p&&p&&b&如果你不喜欢看视频,而是更喜欢阅读&/b&,&a href=&http://link.zhihu.com/?target=http%3A//neuralnetworksanddeeplearning.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《神经网络和深度学习》(Neural Networks and Deep Learning)&/a&是一本为深度学习的初学者撰写的在线免费书。《&a href=&http://link.zhihu.com/?target=http%3A//www.deeplearningbook.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&深度学习之书》(The Deep Learning Book)&/a&也是一本很赞的免费书,不过内容略高阶一点。&/p&&p&有了基础知识之后,还可以往这些方面发展:&/p&&ul&&li&几乎上述所有的深度学习材料都或多或少的涉及到&b&计算机视觉&/b&(Computer Vision)。&br&&/li&&li&&b&递归神经网络&/b&(Recurrent Nerual Networks)是用于解决诸如机器翻译和语音识别之类的问题的神经网络模型的基础。&a href=&http://link.zhihu.com/?target=http%3A//karpathy.github.io//rnn-effectiveness/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Andrej Karpathy关于RNN的博客文章&/a&可以帮你学习它。&a href=&http://link.zhihu.com/?target=http%3A//colah.github.io/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Christopher Olah的博客上有一篇文章&/a&用非常形象生动的方式解释了很多深度学习的概念。&a href=&http://link.zhihu.com/?target=http%3A//colah.github.io/posts/2015-08-Understanding-LSTMs/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&他关于LSTM网络的文章&/a&是一篇很不错的导论,LSTM是一种应用广泛的RNN变体。&br&&/li&&li&&b&自然语言处理&/b&:&a href=&http://link.zhihu.com/?target=http%3A//cs224d.stanford.edu/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&CS224d&/a&课程介绍了深度学习在自然语言处理中的应用。更高阶的课程来自&a href=&http://link.zhihu.com/?target=http%3A//www.kyunghyuncho.me/home/courses/ds-ga-3001-fall-2015& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Kyunghyun Cho&/a&(这里有&a href=&http://link.zhihu.com/?target=https%3A//github.com/nyu-dl/NLP_DL_Lecture_Note/blob/master/lecture_note.pdf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&课堂笔记&/a&)和&a href=&http://link.zhihu.com/?target=http%3A//u.cs.biu.ac.il/%7Eyogo/nnlp.pdf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Yoav Goldberg&/a&。&br&&/li&&li&&b&增强学习&/b&:如果你想要控制机器人,或者是在围棋比赛上战胜人类,增强学习或许是最佳选择。&a href=&http://link.zhihu.com/?target=http%3A//karpathy.github.io//rl/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Andrej Karpathy关于深度增强学习的博客文章&/a&可以帮你入门。David Silver最近也发表了一篇介绍深度增强学习的&a href=&http://link.zhihu.com/?target=https%3A//deepmind.com/blog& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&短文章&/a&。&br&&/li&&/ul&&br&&p&&b&深度学习框架&/b&:深度学习框架很多,最有名的三个应该是&a href=&http://link.zhihu.com/?target=http%3A//tensorflow.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Tensorflow&/a&(谷歌),&a href=&http://link.zhihu.com/?target=http%3A//torch.ch/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Torch&/a&(Facebook)和&a href=&http://link.zhihu.com/?target=http%3A//deeplearning.net/software/theano/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Theano&/a&(&a href=&http://link.zhihu.com/?target=https%3A//mila.umontreal.ca/en/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&MILA&/a&)。三个都很牛逼,如果一定要推荐一个的话,我建议初学者去试试Tensorflow。&a href=&http://link.zhihu.com/?target=https%3A//www.tensorflow.org/versions/r0.9/tutorials/index.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Tensorflow的教程&/a&很不错。&/p&&p&训练神经网络几乎离不开GPU。虽然不是必须的,但GPU可以帮你更快的完成工作。NVIDIA显卡是工业标准,大部分研究实验室都在用一千美元的显卡,很少有便宜货能搞定这个事情。另一个成本更低的办法是从诸如亚马逊之类的云计算服务供应商那租一个带GPU的实例(&a href=&http://link.zhihu.com/?target=https%3A//www.kaggle.com/c/facial-keypoints-detection/details/deep-learning-tutorial& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&这里有短教程&/a&)。&/p&&p&祝你好运!&/p&&p&日&/p&&p&原文地址:&a href=&http://link.zhihu.com/?target=http%3A//ofir.io/How-to-Start-Learning-Deep-Learning/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&ofir.io/How-to-Start-Le&/span&&span class=&invisible&&arning-Deep-Learning/&/span&&span class=&ellipsis&&&/span&&/a&&/p&
Tel-Aviv大学深度学习实验室的Ofir同学写了一篇如何入门深度学习的文章,顺手翻译一下,造福生物信息狗。人工神经网络最近在很多领域(例如,和)都取得了突破,深度学习变得炙手可热。如果你对深度学习感兴趣的话,这篇文章是个不错的…
好问题,让我尝试不用公式,用跨越7000年人类文明的方式,来解读e的自然之美,争取有中学基础的人就能看懂。&br&&br&e有时被称为自然常数(Natural constant),是一个约等于2.……的无理数。&br&&br&以e为底的对数称为&a href=&//link.zhihu.com/?target=http%3A//zh.wikipedia.org/wiki/%25E8%2587%25AA%25E7%%25E5%25B0%258D%25E6%& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&自然对数&/a&(Natural logarithm),数学中使用自然(Natural)这个词的还有&a href=&//link.zhihu.com/?target=http%3A//zh.wikipedia.org/wiki/%25E8%2587%25AA%25E7%%25E6%& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&自然数&/a&(Natural number)。这里的“自然”并不是现代人所习惯的“大自然”,而是有点儿“天然存在,非人为”的意思。就像我们把食品分为天然食品和加工食品,天然食品就是未经人为处理的食品。&br&&br&但这样解读“自然”这个词太浅薄了!为了还原全貌,必须穿越到2500多年前的古希腊时代。&br&&br&(你也知道,穿越剧都很长(&﹏&),不喜欢长篇大论的,可直接跳到后面看结论。)&br&&br&&br&&b&“自然”的发明&/b&&br&我们知道,人类历史上曾出现过很多辉煌的文明,例如大家熟知的四大文明:古巴比伦、古埃及、古印度河以及古代中国。&br&&br&但是要说谁对现代文明的影响最大?对不起,四大文明谁都排不上!真正对现代文明影响最大的是古希腊文明,特别是古希腊的哲学、科学思想,是整个现代文明的源头和基石。这里并不是要贬低四大文明,现代文明也从各文明继承了大量的文化遗产,只是相比古希腊要少很多。&br&&br&现代人的基础教育,无论是什么国家、什么社会制度、什么民族,在教科书里除了介绍自己的古代成就外(如四大发明),还会大篇幅的介绍古希腊的科学、哲学思想,来启蒙学生的心智,这是跨越国界的共同做法。&br&&br&大家都这样做的原因,就是因为古希腊哲学家发明了科学的思维方法和“自然”(Natural)这个词,在理论中用&b&自然&/b&来取代具体的神灵,这是人类文明史上划时代的发明。如果没有这个发明,现代文明可能还会晚出现数千年,所以这是至关重要的进步。&br&&br&在古希腊文明之外的古文明里,人们解释世间万物的运行时,总是要引入神灵等超自然、拟人化的因素。例如,得病了就认为鬼神附体,洪水泛滥就认为天神发怒,石人一出天下就可以造反了,总有一个超自然的神灵在操纵万物的运行。人们偏爱形象而戏剧化的解释,拟人化的神灵恰恰具有形象、戏剧化的特点,最易于接受和传播。现代喜欢希腊神话的人数,也远多于喜欢希腊哲学的。电视里最流行各种奇幻故事,例如狼人、吸血鬼什么的。古代人也一样,不同的是我们知道这是假的,古人则认为是真的,这成为他们理解世界运行的思维定势。&br&&br&直到公元前624年,&a href=&//link.zhihu.com/?target=http%3A//zh.wikipedia.org/wiki/%25E6%25B3%25B0%25E5%258B%%2596%25AF& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&泰勒斯&/a&的出现,才第一次用自然取代神灵的位置。&br&&figure&&img src=&https://pic4.zhimg.com/50/bef0c63ce9c856ca89f0dc80e347924c_b.jpg& data-rawwidth=&240& data-rawheight=&365& class=&content_image& width=&240&&&/figure&泰勒斯被称为“科学和哲学之祖”、“科学之父”、“哲学史上第一人”!(还有比这更牛的称号吗?)&br&&br&其实泰勒斯是个多神论者,他认为神是存在的,是神让万物有了自己内在的规律。但解释万物的运行,不能靠凭空的制造故事,要靠坚实的证据来发现这些规律,并用理性的方法解读。这就是泰勒斯的最大贡献,开创了一套认识世界的全新思维方法,他关注的是证据、规律、理性,而不是神。&br&&br&尽管泰勒斯提出的理论现在看起来很粗糙。但是人们不再需要像宗教一样,把旧理论看成是不可否定的权威结论。只要有坚实的新证据和理性的推理,旧理论可以被修改或推翻,更好的理论就可以建立起来。这是一种可靠的、&b&可进化&/b&的理论体系。相反,宗教是停止进化的、只能膨胀的理论体系,例如你只能解读圣经,但不能否定圣经。&br&&br&后来的希腊哲学家不断借鉴和发展泰勒斯的理论,建立了“自然”(φ?σι?)的概念,“自然”代表万物因为本源而发生自然而然的变化。赫拉克利特还引入了&a href=&//link.zhihu.com/?target=http%3A//zh.wikipedia.org/wiki/%25E9%E5%E6%2596%25AF& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&逻各斯&/a&(希腊语:λ?γο?,英语:Logos)的观点,用以说明万物变化的规律性。逻各斯原来是指语言、演说、交谈、故事、原则等,这里的逻各斯则主要指一种尺度、大小、分寸,即数量上的比例关系。后来对数的发明人纳皮尔就用Logos和arithmos(算法)创造了单词Logarithm 来命名对数法,经过后人简化变成了对数符号log。&br&&br&几乎和古希腊同一时代,春秋战国时代的诸子百家也提出过一些相似的思想,例如老子的道。但很可惜,这种蓬勃发展的思想爆炸因为诸多原因戛然而止,只是昙花一现。但是限于篇幅,这里不再展开,请到最后的推荐阅读中了解。&br&&br&&br&&b&“自然”&/b&与美&br&古希腊的学者还给“自然”赋予美的含义,他们认为规律性就是一种和谐感,数学的比例是种超越肉体感官、只能靠心智才能领悟到的美。&a href=&//link.zhihu.com/?target=http%3A//zh.wikipedia.org/wiki/%25E6%25AF%%25BE%25BE%25E5%%25E6%258B%%2596%25AF& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&毕达哥拉斯&/a&就是其中最极端的代表,他对数学美的狂热追求超过了偏执的程度,美像神一样不可冒犯,&a href=&//link.zhihu.com/?target=http%3A//zh.wikipedia.org/wiki/%25E6%25AF%%25BE%25BE%25E5%%25E6%258B%%2596%25AF%25E4%25B8%25BB%25E4%25B9%2589& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&毕达哥拉斯主义&/a&走向了科学的反面,成了宗教。&br&&figure&&img src=&https://pic4.zhimg.com/50/54a54e5fddb6d8b43bde_b.jpg& data-rawwidth=&350& data-rawheight=&215& class=&content_image& width=&350&&&/figure&毕达哥拉斯主义者庆祝日出&br&&br&这种宗教的狂热驱动他和信徒们不断的去挖掘“自然”之美,并在数学之外的音乐、建筑、雕刻、绘画等领域发现了大量的比例关系,最有名的是毕达哥拉斯定理(中国叫勾股定理)。毕达哥拉斯认为所有图形中,圆是最对称的,所以圆是最完美的图形。参见&a href=&//link.zhihu.com/?target=http%3A//www.china001.com/show_hdr.php%3Fxname%3DPPDDMV0%26dname%3DSAS1L41%26xpos%3D30& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&毕达哥拉斯学派美学思想(朱光潜)&/a&&br&&br&&br&&b&“自然”思想的意义&/b&&br&雷军说得好,“在风口上,猪都会飞”!就像乔布斯开启了移动互联网时代,泰勒斯则开启了古希腊哲学时代。&br&&br&古希腊时代是一个科学、哲学大爆炸的时代,原本黑暗的天空中突然爆发出无数的新星:赫拉克利特、毕达哥拉斯、德谟克利特、苏格拉底、柏拉图、亚里士多德、阿基米德、欧几里得、希波克拉底等等,都因为得益于这套思维方法,发现了大量的自然规律,成为各学科领域里开天辟地的先贤。&br&&br&古希腊人还把自然的概念引入社会领域,来分析社会中的现象和规律。例如亚里士多德就曾经激烈的抨击借贷,认为在所有赚钱方法中,利息是最&b&不自然&/b&的。&br&&br&以自然作为基础,会比人为强制规定作为基础更稳定和可靠。&br&例如:&br&英尺(foot)的长度就是根据人的脚长来人为规定,人的脚长差异太大,历史上英尺发生过很多次变化,不稳定,这是不自然的。&br&而&a href=&//link.zhihu.com/?target=http%3A//zh.wikipedia.org/wiki/%25E6%25B5%25B7%25E9%C& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&海里&/a&的长度则接近自然,如下图,海里是根据地球周长计算的,是1角分的长度,变化就极小。&br&&figure&&img src=&https://pic2.zhimg.com/50/a8fc15fd76e2f5f0f85

我要回帖

更多关于 流体手环 的文章

 

随机推荐