初始状态下,由于网络的权重时随机初始化的,任意一个样本被分配到任意一类概率都是近似相等的。也即输出为[1/N, 1/N, ... , 1/N], 则对应的cross-entropy误差为
- [log(1/N)^1+ log(1/N)^0+log(1/N)^0+... ]=log(N) (注意这部分不包含regularization的误差)
结果记录如下(程序在最后),备忘:
引用
2
[ 0.69314718]
3
[ 1.09861231]
4
[ 1.38629436]
5
[ 1.60943794]
6
[ 1.79175949]
7
[ 1.94591022]
8
[ 2.07944155]
9
[ 2.19722462]
10
[ 2.30258512]
DONE
log(2)=0.693147
log(3)=1.098612
log(4)=1.386294
log(5)=1.609438
log(6)=1.791759
log(7)=1.945910
log(8)=2.079442
log(9)=2.197225
log(10)=2.302585
from __future__ import print_function
from __future__ import division
import tensorflow as tf
from tensorflow.python.training import moving_averages
import numpy as np
if __name__ == '__main__':
for i in range(2,11):
print(i)
predict=[1.0/i for _ in range(i)]
output=tf.Variable([predict],tf.float32);
target=tf.Variable([0],tf.int64)
loss=tf.nn.sparse_softmax_cross_entropy_with_logits(output, target)
sess=tf.Session()
sess.run(tf.initialize_all_variables())
lo=loss.eval(session=sess)
sess.close()
print(lo)
print('DONE')
import math
for i in range(2,11):
print('log(%d)=%f'%(i,math.log(i)))
最优分类误差
分类器能达到的最优分类误差为:
引用
正样本比例:logLoss
0.05 : 0.1985
0.10 : 0.3251
0.15 : 0.4227
0.20 : 0.5004
0.25 : 0.5623
0.30 : 0.6109
0.35 : 0.6474
0.40 : 0.6730
0.45 : 0.6881
0.50 : 0.6931
0.55 : 0.6881
0.60 : 0.6730
0.65 : 0.6474
0.70 : 0.6109
0.75 : 0.5623
0.80 : 0.5004
0.85 : 0.4227
0.90 : 0.3251
0.95 : 0.1985
代码:
x=[float(a)/100 for a in range(5,99,5)]
import math
def logloss(p,T):
ll=T*math.log(p)+(1-T)*math.log(1-p)
return -ll
y=[logloss(a, a) for a in x];# p==T时可以取到最小值
for xx,yy in zip(x,y):
print('%.2f : %.4f'%(xx,yy))
分享到:
相关推荐
5. 损失函数:衡量模型预测结果与真实值之间差异的函数,如均方误差(MSE)、交叉熵(Cross-Entropy)等。 6. 训练:通过大量的训练数据调整权重,使模型逐渐优化的过程。 7. 过拟合与欠拟合:过拟合指模型在训练集...
在学习神经网络的过程中,解决习题是非常重要的一环,它可以帮助我们理解和掌握神经网络的工作原理,包括权重的初始化、反向传播算法、梯度下降优化、激活函数的选择、误差函数的设计、以及网络结构的影响等核心概念...
3. **损失函数(Loss Function)**:衡量模型预测与真实结果之间的差距,如均方误差(MSE)或交叉熵损失(Cross-Entropy Loss)。 4. **优化器(Optimizer)**:如梯度下降法(GD)、随机梯度下降法(SGD)、动量...
第14章 cross-entropy函数 第15章 Softmax和Overfitting 第16章 Regulization 第17章 Regulazition和Dropout 第18章 正态分布和初始化(修正版) 第19章 提高版本的手写数字识别实现 第20章 神经网络参数hyper-...
BP神经网络的核心思想是通过反向传播误差来调整网络权重,以最小化预测输出与实际目标之间的差距。它包含三个主要部分:输入层、隐藏层和输出层。权重和偏置参数在前向传播过程中传播信号,并在反向传播过程中更新。...
2. **损失计算**:计算网络的预测结果与真实目标值之间的差距,通常用均方误差(MSE)或交叉熵(Cross-Entropy)作为损失函数。 3. **反向传播误差**:从输出层开始,利用链式法则计算每个神经元对其所在层损失函数...
3. **损失函数**:理解均方误差(MSE)、交叉熵损失(Cross-Entropy Loss)等,以及它们在分类和回归任务中的选择。 4. **优化算法**:学习梯度下降(Gradient Descent)、随机梯度下降(SGD)、动量优化(Momentum...
- 损失函数衡量预测输出与实际目标之间的差异,如均方误差(MSE)或交叉熵损失(Binary Crossentropy,用于二分类问题,或Categorical Crossentropy,用于多分类问题)。 总的来说,浅层神经网络是深度学习的基础...
在实现神经网络时,经常使用矩阵运算来简化计算过程。例如,可以通过矩阵乘法一次性计算出所有神经元的加权和。 ##### 6. 网络结构 人工神经网络的结构多种多样,包括层次型结构、互联型结构等。BP算法适用于前馈...
5. **损失函数**:衡量模型预测与实际结果的差异,例如均方误差(MSE)或交叉熵(Cross-Entropy)。 6. **优化器**:如随机梯度下降(SGD)、动量(Momentum)、Adam等,控制权重更新的速度和方向。 7. **训练与...
在C语言实现神经网络时,我们需要定义网络结构,包括层数、每层的节点数量以及连接权重。权重初始化通常采用随机值,然后通过反向传播算法迭代更新。在这个过程中,我们可能需要实现以下关键函数: 1. **激活函数**...
在神经网络中,常见的损失函数包括均方误差(MSE)用于回归任务,交叉熵损失(Cross-Entropy Loss)用于分类任务。损失函数的选择应根据任务类型和数据特性来确定。 总结 神经网络的构建和训练涉及到多个环节,...
5. **损失函数**:通常选择均方误差(MSE)或交叉熵(Cross Entropy)作为损失函数,用于衡量预测结果与真实值的差异。 6. **优化器**:除了最基础的梯度下降,还可以使用更高效的优化算法,如随机梯度下降(SGD)...
5. **损失函数**:根据任务类型选择合适的损失函数,如均方误差(MSE)用于回归问题,交叉熵损失(Cross-Entropy Loss)用于分类问题。 6. **激活函数**:如sigmoid、tanh、ReLU及其变种,它们引入非线性,使神经...
常见的损失函数有均方误差(Mean Squared Error, MSE)和交叉熵损失(Cross-Entropy Loss),前者适用于回归问题,后者常用于分类问题。 4. **反向传播**:是神经网络训练的关键步骤,通过计算损失函数相对于权重的...
6. **损失函数**:根据任务类型,选择合适的损失函数衡量模型预测与真实值的差距,如均方误差(MSE)用于回归任务,交叉熵损失(Cross-Entropy Loss)常用于分类任务。 7. **正则化与批量归一化**:为了防止过拟合...
3. **损失函数**:衡量模型预测结果与真实结果的差距,常见的损失函数有均方误差(MSE)、交叉熵(Cross-Entropy)等。损失函数的选择取决于具体的任务类型,如分类任务通常使用交叉熵,回归任务则常用MSE。 4. **...
在训练神经网络时,我们通常采用反向传播(Backpropagation)算法来更新权重,以最小化损失函数。损失函数衡量了模型预测结果与实际数据之间的差距,常见的有均方误差(Mean Squared Error, MSE)和交叉熵损失...
常见的损失函数有均方误差(MSE)和交叉熵(Cross-Entropy)。损失函数的选择取决于我们的任务类型。 接下来是反向传播,它是神经网络学习的核心。通过梯度下降或其他优化算法,我们计算出损失函数关于权重的梯度,...
4. **损失函数**:衡量模型预测与实际结果的差距,如均方误差(MSE)、交叉熵(Cross-Entropy)等。 5. **反向传播**:通过梯度下降法更新权重,以减小损失函数。 6. **训练过程**:反复进行前向传播和反向传播,...