- 博客(56)
- 收藏
- 关注
转载 堆排序及应用
堆和栈是计算机程序设计中非常重要的数据结构,操作系统和数据库均有非常广泛的应用,掌握好这两种数据结构也可以高效地解决工程问题。今天分享一下堆 的实现和工程应用。堆有两点需要了解,一是堆是一颗完全二叉树,完全二叉树就是只有最后一层有页子节点,而且页子节点是靠左排列的;二是堆中的每一个节点都大于其左右子节点(大顶堆),或者堆中每一个节点都小于其左右子节点(小顶堆)。哪些是堆上图中,1 和 2 是大顶堆,3 是小顶堆,4 不是堆。堆的实现堆是一颗完全二叉树,完全二叉树使用数据存储最节省内存,
2020-09-07 09:33:41
750
原创 soft-margin SVM中系数C取值的影响
按照LibSVM的习惯,SVM的目标函数是这样的:这里的参数C代表的是在线性不可分的情况下,对分类错误的惩罚程度。C值越大,分类器就越不愿意允许分类错误(“离群点”)。如果C值太大,分类器就会竭尽全力地在训练数据上少犯错误,而实际上这是不可能/没有意义的,于是就造成过拟合。而C值过小时,分类器就会过于“不在乎”分类错误,于是分类性能就会较差。https://www.zhihu.com/question/40217487...
2020-09-01 10:39:12
1427
原创 常见机器学习、深度学习面试问题总结
持续更新中…1.为什么LR需要归一化?为什么LR把特征离散化后效果更好?归一化能提高梯度下降的速度,加快收敛速度,消除不同特征之间取值的差异性。https://blog.youkuaiyun.com/weixin_38111819/article/details/79729444https://www.zhihu.com/question/319899522.为什么加入正则化项能降低过拟合?过拟合发生的本质原因,是由于监督学习问题的不适定:数据远远少于模型空间。为什么正则化能够避免过拟合:因为正则化就是控
2020-08-28 11:17:32
432
原创 NLP各种语言模型的优缺点比较
持续更新中…1.n-gramn-gram语言模型引入马尔科夫假设,假设当前单词出现的概率只与前n-1个单词有关。常见的unigram、bigram、trigram公式如下:优点:(1) 采用极大似然估计,参数易训练;(2) 完全包含了前 n-1 个词的全部信息;(3) 可解释性强,直观易理解。缺点 :(1) 缺乏长期依赖,只能建模到前 n-1 个词;(2) 随着 n 的增大,参数空间呈指数增长;(3) 数据稀疏,难免会出现OOV的问题;(4) 单纯的基于统计频次,泛化能力差。2.神经网络
2020-08-27 10:26:48
4428
原创 传统Seq2Seq模型和Attention机制
https://www.cnblogs.com/DLlearning/p/7834018.html
2020-08-25 10:06:12
173
原创 Softmax 反向传播公式推导
深度学习多分类问题中,最后一层通常会用Softmax输出每个类别的概率,然后计算交叉熵损失进行反向传播。Softmax公式为:当对Softmax函数进行求导时,可以分为两种情况:(1)当 k=ik=ik=i 时:根据sofrmax公式,上式可以化简为:(2)当 k≠ik \neq ik=i 时:上述两种情况加起来便可以得到最终的反向传播公式:参考:https://blog.youkuaiyun.com/Charel_CHEN/article/details/81266575...
2020-08-18 09:56:25
2191
原创 图卷积神经网络原理介绍
如何理解 Graph Convolutional Network(GCN)空间方法的GCN论文:GCN: Kipf, T. N., & Welling, M. (2016). Semi-supervised classification with graph convolutional networks. arXiv preprint arXiv:1609.02907.GraphSAGE: Hamilton, W., Ying, Z., & Leskovec, J. (2017).
2020-07-29 18:14:08
608
转载 傅里叶变换和拉普拉斯变换
一、奥列弗. 赫维赛德是何许人也二、傅里叶变换(轻量版拉普拉斯变换)三、拉普拉斯变换(原来就是那么回事)拉普拉斯变换可以说是现代工程学使用最广泛的数学工具,它通过数学变换将微积分方程转化成代数方程,为求解连续空间连续时间的方程提供了可能。但是,一般的教材一上来就是拉普拉斯变换的数学定义,对于其历史和代表的深刻含义没有任何介绍,导致很多人一直头疼不已。今天,我们尝试一下从不同的角度来看看拉普拉斯变换到底是怎么回事?先从一个人说起:奥列弗.赫维赛德,一位在科学史地位被严重低估的人。一、奥列弗. 赫维赛德是何
2020-07-22 16:25:39
5738
原创 Numpy使用笔记(1):矩阵的创建
导包import numpy as np1.创建矩阵1.1 ndarray#创建一维的narray对象a = np.array([1,2,3,4,5])#创建二维的narray对象a2 = np.array([[1,2,3,4,5],[6,7,8,9,10]])1.2 通过函数创建矩阵1.2.1 np.arange([start, ]stop, [step, ], dtype=None)a = np.arange(10) # 默认从0开始到10(不包括10),步长为1b = bn
2020-07-08 16:18:30
11299
原创 Pytorch学习笔记之调整学习率
当网络的学习指标不再提升时,可以torch.optim.lr_scheduler.ReduceLROnPlateau类降低学习率。class torch.optim.lr_scheduler.ReduceLROnPlateau(optimizer, mode='min', factor=0.1, patience=10, verbose=False, threshold=0.0001, threshold_mode='rel', cooldown=0, min_lr=0, eps=1e-08)参数说
2020-07-08 15:35:20
294
原创 Python手撕实现正向卷积操作
面试的时候让手撕正向卷积,当时懵了一下然后按照卷积的定义磕磕巴巴写了个大概,现在修改整理一下,博主也是深度学习刚入门,有错误的话请指出。输入:NHWCkernel:kkC_input*C_outputstrides=1padding=VALIDbias=False输出:outputsdef conv2d_forward(inputs, kernel): outputs = [] for n in range(C_output): # 遍历每个卷积核 h = (H
2020-07-08 11:56:59
989
转载 深度学习 BN(Batch Normalization)层的原理介绍
总结:Batch Normalization的引入主要还是为了解决“Internal Covariate Shift”数据分布的改变问题。随着网络深度加深或者在训练过程中,其分布逐渐发生偏移或者变动,之所以训练收敛慢,一般是整体分布逐渐往非线性函数的取值区间的上下限两端靠近。所以这导致反向传播时低层神经网络的梯度消失,这是训练深层神经网络收敛越来越慢的本质原因,而BN就是通过一定的规范化手段,把每层神经网络任意神经元这个..
2020-07-06 14:43:43
595
原创 SVM转化为对偶问题求解的原因
我们使用拉格朗日乘子法可以将原问题转化为对偶问题:KKT条件:一、方便核函数的引入在对偶问题中,需要计算內积<xi,xj><x_i,x_j><xi,xj>。在线性不可分的情况下,我们需要将特征映射到高维特征空间中,使其转化为高维空间线性可分问题。在高维特征空间计算內积是非常困难的,因此可以引用核函数,将高维特征空间的內积用低维空间的核函数表示:二、降低计算复杂度原问题的求解复杂度与特征的维数相关,而转成对偶问题后只与问题的变量个数有关。根据KKT
2020-07-05 10:55:14
1715
转载 语音识别基础(二):语音识别方法
语音识别的全称是自动语音识别(Automatic Speech Recognition,ASR),说得多了, 就把“自动”省去了,认为“自动”是理所当然的了。语音识别属于序列转换技术,它将语音序列转换为文本序列。大体来说,这是一次搬运,是把一段话的表现形式从语音变成了文本,至于文本想要表达的深层含义(自然语言理解)、倾诉的感情(情感识别)、说话人的身份(说话人识别),就需要其他的技术来处理,所以语音应用开始时是分工明确的,但这显然不符合人类对语音的感知和理解.
2020-07-02 15:01:25
10203
2
转载 语音识别基础(一):语音是什么
从最起初的一声巨响,到梵音天籁,到耳旁的窃窃私语,到妈妈喊我回家吃饭,总离不开声音。声音是这个世界存在并运动着的证据。1.1 大音希声 假设我们已经知道了声音是什么。 我们可以找到很多描述声音的词语,如“抑扬顿挫”、“余音绕梁”。当我们在脑海中搜刮这类词语时,描述对象总绕不过这两个:人的声音和物的声音。人的声音,就是语音;物的声音,多数想到的是音乐。这样的选择源于人的先验预期:语音和音乐才最可能有意义,..
2020-07-02 13:06:16
2061
1
原创 TDNN—时延神经网络原理
https://blog.youkuaiyun.com/richard2357/article/details/16896837
2020-06-30 16:20:14
2442
原创 高斯混合模型(GMM)公式
https://blog.youkuaiyun.com/jinping_shi/article/details/59613054
2020-06-29 22:28:09
1664
转载 机器学习评价指标AUC计算公式
1.什么是AUC?AUC(are under curve)是一个模型的评价指标,用于分类任务。那么这个指标代表什么呢?这个指标想表达的含义,简单来说其实就是随机抽出一对样本(一个正样本,一个负样本),然后用训练得到的分类器来对这两个样本进行预测,预测得到正样本的概率大于负样本概率的概率。2.如何计算AUC?方法一在有M个正样本,N个负样本的数据集里。一共有MN对样本(一对样本即,一个正样本与一个负样本)。统计这MN对样本里,正样本的预测概率大于负样本的预测概率的个数。这里第一个条件应该为P
2020-06-29 22:22:14
4112
1
原创 自然语言处理之Attention
深度网络attention泛滥,归根到底就是一个加权求和。https://zhuanlan.zhihu.com/p/59698165
2020-06-29 15:04:19
181
原创 自然语言处理之ngram模型
背景介绍N-Gram是一种基于统计语言模型的算法。它的基本思想是将文本里面的内容按照字节进行大小为N的滑动窗口操作,形成了长度是N的字节片段序列。每一个字节片段称为gram,对所有gram的出现频度进行统计,并且按照事先设定好的阈值进行过滤,形成关键gram列表,也就是这个文本的向量特征空间,列表中的每一种gram就是一个特征向量维度。该模型基于这样一种假设,第N个词的出现只与前面N-1个词相关,而与其它任何词都不相关,整句的概率就是各个词出现概率的乘积。这些概率可以通过直接从语料中统计N个词同时出现
2020-06-19 16:45:14
1505
原创 自然语音处理之文本分类(Python)
https://www.cnblogs.com/xiaochi/p/10957729.html贴个python代码:https://github.com/junxincai/ChineseTextClassification先占坑,后续补
2020-06-11 09:30:48
290
原创 语音识别基本原理
https://www.zhihu.com/question/20398418/answer/167412177先占坑,后续补
2020-06-11 09:28:47
10150
原创 语音识别之强对齐viterbi算法
https://blog.youkuaiyun.com/kamendula/article/details/51568895占坑,后续补内容
2020-06-11 09:28:14
1775
原创 HMM隐马尔可夫模型原理
https://blog.youkuaiyun.com/weixin_41923961/article/details/82750687
2020-05-19 09:08:04
220
转载 极大似然估计原理详解
极大似然估计 以前多次接触过极大似然估计,但一直都不太明白到底什么原理,最近在看贝叶斯分类,对极大似然估计有了新的认识,总结如下:贝叶斯决策 首先来看贝叶斯分类,我们都知道经典的贝叶斯公式: ...
2020-04-16 10:05:12
3774
原创 机器学习中梯度下降法和牛顿法的比较
梯度下降法用到一阶导,牛顿法用到二阶导。梯度下降法迭代公式为:θj:=θj−α∂∂θjJ(θj)\theta_j :=\theta_j -\alpha \frac{\partial }{\partial \theta_j } J(\theta_j )θj:=θj−α∂θj∂J(θj),其中α\alphaα为步长,参数往函数极小值的方向前进。牛顿法作者: peghoty出处...
2020-03-25 09:41:56
150
转载 方差与偏差
转自:机器学习基础 | 偏差与方差导致偏差和方差的原因偏差通常是由于我们对学习算法做了错误的假设,或者模型的复杂度不够;比如真实模型是一个二次函数,而我们假设模型为一次函数,这就会导致偏差的增大(欠拟合);由偏差引起的误差通常在训练误差上就能体现,或者说训练误差主要是由偏差造成的方差通常是由于模型的复杂度相对于训练集过高导致的;比如真实模型是一个简单的二次函数,而我们假设模型是一...
2020-03-24 09:48:18
505
原创 机器学习参数初始化的作用
参数初始化往往是模型训练前比较重要的一步,主要是因为其可以加快梯度下降收敛的速度,并且尽量的使其收敛于全局最优。参数初始化的条件:Glorot条件:优秀的初始化应该保证以下两个条件:各个层的激活值(输出值)的方差要保持一致(前向传播)各个层对输入的梯度的方差要保持一致(反向传播)注意事项:参数不能全部初始化为0,也不能全部初始化同一个值;最好保证参数初始化的均值为0,正负交错,...
2020-03-24 09:33:04
1812
转载 GBDT算法原理以及实例理解
这篇博客讲解了GDBT的详细推导过程:GBDT算法原理以及实例理解总结:与Adaboost算法相比,GDBT原理上是利用了负梯度作为残差的近似值,然后将其作为下一轮迭代的预测值,通过构造CART树使其拟合残差,从而达到优化的目的。...
2020-03-23 17:22:58
303
原创 机器学习数据预处理之标准化/归一化
一、标准化/归一化的作用1.1 提升模型精度对于某些需要计算距离的模型(如KNN),标准化后可将不同维度的特征用于比较。1.2 提升收敛速度标准化后,在线性模型梯度下降求最优解时更容易收敛。二、常用的方法2.1 StandardScaler标准化数据通过减去均值然后除以方差(或标准差),转化后的数据服从标准正态分布,即均值为0,标准差为1,转化函数为:(x−μ)σ\frac{(x-\...
2020-03-23 11:27:24
548
原创 Python实现快排算法
def partition(arr, left, right): p = arr[left] while left < right: while left < right and arr[right] > p: right -= 1 arr[left], arr[right] = arr[right], ar...
2020-03-12 10:14:33
210
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人