是否有必要同其它指标值一同进行指标无量纲化化变换,以求

您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
海水-卤水太阳池热性能与研究和梯度层动力稳定性分析.pdf 149页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
优秀硕士毕业论文,完美PDF格式,可在线免费浏览全文和下载,支持复制编辑,可为大学生本专业本院系本科专科大专和研究生学士硕士相关类学生提供毕业论文范文范例指导,也可为要代写发表职称论文提供参考!!!
你可能关注的文档:
··········
··········
人连理工人学博七学位论文
随着人口的激增和工业的迅速发展,能源短缺问题日益严重,太阳能是最理想的能
源之一。盐梯度太阳池作为太阳能利用的一种形式,兼有对太阳辐射能的吸收和储存作
用,不仅是当今传统能源的重要补充,更是未来太阳能应用的重要形式。
本文以盐梯度太阳池为研究对象,从实验和理论两个方面进行分析。各部分主要工
作及结论总结如下:
建立了表面积2.8x2.3m2深0.8m的实验太阳池,结合室内和室外小型实验,对实验
太阳池的温度、盐度发展以及浊度分布进行了实验测定。第一次实验于2006年8月份
开始,在运行后第17天达到最高温度45.7。C,与同类实验研究结果比较,本实验太阳
池具有较好的升温效果。卤水的透光性较差,直接影响太阳池对太阳辐射的吸收。从两
方面研究了卤水灌注太阳池的浊度变化:一是研究卤水降浊处理后,卤水中藻类的再滋
生情况;另一方面比较了雨水分别降落到卤水和盐水太阳池中后池内浊度的变化。实验
表明絮凝降浊对苦卤中藻类的生长有一定的抑制作用,雨水在卤水中的沉降速度明显低
于在盐水中的沉降速度。
为提高太阳池储热层温度,在一系列模拟实验结果的基础上,提出在太阳池底部添
加锅炉渣的方法。从三个方面进行研究:在模拟的小型太阳池中的一系列实验研究,结
果表明,底部添加材料的多孔性有利于太阳池储热层温度升高,与鹅卵石等石材相比,
锅炉渣的升温和保温作用更好。后来在实验太阳池内的实验也证明了这一点;采用一维
模型模拟大面积太阳池添加锅炉渣床的温度发展,考虑多孔介质层的孔隙率和厚度对热
性能的影响,结果表明孔隙率减小或厚度增加有利于储热层温度增高;最后在实验太阳
池内进行了为期近一个月的实验。
从太阳池提取热量并加以应用是建立太阳池的最终目的。本文利用实验太阳池加热
淡水,进行了短期换热实验。在实验太阳池底部添加锅炉渣的基础上,于2007年8月
份进行了提热实验。对一个容积为56L的淡水桶中的淡水加热,连续两天的提热实验结
果表明,第一天水桶中的水温度最高达到38.40C。理论方面,对于客观条件一定的太阳
池给出最佳水箱容积的计算方法。
盐梯度层是太阳池最重要的组成部分,太阳池的热性能主要取决子该层的稳定性。
文章最后主要对梯度层的稳定性进行了分析。在线性稳定性分析的基础上,采用数值方
法,得出梯度层的非线性动力稳定性的数值解。分析了太阳辐射吸收和提热量对于稳定
性的影响以及二者的综合影响:当梯度层的盐水比较清澈时,提热量的大小对于临界稳
定性砌‘的大小影响较大,而池水比较浑浊时,提热量的大小对于稳定性的影响较小:
海水.卤水太同I池热性能研究军|l梯度层动力稳定性分析
盐梯度层的非线性稳定性问题不能够采用分析的方法求解,根据变步长四阶
析得到的临界稳定性瑞利数(舷‘)能够很好地界定了系统的渐进稳定性状态。根据Nusselt
数确定的临界稳定性瑞利数R口N略大于线性稳定性分析得到的临界瑞利数砌c,当盐瑞
利数凡在10s和106数量级上,砌N与砌。的差距仅为1%左右。
关键词:盐梯度太阳池;实验;数值模拟;非线性稳定性
人连理:j:火学博七学位论文
PerformanceOHSeawater-bitternSolar
DynamicStabilityAnalysis
,nIeneedfor
increaseinthe
energyincreasingsharplyowing rapid
isoneofthemost
population
technologies.Solar
developing
正在加载中,请稍后...您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
建设银行大连分行经营绩效评估指标体系分析.pdf 56页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
建设银行大连分行经营绩效评估指标体系分析
你可能关注的文档:
··········
··········
建设银行大连分行经营续效评估指标体系研究
在现代企业管理系统中,股东(所有者)、总经理、部门经理乃至个人之间层
层分权,层层委托责任,使得各层次的委托人与代理人的关系问题成为企业管理的
核心问题。在这种情况下,各层次委托人对代理人的经营管理行为进行引导,对相
应代理人的经营绩效进行评估成为组织经营管理的前提与重要环节。
中国建设银行大连分行作为典型的国有商业银行,无论在企业价值评判,还是
在经营者绩效评估上,都有其特殊性。因而,建立一套适合于建设银行大连分行的
经营绩效评估指标体系对企业发展具有重要的现实意义。
本文首先对经营绩效的概念进行了界定,认为经营绩效是组织在一定经营期间
内,为实现自身的战略目标在经营、成长、发展等方面所取得的成果以及在取得这
些成果的过程中所表现出来的发展能力。
其次,根据建设银行大连分行的发展战略重点和商业银行经营的三原则,将该
大连建行的经营绩效目标概括为综合效益状况、资产流动状况、资产质量状况和发
展能力状况四个方面。并且依照指标体系构建的原则和影响指标取舍的因素,结合
商业银行竞争的行业特征,在四个经营绩效目标下分别选取了具体的指标。
然后,选择模糊综合评价方法,依次经过确定各指标层权重、选择各指标评分
方法、按照已经制定评价尺度进行计算三个步骤,对建设银行大连分行经营绩效进
行了综含评估。
最后,以大连建行近年来的具体数据资料为基础,将其应用于本文所建立的经
营绩效评估体系,得出中国建设银行大连分行近年来经营绩效的评估结果,并依据
评估结果对大连建行经营中存在的具体问题进行了分析。
关键词:经营绩效;绩效评估;指标体系
建设银行大连分行经营绩效评估指标体系研究
Inthemodern
administrative
enterprise‘s
system,among
manager,linemanager individuaI,trustresponeibility
ringuponring.
andrelationissueof
levelbecome
make client
administration
clientdifferent
case.every
providesguidanceagentls
behavior,evaluatingmanagementperformance
management
corresponding
becomesthe
administration.
prerequisiteorganizingmanagement
Asastatecommercial
ofChinaConstructionBankin
正在加载中,请稍后...&p&刚好最近开了一起知乎讲座,里面讲到上面提问的问题。我在此分享一些:&/p&&p&阅读文献,不是简单地下载一篇文献后电子版或打印版阅读,在我研究生时期,也这么干,结果效率很低,特别是阅读英文文献,甚至成了入眠神器。经过国外博士和研究工作的锻炼,逐渐形成了一套有效的阅读文献的方法。&/p&&p&首先,对自己领域内的好期刊,知名学者及联系方式,著名课题组等都先去了解,并从他们研究概括(主页上会介绍)上总结大致的几个研究分支,从大局上掌握整体研究方向的情况。这样的好处是在后面阅读高质量文献时,了解作者,拉近了与作者的距离就感觉亲切,就会提高阅读效率,自然不会无聊。同时,由于了解全局研究情况,也就能快速发散性思考,联想到其他某一点的研究就能快速找到对应的学者和他/她的论文。最后,阅读时有疑问了,还可以发邮件问作者或者其他知名学者。&/p&&p&其次,针对自己的细小方向上的论文。&/p&&ul&&li&首先要熟悉论文的结构(Title, Abstract, IMRAD, Conclusion, References),根据自己的需求,去分块阅读或者全文阅读。比如,只是去了解研究方法的,那直接找到method/methodology部分泛读即可;&/li&&li&其次,先读Title, Keywords, Abstract确定研究相关度和质量,下载那些相关度大和质量高的论文,并标注题目和发表时间,并确定是精读还是泛读,归类后打印和装订;&/li&&li&先挑那些需要精读的论文进行阅读,按相关度和发表时间排序;&/li&&li&在阅读某篇论文时,先扫读标题和副标题,初步了解后,再进行阅读全文,这样脑中就有阅读的结构,不至于乱读;&/li&&li&对于科研新人,我推荐是先阅读引言,因为引言会较为详细地解释研究背景、研究现状、待解决问题、本文方法,就像开了一扇门和小径给新人,再去看图表,结论,方法,结果和讨论就有了基础;&/li&&li&对于老司机,可以直接先看图表,因为好论文中的图片和图片标题或表格就可以告诉我们就要结果。这样大致了解后,再读引言,结论,结果,讨论和方法就很快,效率也高;&/li&&/ul&&p&最后,再分享如何记笔记和思考:&/p&&p&在论文空白处记录和划出重点,并包含以下:&/p&&ol&&li&想解决什么问题?&/li&&li&为什么要解决?&/li&&li&结论是否回应了该问题?创新点是什么?&/li&&li&研究方法合理?可重复?&/li&&li&主要结果有哪些?完整和准确?&/li&&li&讨论部分是否透彻分析?&/li&&li&研究局限性和未来需要解决的问题。&/li&&/ol&&p&根据我的经验,在起步阶段,千万不要多读,而是要在精挑细选之后精读3篇左右,并把每篇论文的主要部分总结成ppt,并找到相互联系点和启发之处,不懂的地方找引用的参考文献或其他资料去扩展阅读,有疑惑之处发邮件问通讯作者。如果每篇读完都没感觉,都觉得作者讲的真好,那基本上就是你还没有读透论文!&/p&&p&要让阅读文献不再枯燥乏味,就要从单一地reading论文拓展到全局了解下的参与式阅读(engage reading),在有效策略指引下,知人(作者)知事(论文内容),才有利于提炼优秀的科研想法。&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-6fd8cecc35fa5_b.jpg& data-rawwidth=&638& data-rawheight=&479& class=&origin_image zh-lightbox-thumb& width=&638& data-original=&https://pic3.zhimg.com/50/v2-6fd8cecc35fa5_r.jpg&&&/figure&
刚好最近开了一起知乎讲座,里面讲到上面提问的问题。我在此分享一些:阅读文献,不是简单地下载一篇文献后电子版或打印版阅读,在我研究生时期,也这么干,结果效率很低,特别是阅读英文文献,甚至成了入眠神器。经过国外博士和研究工作的锻炼,逐渐形成了…
&p&有一次 Dror Bar-Natan 来卡内基梅隆大学给本科生讲座,我导师居然去听了,并且他也推荐我去。从那次讲座以后,我终于可以绕开抽象代数理论(域扩张、Galois 理论等等),向一个&b&仅接触过复数的路人&/b&解释 Abel–Ruffini 定理了,即「为何五次方程没有求根公式」。如果你会编程,那还可以额外享受自行验证部分证明的乐趣。要知道,对于一般的本科教学,经过一学期群环域的轮番折磨,学生才可能在学期末触及 Abel–Ruffini 定理这个巅峰。&/p&&p&插播一则轶事,Dror Bar-Natan 在加拿大入籍的时候,发现需要宣誓:&/p&&blockquote&I affirm that I will be faithful and bear true allegiance to Her Majesty Queen Elizabeth II, Queen of Canada, Her Heirs and Successors, and that I will faithfully observe the laws of Canada and fulfill my duties as a Canadian citizen.&/blockquote&&p&他表示很乐意遵守法律、履行加拿大公民义务……但是向女王或者她的子嗣效忠?老子不干!于是 2012 年他和小伙伴组队上加拿大最高法院讲理去了。很不幸 2015 年最高法院驳回了上诉。最后,他和小伙伴在宣誓加入加拿大籍后公开否认誓言的前半部分。有兴趣入加拿大籍但又不想效忠女王的朋友,请移步 &a href=&//link.zhihu.com/?target=http%3A//disavowal.ca& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&disavowal.ca&/span&&span class=&invisible&&&/span&&/a& 查看详细步骤。&/p&&p&言归正传,首先要明确「当我们在谈论求根公式时我们在谈论什么」。例如,求根公式&img src=&//www.zhihu.com/equation?tex=x%3D%5Ctfrac%7B1%7D%7B2%7D%5Cleft%28-a%2B%5Csqrt%7Ba%5E2-4b%7D%5Cright%29& alt=&x=\tfrac{1}{2}\left(-a+\sqrt{a^2-4b}\right)& eeimg=&1&& 给出任何二次方程&img src=&//www.zhihu.com/equation?tex=x%5E2%2Bax%2Bb%3D0& alt=&x^2+ax+b=0& eeimg=&1&& 的一个根。所以,五次方程求根公式(如果存在的话)应当&/p&&ol&&li&给出任何五次方程&img src=&//www.zhihu.com/equation?tex=x%5E5%2Bax%5E4%2Bbx%5E3%2Bcx%5E2%2Bdx%2Be%3D0& alt=&x^5+ax^4+bx^3+cx^2+dx+e=0& eeimg=&1&& 的一个根;&/li&&li&并且是一个关于 &i&a, b, c, d, e&/i& 且仅含加减乘除开方的代数表达式。&/li&&/ol&&p&对于特定类型的五次方程,如&img src=&//www.zhihu.com/equation?tex=x%5E5-a%5E5%3D0& alt=&x^5-a^5=0& eeimg=&1&&,虽然有一个仅含加减乘除开方的解 &i&x = a,&/i&但这并不是我们要谈论的求根公式。&/p&&p&接下来的 Abel–Ruffini 定理的证明是基于 Vladimir Arnold 在 1963 年的拓扑证明(开启了拓扑 Galois 理论)。其他回答中最接近的应该是韩京俊的解答,我的回答将牺牲一小部分严谨性来换取可读性。&/p&&p&这个证明需要一位假想敌(想象一位你最希望打脸的朋友),他或她宣称拥有五次方程求根公式 &i&x&/i& = &i&f&/i&(&i&a, b, c, d, e&/i&)(随便写的复杂公式,不要在意细节):&/p&&img src=&//www.zhihu.com/equation?tex=x%3Df%28a%2Cb%2Cc%2Cd%2Ce%29%3D%5Cfrac%7B3%7D%7B%5Cfrac%7B-b%5E3%7D%7B27a%5E3%7D%2B%5Cfrac%7Bbc%7D%7B6a%5E2%7D-%5Cfrac%7Bd%7D%7B2a%7D%2B%5Cfrac%7B2%7D%7B%5Cleft%28%5Cfrac%7B-c%5E3%7D%7B27b%5E3%7D%2B%5Cfrac%7Bcd%7D%7B6b%5E2%7D-%5Cfrac%7Be%7D%7B2b%7D%5Cright%29%5E2%2B%5Cleft%28%5Cfrac%7Bd%7D%7B3b%7D-%5Cfrac%7Bc%5E2%7D%7B9b%5E2%7D%5Cright%29%5E2%7D%7D& alt=&x=f(a,b,c,d,e)=\frac{3}{\frac{-b^3}{27a^3}+\frac{bc}{6a^2}-\frac{d}{2a}+\frac{2}{\left(\frac{-c^3}{27b^3}+\frac{cd}{6b^2}-\frac{e}{2b}\right)^2+\left(\frac{d}{3b}-\frac{c^2}{9b^2}\right)^2}}& eeimg=&1&&&p&我们按照如下计划去推翻这个公式:&/p&&ol&&li&随意选取五个复数 &i&x1, …, x5&/i& 并构造五次方程&img src=&//www.zhihu.com/equation?tex=x%5E5%2Bax%5E4%2Bbx%5E3%2Bcx%5E2%2Bdx%2Be%3D0& alt=&x^5+ax^4+bx^3+cx^2+dx+e=0& eeimg=&1&& 使得其根恰是 &i&x1, …, x5&/i&;&/li&&li&将五次方程的系数 &i&a, b, c, d, e&/i& 代入假想敌提供的公式中算出 &i&x = f&/i&(&i&a, b, c, d, e&/i&) 并展示 &i&x&/i& 不在 &i&x1, …, x5 &/i&中。&/li&&/ol&&p&计划的第一步,在选定 &i&x1, …, x5&/i& 后,可以通过展开 (&i&x - x1&/i&)(&i&x - x2&/i&)(&i&x - x3&/i&)(&i&x - x4&/i&)(&i&x - x5&/i&)&i& = &/i&0得到想要的五次方程的系数,例如:&i&a = - &/i&(&i&x1 + x2 + x3 + x4 + x5&/i&)&i&, …, e = - x1 x2 x3 x4 x5&/i&。具体的系数与根之间的关系就是大家初中学的 Vieta 公式(韦达定理)。计划的第二步只需要机械式地代入计算 &i&x&/i& 并比对 &i&x1, …, x5 &/i&即可。&/p&&p&然而,这个计划并不一劳永逸——每次假想敌宣称有新的五次方程求根公式,我们都需要重新执行上面描述的计划去推翻。&/p&&p&&b&升级版计划&/b&是让 &i&x1, …, x5&/i& 动起来!想象如下运动:同时地,&i&x1&/i& 向 &i&x2&/i& 移动,&i&x2&/i& 向 &i&x3&/i& 移动,&i&x3&/i& 向 &i&x4&/i& 移动,&i&x4&/i& 向 &i&x5&/i& 移动。在运动的同时,我们&/p&&ol&&li&不断用 Vieta 公式计算系数 &i&a, b, c, d, e&/i& 的值,&/li&&li&再不断代入 &i&f&/i&(&i&a, b, c, d, e&/i&) 计算 &i&x&/i& 的值。&/li&&/ol&&p&为方便起见,我们用数组 &i&P = &/i&(2, 3, 4, 5, 1) 来表示所描述的运动,一般地,数组从左到右依次记录了 &i&x1, …, x5&/i& 运动终点 &i&x&/i& 的下标。这样让 &i&x1, …, x5&/i& 交换位置的运动,我们称为&b&置换 Permutation&/b&。&/p&&p&因为整个运动只是将 &i&x1, …, x5&/i& 换了换位置且 Vieta 公式关于 &i&x1, …, x5&/i& 都是对称的,所以在运动后,&i&a, b, c, d, e&/i& 都回到了起始的位置。示意图如下:&/p&&figure&&img src=&https://pic2.zhimg.com/50/v2-ab206cf569_b.jpg& data-rawwidth=&3199& data-rawheight=&1121& class=&origin_image zh-lightbox-thumb& width=&3199& data-original=&https://pic2.zhimg.com/50/v2-ab206cf569_r.jpg&&&/figure&&p&由于 &i&f&/i& 在运动前后都代入了同样的 &i&a, b, c, d, e&/i&,于是 &i&x = f&/i&(&i&a, b, c, d, e&/i&) 应当回到它起始的位置!慢着,如果 &i&x&/i& 在运动开始前是 &i&x1, …, x5&/i& 中的某个,不妨设是 &i&x1&/i&,那么在连续运动的过程中 &i&x&/i& 应该一直和 &i&x1&/i& 保持一致,并在运动后落在原本 &i&x2&/i& 的位置上。打脸成功!&/p&&p&细心的读者会反问:上面的证明压根没用到 5 次方程这个条件,那岂不是可以证明任何方程都没有求根公式了?我们读的一定是假的证明……&/p&&p&确实,以上论证存在缺陷——在计算 &i&x =&/i& &i&f&/i&(&i&a, b, c, d, e&/i&) 的时候,忽视了公式含有开方的可能。&/p&&p&为了说明这个缺陷,我们将以上的论证应用在 2 次方程&img src=&//www.zhihu.com/equation?tex=x%5E2%2Bax%2Bb%3D0& alt=&x^2+ax+b=0& eeimg=&1&& 和求根公式&img src=&//www.zhihu.com/equation?tex=x%3D%5Ctfrac%7B1%7D%7B2%7D%5Cleft%28-a%2B%5Csqrt%7Ba%5E2-4b%7D%5Cright%29& alt=&x=\tfrac{1}{2}\left(-a+\sqrt{a^2-4b}\right)& eeimg=&1&& 上。第一步,Vieta 公式告诉我们 &i&a = -&/i& (&i&x1 + x2&/i&), &i&b = x1 x2&/i&;第二步中,先代入&img src=&//www.zhihu.com/equation?tex=%5CDelta+%3D+a%5E2-4b%3D%28x_1%2Bx_2%29%5E2-4x_1x_2%3D%28x_1-x_2%29%5E2& alt=&\Delta = a^2-4b=(x_1+x_2)^2-4x_1x_2=(x_1-x_2)^2& eeimg=&1&& ,再开根得到 &i&x1 - x2&/i& 或 &i&x2 - x1&/i&。想象将 &i&x1&/i& 和 &i&x2&/i& 互换的运动,虽然 &i&Δ&/i& 会回到起始的位置,但是 &i&√Δ&/i& 为了保证运动的连续性必须盯住 &i&x1 - x2&/i& 或盯住 &i&x2 - x1&/i&,于是在 &i&x1&/i& 和 &i&x2&/i& 互换后 &i&√Δ &/i&变成了自己的相反数。换个角度看,当 &i&x1&/i& 和 &i&x2&/i& 互换时,&i&Δ &/i&绕原点转了 1 圈,于是 &i&√Δ &/i&只绕了 1 / 2 圈。&/p&&figure&&img src=&https://pic2.zhimg.com/50/v2-dffd36f609c9d908cf6b1225f52dcda6_b.jpg& data-rawwidth=&3542& data-rawheight=&982& class=&origin_image zh-lightbox-thumb& width=&3542& data-original=&https://pic2.zhimg.com/50/v2-dffd36f609c9d908cf6b1225f52dcda6_r.jpg&&&/figure&&p&一般情况下,当复数 &i&z&/i& 绕原点 &i&k1&/i& 圈回到起始位置时,&i&z&/i& 的 &i&k&/i& 次根只绕了 &i&k1 / k&/i& 圈。&/p&&p&因此,回到 5 次方程的情况,如果 &i&f&/i&(&i&a, b, c, d, e&/i&)包含开方,那么升级版计划就不能保证 &i&x &/i&还能回到起始位置。当然,升级版计划是可以说明不出现开方的公式(例如那个复杂的随便写的公式)一定不是求根公式。这从一个侧面回答了「为何二至四次方程的求根公式里面必须出现开方」。&/p&&p&&b&终极版计划&/b&将延续升级版的思路:合理制定 &i&x1, …, x5&/i& 的移动路径,使得&/p&&ol&&li&根 &i&x1 &/i&不回到自己原来的位置;&/li&&li&系数 &i&a, b, c, d, e&/i& 在某种意义上绕原点圈数(以下简称&b&绕数 winding number&/b&)为 0。&/li&&/ol&&p&为此,我们需要引入置换的&b&复合 Composition 逆 Inverse 交换子 Commutator&/b& 三个概念。&/p&&p&两个置换的复合,就是将两个置换运动的录像连着播放:&/p&&figure&&img src=&https://pic2.zhimg.com/50/v2-2ee74da25e_b.jpg& data-rawwidth=&3187& data-rawheight=&878& class=&origin_image zh-lightbox-thumb& width=&3187& data-original=&https://pic2.zhimg.com/50/v2-2ee74da25e_r.jpg&&&/figure&&p&置换的逆,就是把一个置换运动的录像倒着播放:&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-8e944a2eed0faaec5ddc82_b.jpg& data-rawwidth=&3186& data-rawheight=&888& class=&origin_image zh-lightbox-thumb& width=&3186& data-original=&https://pic3.zhimg.com/50/v2-8e944a2eed0faaec5ddc82_r.jpg&&&/figure&&p&两个置换 &i&P1, P2&/i& 的交换子定义为&img src=&//www.zhihu.com/equation?tex=%5BP_1%2C+P_2%5D+%3A%3D+P_1+%5Ccdot+P_2%5Ccdot+P_1%5E%7B-1%7D+%5Ccdot+P_2%5E%7B-1%7D& alt=&[P_1, P_2] := P_1 \cdot P_2\cdot P_1^{-1} \cdot P_2^{-1}& eeimg=&1&&。可以把交换子 [ &i&P1, P2&/i& ] 分解为如下 4 个过程:&/p&&ol&&li&先播放置换运动 &i&P1 &/i&的录像;&/li&&li&连着播放置换运动 &i&P2 &/i&的录像;&/li&&li&再倒放置换运动 &i&P1 &/i&的录像;&/li&&li&最后倒放置换运动 &i&P2 &/i&的录像。&/li&&/ol&&p&如果假想敌宣称求根公式是&img src=&//www.zhihu.com/equation?tex=x+%3D+%5Csqrt%5B3%5D%7BA%7D+%2B+%5Csqrt%5B3%5D%7BB%7D& alt=&x = \sqrt[3]{A} + \sqrt[3]{B}& eeimg=&1&& ,其中 &i&A, B&/i& 是 &i&a, b, c, d, e&/i& 的只含加减乘除的代数式。考虑在置换 &i&P&/i& = [ &i&P1, P2 &/i&] 的作用下 &i&A&/i& 的运动:在过程 1, 2 中假设 &i&A &/i&的绕数分别是 &i&k1, k2&/i&,则在过程 3, 4 中倒放录像 &i&A &/i&的绕数分别是 &i&-k1, -k2&/i&,于是 &i&A&/i& 总绕数为 0,故&img src=&//www.zhihu.com/equation?tex=%5Csqrt%5B3%5D%7BA%7D& alt=&\sqrt[3]{A}& eeimg=&1&& 回到起始位置。同理,&img src=&//www.zhihu.com/equation?tex=%5Csqrt%5B3%5D%7BB%7D& alt=&\sqrt[3]{B}& eeimg=&1&& 也回到起始位置。综上,&i&x&/i& 将回到起始位置。&/p&&p&如果假想敌宣称求根公式是&img src=&//www.zhihu.com/equation?tex=x%3D%5Csqrt%5B3%5D%7BA%2B%5Csqrt%7BB%7D%7D%2B%5Csqrt%5B3%5D%7BC%2B%5Csqrt%7BD%7D%7D& alt=&x=\sqrt[3]{A+\sqrt{B}}+\sqrt[3]{C+\sqrt{D}}& eeimg=&1&& ,其中 &i&A, B, C, D &/i&是 &i&a, b, c, d, e&/i& 的只含加减乘除的代数式。令 &i&P = &/i&[ &i&P1, P2 &/i&]&i&, P1 = &/i&[ &i&P3, P4 &/i&]&i&, P2 = &/i&[ &i&P5, P6 &/i&],也就是说 &i&P =&/i& [ [ &i&P3, P4 &/i&], [ &i&P5, P6 &/i&] ]。因为 &i&P1 =&/i& [ &i&P3, P4&/i& ] 是交换子,我们知道&img src=&//www.zhihu.com/equation?tex=%5Csqrt%7BB%7D& alt=&\sqrt{B}& eeimg=&1&& 在 &i&P1&/i& 作用下回到起始位置,于是&img src=&//www.zhihu.com/equation?tex=A%2B%5Csqrt%7BB%7D& alt=&A+\sqrt{B}& eeimg=&1&& 在 &i&P1&/i& 作用下回到起始位置;同理&img src=&//www.zhihu.com/equation?tex=A%2B%5Csqrt%7BB%7D& alt=&A+\sqrt{B}& eeimg=&1&& 在 &i&P2&/i& 作用下也回到起始位置。由于 &i&P =&/i& [ &i&P1, P2&/i& ] 是交换子,故&img src=&//www.zhihu.com/equation?tex=%5Csqrt%5B3%5D%7BA%2B%5Csqrt%7BB%7D%7D& alt=&\sqrt[3]{A+\sqrt{B}}& eeimg=&1&& 在 &i&P&/i& 的作用下回到起始位置。以此类推,可得 &i&x&/i& 将回到起始位置。&/p&&p&可以看出交换子的交换子可以处理两层开方的情形。一般地,交换子的交换子的……的交换子(默念 &i&m&/i& 遍交换子)可以处理有&i& m&/i& 层开方的情形。&/p&&p&为了满足「根 &i&x1 &/i&不回到自己原来的位置」这个条件,剩下的任务就是找到一个既移动 &i&x1&/i& 又能表示成「交换子的交换子的……的交换子」的置换。记所有置换构成的集合为 &i&S5&/i&,又记所有交换子,即 [ &i&P1, P2&/i& ](其中 &i&P1, P2&/i& 来自 &i&S5&/i&),构成的集合为 &i&A5&/i&。下面的 Ruby 程序将计算 &i&A5&/i& 和交换子的交换子构成的集合。&/p&&div class=&highlight&&&pre&&code class=&language-rb&&&span class=&nb&&require&/span& &span class=&s1&&'set'&/span&
&span class=&k&&def&/span& &span class=&nf&&compose&/span&&span class=&p&&(&/span&&span class=&n&&p1&/span&&span class=&p&&,&/span& &span class=&n&&p2&/span&&span class=&p&&)&/span&
&span class=&p&&(&/span&&span class=&mi&&1&/span&&span class=&o&&..&/span&&span class=&mi&&5&/span&&span class=&p&&)&/span&&span class=&o&&.&/span&&span class=&n&&map&/span& &span class=&p&&{&/span& &span class=&o&&|&/span&&span class=&n&&i&/span&&span class=&o&&|&/span& &span class=&n&&p2&/span&&span class=&o&&[&/span&&span class=&n&&p1&/span&&span class=&o&&[&/span&&span class=&n&&i&/span& &span class=&o&&-&/span& &span class=&mi&&1&/span&&span class=&o&&]&/span& &span class=&o&&-&/span& &span class=&mi&&1&/span&&span class=&o&&]&/span& &span class=&p&&}&/span&
&span class=&k&&end&/span&
&span class=&k&&def&/span& &span class=&nf&&invert&/span&&span class=&p&&(&/span&&span class=&nb&&p&/span&&span class=&p&&)&/span&
&span class=&p&&(&/span&&span class=&mi&&1&/span&&span class=&o&&..&/span&&span class=&mi&&5&/span&&span class=&p&&)&/span&&span class=&o&&.&/span&&span class=&n&&map&/span& &span class=&p&&{&/span& &span class=&o&&|&/span&&span class=&n&&i&/span&&span class=&o&&|&/span& &span class=&nb&&p&/span&&span class=&o&&.&/span&&span class=&n&&index&/span&&span class=&p&&(&/span&&span class=&n&&i&/span&&span class=&p&&)&/span& &span class=&o&&+&/span& &span class=&mi&&1&/span& &span class=&p&&}&/span&
&span class=&k&&end&/span&
&span class=&k&&def&/span& &span class=&nf&&commutate&/span&&span class=&p&&(&/span&&span class=&n&&p1&/span&&span class=&p&&,&/span& &span class=&n&&p2&/span&&span class=&p&&)&/span&
&span class=&n&&compose&/span&&span class=&p&&(&/span&&span class=&n&&compose&/span&&span class=&p&&(&/span&&span class=&n&&compose&/span&&span class=&p&&(&/span&&span class=&n&&p1&/span&&span class=&p&&,&/span& &span class=&n&&p2&/span&&span class=&p&&),&/span& &span class=&n&&invert&/span&&span class=&p&&(&/span&&span class=&n&&p1&/span&&span class=&p&&)),&/span& &span class=&n&&invert&/span&&span class=&p&&(&/span&&span class=&n&&p2&/span&&span class=&p&&))&/span&
&span class=&k&&end&/span&
&span class=&n&&s5&/span& &span class=&o&&=&/span& &span class=&no&&Set&/span&&span class=&o&&.&/span&&span class=&n&&new&/span& &span class=&p&&(&/span&&span class=&mi&&1&/span&&span class=&o&&..&/span&&span class=&mi&&5&/span&&span class=&p&&)&/span&&span class=&o&&.&/span&&span class=&n&&to_a&/span&&span class=&o&&.&/span&&span class=&n&&permutation&/span&&span class=&o&&.&/span&&span class=&n&&to_a&/span&
&span class=&nb&&puts&/span& &span class=&s2&&&&/span&&span class=&si&&#{&/span&&span class=&n&&s5&/span&&span class=&o&&.&/span&&span class=&n&&length&/span&&span class=&si&&}&/span&&span class=&s2&& permutations: &/span&&span class=&si&&#{&/span&&span class=&n&&s5&/span&&span class=&o&&.&/span&&span class=&n&&inspect&/span&&span class=&si&&}&/span&&span class=&s2&&&&/span&
&span class=&n&&a5&/span& &span class=&o&&=&/span& &span class=&no&&Set&/span&&span class=&o&&.&/span&&span class=&n&&new&/span&
&span class=&k&&for&/span& &span class=&n&&p1&/span& &span class=&k&&in&/span& &span class=&n&&s5&/span&
&span class=&k&&for&/span& &span class=&n&&p2&/span& &span class=&k&&in&/span& &span class=&n&&s5&/span&
&span class=&n&&a5&/span& &span class=&o&&&&&/span& &span class=&n&&commutate&/span&&span class=&p&&(&/span&&span class=&n&&p1&/span&&span class=&p&&,&/span& &span class=&n&&p2&/span&&span class=&p&&)&/span&
&span class=&k&&end&/span&
&span class=&k&&end&/span&
&span class=&nb&&puts&/span& &span class=&s2&&&&/span&&span class=&si&&#{&/span&&span class=&n&&a5&/span&&span class=&o&&.&/span&&span class=&n&&length&/span&&span class=&si&&}&/span&&span class=&s2&& commutators: &/span&&span class=&si&&#{&/span&&span class=&n&&a5&/span&&span class=&o&&.&/span&&span class=&n&&inspect&/span&&span class=&si&&}&/span&&span class=&s2&&&&/span&
&span class=&n&&commutators_of_a5&/span& &span class=&o&&=&/span& &span class=&no&&Set&/span&&span class=&o&&.&/span&&span class=&n&&new&/span&
&span class=&k&&for&/span& &span class=&n&&p1&/span& &span class=&k&&in&/span& &span class=&n&&a5&/span&
&span class=&k&&for&/span& &span class=&n&&p2&/span& &span class=&k&&in&/span& &span class=&n&&a5&/span&
&span class=&n&&commutators_of_a5&/span& &span class=&o&&&&&/span& &span class=&n&&commutate&/span&&span class=&p&&(&/span&&span class=&n&&p1&/span&&span class=&p&&,&/span& &span class=&n&&p2&/span&&span class=&p&&)&/span&
&span class=&k&&end&/span&
&span class=&k&&end&/span&
&span class=&nb&&puts&/span& &span class=&s2&&&&/span&&span class=&si&&#{&/span&&span class=&n&&commutators_of_a5&/span&&span class=&o&&.&/span&&span class=&n&&length&/span&&span class=&si&&}&/span&&span class=&s2&& commutators of commutators: &/span&&span class=&si&&#{&/span&&span class=&n&&commutators_of_a5&/span&&span class=&o&&.&/span&&span class=&n&&inspect&/span&&span class=&si&&}&/span&&span class=&s2&&&&/span&
&/code&&/pre&&/div&&p&输出:&/p&&div class=&highlight&&&pre&&code class=&language-bash&&&span class=&m&&120&/span& permutations: &span class=&c&&#&Set: {[1, 2, 3, 4, 5], [1, 2, 3, 5, 4], [1, 2, 4, 3, 5], [1, 2, 4, 5, 3], [1, 2, 5, 3, 4], [1, 2, 5, 4, 3], [1, 3, 2, 4, 5], [1, 3, 2, 5, 4], [1, 3, 4, 2, 5], [1, 3, 4, 5, 2], [1, 3, 5, 2, 4], [1, 3, 5, 4, 2], [1, 4, 2, 3, 5], [1, 4, 2, 5, 3], [1, 4, 3, 2, 5], [1, 4, 3, 5, 2], [1, 4, 5, 2, 3], [1, 4, 5, 3, 2], [1, 5, 2, 3, 4], [1, 5, 2, 4, 3], [1, 5, 3, 2, 4], [1, 5, 3, 4, 2], [1, 5, 4, 2, 3], [1, 5, 4, 3, 2], [2, 1, 3, 4, 5], [2, 1, 3, 5, 4], [2, 1, 4, 3, 5], [2, 1, 4, 5, 3], [2, 1, 5, 3, 4], [2, 1, 5, 4, 3], [2, 3, 1, 4, 5], [2, 3, 1, 5, 4], [2, 3, 4, 1, 5], [2, 3, 4, 5, 1], [2, 3, 5, 1, 4], [2, 3, 5, 4, 1], [2, 4, 1, 3, 5], [2, 4, 1, 5, 3], [2, 4, 3, 1, 5], [2, 4, 3, 5, 1], [2, 4, 5, 1, 3], [2, 4, 5, 3, 1], [2, 5, 1, 3, 4], [2, 5, 1, 4, 3], [2, 5, 3, 1, 4], [2, 5, 3, 4, 1], [2, 5, 4, 1, 3], [2, 5, 4, 3, 1], [3, 1, 2, 4, 5], [3, 1, 2, 5, 4], [3, 1, 4, 2, 5], [3, 1, 4, 5, 2], [3, 1, 5, 2, 4], [3, 1, 5, 4, 2], [3, 2, 1, 4, 5], [3, 2, 1, 5, 4], [3, 2, 4, 1, 5], [3, 2, 4, 5, 1], [3, 2, 5, 1, 4], [3, 2, 5, 4, 1], [3, 4, 1, 2, 5], [3, 4, 1, 5, 2], [3, 4, 2, 1, 5], [3, 4, 2, 5, 1], [3, 4, 5, 1, 2], [3, 4, 5, 2, 1], [3, 5, 1, 2, 4], [3, 5, 1, 4, 2], [3, 5, 2, 1, 4], [3, 5, 2, 4, 1], [3, 5, 4, 1, 2], [3, 5, 4, 2, 1], [4, 1, 2, 3, 5], [4, 1, 2, 5, 3], [4, 1, 3, 2, 5], [4, 1, 3, 5, 2], [4, 1, 5, 2, 3], [4, 1, 5, 3, 2], [4, 2, 1, 3, 5], [4, 2, 1, 5, 3], [4, 2, 3, 1, 5], [4, 2, 3, 5, 1], [4, 2, 5, 1, 3], [4, 2, 5, 3, 1], [4, 3, 1, 2, 5], [4, 3, 1, 5, 2], [4, 3, 2, 1, 5], [4, 3, 2, 5, 1], [4, 3, 5, 1, 2], [4, 3, 5, 2, 1], [4, 5, 1, 2, 3], [4, 5, 1, 3, 2], [4, 5, 2, 1, 3], [4, 5, 2, 3, 1], [4, 5, 3, 1, 2], [4, 5, 3, 2, 1], [5, 1, 2, 3, 4], [5, 1, 2, 4, 3], [5, 1, 3, 2, 4], [5, 1, 3, 4, 2], [5, 1, 4, 2, 3], [5, 1, 4, 3, 2], [5, 2, 1, 3, 4], [5, 2, 1, 4, 3], [5, 2, 3, 1, 4], [5, 2, 3, 4, 1], [5, 2, 4, 1, 3], [5, 2, 4, 3, 1], [5, 3, 1, 2, 4], [5, 3, 1, 4, 2], [5, 3, 2, 1, 4], [5, 3, 2, 4, 1], [5, 3, 4, 1, 2], [5, 3, 4, 2, 1], [5, 4, 1, 2, 3], [5, 4, 1, 3, 2], [5, 4, 2, 1, 3], [5, 4, 2, 3, 1], [5, 4, 3, 1, 2], [5, 4, 3, 2, 1]}&&/span&
&span class=&m&&60&/span& commutators: &span class=&c&&#&Set: {[1, 2, 3, 4, 5], [1, 2, 5, 3, 4], [1, 2, 4, 5, 3], [1, 5, 3, 2, 4], [1, 4, 3, 5, 2], [1, 3, 2, 5, 4], [5, 2, 3, 1, 4], [4, 2, 3, 5, 1], [3, 2, 1, 5, 4], [2, 1, 3, 5, 4], [1, 4, 2, 3, 5], [1, 5, 4, 3, 2], [1, 3, 4, 2, 5], [4, 2, 1, 3, 5], [5, 2, 4, 3, 1], [3, 2, 4, 1, 5], [2, 1, 4, 3, 5], [1, 5, 2, 4, 3], [1, 4, 5, 2, 3], [5, 2, 1, 4, 3], [4, 2, 5, 1, 3], [5, 1, 4, 2, 3], [4, 1, 2, 5, 3], [3, 1, 4, 5, 2], [2, 5, 4, 1, 3], [2, 4, 1, 5, 3], [2, 3, 4, 5, 1], [1, 3, 5, 4, 2], [3, 2, 5, 4, 1], [2, 5, 1, 3, 4], [2, 4, 5, 3, 1], [2, 3, 5, 1, 4], [5, 1, 2, 3, 4], [4, 1, 5, 3, 2], [3, 1, 5, 2, 4], [2, 1, 5, 4, 3], [3, 1, 2, 4, 5], [4, 3, 2, 1, 5], [5, 3, 2, 4, 1], [2, 3, 1, 4, 5], [4, 5, 2, 3, 1], [5, 4, 2, 1, 3], [4, 3, 5, 2, 1], [5, 3, 4, 1, 2], [4, 1, 3, 2, 5], [3, 4, 1, 2, 5], [3, 5, 4, 2, 1], [5, 3, 1, 2, 4], [5, 1, 3, 4, 2], [5, 4, 1, 3, 2], [4, 5, 3, 1, 2], [3, 5, 1, 4, 2], [3, 4, 5, 1, 2], [3, 4, 2, 5, 1], [5, 4, 3, 2, 1], [4, 5, 1, 2, 3], [3, 5, 2, 1, 4], [4, 3, 1, 5, 2], [2, 4, 3, 1, 5], [2, 5, 3, 4, 1]}&&/span&
&span class=&m&&60&/span& commutators of commutators: &span class=&c&&#&Set: {[1, 2, 3, 4, 5], [1, 3, 2, 5, 4], [1, 4, 5, 2, 3], [1, 5, 4, 3, 2], [3, 2, 1, 5, 4], [4, 2, 5, 1, 3], [5, 2, 4, 3, 1], [1, 2, 4, 5, 3], [5, 2, 3, 1, 4], [4, 2, 1, 3, 5], [3, 2, 5, 4, 1], [1, 5, 3, 2, 4], [1, 4, 2, 3, 5], [1, 3, 5, 4, 2], [5, 1, 2, 3, 4], [2, 4, 5, 3, 1], [3, 1, 5, 2, 4], [2, 3, 5, 1, 4], [2, 5, 1, 3, 4], [4, 1, 5, 3, 2], [1, 2, 5, 3, 4], [3, 2, 4, 1, 5], [5, 2, 1, 4, 3], [4, 2, 3, 5, 1], [1, 3, 4, 2, 5], [1, 5, 2, 4, 3], [1, 4, 3, 5, 2], [2, 5, 4, 1, 3], [4, 1, 2, 5, 3], [2, 3, 4, 5, 1], [3, 1, 4, 5, 2], [5, 1, 4, 2, 3], [2, 4, 1, 5, 3], [2, 1, 3, 5, 4], [4, 5, 3, 1, 2], [5, 4, 3, 2, 1], [2, 5, 3, 4, 1], [3, 5, 2, 1, 4], [4, 5, 1, 2, 3], [3, 5, 4, 2, 1], [5, 3, 1, 2, 4], [4, 1, 3, 2, 5], [2, 4, 3, 1, 5], [3, 4, 2, 5, 1], [5, 4, 1, 3, 2], [4, 3, 1, 5, 2], [3, 4, 5, 1, 2], [5, 1, 3, 4, 2], [2, 3, 1, 4, 5], [3, 1, 2, 4, 5], [5, 3, 4, 1, 2], [4, 5, 2, 3, 1], [4, 3, 5, 2, 1], [5, 4, 2, 1, 3], [2, 1, 4, 3, 5], [3, 4, 1, 2, 5], [4, 3, 2, 1, 5], [2, 1, 5, 4, 3], [3, 5, 1, 4, 2], [5, 3, 2, 4, 1]}&&/span&
&/code&&/pre&&/div&&p&我们发现,交换子的交换子构成的集合与 &i&A5&/i& 一模一样!也就是说,任取一个 &i&A5&/i& 中的元素 &i&P&/i&,比如说 P = (3, 2, 1, 5, 4) 将 &i&x1 &/i&移动至 &i&x3&/i&,都可以在 &i&A5&/i& 中找到 &i&P1, P2&/i& 使得 &i&P&/i& = [ &i&P1, P2&/i& ],于是又能在 &i&A5&/i& 中找到 &i&P3, P4, P5, P6&/i& 使得 &i&P1&/i& = [ &i&P3, P4&/i& ], &i&P2&/i& = [ &i&P5, P6&/i& ],以此类推,子子孙孙无穷匮也,这样就完成了最终的任务。&/p&&p&&b&附产品 1&/b&:考虑 1, 2, 3 间所有的置换、它们的交换子以及交换子的交换子,类似的程序输出&/p&&div class=&highlight&&&pre&&code class=&language-bash&&&span class=&m&&6&/span& permutations: &span class=&c&&#&Set: {[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]}&&/span&
&span class=&m&&3&/span& commutators: &span class=&c&&#&Set: {[1, 2, 3], [3, 1, 2], [2, 3, 1]}&&/span&
&span class=&m&&1&/span& commutators of commutators: &span class=&c&&#&Set: {[1, 2, 3]}&&/span&
&/code&&/pre&&/div&&p&这说明三次方程求根公式一层开方是不够的,至少需要两层开方。&/p&&p&&b&附产品 2&/b&:考虑 1, 2, 3, 4 间所有的置换、它们的交换子、交换子的交换子、交换子的交换子的交换子,类似的程序输出&/p&&div class=&highlight&&&pre&&code class=&language-rb&&&span class=&mi&&24&/span& &span class=&ss&&permutations&/span&&span class=&p&&:&/span& &span class=&c1&&#&Set: {[1, 2, 3, 4], [1, 2, 4, 3], [1, 3, 2, 4], [1, 3, 4, 2], [1, 4, 2, 3], [1, 4, 3, 2], [2, 1, 3, 4], [2, 1, 4, 3], [2, 3, 1, 4], [2, 3, 4, 1], [2, 4, 1, 3], [2, 4, 3, 1], [3, 1, 2, 4], [3, 1, 4, 2], [3, 2, 1, 4], [3, 2, 4, 1], [3, 4, 1, 2], [3, 4, 2, 1], [4, 1, 2, 3], [4, 1, 3, 2], [4, 2, 1, 3], [4, 2, 3, 1], [4, 3, 1, 2], [4, 3, 2, 1]}&&/span&
&span class=&mi&&12&/span& &span class=&ss&&commutators&/span&&span class=&p&&:&/span& &span class=&c1&&#&Set: {[1, 2, 3, 4], [1, 4, 2, 3], [1, 3, 4, 2], [4, 2, 1, 3], [3, 2, 4, 1], [2, 1, 4, 3], [3, 1, 2, 4], [4, 3, 2, 1], [2, 3, 1, 4], [4, 1, 3, 2], [3, 4, 1, 2], [2, 4, 3, 1]}&&/span&
&span class=&mi&&4&/span& &span class=&n&&commutators&/span& &span class=&n&&of&/span& &span class=&ss&&commutators&/span&&span class=&p&&:&/span& &span class=&c1&&#&Set: {[1, 2, 3, 4], [2, 1, 4, 3], [3, 4, 1, 2], [4, 3, 2, 1]}&&/span&
&span class=&mi&&1&/span& &span class=&n&&commutators&/span& &span class=&n&&of&/span& &span class=&n&&commutators&/span& &span class=&n&&of&/span& &span class=&ss&&commutators&/span&&span class=&p&&:&/span& &span class=&c1&&#&Set: {[1, 2, 3, 4]}&&/span&
&/code&&/pre&&/div&&p&这说明四次方程求根公式两层开方是不够的,至少需要三层开方。&/p&&p&最后,致修炼数学的读者,抽象代数还是要好好学的。&/p&
有一次 Dror Bar-Natan 来卡内基梅隆大学给本科生讲座,我导师居然去听了,并且他也推荐我去。从那次讲座以后,我终于可以绕开抽象代数理论(域扩张、Galois 理论等等),向一个仅接触过复数的路人解释 Abel–Ruffini 定理了,即「为何五次方程没有求根公式…
谢题主邀请回答,&b&我不想直接给出答案,因为这是题主的选择,应该由题主来完成这个选择。&/b&&br&&br&不过,我可以根据我的经历讲几个故事,根据我的思维方式,说几个我个人观点和我的认识。但请题主注意:因为人和人不一样,所以选择也不一样,我的答案也不一定对,仅供题主参考。&br&&br&&br&&b&一、几个真实的故事&/b&&br&&br&对于选择的事情,其实是件很不好说的事,塞翁失马,焉知非福。有时候,你选择了一个不好的选择,其实可能会是一个好的选择,而你选择了一个看似好的,其实可能会是不好的。&br&&br&我说个几个真实的例子,前几个都是刚毕业几年的年轻人,都是在我身边的人。&br&&br&1)一个也是刚毕业的朋友,毕业时有两个offer,一个是华为,一个是某三线城市的某研究所,研究所还分房,最终为了房子去了,然后,在研究所干了两年,实在是受不了了(为什么受不了,你懂的),想出来了,但是呢,没有好的工作背景,技能也荒废了,所以,出来很难找到好的工作。&br&&br&2)另一个小伙子能力非常的强,对编译器、操作系统内核、算法、大数据、系统架构都非常熟悉,是个相当相当有潜力的人,毕业时去了一个比较大的创业公司,这个创业公司很多关键系统都是他从0到1搞出来的,但是,这个公司没有搞定他的户口,于是他在大城市的生活(买房和生孩子)就成了问题,但是小伙子有能力,没有本地户口,被逼只能选择出来,去面了国外的公司,拿到了Google和Facebook美国的offer,最终去了美帝,现在在美帝干的非常不错。(注:如果他有一天不喜欢美帝了,回国,那么北京上海都对于海归都可以在一年内命到户口的政策,而且我相信,那时他要去BAT这些公司是随便去的,而且级别都不差)。有一天,我问他,如果公司帮你搞定了户口,不是把你逼到相要去出国,你还会不会有今天?(他的答案不重要,重要的是选择有时候就是一个说不清楚的事)&br&&br&3)这是一个女孩子,在2013年阿里校招的时候,我认识了她,我是她的终面官,这个女孩子的技术能力也很不错,我从一个简单的技术问题开始,不断地增加难度,到难度很难的时候她都能回答,而她的代码也写的很好很快。我毫不犹豫给了A+。到了她问我问题的环节时,她问了我两个问题,A) 她说中国的各个公司的HR对她繁多的实习经历不是很满意,说她是个花心大萝卜,她问我怎么看?我说,别听HR的,你只有多经历了不同的公司,才会有比较,才会知道哪更适合自己,而且,人生就是为了经历,趁年轻有资本,应该多经历不同的。B)她的第二个和题主很类似——去外国的公司还是去国内的公司,还伴随着一个尖锐的问题——阿里巴巴值不值得来。尤其后面问题让我非常为难,我有身份在身,理应说一些官话,但我想很“真诚地”回答她。所以,我说,以下的回答只限你我之间,出了门我不认!我这样说的,如果你的技术能力还行的,那么我会推荐你来阿里,但是我觉得你的技术非常非常有潜力,而且你的性格和气质明显和一般人不一样,我觉得外国的公司更适合你,你还是不要来阿里,这里不适合你。我的回答和所有她见过的面试官都不一样,所以,我赢得了她非常大的信任,此后半年,她又去了很多公司去实习,也面了好多公司,最终去了Facebook。我不知道她的未来会怎么样,但我看到她的facebook和微信朋友圈里晒了很多和同事工作和朋友旅游的照片,我觉得她过得非常的开心,她的人生经历也很精彩。(这个故事的意思有这么几个,a)多经历一些不同的公司不同的环境,有了比较后,自己对工作的认识会更强,对自己的选择是有好处的,b)找到和自己match的公司会更好,就像鱼儿就适在水里,不适合去陆地)&br&&br&4)反过来,2009年的时候,也有一个小伙子,他很想出国,但是老实说他的能力不足以出国加入国外的顶尖公司,他打电话给我的时候,我能感到他的痛苦和和迷茫。后来,我还给他做了几个虚拟的面试,我很直白的对他说了他的能力上的短板,让他先不要给自己设置这么高的目标,后来,我帮他准备面试,他顺利通过了一个国内二线公司的面试,这家公司老实说也很一般,他当时也很不情愿的去了,可能是我给他泼了很多冷水,他也更能清楚的认识到自己,所以在这家公司里,他也很努力,干了一年多成为了公司里的骨干,然后公司也给了他好些股票,后来,这家公司上市了,他也实现了小小的财富自由。&br&&br&这样的故事我还有很多很多,上面这几个算是比较典型的。我再讲一个,&br&&br&5)这个故事的发生在2012年左右吧,还是一个刚毕业的同学,拿到了北京豆瓣和上海腾讯的offer,在豆瓣做基础设施的工作,在腾讯做广告相关的业务(好像是,我记得清了)。我和他电话时,我开门见山的问他是怎么想的?他是这样说的,A)他觉得腾讯给的更多(一年多2万元),他觉得毕业后的第一份工作决定了以后工作的薪资水平,所以,他觉得应该去腾讯,我说,那就去腾讯吧。B)他又说,但是豆瓣的工作明显比腾讯更多技术含量,这样,技术上会更多竞争力,而且,北京的技术工作的机会会更多,于是,我说,那就去豆瓣了。C)他又说,北京的环境不太好,物价也高,而且没有北京户口,以后孩子上学也不好办。我说,那就去腾讯呗。D)他又说,最近腾讯组织架构调整很大,里面的变动也很大,估计过去会成炮灰,我说,那就去豆瓣吧。……&br&&br&所以,我写下了这篇文章:&a href=&//link.zhihu.com/?target=http%3A//coolshell.cn/articles/8790.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&程序算法与人生选择 | | 酷 壳 - CoolShell&/a&&br&&br&&br&&b&二、关于选择的一些观点&/b&&br&&br&故事讲完了,还是那句话,&b&我不会给题主任何的明确的答案,选择这个事,还是自己做比较好,就算是做错了,其实也是一种自我成长&/b&。年轻人犯点错没问题的。&br&&br&我这里只想说几个观点供题主参考:(下面这几个观点中,1)和 2)非常重要)&br&&br&&b&1)客观的审视自己。&/b&首先,你需要真正知道自己,认真的审视一下自己,知道自己的长处和短处,知道自己是几斤几两,你知道怎么选择。在职场上,最佳审视自己的方式,就是隔三差五的就出去面试一把,看看自己的市场上能够到什么样的级别。&b&如果你超过了身边的大多数人,你不妨选择的激进一些冒险一些,否则,还是按部就班的来吧。&/b&&br&&br&&br&&b&2)极端地明确自己要什么。&/b&人之所以纠结,就是不知道自己想要什么,或是自己怎么都想要。但是,我们都知道,人生就是一个翘翘板,这头上,那头就下,你得到一样,就必然会失去一样,你失去一样,必然就会得到一样。选择总是会伴随着失去,所以,你一定要知道自己要什么。你可以选择,家庭生活,也可以选择金钱,也可以选择刺激的经历,也可以选择权力和职位…… 总之,你只能要一个(我个人的答案是,经历)。只要一个,你才不会分心,才会专注,也就不会纠结。你看,像我这样观点鲜明甚至观点比较极端的人,我什么时候纠结过?哈哈。&br&&br&&b&3)选择长期的可能性,而不是短期的功利&/b&。因为你不可能在一个公司干到老的,这样的人生太无聊了,人生就应该去不同的公司去经历一下。所以,不必纠结一开始选择的公司是什么,而应该更关注是否能在未来为你开启更广阔天地的可能性。什么叫长期的可能性?以下的几个问例子供题主参考和思考:&br&&br&&ul&&li&学好英语,是不是会比英语不好的有更多的可能性?&/li&&li&进入这家公司,是不是能在未来给我开启更多的去其它公司的可能性?&/li&&li&拥有这个项目或产品经历和经验, 是不是能让我的能力和简历比别人的更有竞争力?&/li&&li&跟着这些同事做事让我得到的成长,是不是能让我有更强的竞争力?&/li&&li&在这个公司的技能(技术和非技术),会不会让我比大多数有更强的竞争力?&/li&&li&……&/li&&/ul&老实说,我们都应该多想想怎么提高自己的领导力,可以参看:&a href=&//link.zhihu.com/?target=http%3A//coolshell.cn/articles/17583.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&技术人员的发展之路 | | 酷 壳 - CoolShell&/a&&br&&br&&b&4)在选择时,尽量的关注自己会得到的东西,而不是自己会失去的东西&/b&。因为无论你怎么选,你都有得有失的。(绝大多数人都会考虑自己会失去的,而不是考虑自己会得到的)&br&&br&&b&5)如果你实在看不清楚,那就选择一个可以容易回滚的&/b&。比如,先了A公司后,如果反悔了,我还可以很容易的去B公司,但是如果先了B公司后,我再去A公司可能就不容易了。那么就毫不犹豫的去A公司。&br&&br&&b&6)做选择时,不要和大众的思维方式一样。&/b&因为,绝大多数人都是平庸的,所以,如果你的思维方式和大众一样,这意味着你做出来的选择也会和大众一样平庸。如果你和大众不一样,你只有有两个结果,一个是你比大多数人聪明,一个是你比大多数人愚蠢。&br&&br&————————更新( 20:45)———————&br&&br&&b&7)选择一个尊重个人成长的公司&/b&。刚毕业的同学最重要的是成长,因为从30岁前你都需要成不断的学习和积累。有些公司KPI比较重,所以经理会把员工当成劳动力,天天被产品经理或开发经理的任务压的喘不过气,天天都在加班,你几乎没有时间去充电和学习,这样干个两年,你对技术的热情被耗尽,你技术追求的三观尽毁,我见过太多这样的有能力有抱负的年轻人就这样被毁掉了。在尊重个人的成长,和工作生活平衡的这方面,外国的公司会更好一些。&br&&br&(先说这些,后面想到了再更新)
谢题主邀请回答,我不想直接给出答案,因为这是题主的选择,应该由题主来完成这个选择。 不过,我可以根据我的经历讲几个故事,根据我的思维方式,说几个我个人观点和我的认识。但请题主注意:因为人和人不一样,所以选择也不一样,我的答案也不一定对,仅…
&h2&前言&/h2&&p&12年8月提着一个行李箱降落在匹兹堡机场。没找住的地方,也不知道CMU应该怎么去。对未来一片迷茫,但充满乐观。 现在,刚完成了博士期间最后的一场报告,在同样的机场,不过是在等待离开的航班。&/p&&p&回想过去的五年,是折腾的五年,也是自我感悟和提升的五年。这里我尝试记录这五年主要做过的事情和其中的感想,希望对大家有所启发。&/p&&h2&第0年:3/11-8/12&/h2&&p&我第一次申请美国的博士是在11年,但拿到的offer并没有特别合适的导师,于是就北上投奔文渊去了。 我当时在百度商务搜索部门做广告的点击预估。具体是使用机器学习来预测一个广告是不是会被用户点击。 这时候离“大数据”这个词流行还有两年,但百度那时候的数据即使现在来看仍然是大的。我的任务是如何高效的利用数百台机器快速的在数十T的数据上训练出模型。&/p&&p&当时产品用的算法基于LBFGS,我于是想是不是可以换个收敛更快的算法。没几天就找到个不错 。但实现上发现了各种问题,包括性能,收敛,和稳定性。而且那时有的就是一个裸的Linux和很老版本的GCC,什么都是需要从头开始写。花了大量时间做系统优化,算法改动,和线上实验,最后一年后在整个广告流量上上了线。&/p&&p&现在再回顾会觉得整个一年时间都在打磨各种细节上,有时候为了5%的性能提升花上上千行代码。这些都导致算法过于复杂,有过度设计之嫌。但深入各个细节对个人能力提升很大,而且很多遇到的问题成为了之后研究方向的来源。一些算法上的思考曾写在&a href=&https://link.zhihu.com/?target=http%3A//mli.github.io//the-end-of-feature-engineering-and-linear-model/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&这里&/a&,当时候深度学习刚刚出来,冥冥中觉得这个应该是大规模机器学习的未来,不过真正开始跟进是好几年以后了。&/p&&p&11年12月中的时候突然心血来潮随手把材料重新寄了一遍,就选了CMU和MIT,结果意外收到了CMU的offer。有天在百度食堂同凯哥(余凯)和潼哥(张潼)吃饭,我说收了CMU
offer,在纠结去不去。他们立马说去跟Alex
Smola啊,他要要加入CMU了,我们给你引荐下。&/p&&p&记得是离开的前一天才开始打包行李,早上去公司开完会,中午离职,跟小伙伴打招呼说出个国,然后就奔机场了。那天北京天气特别好,完全不记得前一天雾霾刚爆了表。&/p&&h2&第一年:9/12-8/13 &/h2&&p&第一年的主要事情是熟悉环境和上课。CMU课程比较重,博士需要学8门课,每门课工作量巨大。而且要求做两门课助教,做助教比上课更累。&/p&&p&这一年上的课中对我最有用的是“高级分布式系统”。之前在上交ACM班的时候已经学过很多质量都还不错课,纯知识性的课程一般对我帮助不大。但这门课主要是读论文,然后大家讨论。不仅仅是关于知识,很多是对设计理念的领悟。大家知道对于系统而言,设计是一门艺术而不是科学,这是设计者审美和哲学理念的体现。同时系统界历史也是由一波又一波的潮流组成,了解历史的发展以及其中不断重复的规律非常有意义。&/p&&p&那年这门课上课老师是Hui Zhang(神人之一,20多岁就在CMU任教了,学生包括了Ion
Stoica,他是Spark作者Matei的导师),他有非常好的大局观,对于“Why”这个问题阐述非常到位。我是通过这门课才对分布式系统有了比较清晰的认识。两年之后我偶然发现我的一篇论文也在这门课的阅读列表里了,算是小成就达成 。&/p&&p&除了上课,更重要是做研究。我去CMU的时候Alex那时还在Google,而且没经费,所以把我丢给了 Dave Andersen。于是我有了两个导师,一个做机器学习,一个做分布式系统。&/p&&p&前面半年都是在相互熟悉的过程。我们每周会一起聊一个小时。前半年因为Alex不在,所以我们只能视频。Alex那边信号经常不好,而且他有德国和澳大利亚口音,外加思维跳跃,经常我听不懂他说啥只能卖萌傻笑。还是靠着Dave不断的打字告诉我Alex说了什么才度过了前几次的会。&/p&&p&两个导师风格迥异。Alex是属于反应特别快,通常你说一点,他已经想好了接下来十点,要跟上他节奏很难。一般抛出问题的时候他就想好了好几个解决方法。这时候要证明自己的想法比他的更好不容易,需要大量的沟通和实验数据支撑。我想我大概是花了两年证明了在某些方向上我的方案一般更好,所以这时候他就不那么hands-on了。&/p&&p&Dave不会给很多想法,但会帮助把一个东西理解透,然后讲得很清楚。因为我研究方向主要是机器学习上,基本上前两年基本都是我在教Dave什么叫机器学习,而且是尽量不用公式那种教法。&/p&&p&我的第一个研究工作是关于如果划分数据和计算使得减少机器学习求解中的网络通讯量。Alex体现了他的强项,几分钟就把问题归纳成了一个优化问题,然后我们三各自提出一个解法。我做了做实验发现Dave的算法更好。接下来两个月把算法做了很多优化,然后又做了点理论分析就把论文写了。&/p&&p&可惜这个想法似乎有点超前,虽然我们一遍又一遍的改进写作,但投了好几个会审稿人就是不理解,或者觉得这个问题不重要。那个时候学术界已经开始吹嘘“大数据”,但我觉得其实大部分人是不懂的,或者他们的“大数据”仍然是几个GB的规模,烤U盘需要十来分钟的那种。&/p&&p&这是我在CMU的一个工作,我觉得挺有用,但却是唯一没能发表的。&/p&&p&当时跟我坐同一个办公室的是Richard Peng,他做的是理论研究。我经常跟他讨论问题,然后有了些想法合作了一个工作。大体思想是把图压缩的快速算法做到矩阵的低秩近似上。这个工作写了三十页公式但没有任何实验,我主要当做写代码间隙的悠闲娱乐,不过运气很好的中了FOCS。&/p&&p&坦白说我不是特别喜欢纯理论这种,例如在bound的证明中很多大量的项直接丢掉了,导致我觉得bound特别的近似。对于做系统的人来说,最后拼的是常数。这个工作中这种大开大合的做法我觉得很不踏实。所以我觉得以后还是应该做更实在点的东西。&br&&/p&&p&在CMU回到了去百度前的一周七天工作无休的节奏。每周至少80个小时花在学校。如果累了就去健身房,我一般晚上12点去。不仅是我一个人,大家都很努力,例如凌晨的健身房,早3点的办公室,四处都可以见到中国或者印度学生。我那时候的室友田渊栋花在学校的时候比我多很多。&/p&&p&那一阵子有读了很多关于优化的文章。其中对我启发最大的是Bertsekas写于80年代末的那本关于分布式计算的书。此书可以认为是MIT控制领域黄金一代研究成果总结,换到现在仍然不过时。&/p&&p&受启发我转去研究异步算法,就是分布式下不保证数据的及时性来提升系统性能。我基于在百度期间做的算法,做了一些改进和理论分析,然后投了NIPS。&/p&&p&投完NIPS就动身去了Google Research实习。那时候Google
Brain成立不久,在“宇宙的答案”42楼,包括Jeff
Dean,Geoffrey
Hinton,Prabhakar
Raghavan好些大牛挤在一起,加起来论文引用率能超80万。&/p&&p&Alex跟我说,你去读读Jure
Leskovec的文章,学学人家怎么讲故事。我在Google也尝试用了些用户GPS数据来对用户行为建模。可是写文章的时候怎么也写不出Jure的那种故事感,发现自己不是那块料。这篇文章因为用了用户数据,恰逢Snowden让大家意识到隐私的重要性,历经艰辛删了一半结果Google才允许发出来。有些累觉不爱。&br&&/p&&p&不过在Google期间我主要时间花在研究内部代码和文档上。Google的基础架构很好,文档也很健全。虽然没有直接学到了什么,但至少是开了眼界。&/p&&h2&第二年:9/13-8/14&/h2&&p&这学期上了Tuomas Sandholm的机制设计,此乃另一大神,例如最近德州扑克赢了专业选手,之前开公司也卖了上亿。不过这门课我是完完全全没学懂,连承诺的课程大作业都没怎么做出来。之后的两年里我一遇到Tuomas他都会问下有什么进展没。我只能远远看见他就绕开。&/p&&p&NIPS被拒了,发现审稿人不懂线程和进程的区别,有点沮丧。隔壁实验室一篇想法类似但简单很多的论文倒是中了oral,所以那阵子压力很大。Alex安慰说这种事情常有发生,看淡点,然后举了很多自己的例子。&/p&&p&之后想了想,一篇好文章自然需要有足够多的“干货”,或者说信息量, 但一篇能被接受的文章需要满足下面这个公式: &/p&&blockquote&文章的信息量 / 文章的易读性 & 审稿人水平 * 审稿人花的时间 &/blockquote&&p&对于机器学习会议,因为投稿量大,所以审稿人很多自然平均水平就会下降。而且很多审稿人就花半个小时到一个小时来读文章,所以公式右边数值通常是很小,而且不是我们能控制。&/p&&p&如果文章的信息量不大,例如是改进前面工作或者一些简单的新想法,那么公式成立的概率很大。而对于信息量大的文章,就需要努力提升易读性,包括清晰的问题设定,足够的上下文解释等等。而前面投的那篇NIPS,以及更早的那个被拒工作,就是因为我们假设了审稿人有足够多的相关专业知识,而我们塞进了太多干货使得大家都读糊涂了。&/p&&p&即使对于已经发表的文章,上面那个公式同样可以用来衡量一篇论文的引用率。例如经常见到干货很多的文章没有什么人引用,而同时期的某些工作就是考虑了其中简单特殊情况结果被大引特引。&/p&&p&接下来的半年我主要在做一个通用的分布式机器学习框架,是想以后做实验方便些。名字就叫parameter
server,沿用了Alex
10年论文提出的名字。花了很多时间在接口设计上,做了好几个版本实现,也跑了些工业界级别的大规模的实验。&/p&&p&不过真正花了我大量时间的是在写论文上。目标是把这个工作投到OSDI上,OSDI是系统界两大会之一。我们预计审稿人跟Dave两年前状态差不多,不会有太多机器学习和数学背景,所以需要尽量的少用公式。整整一个月就花在写论文上,14页的文章满满都是文字和示意图。不过努力没有白费,最终论文被接受了。随后又花了好几周准备大会报告上。相对于平时花一周写论文,两三天准备报告,这次在写作和报告水平上有了很大的提升。没有放进去的公式和定理投了接下来的NIPS,这次运气很好的中了。&/p&&p&有了文章后稍微心安了点可以更自由的做些事情。&/p&&p&寒假回了趟国,跑去百度找了凯哥和潼哥。潼哥说他最近有个想法,于是快糙猛的把实验做了然后写了篇论文投了KDD。同时期Alex一个学生也把他一个一直想让我做但我觉得这个小trick不值得我花时间的想法投了KDD,结果中了最佳论文。作报告那天我在的会场稀稀疏疏几个人,他们隔壁会场人山人海。这个使得好长一段时间我都在琢磨是不是还是要跟着导师走比较好。&/p&&p&那时凯哥在百度搞少帅计划,觉得蛮合适就加入了。这时凯哥正带着一大帮兄弟轰轰烈烈的搞深度学习,我自然也是跳坑了。试过好几个想法后,我觉得做做分布式的深度学习框架比较对胃口。我挑了CXXNet作为起点,主要是因为跟天奇比较熟。同时也慢慢上手跑一些Alexnet之类的实验。&/p&&p&我是因为少帅计划才开始开始做深度学习相关项目,凯哥也很支持我做开源开发回馈社会而不是只做公司内部的产品。但在少帅期间并没有做出什么对公司有帮助的事,很是惭愧。&/p&&h2&第三年:9/14-8/15&/h2&&p&回CMU后Alex看见深度学习这么火,说我们也去买点GPU玩玩。但我们比较穷,只能去newegg上掏点便宜货。这个开启了轰轰烈烈的机器折腾之旅。整个一年我觉得我都在买买买装装装上。最终我们可能就花了小几万刀攒出了一个有80块GPU的集群。现在想想时间上花费不值得,而且为了图便宜买了各种型号的硬件导致维护成本高。但当时候乐在其中。具体细节可以看这篇&a href=&https://link.zhihu.com/?target=http%3A//mli.github.io/gpu//build-gpu-clusters/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&blog&/a&&/p&&p&这一年写了很多parameter server代码,同时花了很时间帮助用户使用这些代码。很难说做得很成功,现在想想有几个原因。写代码时我会优先考虑性能和支持最多的机器学习算法。但正如前面的错误,忽略了代码的易读性,从而导致只有少部分人能理解代码从而做一些开发。例如我尝试让Alex组的学生来使用这些代码,但其中的各种异步和callback让他们觉得很是难懂。其次是没有人能一起审核代码接口,导致这些接口有浓浓的个人味道,很难做到对所有人都简单明了。&/p&&p&不过幸运的是找到一帮志同道合的小伙伴。最早是我发现天奇在写xgboost的分布式启动脚本,我看了看发现挺好用,就跟他聊了聊。聊下的发现有很多基础部件例如启动脚本,文件读取应该是可以多个项目共同使用,而不是每个项目都造一个轮子。于是跟天奇在Github上创建了一个叫DMLC的组织,用来加强合作和沟通。第一个项目是dmlc-core,放置了启动和数据读取代码。 &/p&&p&DMLC的第二个新项目叫wormhole。想法是提供一系列分布式机器学习算法,他们使用差不多相同的配置参数来统一用户体验。我把parameter
server里面的机器学习相关算法移植了过来,天奇移植了xgboost。Parameter
server原有的系统代码简化到了ps-lite。 &/p&&p&中途我听百度同学说factorization machine(FM)在广告数据上效果不错,所以在wormhole上实现了下。针对分布式做了一些优化,然后投了WSDM。前后没有花到一个月,但神奇的竟然拿了最佳论文提名。&/p&&p&在wormhole的开发中发现一个问题,就是各个算法还是挺不一样,他们可以共用一些代码,但又有各自的特点,需要特别的优化来保证性能。这样导致维护有些困难,例如对共用代码的改动导致所有项目都要检查下。总结下来觉得一个项目最好只做一件事情。所以天奇把xgboost代码放回原来项目,我也把FM独立出来一个项目叫difacto。&/p&&p&通过一系列的项目,我学到的一点是,以目前的水平和人力,做一个通用而且高效的分布式机器学习框架是很难的一件事情。比较可行的是针对一类相似的机器学习算法做针对性的项目。这个项目的接口必须是符合这类算法结构,所以做算法开发的同学也能容易理解,而不是过多暴露底层系统细节。&/p&&p&真正的让DMLC社区壮大的项目是第三个,叫做MXNet。当时的背景是CXXNet达到了一定的成熟度,但它的灵活性有局限性。用户只能通过一个配置项来定义模型,而不是交互式的编程。另外一个项目是zz和敏捷他们做的Minerva,是一个类似numpy的交互式编程接口,但这个灵活的接口对稳定性和性能优化带来很多挑战。我当时候同时给两个项目做分布式的扩展,所有都有一定的了解。然后一个自然的想法是,把两个项目合并起来取长补短岂不是很好。&/p&&p&召集了两个项目的开发人员讨论了几次,有了大致的眉目。新项目取名MXNet,可以叫做mixed-net,是前面两个名字(Minerva和CXXNet)的组合。放弃开发了几年的项目不是容易的决定,但幸运的是小伙伴都愿意最求更好,所以 MXNet进展挺顺利。很快就有了可以跑的第一个版本。 &/p&&h2&第四年:9/15-8/16&/h2&&p&前半年为difacto和MXNet写了很多代码。其实一开始的时候我觉得difacto更重要些,毕竟它对于线性算法的提升非常显著而且额外的计算开销并不大,这对广告预估之类的应用会有非常大的提升。但有次遇到Andrew
Ng,我跟他说我同时在做这两个项目,他立即告诉我我应该全部精力放在MXNet上,这个的未来空间会大很多。我一直很佩服Andrew的眼光,所以听了他的建议。&/p&&p&11月的时候MXNet就有了很高的完成度。写了个小论文投去了NIPS的workshop也算是歇了口气。但随后就听到了TensorFlow(TF)开源的消息。由 Jeff Dean领导大量全职工程师开发,Google庞大的宣传机器支持,不出意料迅速成为最流行的深度学习平台。TF对我们压力还是蛮大,我们有核心开发者转去用了TF。不过TF的存在让我领悟到一点,与其过分关心和担忧对手,不如把精力集中在把自己的做得更好。&/p&&p&NIPS的时候MXNet的小伙伴聚了一次,有好几个我其实是第一次见面。随后Nvidia的GTC邀请我们去做报告。在这两次之间大家爆发了一把,做了很多地方的改进。同时用户也在稳步增长。我们一直觉得MXNet是小开发团队所以做新东西快这是一个优势,但随着用户增加,收到抱怨说开发太快导致很多模块兼容性有问题。有段时间也在反思要在新技术开发速度和稳定性之间做一些权衡。&/p&&p&这时一夜之间大数据不再流行,大家都在谈深度学习了。&/p&&p&我也花了很多力气在宣传MXNet和争取开发者上。包括微博知乎上吼一吼,四处给报告。在大量的点赞声中有些陶醉,但很多中肯的批评也让我意识到重要的一点,就是应该真诚的分享而不是简单的吹嘘。&/p&&p&因为大量的媒体介入,整个深度学习有娱乐化的趋势。娱乐化的报道很多都只是一些简单信息,(有偏见)的观点,而没有太多干货。不仅对别人没营养,对自己来说也就是满足虚荣心。与其写这些简单的水文,不如静下心做一些有深度的分享,包括技术细节,设计思路,和其中的体会。&/p&&p&此类分享一个容易陷入的误区是只关注自己做了什么,结果多么好。这些确实能证明个人能力,对于想重复这个工作的人来说会有很大帮助。但更多的人更关心的是适用范围在哪里,就是什么情况下效果会减弱;为什么结果会那么好;insight是什么。这个需要更多深入的理解和思考,而不是简单的展示结果。&/p&&p&这个对写论文也是如此。只说自己的结果比基线好多少只能说明这是不错的工作,但结果再好并不能意味这个工作有深度。&/p&&p&深度学习的火热导致了各种巨资收购初创司不断。Alex也有点按耐不住, 结果是他,Dave,Ash(曾经是YahooCTO)和我合伙弄了一家公司,拿了几十万的天使投资就开工了。Alex写爬虫,Dave写框架,我跑模型,风风火火干了好一阵子。可惜中途Dave跑路去跟Jeff做TF了。后来这个公司卖给了一个小上市公司。再后来我们觉得这个公司不靠谱也就没考虑跟他们干了。&/p&&p&第一次创业不能说很成功,从中学到几点:一是跟教授开公司一定要注意有太多想法但没死死的掐住一个做,二是找一堆兼职的博士生来干活不是特别靠谱,尤其是产品不明确的时候,三是即使要卖公司也一定要做一个产品出来。我们卖的时候给很多人的感觉是团队人太强但产品太弱,所以他们只想要人而已。四是试图想要通过技术去改变一个非技术公司是很难的事情,尤其是过于新的技术。&/p&&p&然后我们就奔去折腾下一个公司。Ash早财务自由所以想做一个大的想法,但这时Alex刚在湾区买了个房,有还贷压力,他选择去了Amazon。于是算是胎死腹中。&/p&&p&随后收到Jeff的邮件说有没有兴趣加入Google,自然这是一个很诱人的机会。同时我觉得小的创业技术性强的公司是不错的选择。但从MXNet的发展上来书,去Amazon是最好选择之一。自己挖的坑,总是要自己填的。所以我以兼职的身份去了Amazon,领着一帮小弟做些MXNet开发和AWS上深度学习的应用。&/p&&h2&第五年:9/16-2/17 &/h2&&p&早在15年初Alex就表示我可以毕业了,但作为拖延晚期患者,迟迟没开始准备。这时候感觉不能再拖了,于是窝在湾区写毕业论文。Alex觉得毕业论文应该好好写,但我对把前面都做完的东西再捣鼓写写实在是没兴趣,尤其是加州太阳那么好,大部分时间我都是躺在后院晒太阳。此时B站已经完全被小学生占领,这边买书也不方便,无聊之余刷了很多起点。然后还写了篇&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&炼丹文&/a&。 &/p&&p&CMU要求答辩委员会需要有三个CMU老师和一个学校外的。除了两个导师外,我找了Jeff Dean和刚加入CMU的Ruslan
Salakhutdinov. 结果Russ随后就加入了Apple,整个委员会的人都在湾区了。Jeff开玩笑说可以来Google答辩。可惜跟CMU争吵了好多次,还是不允许在校外答辩,而且必须要三个人委员会成员在场。这些限制导致答辩一拖再拖,而且临时加了Barnabas
Poczos来凑人数。最后是Jeff的助理快刀斩乱麻的协调好了时间把所有东西定好了。没有她估计我还可以拖几个月。&/p&&p&答辩的时候是一个比较奇异的状态,委员会里有Google, Amazon, Apple的AI负责人,剩下两个和我又分别在这三家公司兼职。这个反应了当下AI领域学术界纷纷跑去工业界的趋势。 &/p&&p&不过答辩这个事情倒是挺简单,跟平常做个报告没什么太多区别。一片祥和,即使Russ问了MXNet和TensorFlow哪家强这个问题也没有打起来。&/p&&p&答辩后我问委员会说,我在考虑找个学术界的工作,有什么建议没。大家介绍了一大堆经验,不过大家都强调的一个重点是:学术界好忙好忙,而且好穷好穷,工业界的薪水(就差指自己脸了)分分钟秒掉CMU校长。你要好好想。&/p&&h2&总结&/h2&&p&答辩前一天的晚上,我想了两个问题,一个是“博士收获最大的是什么”,另一个是“如果可以重来会怎么办”。对于第一个问题,这五年时间自然学到了很多东西,例如系统的学习了分布式系统,紧跟了机器学习这五年的发展,写文章做幻灯片做报告水平有提升,代码能力也加强了些。自信上有所提高,觉得既可以做一流的研究,也可以写跟大团队PK的代码。只要努力,对手没什么可怕的。&/p&&p&但更重要的是博士的五年的时间可以专注的把一些事情从技术上做到最好,做出新的突破,这个氛围没有其他地方能给予。&/p&&p&第二个问题的一个选项是当年留在国内会怎么样? 当年百度的伙伴们多数现在都做得很好,都在引领这一波AI的潮流,甚至有好几个创造了上亿价值的公司。所以从金钱或者影响力角度来看,一直在工业界也不差,说不定现在已经是土豪了。&/p&&p&不过我觉得还是会选择读博。赚钱以后还有大把时间可以,但是能花几年时间在某个领域从入门到精通甚至到推动这个领域发展的机会就一次。站在这个领域的高点会发现世界虽然很大,但其实其他领域也使用差不多的技术,有着同样的发展规律。博士期间领悟到的学习的方法可以在各个方向上都会大有作为。&/p&&p&更重要的是理想和情怀。人一生要工作五十年,为什么不花五年来追求下理想和情怀呢?&/p&
前言12年8月提着一个行李箱降落在匹兹堡机场。没找住的地方,也不知道CMU应该怎么去。对未来一片迷茫,但充满乐观。 现在,刚完成了博士期间最后的一场报告,在同样的机场,不过是在等待离开的航班。回想过去的五年,是折腾的五年,也是自我感悟和提升的五…
&p&&/p&&p&&a href=&https://link.zhihu.com/?target=http%3A//www.buggybread.com/-java-j2ee-interview-questions-and.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&500 Java / J2EE Interview Questions and Answers&/a&&/p&&p&&u&&a href=&https://link.zhihu.com/?target=http%3A//www.programmerinterview.com/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&programmerinterview.com&/span&&span class=&invisible&&/&/span&&span class=&ellipsis&&&/span&&/a&&/u&&/p&&p&&a href=&https://link.zhihu.com/?target=http%3A//www.1point3acres.com/bbs/thread--1.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&吐血总结:面试知识点【一亩三分地论坛刷题版】 - Powered by Discuz!&/a&&/p&&p&&a href=&https://link.zhihu.com/?target=http%3A//www.1point3acres.com/bbs/thread--1.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ms new grad找data scientist还有多少活路【一亩三分地论坛找工求职版】&/a&&/p&&p&&a href=&https://link.zhihu.com/?target=http%3A//www.1point3acres.com/bbs/thread--1.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&求问Udemy里面比较优质的project课程【一亩三分地论坛公开课版】 - Powered by Discuz!&/a&&/p&&p&&br&&/p&&p&看到一种说法,在美国想找SDE,最好第一年别学ML......web develop,IOS/Android招人最多。申美国CS MS,如果想留下工作,转专业男生没刷200+ LeetCode并且带着几个project感觉别来了......&/p&&p&另外关于语言的问题,Amazon和Microsoft面试好像都是要求Java/C++, Python选手很尴尬。所以还是推荐尽早学一门静态语言吧&/p&&p&---------------------------------------------------------------------------------------&/p&&p&&/p&&p&[Udacity]How to Use Git and GitHub: Version Control for Code&/p&&p&&a href=&https://link.zhihu.com/?target=http%3A//www.liaoxuefeng.com/wiki/bb000& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Git教程&/a&&/p&&p&&br&&/p&&p&&/p&&p&&a href=&https://link.zhihu.com/?target=http%3A//www.yinwang.org/blog-cn//programming-philosophy& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&编程的智慧&/a& 很惭愧写了那么多垃圾代码&br&&/p&&p&最近才开始用IPython和Jupyter,感觉血亏;羡慕那些好好做笔记的人&br&&/p&&p&&a href=&https://link.zhihu.com/?target=http%3A//x-wei.github.io/IPython%25E4%25B8%258A%25E6%E5%25AD%25A6%25E4%25B9%25A0%25E7%25AC%%25AE%25B0.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&IPython上手学习笔记&/a&&/p&&p&&a href=&https://link.zhihu.com/?target=http%3A//nbviewer.jupyter.org/github/lijin-THU/notes-python/blob/master/index.ipynb& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Jupyter Notebook Viewer&/a& &/p&&p&&a href=&https://link.zhihu.com/?target=https%3A//algorithm.yuanbin.me/zh-hans/index.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Preface · Data Structure and Algorithm notes&/a&&/p&&p&&br&&/p&&p&---------------------------------------------------------------------------------------&/p&&p&更新&/p&&p&&a href=&https://link.zhihu.com/?target=http%3A//www.1point3acres.com/bbs/thread--1.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&最近学前端,Udemy买的web 课程网盘分享,感兴趣的同学自取&/a&&/p&&p&&a href=&https://link.zhihu.com/?target=http%3A//www.1point3acres.com/bbs/thread--1.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&求CS61B 17春的视频,油管的好多打不开了&/a& 好气呀,有没有人扒下了油管的资源分享一波...&br&&/p&&p&---------------------------------------------------------------------------------------&/p&&p&之前我点赞过的一些回答仅供参考:&/p&&p&&a href=&https://www.zhihu.com/question/& class=&internal&&国际顶尖CS名校(如四大)的本科生需要学习哪些课程? - 教育 - 知乎&/a&&a href=&https://www.zhihu.com/question/& class=&internal&&你所读的计算机科学方向,有哪些不错的讲义(Notes)? - 书籍推荐 - 知乎&/a&&a href=&https://www.zhihu.com/question/& class=&internal&&机器学习该怎么入门? - 机器学习 - 知乎&/a&&/p&&p&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&知乎专栏&/a& crawler入门&/p&&p&&br&&/p&&p&---------------------------------------------------------------------------------------&br&&br&1. &a href=&https://link.zhihu.com/?target=http%3A//mooc.guokr.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&MOOC学院(慕课)| 发现全球在线好课&/a&
CS公开课按评分排序,一般有课程链接(如果课程已下架,去youtube或者百度搜索视频)&/p&&p&2.
一亩三分地公开课板块,进度贴、讨论帖、往期课程汇总贴&/p&&p&3. &a href=&https://link.zhihu.com/?target=https%3A//github.com/prakhar1989/awesome-courses/blob/master/README.md& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&prakhar1989/awesome-courses&/a& github课程总结(主要针对非coursera等公开课平台的课程)&/p&&p&4. &a href=&https://link.zhihu.com/?target=https%3A//ocw.mit.edu/courses/electrical-engineering-and-computer-science/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Electrical Engineering and Computer Science&/a&,MIT opencourseware,平台几乎涵盖所有课程(video,assignment,notes等等,其他学科的课程也有)&/p&&p&5. &a href=&https://link.zhihu.com/?target=https%3A//lagunita.stanford.edu/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&| Stanford Lagunita&/a& 和&a href=&https://link.zhihu.com/?target=http%3A//online.stanford.edu/courses& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Stanford Online&/a& 斯坦福大学公开课平台&/p&&p&6. &a href=&https://link.zhihu.com/?target=https%3A//scs.hosted.panopto.com/Panopto/Pages/Home.aspx& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&scs.hosted.panopto.com/&/span&&span class=&invisible&&Panopto/Pages/Home.aspx&/span&&span class=&ellipsis&&&/span&&/a& 卡内基梅隆大学(搜索关键词后,点击左边的 一切-浏览 有06-16年课程目录)&/p&&p&7.&a href=&https://link.zhihu.com/?target=http%3A//blog.sina.com.cn/s/blog_h6d9.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&自学CS总结_有光_新浪博客&/a& 刚入门转专业小白可参考(math/stat背景,或往data science方向转)&/p&&p&8. &a href=&https://link.zhihu.com/?target=http%3A//www.xuetangx.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&学堂在线-最大的中文慕课(MOOC)平台&/a& 清华+部分edx课程&/p&&p&9. &a href=&https://link.zhihu.com/?target=https%3A//cn.udacity.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&优达学城 (Udacity) - 传授硅谷的名企官方课程&/a& 偏应用&/p&&p&10. &a href=&https://link.zhihu.com/?target=http%3A//gen.lib.rus.ec/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Library Genesis&/a& 电子书免费下载(主要是英文的,也有少数中文的,我下载过的PDF质量都很不错)&/p&&p&11. &a href=&https://link.zhihu.com/?target=http%3A//cuiqingcai.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&静觅丨崔庆才的个人博客&/a& Python crawler博客; Python3别人搭好的框架&a href=&https://link.zhihu.com/?target=https%3A//github.com/7sDream/zhihu-oauth& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&7sDream/zhihu-oauth&/a&&/p&&p&科学上网&/p&&p&我使用的tampermonkey chrome插件,可以下载视频以及字幕;Coursera下载速度有时很慢;Coursera上的每门课程都有评分,我把从其他途径了解的课程评价和coursera上的评分对比了下,感觉上面的评分还算靠谱的;Coursera可以申请助学金(需等待15天)&/p&&p&---------------------------------------------------------------------------------------&br&学习顺序:&/p&&p&根据&a href=&https://www.zhihu.com/question/& class=&internal&&国际顶尖CS名校(如四大)的本科生需要学习哪些课程? - 教育 - 知乎&/a&中的回答&/p&&p&UCB开课顺序:CS 61A, CS 61B, CS 61C, 离散数学+概率论 &/p&&p&MIT开课顺序:&b&6.01 6.02 6.004 6.005 6.006 6.033 6.034 6.046&/b&&/p&&p&不同学校对应的课程选择一门适合自己的即可,MOOC学院可查看他人对课程的评价&/p&&p&(个人观点:学完CS61系列基础课程(或对等课程)+数学,随后的课程按自己的兴趣选择,例如IOS/机器学习/NLP/AI, 由于国外名校课程load比较重(video, reading, assignment, project等),一门课程需花费的时间&1个月,急于找工作的同学未必要按照CS专业的安排走,多与科班生及从业人员交流, 结合自己的情况安排学习顺序。) &/p&&p&&br&&/p&&p&---------------------------------------------------------------------------------------&br&入门导论课程: &br&(1)UCB CS61A(Python)课程主页CS 61A Fall 2016 ;UCB的很多课程youtube上有视频&a href=&https://link.zhihu.com/?target=https%3A//www.youtube.com/user/UCBerkeley/playlists& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https:

我要回帖

更多关于 无量纲化公式 的文章

 

随机推荐