entropy

pytorc人工神经网络Logistic regression与全连接层

ⅰ亾dé卋堺 提交于 2021-02-19 12:09:18
//2019.10.08 神经网络与全连接层 1、logistics regression 逻辑回归的思想是将数据利用 激活函数sigmoid函数转换为0-1的概率 ,然后定义一定的阈值0.5,大于阈值则为一类,小于阈值则为另一类。它主要用来解决的是二分类问题,也可以通过一定的变形解决多分类的问题。 2、对于逻辑回归其实质是分类算法,为什称之为回归, 主要是因为其优化的函数类似于回归问题的loss函数,而将其称之为逻辑主要是因为利用了sigmoid函数。 图 3、回归问题和分类问题的loss函数是不一样: (1)回归问题:MSE (2)分类问题: 1)MSE(P) 2)cross entropy loss 3)Hinge Loss 图 4、 cross entropy loss交叉熵 :主要是指整体预测的不确定性,即熵的概念,熵的值越大,说明其确定性越低,概率分布越接近;熵的值越小,说明确定性越高,概率预测分布相差越大,越逼近极端的0或者1。 图123 5、 交叉熵函数cross_entropy=softmax+log+null_loss函数 图 6、激活函数主要有以下几种: sigmoid函数、tanh函数、Relu函数,改进版Relu函数,selu函数,softplus函数 7、一个神经网络层结构的搭建组成具体如下所示: 来源: oschina 链接: https://my

决策树-缺失值处理

拥有回忆 提交于 2021-02-17 13:31:19
缺失值算是决策树里处理起来比较麻烦的了,其他简单的我就不发布了。 # encoding:utf-8 from __future__ import division __author__ = ' HP ' import copy import math import numpy as np import pandas as pd from collections import Counter from sklearn.preprocessing import LabelEncoder # ############################### # id3 # 离散属性 # 多分类 # 多重字典记录学习规则 # 非递归 # 深度优先 # 预剪枝 # ## 缺失值处理 # 解决两个问题 # 如何进行划分属性选择,缺失值如何处理 # 如何进行样本划分,缺失值对应的样本如何划分 # ############################### ''' 缺失值处理 1. 如何进行属性选择 a. 第一次选择划分属性时,样本等权重,均为1,找出未缺失的样本集,计算该样本集的信息增益 和 该样本集的占比,两者相乘即为真正的信息增益 . 注意这时计算占比,就是数个数,因为权重都是1 . 计算信息增益时,P也是数个数 b. 后面选择划分属性时,样本不等权重,找出未缺失的样本集

caffe详解之损失函数

雨燕双飞 提交于 2021-02-13 23:46:17
从零开始,一步一步学习caffe的使用,期间贯穿深度学习和调参的相关知识! Caffe中的损失函数解析 导言 在有监督的机器学习中,需要有标签数据,与此同时,也需要有对应的损失函数( Loss Function )。 在 Caffe 中,目前已经实现了一些损失函数,包括最常见的 L2 损失函数,对比损失函数,信息增益损失函数等等。在这里做一个笔记,归纳总结 Caffe 中用到的不同的损失函数,以及分析它们各自适合的使用场景。 欧式距离损失函数(Euclidean Loss) 对比损失函数(Contrastive loss) 铰链损失函数(Hinge Loss) 信息增益损失函数(InformationGain Loss) 多项式逻辑损失函数(Multinomial Logistic Loss) Sigmoid 交叉熵损失函数(Sigmoid Cross Entropy Loss) Softmax+损失函数(Softmax With Loss) 总结 欧式距离损失函数:一般适用于回归问题,特别是回归的值是实数的时候。 对比损失函数:用来训练 siamese 网络时候。 Hinge loss :在一对多的分类中应用,类似于 SVM 。 多项式逻辑损失函数:一般在一对多的分类任务中应用,直接把预测的概率分布作为输入。 sigmoid 交叉熵损失函数:预测目标概率分布。 softmax

Double integration of x*np.log(x) in Python using scipy.integrate.dblquad

余生长醉 提交于 2021-02-10 14:33:11
问题 The code below uses double integration with scipy.integrate.dblquad to calculate the differential entropy, c*np.log(c) , of a copula density function c , which has one dependence parameter, theta , usually positive. Formula can be found here. import numpy as np from scipy import integrate def copula_entropy(theta): c = lambda v, u: ((1+theta)*(u*v)**(-1-theta)) * (u**(-theta) + v**(-theta) -1)**(-1/theta-2) return -integrate.dblquad(c*np.log(c), 0, 1, lambda u: 0, lambda u: 1)[0] Calling the

calculate Entropy for each class of the test set to measure uncertainty on pytorch

无人久伴 提交于 2021-02-10 05:11:13
问题 I am trying to calculate Entropy of each class of the dataset for an image classification task to measure uncertainty on pytorch,using the MC Dropout method and the solution proposed in this link Measuring uncertainty using MC Dropout on pytorch First,I have calculated the mean of each class per batch across different forward passes (class_mean_batch) and then for all the testloader (classes_mean) and then did some transformations to get (total_mean) to use it for calculating Entropy as shown

Generative Adversarial Nets[LSGAN]

血红的双手。 提交于 2021-02-06 21:35:19
0 背景 在这之前大家在训练GAN的时候,使用的loss函数都是sigmoid_cross_entropy_loss函数,然而xudon mao等人发现当使用伪造样本去更新生成器(且此时伪造样本也被判别器判为对的时候)会导致梯度消失的问题。虽然此时伪造样本仍然离真实样本分布距离还挺远。也就是之前的损失函数虽然可以判别是真假,可是对于人肉眼来说,还是违和感太强了,也就是生成的图像质量骗得过机器,却骗不过人。 <center/>![](https://images2018.cnblogs.com/blog/441382/201802/441382-20180224221241753-1230546101.png)</center> <center/>**图0.1 两种损失函数的不同行为**</center> 上图中加号表示假样本,圈表示真样本,五角星表示用于更新生成器的伪造样本,红线表示LSGAN的决策面,蓝线表示sigmoid交叉熵的决策面。可以从图0.1.1中看出,sigmoid函数能分真假,可是对距离却并不敏感。 所以,由此,他们 提出了更好的损失函数用于将伪造样本的分布推向于决策面(虽然无法直接推向真实样本的分布) 。并且从中还发现,用此损失函数,可以增加训练GAN的稳定性。并且之前也有一些论文论述到GAN的不稳定训练一部分归咎于目标函数

TensorFlow(九):卷积神经网络

三世轮回 提交于 2021-02-02 16:31:50
一:传统神经网络存在的问题 权值太多,计算量太大 权值太多,需要大量样本进行训练 二:卷积神经网络(CNN) CNN通过感受野和权值共享减少了神经网络需要训练的参数个数。 三:池化 四:卷积操作 五:CNN结构 六:基于卷积神经网络的手写数字识别 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data # 载入数据集 mnist=input_data.read_data_sets( ' MNIST_data ' ,one_hot= True) # 每个批次的大小 batch_size=100 # 计算一共有多少个批次 n_batch=mnist.train.num_examples// batch_size # 初始化权值 def weight_variable(shape): initial =tf.truncated_normal(shape,stddev=0.1) # 生成一个截断的正态分布 return tf.Variable(initial) # 初始化偏置 def bias_variable(shape): initial =tf.constant(0.1,shape= shape) return tf.Variable(initial) # 卷积层 def

TensorFlow实战第八课(卷积神经网络CNN)

浪尽此生 提交于 2021-02-01 11:55:19
首先我们来简单的了解一下什么是卷积神经网路(Convolutional Neural Network) 卷积神经网络是近些年逐步兴起的一种人工神经网络结构, 因为利用卷积神经网络在图像和语音识别方面能够给出更优预测结果, 这一种技术也被广泛的传播可应用. 卷积神经网络最常被应用的方面是计 算机的图像识别, 不过因为不断地创新, 它也被应用在视频分析, 自然语言处理, 药物发现, 等等. 卷积也就是说神经网络不再是对每个像素的输入信息做处理了,而是图片上的每一个小块像素区域进行处理,这种做法加强了图片信息的连续性。是的神经网络能够看到图形,而非一个点。这种做法 同时也加深了神经网络对图片的理解 具体来说,卷积神经网络有一个批量过滤器,持续不断的在图片上进行滚动手机图片里的信息,每一次手机的时候都只是收集一小块像素区域 然后把收集来的信息进行整理, 这时候整理出来的信息有了 一些实际上的呈现, 比如这时的神经网络能看到一些边缘的图片信息, 然后在以同样的步骤, 用类似的批量过滤器扫过产生的这些边缘信息, 神经网络从这些边缘信息里面总结出更高层的信息结构。 卷积过程 下面是一张猫咪的图片,图片有长宽高三个参数(高度是指计算机用于产生颜色使用的信息。例如黑白颜色的话图片高度为1,彩色的话RGB,高度为3)。过滤器就是影响中不断移动的东西,他不断在图片收集小批小批的像素块,收集完所有信息后

Entropy output is NaN for some class solutions and not others

假装没事ソ 提交于 2021-01-29 08:57:00
问题 I am running a latent class analysis in R and using the Entropy function. I wanted to understand why in the output, it produces a result for lower nclasses and then NaN for higher Nclasses. I am a beginner to the software! For reference here, is the output and code: > entropy<-function (p) sum(-p*log(p)) > error_prior <- entropy(France_2class$P) # Class proportions > error_post <- mean(apply(France_2class$posterior, 1, entropy)) > R2_entropy <- (error_prior - error_post) / error_prior > R2

what is rand algorithim depending on srand and seed?

陌路散爱 提交于 2021-01-29 08:50:39
问题 When I running this code while ... srand (1); printf ("Again the first number: %d\n", rand()%100); on 2 PCs I get different results. but in each PC I get always the same random list. For ex. in PC 1 I always get 83,86,77,15,93,35 and in PC2 I always get F, G ,H , I ,J . I want to know what is the algorithim? If I know the first random , is there any way to know the second random in same PC? . Second random is depending on seed or only on the last random? I not to put srand(time(0)); to get a