1. 总体原则
1.1 深度神经网络(Deep Neural Network)的训练过程
下图展示了自然语言处理(NLP)领域内使用的深度神经网络(Deep Neural Network)的训练过程的简化图。
在神经网络的NLP领域:
语料库(Corpora of Human Utterances):这是神经网络训练的起点,包含了大量的人类语言数据。这些数据可以是文本或者是语音形式,用于让机器学习语言的模式。
深度神经网络(Deep Neural Network):这个框代表了一个或多个层次的神经网络,它通过学习语料库中的模式来进行训练。网络的每一层都会提取数据中的不同特征,并逐渐形成复杂的表示。
实际输出(Actual Outcomes):网络在处理输入数据后得到的结果。这些结果是模型当前学习状态的直接产物。
期望输出(Desired Outcomes):这些是在训练过程中用于指导网络训练方向的标签或结果。通过比较实际输出与期望输出,网络可以调整其内部参数。
定量评估、损失函数(Quantitative evaluation, loss function):损失函数是用来衡量实际输出与期望输出之间差异的一个指标。通过最小化损失函数,网络可以优化其参数以更好地进行预测。
在神经NLP哲学中,这种方法完全符合经验主义范式。这意味着,系统完全基于数据来学习语言,而不是基于预设的关于语言如何工作的规则。这是一种归纳的方法:系统分析大量的语料库,并且知道它需要预测什么,但是不被告知如何获得预测结果。初始时,网络对自然语言一无所知,也没有内置关于语言工作方式的假设——至少在理论上是这样。这种方法使得网络能够学习各种语言现象,而不受限于人类语言学家的先入为主的假设。
1.2 激活函数
1.2.1 softmax函数
softmax函数的数学表达式以及他的图,它是深度学习模型中常用的激活函数。
softmax函数的作用是将一个实数向量转换为一个概率分布。对于向量中的每个元素
,通过公式:
计算得到相应的输出,其中
是自然对数的底数,
是输出概率向量中的第
个元素,且所有的
加起来等于1。
这个函数通常用在多分类任务的输出层,它能够给出每个类别的预测概率。
某个变量对应的softmax函数输出值随该变量取值变化的曲线。softmax函数输出是一个S形曲线,当输入值较大时,输出
接近1;当输入值
较小或者为负数时,输出
接近0。
1.2.2 归纳方法
归纳方法(Inductive Approach)在深度学习中的一些含义:
神经网络理论上可以支持任何语言,只要有足够大量的语料库。
输入数据的质量和数量至关重要:为了良好的泛化能力(避免过拟合),输入的语料库需要大量的数据。
数据的质量决定了输出的质量(即“垃圾进,垃圾出”)。
训练任务(即期望的输出)对模型的可重用性和泛化能力有很大影响。
需要选择合适的评估方法。
神经AI类似于神谕机:它提供了结果,但并没有提供验证或理解这些结果的方法(这就是可解释性问题)。
如同统计方法,我们希望以概率形式获得预测结果:神经网络的最后一层通常使用softmax激活函数。
2. 神经网络语言处理的历史
神经网络自然语言处理(NLP)的历史可以追溯到人工神经网络的早期发展。下面是一些关键的历史时刻:
2.1 早期的人工神经网络
早在1943年,McCulloch和Pitts就提出了感知机的概念,这是一种非常初步的神经网络模型。随后,Rosenblatt在1957到1960年间实现了第一个感知机模型