[Day 18] 资料产品生命周期管理-自动决策

如同前面所说,资料模型需要运用到实际环境中才会发挥价值

Initiation

延续之前辅助决策的初始条件,如果想使用资料来做自动决策,最重要的一样是要厘清想解决的问题是什麽。
常见的问题像是:
「明天会不会下雨?」
「使用者会不会点击?」
「使用者是不是本人?」

面对这些问题,其实在技术上都有不只一种方式来回答。这时候就是要根据目前持有的前三层的资料品来决定可行的解决方案(没错上面这段都是直接 Ctrl+C, Ctrl+V)。

再来才是自动决策的重点:要自动做什麽事?

「如果明天会下雨,自动准备雨衣。」
「自动换成使用者会点击的广告。」
「如果使用者是本人,自动将手机解锁。」

由於是自动决策,除了资料产品需要准备好之外,也要确认自动化是可行的。

Design

上一篇我们提到了通常辅助决策会建立门槛值来协助使用者做决策。自动决策就是进一步将使用者决策这段自动化,在设计上需要多着墨这段,特别是当自动化这段超出软件范畴、需要做软硬体整合的时候。

延续上面的例子,像是。
「如果明天会下雨,让机器人自动将雨衣送到客人门口。」
「如果透过前置镜头辨识出使用者为本人,自动将手机解锁。」

这个时候牵扯到的事情就不只是区区「资料」了。

Implement

在辅助决策时提到,这些模型可以使用 BI 报表或是 APIs 来跟使用者沟通。到了自动决策,就会更依赖这些 APIs 了。这些 APIs 会跟用来做自动决策的工具(不管是相机还是其他软件)相互沟通,而这些自动决策系统的 SLA 往往又比辅助系统更高(你绝对希望更快的人脸解锁、不希望自动驾驶在路上发生系统性的问题、或是网站因为人太多就让推荐系统当掉),在设计上就需要考量到实务被使用的状况,例如 latency, capacity 等系统性的要求。

Deployment

部署阶段一样除了考量前几层的资料产品外呢,需要特别注意整个自动决策产品的 SLA(Service Level Aggrement)。单一产品要做到 99.9% 的 uptime 都不是简单的事,何况资料产品层层叠叠,从原始资料一路叠到 Model 和 API,每个单一产品都需要有极高的稳定程度,才有办法让最终的自动决策系统达到 99.9% 的稳定度。(这段也是复制贴上啦)

Evaluation

评估阶段基本上也是在处理两个层面问题:

信度(Validaty):除了结果的准确率是否足够?
不同的问题可以被接受的准确率(或错误率)是不同的。像是 Iphone 人脸辨识解锁你绝对不希望有任何错误可能;但是像台风路径预测,就可以接受相对较大的误差。

效度(reliability):结果是否稳定、能够重复实现?就像之前谈到的,模型不能只有上线那天好,而是希望能够稳定发挥效果;系统面的稳定也是一样,我们会希望每天资料都可以顺利处理、不会因为突然的过量使用者造成系统停机或当掉。

自动化系统的特色就在於当模型产生预测结果後,自动化系统就会根据条件做後续的处理(像是解锁、或是控制汽车左转、右转),因此对於模型的稳定度以及预测率都会更为要求,让整个流程评估的复杂度和难度大大提升。

Iteration

越上层的资料产品迭代起来也就越麻烦,下层产品的任何迭代都会影响到上层产品。可以很简单的想像这个情境:当原始资料更新格式,却没有被妥当处理时,就会连带影响後续的加工资料、模型、以及辅助决策。更麻烦的事情,每个下层资料产品都可能会被多个上层资料产品使用,当有需求会改动到下层资料产品时,都需要特别小心意想不到的 side effect。

由於自动化机制反应速度都比人类快许多,更需要考虑当自动决策失误时可能造成的风险,来决定自动化的程度以及标准。例如推荐系统如果发生问题,顶多就是造成一些商业损失;反之,如果自动驾驶发生问题,可能会造成严重的人命损失。

从以下自动驾驶的分级来看就很清楚,风险越高的控制,会先以辅助决策为主、自动化的标准也越高;风险越低的也就越容易优先自动化。

https://ithelp.ithome.com.tw/upload/images/20210918/20141140esRQ52sI68.jpg
(https://www.stockfeel.com.tw/%E8%87%AA%E5%8B%95%E9%A7%95%E9%A7%9B%E8%88%87%E9%A7%95%E9%A7%9B%E8%BC%94%E5%8A%A9/)

References

https://www.stockfeel.com.tw/%E8%87%AA%E5%8B%95%E9%A7%95%E9%A7%9B%E8%88%87%E9%A7%95%E9%A7%9B%E8%BC%94%E5%8A%A9/


<<:  [Day 13]

>>:  [D03] test

Kotlin Android 第23天,从 0 到 ML - CameraX

前言: 今天来介绍如何创建使用 CameraX 来显示预览 大纲 : build.gradle(ap...

[Day27]Flutter Netflix UI 使用json_serializable转换Model

大家好,今天要来做Model的转换,使用到json_serializable、build_runne...

一次一件事就好,对你而言最重要的东西是什麽?

Fake it till you make it(假装成功,直到你真的成功)。 - Emily i...

[Python 爬虫这样学,一定是大拇指拉!] DAY13 - HTTP / HTTPS (4)

本篇主要讲解 HTTP 状态码代表的意思。 主要是针对状态码的类别做讲解,所以不用担心会太多。且并不...

Day29 - 集成学习 (ensemble learning) part2

今天要继续介绍另外两个集成学习的方法 max-out unit 结合与内插(interpolatio...