sigmoid

02-12 Logistic(逻辑)回归

*爱你&永不变心* 提交于 2020-02-26 23:29:50
文章目录 逻辑回归 逻辑回归学习目标 逻辑回归引入 逻辑回归详解 线性回归与逻辑回归 二元逻辑回归的假设函数 让步比 Sigmoid函数图像 二元逻辑回归的目标函数 不同样本分类的代价 二元逻辑回归目标函数最大化 梯度上升法 线性回归和逻辑回归的参数更新 拟牛顿法 二元逻辑回归模型 二元逻辑回归的正则化 L1正则化 L2正则化 多元逻辑回归 OvR MvM 逻辑回归流程 输入 输出 流程 逻辑回归优缺点 优点 缺点 小结 逻辑回归   虽然逻辑回归的名字里有“回归”两个字,但是它并不是一个回归算法,事实上它是一个分类算法。 逻辑回归学习目标 二元逻辑回归的目标函数 最小化二元逻辑回归目标函数 二元逻辑回归的正则化 多元逻辑回归 逻辑回归的流程 逻辑回归的优缺点 逻辑回归引入 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1O9UxwXA-1582719512430)(…/新配图/恶搞图/06-09-操场2.jpg)]   曾经在感知机引入时我们讲过,操场上男生和女生由于受传统思想的影响,男生和女生分开站着,并且因为男生和女生散乱在操场上呈线性可分的状态,因此我们总可以通过感知机算法找到一条直线把男生和女生分开,并且最终可以得到感知机模型为 f ( x ) = s i g n ( ( w ∗ ) T x ) f(x)=sign((w^*)^Tx) f

激活函数sigmoid 、tanh、Relu、Leaky Relu 优缺点对比

穿精又带淫゛_ 提交于 2020-02-26 02:05:28
同学你好,这是个很好的问题,flare老师在第8章卷积神经网络的章节也有提及“为什么CNN结构使用relu替代sigmoid作为激活函数”。flare老师和大家分享常用激活函数的优缺点: sigmoid: 很直观的反映了二分类任务的事件可能性(概率),通过引入双边极值稳定的非线性函数关系能有效地模拟神经元信息机制,在逻辑回归与神经网络中被广泛使用。 缺陷:双边区域数值饱和(x很大或很小)导致随着x变化带来的y变化很小,导数趋于零,容易造成模型求解梯度消失问题。当我们建立一个复杂的神经网络,比如用于机器视觉的卷积神经网络,多层信息传递后,对模型进行反传导的梯度求解会存在梯度消失的情况,导致无法找到最优解。 tanh:和sigmoid挺像的,也是双边极值稳定的非线性函数关系,而且因为正负方向以原点对称,输出均值是0(与很多样本的分布均值接近),使得其收敛速度要比sigmoid快,减少迭代次数。也存在梯度消失问题。 relu:全称是Rectified Linear Units,是一种后来才出现的激活函数。 可以看到,当x<0时,ReLU饱和,而当x>0时,则不存在饱和问题。所以,ReLU 能够在x>0时保持梯度不衰减,从而缓解梯度消失问题。相比于纯线性的激活函数,relu函数存在梯度不相同的两个区域,从而能实现非线性关系的拟合。 然而,随着训练的推进,部分输入会落入硬饱和区

细品 - 逻辑回归(LR)*

旧巷老猫 提交于 2020-02-25 16:06:03
1. LR的直观表述 1.1 直观表述   今天我们来深入了解一个工业界应用最多,虽然思想简单但也遮挡不住它NB光芒的绽放的一个 分类 预测模型,它就是LR模型。 LR模型可以被认为就是一个被Sigmoid函数(logistic方程)所归一化后的线性回归模型 !为啥这么说呢?我们来看一下它的假设函数的样子:      首先来解释一下 的表示的是啥?它表示的就是将因变量预测成1(阳性)的概率,具体来说它所要表达的是在给定x条件下事件y发生的条件概率,而 是该条件概率的参数。看到这个公式可能一脸懵逼,那我们将它分解一下:      很容易看出将(1)代入到(2)中是不是就得到了LR模型的假设函数啦。(1)式就是我们介绍的 线性回归的假设函数 ,那(2)式就是我们的Sigmoid函数啦。什么?为什么会用Sigmoid函数?因为它引入了非线性映射,将线性回归 值域映射到0-1之间,有助于直观的做出预测类型的判断:大于等于0.5表示阳性,小于0.5表示阴性。 其实,从本质来说:在分类情况下,经过学习后的LR分类器其实就是一组权值 ,当有测试样本输入时,这组权值与测试数据按照加权得到    这里的 就是每个测试样本的n个特征值。之后在按照Sigmoid函数的形式求出 ,从而去判断每个测试样本所属的类别。 由此看见, LR模型学习最关键的问题就是研究如何求解这组权值! 1.2 决策边界  

[Tensorflow] Cookbook - The Tensorflow Way

允我心安 提交于 2020-02-24 06:06:29
本章介绍tf基础知识,主要包括cookbook的第一、二章节。 方针:先会用,后定制 Ref: TensorFlow 如何入门? Ref: 如何高效的学习 TensorFlow 代码? 顺便推荐该领域三件装备: How TensorFlow Works? Steps Import or generate datasets Transform and normalize data Partition datasets into train , test , and validation sets Set algorithm parameters (hyperparameters) Initialize variables and placeholders Define the model structure Declare the loss functions Initialize and train the model Evaluate the model Tune hyperparameters Deploy/predict new outcomes Declaring Variables and Tensors Tensor 张量 【相当于常数的设置】 import tensorflow as tf # Fixed tensors 四种创建 zero_tsr = tf

神经网络基本概念

天涯浪子 提交于 2020-02-22 19:45:32
相关练习项目: 一个简单的神经网络 感知器 (perceptron) 即信号输入元, 单个的数据源, 比如人的眼睛,耳朵,鼻子,都是感知器 离散型和连续型预测 (discrete & continuous) 激活函数 (activation function) 使用连续激活函数,预测的结果不是非对即错,而是一个概率,表示预测结果的可靠,及确定性 SoftMax 多类别分类时使用 SoftMax 定义 def softmax(L): expL = np.exp(L) return expL/expL.sum() 分类问题的预测结果使用 softmax 作为激活函数,转化之后的结果加总为 100%,每个值代表一个预测结果可能发生的概率 One-hot Encoding 多类别分类时,分类目标数据一般表示为 [2,4,56,7,8,...] ,需要转换成类似 [[0,1,0,0,0,0,0], [0,0,0,1,0,0,0], [0,0,1,0,0,0,0], [0,0,0,0,1,0,0], ...] 这样的数据,计算机才能高效的处理. (不过使用PyTorch做分类问题时,不需要手动转化) 最大似然率(maximum likelihood) 最大似然率 所有预测结果(概率)的乘积, 用来衡量预测的结果的好坏,随着数据量变大,乘积无限接近0,不是一个好的衡量方式,所以不用. 交叉墒

5.5 卷积神经网络(LeNet)

♀尐吖头ヾ 提交于 2020-02-20 03:10:19
在“多层感知机的从零开始实现”一节里我们构造了一个含单隐藏层的多层感知机模型来对Fashion-MNIST数据集中的图像进行分类。每张图像高和宽均是28像素。我们将图像中的像素逐行展开,得到长度为784的向量,并输入进全连接层中。然而,这种分类方法有一定的 局限性。 图像在同一列邻近的像素在这个向量中可能相距较远。它们构成的模式可能难以被模型识别。 对于大尺寸的输入图像,使用全连接层容易导致模型过大。假设输入是高和宽均为 1 , 000 1,000 1 , 0 0 0 像素的彩色照片(含3个通道)。即使全连接层输出个数仍是256,该层权重参数的形状也是 3 , 000 , 000 × 256 3,000,000\times 256 3 , 0 0 0 , 0 0 0 × 2 5 6 :它占用了大约3 GB的内存或显存。这会带来过于复杂的模型和过高的存储开销。 卷积层尝试解决这两个问题。 卷积层保留输入形状,使图像的像素在高和宽两个方向上的相关性均可能被有效识别; 卷积层通过滑动窗口将同一卷积核与不同位置的输入重复计算,从而避免参数尺寸过大。 卷积神经网络就是含卷积层的网络。本节里我们将介绍一个早期用来识别手写数字图像的卷积神经网络:LeNet。这个名字来源于LeNet(1994)论文的第一作者Yann LeCun

机器学习——从线性回归到逻辑回归【附详细推导和代码】

♀尐吖头ヾ 提交于 2020-02-19 09:34:54
本文始发于个人公众号: TechFlow ,原创不易,求个关注 在之前的文章当中,我们推导了线性回归的公式,线性回归本质是线性函数,模型的原理不难,核心是求解模型参数的过程。通过对线性回归的推导和学习,我们基本上了解了机器学习模型学习的过程,这是机器学习的精髓,要比单个模型的原理重要得多。 新关注和有所遗忘的同学可以点击下方的链接回顾一下之前的线性回归和梯度下降的内容。 一文讲透梯度下降法 详细推导线性回归模型 回归与分类 在机器学习当中,模型根据预测结果的不同分为两类,如果我们希望模型预测一个或者多个连续值,这类问题被称为是回归问题。像是常见的未来股票价格的估计、未来温度估计等等都算是回归问题。还有一类呢是分类问题,模型的预测结果是一个离散值,也就是说只有固定的种类的结果。常见的有垃圾邮件识别、网页图片鉴黄等等。 我们之前介绍的逻辑回归顾名思义是一个回归问题,今天的文章讲的呢是如何将这个回归模型转化成分类模型,这个由线性回归推导得到的分类模型称为 逻辑回归 。 逻辑回归 逻辑回归这个模型很神奇,虽然它的本质也是回归,但是它是一个分类模型,并且它的名字当中又包含”回归“两个字,未免让人觉得莫名其妙。 如果是初学者,觉得头晕是正常的,没关系,让我们一点点捋清楚。 让我们先回到线性回归,我们都知道,线性回归当中 \(y=WX+b\) 。我们通过W和b可以求出X对应的y

动手学深度学习之ModernRNN

风格不统一 提交于 2020-02-19 06:07:25
这节内容介绍几个经典的RNN模型,有GRU/LSTM/深度循环神经网络/双向循环神经网络。在吴恩达老师的DL课程中,曾说过GRU是LSTM的改进,GRU单元更加简单,构筑大型网络结构更有优势,而LSTM单元功能更加强大;深度循环神经网络就是在一个RNN单元中层数更深,拥有更强的抽取特征的能力;双向循环神经网络在机器翻译任务中十分有效,如对某个词的词义的确定既需要前面单词也需要后面单词的配合。另外值得一提的是,这些网络拥有长期记忆的方法,可以避免梯度消失的问题。 GRU R t = σ ( X t W x r + H t − 1 W h r + b r ) Z t = σ ( X t W x z + H t − 1 W h z + b z ) H ~ t = tanh ⁡ ( X t W x h + ( R t ⊙ H t − 1 ) W h h + b h ) H t = Z t ⊙ H t − 1 + ( 1 − Z t ) ⊙ H ~ t \begin{aligned} R_{t} &=\sigma\left(X_{t} W_{x r}+H_{t-1} W_{h r}+b_{r}\right) \\ Z_{t} &=\sigma\left(X_{t} W_{x z}+H_{t-1} W_{h z}+b_{z}\right) \\ \widetilde{H}_{t}=&

sigmoid_cross_entropy_with_logits,softmax_cross_entropy_with_logits,sparse_softmax_cross_entropy_...

╄→гoц情女王★ 提交于 2020-02-19 00:54:37
tf.nn.sigmoid_cross_entropy_with_logits 函数的计算方式就是对输出值先算sigmoid,然后与真实值做交叉商运算。 sigmoid函数的定义: 1 1 + e − x \displaystyle\frac{1}{1+e^{-x}} 1 + e − x 1 ​ 交叉商的计算方式: − ( l a b e l s ∗ l o g ( − l o g i t s ) + ( 1 − l a b e l s ) ∗ l o g ( 1 − l o g i t s ) ) -(labels*log(-logits)+(1-labels)*log(1-logits)) − ( l a b e l s ∗ l o g ( − l o g i t s ) + ( 1 − l a b e l s ) ∗ l o g ( 1 − l o g i t s ) ) l a b e l s labels l a b e l s 是标签, l o g i t s logits l o g i t s 是预测值。 函数的输入通常是形状为(batch_size,num_classes)的张量,输出是(batch_size,num_classes)的张量,每一个值代表当前这个batch_size个数据的每一个数据的loss值,通常接reduce

Datawhale 组队学习打卡营 任务14:leNet

妖精的绣舞 提交于 2020-02-19 00:53:24
卷积神经网络 使用全连接层的局限性: 图像在同一列邻近的像素在这个向量中可能相距较远。它们构成的模式可能难以被模型识别。 对于大尺寸的输入图像,使用全连接层容易导致模型过大。 使用卷积层的优势: 卷积层保留输入形状。 卷积层通过滑动窗口将同一卷积核与不同位置的输入重复计算,从而避免参数尺寸过大。 LeNet模型 LeNet分为卷积层块和全连接层块两个部分。下面分别介绍这两个模块。 #import import sys sys . path . append ( "/home/kesci/input" ) import d2lzh1981 as d2l import torch import torch . nn as nn import torch . optim as optim import time #net class Flatten ( torch . nn . Module ) : #展平操作 def forward ( self , x ) : return x . view ( x . shape [ 0 ] , - 1 ) class Reshape ( torch . nn . Module ) : #将图像大小重定型 def forward ( self , x ) : return x . view ( - 1 , 1 , 28 , 28 ) #(B x C