转《Transcendence》影评一则

休年假在回家的火车上我看的这部《Transcendence》,觉得影片没有故弄玄虚,场景前后呼应,是带着科普作用的纯爱电影,很不错。我也记了几笔感触,后误删了。今在豆瓣电影上看到一则短小精悍的影评,蘑菇以小诗的形式即道出了电影故事又含蓄表达出电影的情爱,非常好。
超验骇客

我所做的一切,都是为了和你在一起

我要死了,可是我舍不得你
我努力的让自己的思想保存下来
你被人追杀,我帮你把他们抓起来
你想改变世界,我每天做研究为你改变世界
我想通过别人抱抱你,可是你接受不了别人
于是我努力做出一个自己来抱抱你

可是你却不相信我了
你怪我过分先进控制别人
你怪我监测你的每一刻状态
你甚至携带病毒回来

你看不见我在用科技治疗疾病
你看不见我在改变环境
你没有注意到我未曾伤害他人的性命
你也看不到你沉睡时我悲伤的眼神

你重伤,生命垂危
好朋友的生命也危在旦夕
如果你的结局是死亡
那我的选择
还是和你在一起

这一刻,你是否相信我是你的威尔?

雷达里走出的ROC

ROC

Radar Operations Center(雷达操作中心)
receiver operating characteristic curve(接收者操作特征曲线)
或者叫受试者工作特征曲线


ROC与雷达的联系

仔细看ROC英文第一个单词“receiver”,就会理解最初它的翻译是“接收者操作特征曲线”。首先是由第二次世界大战中的电子工程师和雷达工程师发明并最先使用的。
那时雷达兵(信号接收者)的任务就是每天盯着雷达显示器,观察屏幕上是否出现代表敌方飞行物的光点。显示屏上出现光点有两种可能性,一种可能是雷达探测到了敌机的行踪,另一种可能是有鸟类或其他非军事飞行物从雷达探测区域经过。在第一种情况下,如果雷达兵及时发出警报,通知高炮部队或者空军拦截,就是“命中”,而如果这时雷达兵没有把显示屏上的光点判断为信号,就是“漏报”;在后一种情况下如果雷达兵却把它当作敌机(信号)看待,就是“虚报”,如果这时雷达兵正确地把它判断为其他飞行物(噪音),那就是“正确排除”。
我们都能理解,人不犯错误几乎是不可能的,更何况是通过简单的亮点判断敌机,为了评估雷达兵判断的正确与否,我们可以列出如下四格表:

雷达兵的判断实体目标
敌机飞鸟
是敌机肯定虚警
是飞鸟漏报正确排除

针对此四格表,我们可能计算击中率、虚报率、漏报率、正确排除率。
如何找到一个最佳的临界点使得“击中率”和“正确排除率”同时达到最佳效果?我们都希望理论上达到100%的“击中率”和“正确排除率”,那么谁最接近这个点(ROC曲线左上角顶点),谁的工作业绩也就最好。


ROC曲线首先是由二战中的电子工程师和雷达工程师发明的,用来侦测战场上的敌军载具(飞机、船舰),也就是信号检测理论。
之后很快就被引入了心理学来进行信号的知觉检测。
数十年来,ROC分析被用于医学、无线电、生物学、犯罪心理学领域中,而且最近在机器学习(machine learning)和数据挖掘(data mining)领域也得到了很好的发展。


ROC在医学诊断上的应用

某种检测结果真实情况
患病健康
是阳性真阳性假阳性
是阴性假阴性真阴性

这个四格表衍生的各种指标:真阳性率(敏感度)、假阳性率、假阴性率、真阴性率(特异度)等等都是评估替代检验方法鉴别患病和无病的能力。通常情况下我们以敏感度为纵坐标,1-特异度为横坐标绘制曲线,制作ROC曲线。


二元分类模型

分类模型(又称分类器,或诊断)是将一个实例映射到一个特定类的过程。
ROC分析的是二元分类模型,也就是输出结果只有两种类别的模型,例如:(有病/没病)(垃圾邮件/非垃圾邮件)(实体/非实体)。
当讯号侦测(或变数测量)的结果是一个连续值时,类与类的边界必须用一个阈值(threshold)来界定。
在雷达内部也存在许多二元分模型,比如在终端P显显示点迹,测出的回波强度值是连续的实数(比如数字化为0~255区间),以160为阈值,阈值以上便诊断为需显示的点迹,阈值未满者诊断为干净区。
二元分类模型的个案预测有四种结局:

  • 真阳性(TP):诊断为有,实际上也有实体目标。(雷达正常)
  • 伪阳性(FP):诊断为有,实际却没有实体目标。(雷达虚警) 真阴性(TN):诊断为没有,实际上也没有实体目标。(雷达正常)
  • 伪阴性(FN):诊断为没有,实际却有实体目标。(雷达发现概率低)

ROC意义

  • 用于:
    1. 选择最佳的信号侦测模型
    2. 在同一模型中设定最佳阈值
  • 特性:在做决策时,ROC分析不受“成本/效益”的影响,给出客观中立的建议。

ROC相关术语和概率

  • 阳性(P, positive)
  • 阴性(N, Negative)
  • 真阳性(TP, true positive),正确的肯定,又称命中(hit)
  • 真阴性(TN, true negative),正确的否定,又称正确拒绝(correct rejection)
  • 伪阳性(FP, false positive),错误的肯定,又称假警报(false alarm)、第一型错误
  • 伪阴性(FN, false negative),错误的否定,又称未命中(miss)、第二型错误
  • 真阳性率(TPR, true positive rate),又称命中率(hit rate),TPR=TP/P=TP/(TP+FN)
  • 伪阳性率(FPR, false positive tate),又称错误命中率,假警报率(false alarm rate),FPR=FP/N=FP/(FP+TN)
  • 准确度(ACC, accuracy),ACC=(TP+TN)/(P+N),即(真阳性+真阴性)/总样本数
  • 真阴性率(TNR),又称特异度(SPC, specificity),SPC=TN/N=TN/(FP+TN)=1-FPR
  • 阳性预测值(PPV),PPV=TP/(TP+FP)
  • 阴性预测值(NPV),NPV=TN/(TN+FN)

ROC空间

ROC空间将伪阳性率(FPR)定义为 X 轴,真阳性率(TPR)定义为 Y 轴。
TPR:在所有实际为阳性的样本中,被正确地判断为阳性之比率。
FPR:在所有实际为阴性的样本中,被错误地判断为阳性之比率。
给定一个二元分类模型和它的阈值,就能从所有样本的(阳性/阴性)真实值和预测值计算出一个 (X=FPR, Y=TPR) 座标点。
从 (0, 0) 到 (1,1) 的对角线将ROC空间划分为左上/右下两个区域,在这条线的以上的点代表了一个好的分类结果(胜过随机分类),而在这条线以下的点代表了差的分类结果(劣于随机分类)。


ROC曲线

ROC空间里的单点,是给定分类模型且给定阈值后得出的。但同一个二元分类模型的阈值可能设定为高或低,每种阈值的设定会得出不同的FPR和TPR。将同一模型每个阈值 的 (FPR, TPR) 座标都画在ROC空间里,就成为特定模型的ROC曲线。
ROC