浅谈敏捷思想-01.复杂系统与识别模型

在学习敏捷思想之后,我们可以先简单了解一下,为什么我们需要敏捷思想。

为什么是复杂系统?

在我们生活中,天气就是一个复杂系统。天气预报对于初始值精度的依赖于微小变化都十分敏感,所以有时会不准。

还原论与复杂系统

还原论(Reductionism、还原主义、化约论)认为,复杂的系统、事物、现象可以将其化解为各部分之组合来加以理解和描述。还原论方法是经典科学方法的内核,将高层的、复杂的对象分解为较低层的、简单的对象来处理;世界的本质在于简单性。

但是,随着人们对复杂行为为如何从简单个体的大规模组合中出现进行解释时,混沌、系统生物学、演化经济学和网络理论等新学科胜过了还原论。

蚁群就是一个复杂系统在生活中的例子。单只行军蚁是已知的行为简单的生物,如果将100只行军蚁放在一个平面上,它们会不断往外绕圈直到体力耗尽死去。然而,如果将上百万只放到一起,群体就会组成一个整体,形成具有所谓“集体智能(collective intelligence)”的“超生物(superorganism)”。

复杂系统的定义

定义1:复杂系统是由大量组分组成的网络,不存在中央控制,通过简单运作规则产生出复杂的集体行为和复杂的信息处理,并通过学习和进化产生适应性。

定义2:具有涌现和自组织行为的系统。
如果系统有组织的行为不存在内部和外部的控制者或领导者,则也称之为自组织(self-organizing)。由于简单规则以难以预测的方式产生出复杂行为,这种系统的宏观行为有时也称为涌现(emergent)。

识别模型

Stacey矩阵

1996年,alph D.Stacey在《组织的复杂性和创新》中提出了Stacey矩阵。

Stacey矩阵

Simple

第一个区域,需求明确,技术(解决方案)也确定,这类项目就是简单的项目(Simple);比如注册一个新公司,需求很明确,手续也很清楚,就那么几步规定动作,因此大量代理机构都可以帮你完成这个项目。
既然需求明确,怎么实现也清楚,最好提前把计划做到位,预测型开发模式最适合。

Complex

第二个区域,需求明确,技术却不确定,也就是说怎么实现不知道,这类项目叫复杂的项目(Complex),也叫棘手的项目。比如“无人驾驶”,这项目需求明确吧?“无人驾驶”四个字把需求说的明明白白,就是不要人开,车自己会走。但是“无人驾驶”研究了几十年,各种方法都试过了,一直也没搞定,最近随着人工智能技术的发展才让无人驾驶离现实越来越接近。
技术不确定,怎么实现不知道,只能摸索着来,推荐用迭代开发。

Complicated

第三个区域,技术很确定,需求却不明确,这类项目最坑爹,比如我们经常遇到这样的客户,让我们开发一个信息系统,问我们会什么技术。你都不耐烦了:“老子啥都会,这根本就不需要什么新技术,问题不是我会什么,关键是你到底要什么?”这类项目是烧脑型的项目(Complicated),愁死个人!
既然客户要什么还没想明白,那就想明白什么先做什么,你边做他边想,最好增量开发,分成多个阶段交付,减少推到重来的风险。

Chaotic

第四个区域,需求不清楚,怎么实现也不清楚,这叫混乱状态的项目(Chaotic); 这类项目尽量别碰,基本是要失败的。

Hazy

第五个区域,就是图中紫色区域,不属于前四种区域的其它项目,属于模糊型(Hazy)项目。
需求和实现方案都不明确,最好用敏捷开发,适应性强,灵活机动,拥抱变化。

Cynefin模型

Cynefin框架,又叫Cynefin模型,它是一种领导者决策模型框架,最早是在1999年由威尔士学者Dave Snowden在知识管理与组织战略中提出的.

Cynefin框架有5个域:简单(simple)域,复杂(complex)域,繁杂(complicated)域,混乱(chaotic)域,无序(disorder)域。

领导者可以根据分析环境属于哪种域,做出正确的决策

Cynefin模型

Simple 简单

Simple领域是一种已知的已知领域,表现为熟悉的、确定的和惯用的方式。 因果关系显然而见,处理手法为"感受-归类-反应" (Sense-Categorise-Respond)。

Complicated 繁杂

Complicated领域是一种已知的未知领域,表现为有规律、可预测的事务,可以被专家掌握。处理手法为"感受-分析-反应" (Sense-Analyze-Respond)。

Complex 复杂

Complex领域是一种未知的未知领域,表现为乱流、不可预测、没有正确的答案、突发指示性模式和其他的竞争性思维。因果关系只能从检讨中反映出来,处理手法是"试探-感受-反应" (Probe-Sense-Respond)。

Chaotic 混沌

Chaotic领域是一种不可知的未知领域,表现为高波动性和无序性。完全没有任何因果关系,处理手法为"行动-感受-反应" (Act-Sense-Respond)。

Disorder 无序

如果连是属于以上哪个情况都不清楚的,这是一个无序的状态(disorder),等待参与者把情况安稳至上面四个其中之一的情况。

相关书籍推荐
《复杂》

作者: 梅拉妮·米歇尔
出版社: 湖南科学技术出版社
原作名: Complexity: A Guided Tour
出版年: 2011-08-01

《复杂》

参考资料

[1] 梅拉妮·米歇尔.《复杂》
[2] 顾式传说.复杂领域的Cynefin模型和Stacey模型.https://www.cnblogs.com/redroot/p/3783055.html
[3] 骄傲的豹子.Stacey矩阵简介.https://www.cnblogs.com/wanglee/p/11133875.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,针对您的问题,我可以给您提供一个基于 TensorFlow 2.x 的食物图像识别模型简单实现思路和步骤。 首先,我们需要准备一组带有标注的食品图像数据集,可以使用现有的公开数据集,例如 Food-101 数据集,该数据集包括 101 类不同类型的食品图像,并且已经经过标注。 接下来,我们可以使用 TensorFlow 2.x 中的 Keras 库来构建食物图像识别模型,具体的步骤如下: 1. 加载数据集并进行预处理。我们可以使用 TensorFlow 中的 ImageDataGenerator 类来进行数据增强和预处理操作,例如对图像进行旋转、缩放、翻转等操作,以增加数据集的多样性和鲁棒性。 2. 定义模型结构。我们可以使用 Keras 中提供的各种卷积神经网络(CNN)模型,例如 VGG、ResNet、Inception 等,也可以自己设计模型结构。根据数据集的大小和复杂度,我们可以选择使用较浅的网络结构,以避免过拟合,或者使用较深的网络结构,以提高模型的准确率。 3. 编译模型。在编译模型时,我们需要指定损失函数、优化器和评估指标。对于分类任务,我们可以选择使用交叉熵损失函数,常用的优化器有 Adam、SGD、RMSprop 等,评估指标可以选择准确率、精确率、召回率等。 4. 训练模型。在训练模型时,我们可以根据数据集的大小和计算资源的限制,选择适当的批量大小和训练轮数。可以使用 Keras 中的 fit() 方法来进行模型训练,同时可以指定验证集和回调函数,以监控模型的训练过程和性能。 5. 测试模型。在测试模型时,我们可以使用测试集来评估模型的准确率和其他指标。可以使用 Keras 中的 evaluate() 方法来进行模型测试,并输出测试结果。 以上就是一个基于 TensorFlow 2.x 的食物图像识别模型简单实现思路和步骤。当然,实际应用中还需要根据具体的场景和需求进行进一步的优化和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值