深刻理解算法和快速掌握编程仿真的“绝招”——致初学者

此文为临菲电科“AI周末零基础免费研修班”而作,兼作“致初学者”。

AI周末零基础免费研修班——深度学习基础与Python仿真,今天开始算法推导和编程仿真,为帮助大家“高效”学习,根据我们过去的教学经历和研发实践,简要整理出一点文字,尽管称之为“绝招”,但也因人而异。不过,我们希望能对大家有些启发。

一、“绝招”

(1)、通读程序

在明白算法原理后,把老师给的程序“通读”和运行,观察运行结果,并与算法预期结果比较。

(2)、改变条件、参数和输入数据

改变假设条件、算法中的参数设置和输入数据(对于深度学习算法,包括改变训练数据),重新运行程序,观察运行结果并对照算法的进行分析讨论。

(3)“默写”仿真程序

以算法为线索,分析程序结构和记住关键语句(对初学编程语言者尤为重要),然后自己独立地重新“默写”出原来的程序,实在“默”不出来的部分,才去看看老师给的程序中对应的部分是怎么编写的。

大部分人止于上面(1),没有(2)更没有(3),所以学习效果不理想——知其然而不知其所以然。所以下面谈谈(2)和(3)。

二、关于 “(2)改变条件、参数和数据”

(1)对于理解算法的作用

条件是算法成立的前提。有很多算法在实际中“用不起来”,就是因为在实际应用时算法的假设条件不能得到满足。通过改变假设条件,你会体会到“算法在什么样的条件下才能用。”

参数和数据是算法性能甚至有效性的保证。很多算法的性能取决于参数设置,参数设置不当会导致算法性能下降,甚至算法不能“运行”,例如:很多迭代算法中的“步长”设置不当会导致不收敛、数据长度不够会导致性能变差、深度学习中用于训练的数据不足会导致训练出的模型难以应用,等等。通过改变参数和数据,你会体会到“算法在怎样的参数和数据时才能具有好的性能”。

(2)对于理论创新和产品开发的作用

改变条件、参数和数据,可能会诱发你的创新灵感!无论是对研究生还是工程技术人员,都非常重要。

潜在的“创新”可能:

A、改善条件,使之满足算法要求。比如增加辅助措施、改变产品结构等。

B、改进算法,拓宽条件适应性,放松参数和数据要求。

——你可能写一遍很好的学术论文,也可能让你的产品适应更广阔的应用场景,或者具有更强的竞争力。

三、关于“(3)‘默写’仿真程序”

抛开老师给的代码,在仿真环境中自己把原程序“默写”出来,看看你的仿真效果。这不仅是快速掌握编程语言的捷径,而且也许你能“默写”出更好的程序来。

当然,因人而异,自己试试吧。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180701G1FU9800?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券