
机器(深度)学习演算法的效益决定于训练數據的可得性,特别是目前应用中大多为监督式的学习(supervised learning),必须提供(人工)标注數據来训练。 所以在标记數據量少的领域,前瞻演算法的效力就很难发挥,原因是特定领域的數據较难取得、或是标注成本较高,如医学影像、工业生产、金融决策等。
面对少量的标注數據,传统机器学习的做法是利用「半监督」(semi-supervised learning)的训练方式。在训练的过程中仅使用少部分标注的數據,混以大量未标注的數據;例如要識別狗的种类,只标示少部分的狗种,但是有大量种类不明的照片参杂其中。这样的研究虽然延续多年,也看到部分成效,但是在实际应用上大家还是不具信心。
既然标注不足,另一个想法是利用影像生成的方式(如生成模型GAN),大量生成已知类别的影像作为训练集。但是这落入根本矛盾之中,因为數據不足,生成的模型通常无法正确训练,如果成功的话也仅局限在已知的样本中,无法带入学习模型所必须的「样本多样性」。
机器学习领域的科学家们不断尝试新的做法,「自我监督学习」(self-supervised)这样的方式逐渐露出曙光。透过自我学习的方式训练庞大網絡,免除數據标注的局限,其后使用新工作的些许标记數據,以微调训练(fine-tuning)的方式将識別能力转移到新的工作上。
在去年推出的自然语言(文字)識別引擎BERT,就是以这样的方式横空出世,在大部分的语言分析工作中,大大推升正确率,包括非常关键的文字问答、分类、对话等实务工作上。今年科技部举办的「科技大擂臺」语音问答挑战,前几名的队伍都使用BERT为文字理解的基底網絡。
BERT的参数十分庞大,才可以在这几年的自然语言深度模型中胜出,它使用了约3.4亿个参数(目前影像識別常用的ResNet-50约有2,600万个)。为训练这么大量的模型,必须有非常庞大的未标注數據集来进行「预训练」(pre-training );BERT 预训练使用的数据集共有数十亿个字,包括维基百科及網絡上收集的书籍。 如此庞大的數據不可能使用人工标注,而是找寻适合的工作来训练算法,比如在文字中,任意遮住某段文字,让網絡学习理解文本之后,完成克漏字为训练工作;或是猜测阅读的文字串在何处应为句子的段落。这些都可以自动的方式命题、训练,而达成自我学习来训练庞大的網絡。另一个类似的研究,OpenAI的GPT-2则有几十亿的参数,也因为功能太强大,逼真的自动写作功能,担心有恶意用途而暂缓公开。
在影像識別上,「预训练」做法在卷积網絡(CNN)这几年带来的突破之后,也时常被使用。例如许多人会先使用相对大量的ImageNet數據集来做预训练,再微调到新的工作上。但是这有很大的局限性:首先ImageNet为监督式的训练,數據(相对)有限,所以无法扩展卷积網絡参数量;另外跨领域的影像(如医学影像、病理、光学检测等)与ImageNet差异太大,所以预训练的效果未能发挥。
我们可以期待自我监督学习或是预训练的工作可以在影像、视讯、MRI、甚至在3D点云中实现,推升视觉深度学习技术的进展。目前视觉研究的前瞻团队们也正努力找寻视觉數據上的自我学习方式,应该有机会在这几年内,善用大量未标注的數據,如同BERT一样大大提升影像識別预训练,可以协助深度学习技术快速落地到标注數據缺乏的各垂直领域。