softmax

度量学习、细粒度识别相关论文阅读笔记(一)——SoftTriple Loss

柔情痞子 提交于 2020-01-30 13:18:26
度量学习、细粒度识别相关论文阅读笔记(一)——SoftTriple Loss 之前调研了几篇度量学习、细粒度识别相关领域的最新论文,现将之前做的论文笔记分享出来供大家一起探讨。 因为之前没有涉及过相关领域,如果有的地方理解不够准确希望大家指正。 Triple Loss Triple Loss Triplets挖掘 训练方法 Offline Online SoftTriple Loss normalized softmax Multiple Centers Adaptive Number of Centers 网络结构 车型识别数据集:Cars196 先回顾一下Triplet loss的原理以及应用。 Triple Loss Triple Loss Triplet loss最初是在 FaceNet: A Unified Embedding for Face Recognition and Clustering 论文中提出的,应用于人脸识别任务中。目前,Triplet loss也被广泛应用于各种细粒度识别任务中。 Triplet loss的目的是学习一个好的embedding,使得同一个人的人脸在嵌入空间中尽量接近,不同人的人脸在嵌入空间中尽量远离。 可以写成如下公式: 其中,a表示anchor, p表示同类样本,n表示异类样本。 为margin, 用来卡阈值,控制正负样本的距离

《Sequence Models》课堂笔记

拜拜、爱过 提交于 2020-01-29 16:37:01
Lesson 5 Sequence Models 这篇文章其实是 Coursera 上吴恩达老师的深度学习专业课程的第五门课程的课程笔记。 参考了其他人的笔记继续归纳的。 符号定义 假如我们想要建立一个能够自动识别句中人名地名等位置的序列模型,也就是一个命名实体识别问题,这常用于搜索引擎。命名实体识别系统可以用来查找不同类型的文本中的人名、公司名、时间、地点、国家名和货币名等等。 我们输入语句 "Harry Potter and Herminoe Granger invented a new spell." 作为输入数据 \(x\) ,我们想要这个序列模型输出 \(y\) ,使得输入的每个单词都对应一个输出值,同时这个 \(y\) 能够表明输入的单词是否是人名的一部分。技术上来说,还有更加复杂的输出形式,它不仅能够表明输入词是否是人名的一部分,它还能够告诉你这个人名在这个句子里从哪里开始到哪里结束。 以简单的输出形式为例。这个输入数据是 9 个单词组成的序列,所以最终我们会有 9 个特征集合来表示这 9 个单词,并按序列中的位置进行索引, \(x^{<1>},x^{<2>}\) 直到 \(x^{<9>}\) 来索引不同的位置。 输出数据也是一样,用 \(y^{<1>},y^{<2>}\) 到 \(y^{<9>}\) 来表示输出数据。同时使用 \(T_x\) 来表示输入序列的长度,

人脸识别相关项目经历

馋奶兔 提交于 2020-01-29 15:44:13
这篇文章是基于研二时候在公司实习做人脸识别项目的记录,自己也是从零开始学习神经网络, tensorflow到完成一个人脸识别项目。出于隐私保护,代码不能公开,打算分享一下觉得比较有参考价值的论文和一些经验,也许有的论文的技术到现在已经算不上很先进了,但是经典的论文多读读总会有收获的。 参考论文: 人脸检测,关键点定位,追踪: 【1】Deep Convolutional Network Cascade for Facial Point Detection 【2】A Convolutional Neural Network Cascade for Face Detection 【3】Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks 【4】Robust facial landmark tracking via cascade regression 【5】Convolutional Experts Network for Facial Landmark Detection 【6】A Functional Regression approach to Facial Landmark Tracking 人脸识别: 1:1 verification 【1】FaceNet:A

理解softmax

妖精的绣舞 提交于 2020-01-28 11:14:51
z i L = ∑ k w k i L a k L − 1 + b k i L = 第 L 层 第 i 个 神 经 元 的 值 = 第 L − 1 层 所 有 神 经 元 的 加 权 输 出 y j L = s o f t m a x ( z j L ) = e z j L ∑ i e z i L = 第 L 层 第 j 神 经 元 的 指 数 化 第 L 层 所 有 神 经 元 指 数 化 求 和 \begin{aligned} & z_{i}^{L}=\sum\nolimits_{k}{w_{ki}^{L}a_{k}^{L-1}+b_{ki}^{L}}=第L层第i个神经元的值=第L-1层所有神经元的加权输出 \\ & y_{j}^{L}=softmax(z_{j}^{L})=\frac{{{e}^{z_{j}^{L}}}}{\sum\nolimits_{i}{{{e}^{z_{i}^{L}}}}} = \frac{第L层第j神经元的指数化}{第L层所有神经元指数化求和} \\ \end{aligned} ​ z i L ​ = ∑ k ​ w k i L ​ a k L − 1 ​ + b k i L ​ = 第 L 层 第 i 个 神 经 元 的 值 = 第 L − 1 层 所 有 神 经 元 的 加 权 输 出 y j L ​ = s o f t m a x ( z j L

深度学习之学习笔记(六)—— 激活函数

三世轮回 提交于 2020-01-28 02:17:04
激活函数 在第三章《神经元的工作原理》中,我们曾经提到过激活函数。当时使用的是最简单的阶跃函数作为激活函数。 阶跃函数具有不连续、不光滑等不太好的性质,因此实际常用Sigmoid函数作为激活函数。Sigmoid函数的定义和图形如下: Sigmoid函数把可能在较大范围内变换的输入值挤压到(0,1)输出范围内,因此也称为“ 挤压函数 ”(Squashing function)。 其中 , Sigmoid函数被选为激活函数还有一个很重要的原因是它的 导数很容易计算。 求导过程如下: 先将 稍微变形,有 记 , 则 其中 根据复合函数求导法则: 若 ,则 为什么要计算激活函数的导数?这个我们在后面《误差反向传播法》一章里解释。 非线性激活函数 ( ) 可以很明显地看出,Sigmoid函数是一个非线性函数。关于线性函数和非线性函数的定义如下: 输出值是输入值的常倍数的函数称为 线性函数 ,用数学式表示为 , 为常数。因此线性函数是一条直线 非线性函数 ,就是指不像线性函数那样呈现出一条直线的函数,比如Sigmoid函数 所有的 激活函数 都是 非线性函数 让我们回顾一下神经网络训练时的具体操作:我们将输入 和它对应的权重 相乘,并将激活函数 应用于该乘积来获取该层的输出,并将激活函数的运算结果作为输入馈送到下一个层。 问题是,为什么我们一定要加上一个非线性的激活函数来处理输入信号呢?

学习《机器学习实战》四

送分小仙女□ 提交于 2020-01-27 15:59:51
训练模型 训练模型就是搜寻使成本函数(在训练集上)最小化的参数组合。 有助于快速定位到合适的模型、正确的训练算法,以及一套适当的超参数。 一、线性回归(LinearRegression) 线性模型就是对输入特征加权求和,再加上一个偏置项的常数,以此进行预测。 线性回归模型预测: 衡量一个回归模型性能指标:均方根误差(RMSE),但求均方误差(MSE)更方便 我们生成一些线性数据来测试这个公式 import numpy as np X = 2 * np.random.rand(100, 1) y = 4 + 3 * X + np.random.randn(100, 1) X表示100个数据的1个特征属性 以点的形式来表示100个数据: 生成的线性函数是y=4+3x from matplotlib import pyplot as plt plt.xlabel("X") plt.ylabel("y") plt.scatter(X, y, marker = 'o', color = 'green', s = 40) plt.show() 现在,我们使用标准方程来计算θ。使用Numpy的线性代数模块(np.linalg)中的inv()函数来对矩阵求逆,并用dot()方法计算矩阵内积: X_b = np.c_[np.ones((100, 1)), X] theta_best = np

永兴的tensorflow笔记-9 全连接MNIST初体验(手写字识别)

六眼飞鱼酱① 提交于 2020-01-24 04:21:05
一、什么是全联接神经网络? 全连接神经网络(fully connected neural network),顾名思义,就是相邻两层之间任意两个节点之间都有连接。全连接神经网络是最为普通的一种模型(比如和CNN相比),由于是全连接,所以会有更多的权重值和连接,因此也意味着占用更多的内存和计算。 全连接层的每一个结点都与上一层的所有结点相连,用来把前边提取到的特征综合起来。由于其全相连的特性,一般全连接层的参数也是最多的。 二、什么是MNIST? MNIST是一个入门级的计算机视觉数据集,它包含各种手写数字图片: 它也包含每一张图片对应的标签,告诉我们这个是数字几。比如,上面这四张图片的标签分别是5,0,4,1。 我们将训练一个机器学习模型用于预测图片里面的数字。所以,我们这里会从一个很简单的数学模型开始,它叫做Softmax Regression。 三、MNIST数据集获取: 1、下载数据集: MNIST数据集的官网是: 点击打开 下载下来的数据集被分成两部分:60000行的训练数据集(mnist.train)和10000行的测试数据集(mnist.test)。这样的切分很重要,在机器学习模型设计时必须有一个单独的测试数据集不用于训练而是用来评估这个模型的性能,从而更加容易把设计的模型推广到其他数据集上(泛化)。 正如前面提到的一样,每一个MNIST数据单元有两部分组成

What is a dimensional range of [-1,0] in Pytorch?

寵の児 提交于 2020-01-23 11:49:26
问题 So I'm struggling to understand some terminology about collections in Pytorch. I keep running into the same kinds of errors about the range of my tensors being incorrect, and when I try to Google for a solution often the explanations are further confusing. Here is an example: m = torch.nn.LogSoftmax(dim=1) input = torch.tensor([0.3300, 0.3937, -0.3113, -0.2880]) output = m(input) I don't see anything wrong with the above code, and I've defined my LogSoftmax to accept a 1 dimensional input. So

why not use the max value of output tensor instead of Softmax Function?

旧时模样 提交于 2020-01-15 11:06:36
问题 I built a CNN model on images one-class classification. The output tensor is a list which has 65 elements. I make this tensor input to Softmax Function, and got the classified result. I think the max value in this output tensor is the classified result, why not use this way to do classification task? Just the Softmax Function can be taken the derivative easily? 回答1: Softmax is used for multi-class classification. In multi-class class classification the model is expected to classify the input

why not use the max value of output tensor instead of Softmax Function?

醉酒当歌 提交于 2020-01-15 11:05:12
问题 I built a CNN model on images one-class classification. The output tensor is a list which has 65 elements. I make this tensor input to Softmax Function, and got the classified result. I think the max value in this output tensor is the classified result, why not use this way to do classification task? Just the Softmax Function can be taken the derivative easily? 回答1: Softmax is used for multi-class classification. In multi-class class classification the model is expected to classify the input