“现象意识”#2:用白盒的视角研究意识和大脑,会是什么景象?微意识,主体感,超心智,意识中层理论

自我不是现成的,而是通过行动的选择不断生成的 —— 约翰 • 杜威

之前,我们已经通过心理学角度认知系统2角度,探讨了意识及其产生。值得补充强调的是,意识不可能是孤岛,他是外部环境和内部大脑碰撞交互的结果,外部的环境和社会因素会深刻地影响大脑的运作,而大脑内部的解剖学结构和各个组织(特别是新皮质)的交互也起到至关重要的作用。

如果我们执意用白盒视角来探究大脑的意识,将是一条硬核的道路。但脑神经科学家倾向于选择这条道路,克里斯托夫·科赫就在《意识探秘》一书中阐述了他的探索道路,主要的研究内容就是揭示意识的神经相关集合NCC(neuronal correlates of consciousness)。通俗地说就是,足以引起特定有意识知觉的最小神经事件的集合虽然这项任务看起来就很艰难,但是我们有信心假设,生物(特别是人类)产生意识是不需要所有的神经细胞参与的。尝试过冥想的人都保留着自我的意识,但隔绝了许多感官输入;沉浸工作的人,会有那么一秒,体验到自我的存在,但这个体验也似乎只限于体验,没有切实的感官输入或其他的明确目的;即使先天的盲人(没有视觉感官输入),也可以通过其他的感官(触觉,嗅觉),想象视觉的体验。事实上科赫已经把初级视觉皮层(V1)排除在外了。

当然我认为需要强调的是,自我不是现成的,意识也不是现成的,而是通过行动的选择不断生成的,科赫的研究是在意识已经在那儿存在了的基础上的。我们人类在儿童阶段的意识和成人阶段的意识是一样的吗?两个阶段的NCC是一样的吗?我持怀疑态度。

当然,科赫的研究本身充满价值,其中许多新颖的观点和引人思考的实践,都值得我们长时间去探索,这里我总结几点重要的思考:

1. 我们是否应该放宽“意识”的定义?

在许多人狭隘的概念中,“意识”是要有“自我”的体验,已经为什么现在我们有这种“自我”的体验而不是其他的感受。但是,“自我”的概念真的这么重要吗?如果没有明确的“自我”概念,一个生物可以从第一人称视角感受,觉知,主观体验一些事物,这不可以被称为有意识吗?对于疼痛这种抽象概念,动物,婴儿虽然不能自身的体验,但是拥有了工作 记忆后,虽然可能无法用语言表达,但他们此刻能够切实地体验到甚至想象这种概念。这些主观的体验在客观上是脑神经中优势NCC的发放。因此如果放宽“意识”的狭隘定义,就可以切实地做一些工作研究意识的基本组成。

2. 既然僵尸行为这么有效,为什么还需要意识NCC?

对于有复杂性局部癫痫和梦游患者,甚至普通人的日常运动(骑车,钢琴),他们都可以完成自己熟悉的动作,这些自动行为或者条件反射只是执行某个内部程序,

这种刻板模式在很多情况下非常有效,但 继续阅读“现象意识”#2:用白盒的视角研究意识和大脑,会是什么景象?微意识,主体感,超心智,意识中层理论

CL“信心学习”第2弹: cleanlab实操,如何把任意模型扩展为信心学习模型,#Confident learning

在上一弹我们讲过,如何用同质模型,科学地运用“交叉验证”清洗噪音数据,是CL信心学习的主题。与其他清洗方法相比,CL背后有理论支持,对不平衡的多类问题也可以清洗数据,不需要修改你的原有模型,只要模型对每个样本有概率输出(softmax, 贝叶斯,逻辑回归等。。) 

CL背后的原理很朴素,它假设每个样本的标签y~不一定是真的标签,并假设有一个真正的隐含标签y*才是真正的标签。值得强调的是,它的标签“信心”通过高于某个类内概率的平均水平,就认为是较为可信的,即一种per-class的类内信心

来自:https://arxiv.org/pdf/1911.00068.pdf

MIT和google也开源了cleanlab库可以实操你的模型支持信心学习。其中接口estimate_confident_joint就是计算了y~和y*的联合概率,即结合类内的信心:

confident_joint, psx = estimate_confident_joint_and_cv_pred_proba(
    X=X_train,
    s=train_labels_with_errors,
    clf=logreg(), # default, you can use any classifier
)

estimate_latent函数就是对y*的估计了,其总共返回了三个估计,其中p(y)即y*的概率估计:

p(y) as est_py, P(s|y) as est_nm, and P(y|s) as est_inv
est_py, est_nm, est_inv = estimate_latent(confident_joint, s=train_labels_with_errors)

其中s是某个样本。

那么问题来了,你如果已经有了自己的一个模型(PyTorch, Tensorflow, MxNet等),怎么快速扩展成可以支持CL信心学习呢?

cleanlab文档中说只要一行就能找出你训练集中的噪音: 

from cleanlab.pruning import get_noise_indices

ordered_label_errors = get_noise_indices(
    s=numpy_array_of_noisy_labels,
    psx=numpy_array_of_predicted_probabilities,
    sorted_index_method='normalized_margin', # Orders label errors
 )

这并不准确,第一,这只在你的模型相当简单的情况下才可以,第二,这里的psx对象如何计算它还没有清晰给出。 继续阅读CL“信心学习”第2弹: cleanlab实操,如何把任意模型扩展为信心学习模型,#Confident learning

重新思考机器学习新形式,模型实际评估,分布漂移问题,工程模型部署

目前习以为常的“验证集”和“测试集”的划分,在未来看来可能非常可笑 —— David 9

现今的机器学习(深度学习)的工作流已经到了需要重新思考的时候了。

从最常见的“验证集”和“测试集”的划分,就已经很陈旧了(虽还不是一无是处)。曾有学者认为,需要有一部分数据集彻底和训练集“隔绝”,从而达到最好的评估效果,即所谓的“测试集”,但其实漏洞很多,首先,用静态“测试集”去模拟动态的真实分布,在实际场景中会错误百出,其次,人类日常的学习没有什么“信息隔离”一说,接触到的信息都是可以学习的。有人会说,高考不就是人类通过“隔离”试卷信息选拔人才(“模型”)的过程吗?那么David要问一下大家,为什么会有“复读”再高考这种选择? 就是因为这个固定的隔离“测试集”漏洞太多了,有教师出题偏好的问题,有运气的问题,有学生状态的问题。

再说“验证集”,验证集和训练集真的区分很重要吗? 继续阅读重新思考机器学习新形式,模型实际评估,分布漂移问题,工程模型部署