神经网络 代价函数

神经网络 代价函数

首先引入一些便于稍后讨论的新标记方法:

假设神经网络的训练样本有 m m m个,每个包含一组输入 x x x和一组输出信号 y y y, L L L表示神经网络层数, S I S_I SI表示每层的neuron 个数( S l S_l Sl表示输出层神经元个数), S L S_L SL代表最后一层中处理单元的个数。

将神经网络的分类定义为两种情况:二类分类和多类分类,

二类分类: S L = 0 , y = 0   o r   1 S_L=0, y=0\, or\, 1 SL=0,y=0or1表示哪一类;

K K K类分类: S L = k , y i = 1 S_L=k, y_i = 1 SL=k,yi=1表示分到第 i i i类; ( k > 2 ) (k>2) (k>2)

我们回顾逻辑回归问题中我们的代价函数为:

J ( θ ) = − 1 m [ ∑ i = 1 m y ( i ) log ⁡ h θ ( x ( i ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ] + λ 2 m ∑ j = 1 n θ j 2 J(\theta) = -\frac{1}{m} \left[\sum_{i=1}^{m}y^{(i)}\log{h_\theta(x^{(i)})} + (1 - y^{(i)})\log\left(1 - h_\theta(x^{(i)})\right)\right] + \frac{\lambda}{2m}\sum_{j=1}^{n}\theta_j^2 J(θ)=−m1[i=1∑my(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))]+2mλj=1∑nθj2

在逻辑回归中,我们只有一个输出变量,又称标量(scalar ),也只有一个因变量 y y y,但是在神经网络中,我们可以有很多输出变量,我们的 h θ ( x ) h_\theta(x) hθ(x)是一个维度为 K K K的向量,并且我们训练集中的因变量也是同样维度的一个向量,因此我们的代价函数会比逻辑回归更加复杂一些,为: \newcommand{\subk}[1]{ #1_k }
h θ ( x ) ∈ R K h_\theta\left(x\right)\in \mathbb{R}^{K} hθ(x)∈RK ( h θ ( x ) ) i = i t h output {\left({h_\theta}\left(x\right)\right)}_{i}={i}^{th} \text{output} (hθ(x))i=ithoutput

J ( Θ ) = − 1 m [ ∑ i = 1 m ∑ k = 1 K y k ( i ) log ⁡ ( h Θ ( x ( i ) ) ) + ( 1 − y k ( i ) ) log ⁡ ( 1 − h Θ ( x ( i ) ) ) ] + λ 2 m ∑ l = 1 L − 1 ∑ i = 1 s l ∑ j = 1 s l + 1 ( Θ j i ( l ) ) 2 J(\Theta) = -\frac{1}{m} \left[ \sum_{i=1}^{m} \sum_{k=1}^{K} y_k^{(i)} \log (h_\Theta(x^{(i)})) + \left( 1 - y_k^{(i)} \right) \log \left( 1 - h_\Theta \left( x^{(i)} \right) \right) \right] + \frac{\lambda}{2m} \sum_{l=1}^{L-1} \sum_{i=1}^{s_l} \sum_{j=1}^{s_{l+1}} \left( \Theta_{ji}^{(l)} \right)^2 J(Θ)=−m1[i=1∑mk=1∑Kyk(i)log(hΘ(x(i)))+(1−yk(i))log(1−hΘ(x(i)))]+2mλl=1∑L−1i=1∑slj=1∑sl+1(Θji(l))2

这个看起来复杂很多的代价函数背后的思想还是一样的,我们希望通过代价函数来观察算法预测的结果与真实情况的误差有多大,唯一不同的是,对于每一行特征,我们都会给出 K K K个预测,基本上我们可以利用循环,对每一行特征都预测 K K K个不同结果,然后在利用循环在 K K K个预测中选择可能性最高的一个,将其与 y y y中的实际数据进行比较。

正则化的那一项只是排除了每一层 θ 0 \theta_0 θ0后,每一层的 θ \theta θ 矩阵的和。最里层的循环 j j j循环所有的行(由 s l + 1 s_{l+1} sl+1 层的激活单元数决定),循环 i i i则循环所有的列,由该层( s l s_l sl层)的激活单元数所决定。即: h θ ( x ) h_\theta(x) hθ(x)与真实值之间的距离为每个样本-每个类输出的加和,对参数进行regularizationbias项处理所有参数的平方和。

相关推荐
uncle_ll4 分钟前
PyTorch图像预处理:计算均值和方差以实现标准化
图像处理·人工智能·pytorch·均值算法·标准化
宋138102797204 分钟前
Manus Xsens Metagloves虚拟现实手套
人工智能·机器人·vr·动作捕捉
SEVEN-YEARS8 分钟前
深入理解TensorFlow中的形状处理函数
人工智能·python·tensorflow
世优科技虚拟人12 分钟前
AI、VR与空间计算:教育和文旅领域的数字转型力量
人工智能·vr·空间计算
cloud studio AI应用18 分钟前
腾讯云 AI 代码助手:产品研发过程的思考和方法论
人工智能·云计算·腾讯云
Suyuoa24 分钟前
附录2-pytorch yolov5目标检测
python·深度学习·yolo
禁默29 分钟前
第六届机器人、智能控制与人工智能国际学术会议(RICAI 2024)
人工智能·机器人·智能控制
Robot25137 分钟前
浅谈,华为切入具身智能赛道
人工智能
只怕自己不够好42 分钟前
OpenCV 图像运算全解析:加法、位运算(与、异或)在图像处理中的奇妙应用
图像处理·人工智能·opencv
余生H1 小时前
transformer.js(三):底层架构及性能优化指南
javascript·深度学习·架构·transformer