`

神经网络的初始误差估计-采用cross-entropy误差时

 
阅读更多
初始状态下,由于网络的权重时随机初始化的,任意一个样本被分配到任意一类概率都是近似相等的。也即输出为[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. 过拟合与欠拟合:过拟合指模型在训练集...

    神经网络设计(第1版)hagan 习题参考答案(部分,重要的题基本都有).zip

    在学习神经网络的过程中,解决习题是非常重要的一环,它可以帮助我们理解和掌握神经网络的工作原理,包括权重的初始化、反向传播算法、梯度下降优化、激活函数的选择、误差函数的设计、以及网络结构的影响等核心概念...

    神经网络和深度学习—吴恩达 第三周编程作业相关文件

    3. **损失函数(Loss Function)**:衡量模型预测与真实结果之间的差距,如均方误差(MSE)或交叉熵损失(Cross-Entropy Loss)。 4. **优化器(Optimizer)**:如梯度下降法(GD)、随机梯度下降法(SGD)、动量...

    深度神经网络系列视频-机器学习进阶.zip

    第14章 cross-entropy函数 第15章 Softmax和Overfitting 第16章 Regulization 第17章 Regulazition和Dropout 第18章 正态分布和初始化(修正版) 第19章 提高版本的手写数字识别实现 第20章 神经网络参数hyper-...

    BP神经网络实例及代码分析(python+tensorflow),bp神经网络例子,Python

    BP神经网络的核心思想是通过反向传播误差来调整网络权重,以最小化预测输出与实际目标之间的差距。它包含三个主要部分:输入层、隐藏层和输出层。权重和偏置参数在前向传播过程中传播信号,并在反向传播过程中更新。...

    神经网络bp算法

    2. **损失计算**:计算网络的预测结果与真实目标值之间的差距,通常用均方误差(MSE)或交叉熵(Cross-Entropy)作为损失函数。 3. **反向传播误差**:从输出层开始,利用链式法则计算每个神经元对其所在层损失函数...

    深度学习之神经网络核心原理与算法-课程学习相关代码.zip

    3. **损失函数**:理解均方误差(MSE)、交叉熵损失(Cross-Entropy Loss)等,以及它们在分类和回归任务中的选择。 4. **优化算法**:学习梯度下降(Gradient Descent)、随机梯度下降(SGD)、动量优化(Momentum...

    02-浅层神经网络1

    - 损失函数衡量预测输出与实际目标之间的差异,如均方误差(MSE)或交叉熵损失(Binary Crossentropy,用于二分类问题,或Categorical Crossentropy,用于多分类问题)。 总的来说,浅层神经网络是深度学习的基础...

    机器学习-误差反向传播

    在实现神经网络时,经常使用矩阵运算来简化计算过程。例如,可以通过矩阵乘法一次性计算出所有神经元的加权和。 ##### 6. 网络结构 人工神经网络的结构多种多样,包括层次型结构、互联型结构等。BP算法适用于前馈...

    人工神经网络源码

    5. **损失函数**:衡量模型预测与实际结果的差异,例如均方误差(MSE)或交叉熵(Cross-Entropy)。 6. **优化器**:如随机梯度下降(SGD)、动量(Momentum)、Adam等,控制权重更新的速度和方向。 7. **训练与...

    使用C语言从0到1实现神经网络C源码.rar

    在C语言实现神经网络时,我们需要定义网络结构,包括层数、每层的节点数量以及连接权重。权重初始化通常采用随机值,然后通过反向传播算法迭代更新。在这个过程中,我们可能需要实现以下关键函数: 1. **激活函数**...

    CS231n课程笔记翻译:神经网络笔记 2 - 知乎专栏1

    在神经网络中,常见的损失函数包括均方误差(MSE)用于回归任务,交叉熵损失(Cross-Entropy Loss)用于分类任务。损失函数的选择应根据任务类型和数据特性来确定。 总结 神经网络的构建和训练涉及到多个环节,...

    BP神经网络程序实例

    5. **损失函数**:通常选择均方误差(MSE)或交叉熵(Cross Entropy)作为损失函数,用于衡量预测结果与真实值的差异。 6. **优化器**:除了最基础的梯度下降,还可以使用更高效的优化算法,如随机梯度下降(SGD)...

    神经网络VC程序

    5. **损失函数**:根据任务类型选择合适的损失函数,如均方误差(MSE)用于回归问题,交叉熵损失(Cross-Entropy Loss)用于分类问题。 6. **激活函数**:如sigmoid、tanh、ReLU及其变种,它们引入非线性,使神经...

    神经网络基本算法的VC程序源码

    常见的损失函数有均方误差(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)和交叉熵损失...

    机器学习-10-神经网络python实现

    常见的损失函数有均方误差(MSE)和交叉熵(Cross-Entropy)。损失函数的选择取决于我们的任务类型。 接下来是反向传播,它是神经网络学习的核心。通过梯度下降或其他优化算法,我们计算出损失函数关于权重的梯度,...

    完整的粒子群优化神经网络代码

    4. **损失函数**:衡量模型预测与实际结果的差距,如均方误差(MSE)、交叉熵(Cross-Entropy)等。 5. **反向传播**:通过梯度下降法更新权重,以减小损失函数。 6. **训练过程**:反复进行前向传播和反向传播,...

Global site tag (gtag.js) - Google Analytics