自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Icevivian

一只刻苦专研机器学习的小可爱~

  • 博客(61)
  • 收藏
  • 关注

原创 自监督学习

自监督学习指的是不依赖标注数据,模型直接从无标注的大量数据中进行学习。【属于无监督学习的一部分,它在训练过程中有正负样本,但是正负样本不是人工标号得来的,而是通过自己产生的。自监督学习总体分成两类:生成式自监督学习和判别式自监督学习。其中生成式自监督学习的代表是VAE和GAN,他们利用一个生成器来学习真实的样本分布,不需要提供负样本就可以学习到一个生成器。判别式监督模型的任务难度要低一些,典型的代表是对比学习。

2024-01-27 21:19:11 374 1

原创 预训练语言模型transformer

预训练语言模型的学习方法有三类:自编码(auto-encode, AE)、自回归(auto regressive, AR),Encoder-Decoder结构。

2024-01-27 21:18:24 1576 1

原创 模型训练trick篇

分类任务例如,对于“一枚正反对称的硬币上抛十次”这种事件,我们可以问硬币落地时十次都是正面向上的“概率”是多少;而对于“一枚硬币上抛十次,落地都是正面向上”这种事件,我们则可以问,这枚硬币正反面对称的“似然”程度是多少。在机器学习中,损失函数一般使用的是负对数似然,这里的对数似然指的是在已知输出Y的情况下,对Y的分布参数进行似然估计,估计的参数与输入X有关。–>优点:在计算梯度的时候,差异越大,梯度越大,学习越快。回归任务分类任务的损失函数能不能用平方损失函数?

2024-01-27 21:12:22 967

原创 深度推荐模型之DeepFM

背景:主要解决大规模稀疏数据下的特征组合遇到的问题:1. 二阶特征参数数据呈指数增长怎么做的:对每个特征引入大小为k的隐向量,两两特征的权重值通过计算对应特征的隐向量内积而特征之间计算点积的复杂度原本为实际应用:在推荐场景中,用户特征和物品特征可以相互组合,例如用户性别男经过onehot编码之后为[0,1],物品颜色蓝色经过onehot编码之后为[1,0],那么组合特征[用户性别=男,物品颜色=蓝]可能会很有用。此时可以用FM模型,对用户性别和物品颜色特征进行组合。

2024-01-27 21:08:33 950

原创 两个常用的机器学习方法。

LR逻辑回归损失函数:负的极大似然函数。为什么用这个?因为我们想要让每一个样本的预测都要得到最大的概率,即将所有的样本预测后的概率进行相乘都最大,也就是极大似然函数。能不能用平方损失函数?不能。当输出单元使用sigmoid函数的时候。平方损失函数对某一个样本点的参数树模型决策函数:生成的树模型损失函数:用熵或者基尼指数来衡量,正则化的极大似然训练方式:启发式方法。递归地选择最优特征对数据集进行分割特征选择的准则:信息增益或信息增益比ID3 信息增益:表示得知特征X的信息而使得类Y的信

2024-01-27 21:02:40 372

原创 面试题 -- 多个有序数组的合并

面试百度的时候遇到的一道题,输入为多个有序数组,输出为合并的一个有序数组。思路:与“两个有序数组合并为一个有序数组”这道题相比,因为输入为多个有序数组(这里设有K个数组),因此每次都需要比较K个数的大小,取出最小的数存入返回的数组中,而对多个数取最小的操作,使用最小堆效率最高,因此这里就是 主要考察的数组结构就是最小堆。因为python的堆结构需要自行设计,网上也没有看到比较好的回答,故自己整理如下。输入:arr, n, m其中arr的大小为[n,m], n为数组的个数,m为每个数组的长度cla

2021-06-23 17:16:37 1357

原创 从《NLP实战》学习NLP发展历程

一、分词大小写转换、分词、标点符号处理二、文档矢量表示文档分词之后,对词进行表示就可以得到文档矢量,主要有两种不同的表示方式:onehot矢量和词袋矢量。使用onehot矢量表示词,每个文档就是一个mn的矩阵,其中m为词的个数,n为词表的大小,这时通过该矩阵也能同样还原文档,是一种无损失的表示形式,但对存储空间要求大。词袋矢量表示文档相当于把onehot矩阵按行累加,为一个1n的矢量,每一列为词表中该词出现的次数,这样做的好处是节省了存储空间,但通过这个矢量无法完全还原文档中各词的先后顺序,是一种

2021-04-13 14:24:35 570

原创 搜索、推荐场景中的技术栈分析--LTR,pointwise, ctr究竟是什么

搜索、推荐场景中的技术栈分析-- LTR,pointwise, ctr究竟是什么背景名词解释背景在搜索和推荐场景中,我们经常遇到一些名词,LTR(learning to rank)、CTR预估模型、GBDT模型等,很容易引起概念混乱,这里尝试对这些概念做一个概述。名词解释LTR:learning to rank,即学习排序,是指当多个商品需要展示时,如何对商品顺序进行调整的方式。在推荐和搜索场景中,当多个商品被召回后,都需要使用LTR技术对商品进行排序。LTR的实现方式分为三种:pointwise、

2021-03-12 19:10:02 2867

原创 笔试:数据结构之 递归和循环

如果我们需要重复地多次计算相同的问题,则通常可以选择用递归或者循环两种不同的方法。1) 求斐波那契数列的第n项f(n)={0n=01n=1f(n−1)+f(n−2)n>1f(n)=\left\{\begin{matrix}0 &n=0 \\ 1&n=1 \\ f(n-1)+f(n-2)& n>1 \end{matrix}\right.f(n)=⎩...

2020-04-26 14:23:35 192

原创 笔试:数据结构之栈和队列

栈的特点是后进先出,即最后被压入栈的元素会第一个被弹出;队列的特点是先进先出,即第一个进入队列的元素将会第一个出来。1)用两个栈实现队列解题:1 用两个栈实现队列通过一个具体的例子来分析往队列插入和删除元素的过程。插入a,b,c,弹出,弹出,插入d,再弹出。得到结论是:先用一个栈stack1插入元素,当需要删除元素的时候:若stack2有数,则直接弹出stack2中的数,如果stack...

2020-04-26 12:13:08 160

原创 笔试:数据结构之数组

剑指offer中的数组题目:1)二维数组的查找 (会做)在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。2)数组中重复的数字 (会做)在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。...

2020-04-21 20:58:57 239

原创 数据结构视频讲解-第一课

复杂度问题评价一个算法首先看算法的时间复杂度。 二分法搜索的时间复杂度为O(log2Nlog2⁡N\log_2 N),外排法的时间复杂度为O(N+M). 简单的几个排序方法:冒泡排序,选择排序,插入排序。冒泡排序和选择排序的时间复杂度都是严格的O(N2N2N^2),插入排序在最坏情况下时间复杂度为O(N2N2N^2),它与实际的数据状况有关(当数据已经有序时不用执行交换)。递归行为...

2020-04-21 20:17:55 256

原创 吴恩达老师《机器学习》课程目录

线性回归及其学习过程。 包括代价函数,梯度下降方法,多项式线性拟合与线性拟合相近的一种求解参数的技巧:正规方程。 它直接利用输入矩阵与输出矩阵,通过矩阵求逆得到参数矩阵。但这种方法的计算量比较大(因为要计算矩阵求逆)。当矩阵不可逆时考虑两个原因:1特征具有相关性;2.特征太多,数据较少处理特征的一些技巧:比如特征缩放,均值归一化,画出代价函数随迭代次数的曲线变化来判断学习过程是否正确。逻...

2018-12-06 20:11:53 2091

原创 搜索推荐的主要框架

搜索推荐的主要框架1.倒排索引召回1)召回模型有三种:1.基于行为的召回:根据用户的购买行为推荐相关/相似的商品;(长期行为和实时行为)2.基于用户偏好的召回:用户画像和多屏互通(移动端到PC端);3.基于地域的召回;4.基于搜索词的召回(倒排索引);2)倒排索引倒排是指由属性值来确定记录的位置。倒排索引由单词词典和倒排文件组成,单词词典是由文档集合中出现过的所有单词构成的字符...

2018-10-11 20:24:27 4256

原创 笔试:数据结构之二分法与排序算法

经典问题1.寻找最大的子数组和 方法1:分治法。将n长数组中的最大数组和分为以下几种情况,在左子序列中,在右子序列中,横跨两个子序列中。 方法2:由[i,i+1,i+2,,,,j]到【i,i+1,i+2,,,,j+1】只有两种可能,第一种是最大数组仍是原始数组,第二种是加上j+1的新数组。#方法1:分治法:def find_max_across_subarray(A,low,mid,...

2018-08-16 17:07:51 2258

原创 《深度学习》--书籍整理笔记

线性代数线性相关和生成子空间 因此,要保证对每一个b都有且仅有一个解,那么矩阵A必须是一个方阵,即m=n,且所有列向量都是线性无关的。范数 范数衡量的是向量x与原点的距离。性质: p=2时的L2范数称为欧几里得范数,平方L2范数在机器学习中使用十分频繁,因为它对x中每个元素的导数只与该元素有关,而L2范数对每个元素的导数与整个向量有关。但是,它仍然有一定的缺点,...

2018-08-16 11:17:30 8321

原创 Lession5--RNN 文本翻译、attention model

Sequence to sequence models:由encoder和decoder组成。decoder的前一个输出为当前输入。 应用1:文本翻译 应用2:图像标注。用CNN训练得到特征作为encoder,在后面加上decoder。文本翻译文本翻译与语言模型不同之处在于:语言模型在训练好之后是随机输出一个句子,而文本翻译需要找出最有可能的翻译句子。实现这种搜索的启发式搜索方式叫...

2018-08-15 22:59:38 597

原创 Lesson5--词嵌入

这一节主要分为三个部分: 1)为什么要使用词嵌入? 2)词嵌入的使用场景及,可扩展使用范围? 3)词嵌入有哪些方法?词嵌入的由来原始对词进行表示的方法是One_hot编码,但这种编码有两个主要的缺点:1.这样编码的每个词的长度都比较长;2.两个词之间的距离不能表示出两个词的相似程度。 使用词嵌入的方式来表示每个词,实际上是对不同词提取出它们的特征表示, 例如上图中就是用各...

2018-08-11 11:51:58 261

原创 《明朝那些事儿》--主要人物整理

名字 年号 谥号 备注 朱元璋 洪武(1368年——1398年) 明太祖 常遇春,徐达。事迹:推翻蒙元统治 朱允炆 建文帝(1399年——1402年) 明惠宗 下落不明 朱棣 永乐(1403年——1424年) 明成祖 徐玉,事迹:完善中央制度,开创永乐盛世,收复安南,五征漠北,招抚女真等 朱高炽 洪熙(...

2018-08-09 20:58:00 12420 1

原创 笔试:数据结构之树

与链表相比,树中的指针操作更多也更复杂,因此与树相关的问题通常会比链表的要难。 当遇到树的问题时,比如遍历,可以使用递归和循环的方式去遍历,但是采用递归的代码会比较简洁,在没有特殊要求的条件下,我们一般采用递归的方式。 Tips: 与二叉树相关的代码有大量的指针操作,在每次使用指针的时候,我们都要问自己这个指针有没有可能是None,如果是None应该怎么处理。 当数值类型为double的时...

2018-08-07 22:41:18 392

原创 Lession5--RNN(LSTM,GRU)

RNN的应用场景: 语音识别,音乐生成,语音分析,DNA检测,文本翻译,。。在接下来介绍RNN的基本结构之前,首先定义一些notation,x<1>x<1>x^{}表示输入x的第一个单词,x(i)<1&a

2018-08-07 22:38:54 392

原创 目标检测的历史进展

R-CNN

2018-06-13 11:52:25 2147

原创 Lesson4--人脸验证与人脸识别

人脸验证与人脸识别这两者不同的是,前者是一对一的,只需要对比两张图片,而后者是检验一张图片是否与数据库中的图片相同。一般来说,我们先构建好的人脸验证系统,然后再将它扩展到人脸识别的领域。 one-shot learning面对的问题是:在登记人脸图像的时候,每个员工只会提供一张图片,那么如果需要识别的数据库中只有4个成员的话,按照传统的卷积神经网络,训练集为4,训练样本过少;另外一个问题...

2018-05-20 20:01:35 306

原创 Lesson4--CNN目标检测

Object detection 目标检测图像分类与定位之前我们学习到的输入一张图片,输出为图片的分类的方法都是image classification(图像识别),但有些时候,我们不仅要知道图像的分类,还需要知道目标所在的位置,这种任务叫作image classification and localization,另外有些时候,一张图片中含有多个目标,此时的任务叫作目标检测obje...

2018-05-18 10:36:27 390

原创 Lesson4--CNN经典文章解读

这周主要讲解了CNN领域中的几种经典网络架构。 按照时间先后顺序,依次讲解了LeNet,AlexNet,VGG-16,ResNet。 NN number of parameters layer LeNet 6万 AlexNet 6000万 AGG 1.38亿 ResNet 100层1*1的卷积...

2018-05-17 20:47:35 788

原创 Lesson4--CNN简单介绍

使用CNN做边缘检测时,根据使用的filter不同,会得到不同的效果。比如垂直的边缘检测一般使用的filter 水平边缘检测会使用不同的filter padding 填充在使用filter对图像做卷积处理时,我们会发现两个问题:1.每次卷积操作之后图像的尺寸会缩小;2.边缘图像点只能被较少的信息点覆盖,而核心部分的信息可以被较多的信息点覆盖。为了解决这两个问题,我们就需要对原始...

2018-05-09 10:43:53 395

原创 各优化算法的优缺点整理

固定学习率的优化算法SGDSGD在深度学习中指的是小批量梯度下降,是按照数据分布将总体数据划分为多个小批量数据,然后利用小批量数据对参数进行更新。 优点:每一步更新的计算时间不依赖于训练样本数目的多寡,即使训练样本数目非常大时,他们也能收敛。对于足够大的数据集,SGD可能会在处理整个训练集之前就收敛到最终测试机误差的某个容错范围内。 缺点:选择合适的learning rate比较困难,...

2018-05-08 10:02:50 17768

原创 隐藏单元的选择

整流线性单元(ReLu)是隐藏单元极好的默认选择。也可以选择其他隐藏单元,但是选用过程中充满了试验和错误,先直觉认为某种隐藏单元可能表现良好,然后用它组成神经网络进行训练,最后用验证集来评估它的性能。 有些隐藏单元并不是在所有点上可微,比如说Relu在z=0点处不可微,但在实践中,梯度下降对这些机器学习模型仍旧表现的足够好。部分原因是神经网络训练算法通常不对达到代价函数的局部最小值,而是仅仅显著...

2018-04-25 11:12:46 798

原创 笔试:数据结构之链表

链表应该是面试时被提及最频繁的数据结构,链表的结构很简单,它由指针把若干个节点连接成链状结构。 链表的创建、插入节点、删除节点等操作都只需要20行左右的代码就能实现,因此适合面试时提问。 常见的面试题有: 1)从尾到头打印链表; 2)删除链表的节点; 3)删除链表中倒数第k个结点; 4)反转链表; 5)合并两个排序的链表; 6)两个链表的第一个公共结点; 7)判断链表中是否有环;...

2018-04-17 20:08:56 304

原创 李宏毅的深度学习之RNN

https://www.youtube.com/watch?v=rTqmWlnwz_0 RNN(循环神经网络):存储隐藏层在上一层训练时的输出用于这一次的训练,因此训练的顺序就显得很重要。 看一个例子: 在进行语义分析的时候,这一点显得很有效。 RNN也有多种形式: 目前常说的RNN就是指的LSTM(Long short-term memory),GRU是少了一个gate,s...

2018-04-12 19:55:07 374

原创 Lesson3--结构化机器学习项目

当训练模型觉得效果仍需改进的时候,你可以做以下步骤提升效果: 那在什么时候选用哪一种方法来进行调试呢,这时候应该用到正交(orthogonality)的方法,也就是我们希望调整这一个性能的时候不影响另外一个性能,就像调整电视机的屏幕的时候,我们调试电视机的宽度的时候,就不应该改动它的高度,否则电视屏幕很难调节好。因此相对应的,在机器学习的调整过程中,当我们发现在训练集,验证集,测试集或者是用...

2018-04-09 09:54:22 239

原创 面试整理--神经网络篇

线性模型和神经网络的最大区别,在于神经网络的非线性导致大多数我们感兴趣的代价函数都变得非凸。因此对于前馈神经网络,将所有权重值初始化为小随机数是重要的。 训练一个前馈网络至少需要做和线性模型一样的多的设计决策:选择一个优化模型、代价函数以及输出单元的形式。模型神经网络不把线性模型作用与x本身,而是作用在一个变换后的输入ϕ(x)ϕ(x)\phi(x)上,这里ϕ(x)ϕ(x)\phi(x...

2018-04-08 16:09:23 4111

原创 Lesson2--Batch正则化和程序框架

1 超参数调试1)超参数 红色是最重要的,黄色次之,紫色再次之。2)调节超参数的方法 两种方法:1.随机取值;2.从大范围到小范围(从粗糙到精细) 随机取值的好处是在你不知道哪个参数更重要的时候,可以得到更多不一样的取值,比如αα\alpha与ϵϵ\epsilon一起调试的时候,如果使用网格搜索,那么不同ϵϵ\epsilon下相同αα\alpha得到的效果其实差不多。 从粗...

2018-04-06 11:13:42 279

原创 Lesson2--优化算法

在大数据上进行深度学习的速度很慢,因此我们需要学习一些方法来加快深度学习的速度。1batch vs. mini-batch梯度下降1.什么是mini-batch? 向量化能够使得我们更快地处理输入X和输出Y,可是当输入样本量太大时,比如m=5000000,梯度下降的速度仍旧会比较慢。这时可以把训练集分割为小一点的子训练集,这些子集称为mini-batch,比如1~1000为第一个mi...

2018-04-03 18:10:50 274

原创 Lesson2--深层神经网络的实用层面(正则化、加快训练速度)

接着上一课的超参数调参内容,这一周先从超参数的经验值选取开始讲起。1训练/开发/测试集在机器学习中,我们一般数据分为训练集,测试集和验证集,在数据量比较少的情况下,我们可以采用原始划分百分比60%,20%,20%,当数据量特别大至百万级的时候,我们的验证集和测试集就不需要取到20%这么大,有时候甚至取0.5%,0.1%就可以了。 另外一个问题是训练集,验证集和测试集的数据要确保来自同...

2018-04-01 20:19:17 787

原创 总结机器学习面试题---按照算法分类(更新整理中)

简历:一份好的简历中的项目描写应该要精准的描述出项目技术难点,并且包含准确的评价数字。 面试时如何交流? 你要保持和面试官的不断的交流,不要把他当成面试官,而要把他当成未来团队成员,先和未来的团队成员一起想办法讨论问题,解决问题,然后临时给出一个基本的可运行版本。即使算法和运行效率看起来特别差,但是先给出一个基本的可运行的版本,然后再和面试官讨论。这也是我们工作过程中的基本的工作模式,先给一个...

2018-03-29 22:27:21 1260 3

原创 Lesson1--深层神经网络

1深层(deep)神经网络的符号表示 LLL表示神经网络层数,一般L<3都称为浅层(shallow)神经网络. a[l]a[l]a^{[l]}表示激活单元。 在编程中最需要注意的是核对矩阵的维数,避免numpy在计算上出现的错误。2为什么深层神经网络是有效的?1)神经网络前面的隐藏层计算比较低层次的信息,然后组合到一个比较复杂的信息进行进行处理,比如声音识别中,可能先识...

2018-03-28 09:56:58 369

原创 Lesson1--浅层神经网络

1.神经网络的表示名称:输入层,隐藏层hidden layer,输出层。神经网络的层数,我们一般不计入输入层,因此这是一个两层的神经网络;用a[0],a[1]..a[0],a[1]..a^{[0]},a^{[1]}..分别表示每一层的激活单元,用下标表示每个激活单元中的第几个结点,所以a[1]1a1[1]a^{[1]}_1表示第一层的激活单元的第一个结点;w,bw,bw,b向量的维...

2018-03-26 11:16:39 405

原创 CF协同过滤与SVD分解

协同过滤具体可以参考这篇文章:https://www.cnblogs.com/lesleysbw/p/6024379.html 协同过滤CF分为两种:基于客户的CF和基于物品的CF。 协同过滤的三个步骤:1.收集用户偏好这个是生成数据矩阵的过程,最重要的有两点:降噪和归一化。降噪需要使用SVD分解来降低信息冗余;归一化是为了将不同特征的影响视为一致。2.找到相似的用户或...

2018-03-23 10:10:10 753

原创 PCA降维的推导

最近在看PCA降维的过程中,发现与特征值分解与奇异值分解都有或多或少的关系,但又感觉有些模糊不清,今天看了几篇文章,发现从线性变换的角度来了解矩阵更清晰了一些,于是整理了一些知识点如下。 本文参考的知识点有:PCA的数学原理,链接:http://blog.codinglabs.org/articles/pca-tutorial.html;特征值与奇异值有什么区别,链接:https://www.z...

2018-03-20 16:39:04 293

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除