最最简单的神经网络-感知器(神经元)y = wx + b ,就是一元线性函数,线性回归,前一篇文章已介绍过。再复杂点就套个非线性函数,比如,
y = relu(wx + b)
一般x是多元的(x,x,...,x),比如,
y = relu(wx + wx + ... + wx + b)
y也可以是多元的,比如,
y = relu(wx + wx + ... + wx + b)
y = relu(wx + wx + ... + wx + b)
...
y = relu(wx + wx + ... + wx + b)
神经元y,y,...,y组成一层,神经网络一般有多层,一层连一层。
学过点线性代数的都可以看出,k对w和x相乘,再统统加起来,就是矩阵乘法的基本运算,神经网络的算法大量就在算这玩意儿,GPU就用来干这事。
回归算法误差函数为
L(w,b) = 1/2 [(f-y)^2 + (f-y)^2 + ... + (f-y)^2]
其中,
f = relu(wx + wx + ... + wx + b)为计算值,y为样本数据实际值。
L(w, b)对众多w,b求偏导的计算原理都差不多,用反向传播的链式求导法则逼近多层网络w,b的稳定值。
以下pytorch程序代码用分类算法的交叉熵误差函数L(w,b)来计算模型输出的概率分布和真实概率分布的差异,图象识别、大语言模型等分类算法模型也用到这类误差函数,用数据训练模型就是用正向传播和反向传播循环迭代计算逼近w,b的稳定值。可以观察net.hidden.weight, net.hidden.bias, net.output.weight, net.output.bias 等。