视频学习来源 https://www.bilibili.com/video/av40787141?from=search&seid=17003307842787199553 笔记 Mnist分类程序 import numpy as np from keras.datasets import mnist #将会从网络下载mnist数据集 from keras.utils import np_utils from keras.models import Sequential #序列模型 from k…
1. tf.nn.conv2d(x, w, strides=[1, 1, 1, 1], padding='SAME')  # 对数据进行卷积操作 参数说明:x表示输入数据,w表示卷积核, strides表示步长,分别表示为样本数,长,宽,通道数,padding表示补零操作 2. tf.nn.max_pool(x, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding='SAME')  # 对数据进行池化操作 参数说明:x表示输入数据,ksize表示卷…
一.MNSIT数据处理 MNSIT是一个非常有名的手写体数字识别数据集.包含60000张训练图片,10000张测试图片.每张图片是28X28的数字. TonserFlow提供了一个类来处理 MNSIT数据.这个类会自动下载并转化数据结构. import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data mnist_data = input_data.read_data_sets("mnist_s…
Sigmoid函数 当神经元的输出接近 1时,曲线变得相当平,即σ′(z)的值会很小,进而也就使∂C/∂w和∂C/∂b会非常小.造成学习缓慢,下面有一个二次代价函数的cost变化图,epoch从15到50变化很小. 引入交叉熵代价函数 针对上述问题,希望对输出层选择一个不包含sigmoid的权值更新,使得 由链式法则,得到 由σ′(z) = σ(z)(1− σ(z))以及σ(z)=a,可以将上式转换成 对方程进行关于a的积分,可得 对样本进行平均之后就是下面的交叉熵代价函数 对比之前的输出层de…
最近在看深度学习的"花书" (也就是Ian Goodfellow那本了),第五章机器学习基础部分的解释很精华,对比PRML少了很多复杂的推理,比较适合闲暇的时候翻开看看.今天准备写一写很多童鞋们w未必完全理解的最大似然估计的部分. 单纯从原理上来说,最大似然估计并不是一个非常难以理解的东西.最大似然估计不过就是评估模型好坏的方式,它是很多种不同评估方式中的一种.未来准备写一写最大似然估计与它的好朋友们,比如说贝叶斯估计 (Beyasian Estimation), 最大后验估计(Max…
接上文:信息论随笔2: 交叉熵.相对熵,及上上文:信息论随笔 在读<数学之美>的时候,相关性那一节对TF-IDF模型有这样一句描述:"其实 IDF 的概念就是一个特定条件下.关键词的概率分布的交叉熵(Kullback-Leibler Divergence)": 当时尚不明白,等我看懂交叉熵与相对熵之后,再看TF-IDF,略有所获,本想与上一篇合写在一起的,但越写越多,于是单独成文: 文档的信息量 一篇文档由m个词组成 \( d = (w_{1}, w_{2}, w_{3},…
二分~多分~Softmax~理预 一.简介 在二分类问题中,你可以根据神经网络节点的输出,通过一个激活函数如Sigmoid,将其转换为属于某一类的概率,为了给出具体的分类结果,你可以取0.5作为阈值,凡是大于0.5的样本被认为是正类,小于0.5则认为是负类 然而这样的做法并不容易推广到多分类问题.多分类问题神经网络最常用的方法是根据类别个数n,设置n个输出节点,这样每个样本,神经网络都会给出一个n维数组作为输出结果,然后我们运用激活函数如softmax,将输出转换为一种概率分布 其中的每一个概率…
关于categorical cross entropy 和 binary cross entropy的比较,差异一般体现在不同的分类(二分类.多分类等)任务目标,可以参考文章keras中两种交叉熵损失函数的探讨,其结合keras的API讨论了两者的计算原理和应用原理. 本文主要是介绍TF中的接口调用方式. 一.二分类交叉熵 对应的是网络输出单个节点,这个节点将被sigmoid处理,使用阈值分类为0或者1的问题.此类问题logits和labels必须具有相同的type和shape. 原理介绍 设x…
机器学习中经常遇到这几个概念,用大白话解释一下: 一.归一化 把几个数量级不同的数据,放在一起比较(或者画在一个数轴上),比如:一条河的长度几千甚至上万km,与一个人的高度1.7m,放在一起,人的高度几乎可以被忽略,所以为了方便比较,缩小他们的差距,但又能看出二者的大小关系,可以找一个方法进行转换. 另外,在多分类预测时,比如:一张图,要预测它是猫,或是狗,或是人,或是其它什么,每个分类都有一个预测的概率,比如是猫的概率是0.7,狗的概率是0.1,人的概率是0.2... , 概率通常是0到1之间…
经典的损失函数----交叉熵 1 交叉熵: 分类问题中使用比较广泛的一种损失函数, 它刻画两个概率分布之间的距离 给定两个概率分布p和q, 交叉熵为: H(p, q) = -∑ p(x) log q(x) 当事件总数是一定的时候, 概率函数满足:   任意x  p(X = x) ∈[0, 1] 且 Σ p(X=x) = 1 也就是说 所有时间发生的概率都是0到1 之间 , 且总有一个时间会发生,概率的和就为1. 2 tensorflow中softmax: softmax回归可以作为学习算法来优化…