自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(202)
  • 收藏
  • 关注

原创 数据结构与算法分析之并查集

并查集

2022-10-27 14:44:38 412 1

原创 数据结构与算法之树(2)

2-3查找树,红黑树、B树、B+树

2022-10-23 16:02:37 413

原创 数据结构与算法分析之优先队列

优先队列,其实就是基于堆的思想实现的队列

2022-10-21 16:21:13 466

原创 数据结构与算法分析之堆

堆,堆就是一个完全二叉树

2022-10-20 19:50:47 248

原创 数据结构与算法分析之树(1)

树的概念,二叉查找树

2022-10-19 21:12:52 383

原创 数据结构与算法之符号表

符号表:和java中的map,python中的字典类似

2022-10-18 21:58:46 134

原创 数据结构与算法之线性表

线性表(顺序表,单链表,循环链表,栈,队列)

2022-10-18 21:53:49 279

原创 数据结构与算法分析之排序算法

【代码】数据结构与算法分析之排序算法。

2022-10-14 10:41:35 375

原创 算法设计与分析之贪心策略

【代码】算法设计与分析之贪心策略。

2022-09-04 16:08:44 454 1

原创 算法设计与分析之动态规划(2)

【代码】算法设计与分析之动态规划(2)

2022-09-03 19:37:18 144

原创 算法设计与分析之动态规划(1)

【代码】算法设计与分析之动态规划(1)

2022-08-31 15:36:24 291

原创 LeetCode169.多数元素

【代码】LeetCode169.多数元素。

2022-08-30 10:00:36 107

原创 算法设计与分析之分而治之篇(2)

【代码】算法设计与分析之分而治之篇(2)

2022-08-29 20:23:43 201

原创 算法分析与设计之分而治之篇(1)

【代码】算法分析与设计之分而治之篇(1)

2022-08-26 15:57:53 716

原创 算法设计与分析之算法绪论

算法定义:给定计算问题,算法是一系列良定义的计算步骤,逐一执行计算步骤即可得到预期的输出。计算问题:给定数据输入,计算满足某种性质输出问题算法的性质有穷性:算法必须在有限个计算步骤后终止。确定性:算法必须是没有歧义的。可行性:可以机械的一步一步执行基本的操作步骤。

2022-08-23 14:54:48 205

原创 Spark2.3.1源码编译

最近捣鼓了一下Spark源码的编译,下载源码什么的网上都有,我主要研究了Spark Core和Spark on Yarn的源码,一般的步骤网上都有,就不在这里说了,我是把Spark2.3.1的源码导入到了idea中进行编译的,导入到idea中可以很方便的进行二次开发。这里我就说说遇到的两个坑的地方吧。 环境: Win10 Scala 2.11.12 jdk1.8 maven 3.3.9 idea 2021.2.3专业版 坑一:在Core的pom文件中修改坑二.

2021-11-02 20:24:28 146

原创 REFINFORCE算法实现

#!/usr/bin/env python# -*- coding:utf-8 -*-# author:tiger# datetime:2021/9/18 5:11 下午import gymimport numpy as npimport torchimport matplotlib.pyplot as pltfrom torch import nnfrom torch.distributions import Categoricalfrom torch import finfo.

2021-09-22 16:06:00 168

原创 强化学习实践之交叉熵方法

核心:丢弃不好的episode步骤:使用当前的模型和环境运行N个episode计算每个episode的总奖励并确定一个奖励边界。通常,使用所有奖励的一些百分位数,例如:50%和70%丢弃所有包含边界以下奖励的episode用观察作为输入,已发布的动作作为期望输出训练剩余的“精华”episode不断重复上述步骤局限性:对于训练,episode必须是有限的,最好是简短的episode的总奖励应具有足够的可变性,足以将好的episode与坏episode分开没有关于Agent是成功还.

2021-09-13 09:19:21 325

原创 策略梯度中的baseline

策略梯度中的BaselinePolicy Gradient with BaselinePolicy Gradient策略梯度是关于策略网络的参数求的,策略网络π(a∣s;θ)\pi (a|s;\theta)π(a∣s;θ)的参数是θ\thetaθ,我们使用策略网络来控制Agent做运动。状态价值函数Vπ(s)V_{\pi}(s)Vπ​(s)是动作价值函数的期望,期望是关于动作A求的,动作A的概率密度函数是π\piπ,可以将期望等价写为连加的形式。这里期望中包含策略网络的参数θ\thetaθ,所以得到

2021-09-04 22:20:29 1230 2

原创 时间差分算法

时间差分算法Sarsa算法Derive TD Target回顾Discounted Return,不难推出这个时刻的回报等于这个时刻的奖励加上下个时刻的回报乘以γ\gammaγ我们使用Ut=Rt+γ⋅Ut+1U_t = R_t + \gamma \cdot U_{t+1}Ut​=Rt​+γ⋅Ut+1​来推导TD target,通常认为奖励RtR_tRt​依赖于t时刻的动作AtA_tAt​和状态StS_tSt​,以及t+1时刻的状态St+1S_{t+1}St+1​,根据定义状态价值函数Qπ(

2021-09-04 22:07:14 874 3

原创 动手学深度学习之文本预处理

文本预处理import collectionsimport refrom d2l import torch as d2l将数据集读取到由文本行组成的列表中d2l.DATA_HUB['time_machine'] = (d2l.DATA_URL + 'timemachine.txt', '090b5e7e70c295757f55df93cb0a180b9691891a') # load一本书def read_time_machi

2021-09-02 11:05:08 1313 1

原创 动手学深度学习之序列模型

序列模型序列数据统计工具在时间t观察到xtx_txt​,那么得到T个不独立的随机变量(x_1,…,x_T)~p(x)使用条件概率展开p(a,b)=p(a)p(b|a)=p(b)p(a|b)序列模型对前面x−xt−1x-x_{t-1}x−xt−1​进行建模表示为一个函数,可以认为是一个机器学习模型。现在是给定前面的让我们去预测现在的,这也是一个自回归模型。方案A-马尔科夫假设给定定长的τ\tauτ,然后预测方案B-潜变量模型引入一个潜变量来记录过去的信息,这样这里就

2021-09-02 11:04:09 296

原创 动手学深度学习之样式迁移

样式迁移将样式图片中的样式迁移到内容图片上,得到合成图片基于CNN的样式迁移输入是一张内容的图片和一张样式的图片,目标是将内容的图片应用上样式图片的样式。CNN对于图片的出入,每一层都是一些特征,我们训练一个图片使得图片和内容图片,放进同样一个CNN的时候,在某一层它的输出可以匹配上另一个的内容。同样另一个样式图片在放入一个CNN后,在某一层在样式上可以匹配上。代码实现# 阅读内容和样式图像%matplotlib inlineimport torchimport torchvi

2021-09-02 11:00:14 629

原创 动手学深度学习之全连接卷积神经网络

全连接卷积神经网络(FCN)FCN是用深度神经网络来做语义分割的奠基性工作他用转置卷积层来替换CNN最后的全连接层,从而可以实现每个像素的预测代码实现%matplotlib inlineimport torchimport torchvisionfrom torch import nnfrom torch.nn import functional as Ffrom d2l import torch as d2l# 使用在ImageNet数据集上预训练的ResNet-18模型来提取

2021-08-31 09:43:11 560

原创 DQN高级技巧

DQN高级技巧DQN和TD Learning回顾DQN之前我们学过Q∗(s,a)Q^*(s,a)Q∗(s,a)函数,它叫做动作价值函数,它依赖于当前的状态s和动作a,它基于当前状态s给所有的动作a打分,分数反映了动作a的好坏,Agent应该执行分数最高的动作,DQN的意思是使用神经网络来近似Q∗Q^*Q∗函数,神经网络的参数记作:w。DQN的意思是用神经网络来近似Q∗Q^*Q∗函数,训练好DQN之后,使用DQN来控制Agent。DQN的输入是状态s,将s输入DQN。如下图将超级玛丽画面放入DQN中,

2021-08-30 20:39:14 2719 1

原创 动手学深度学习之转置卷积

转置卷积卷积不会增大输入的高宽,通常要么不变、要么减半转置卷积则可以用来增大输入高宽。假设我们有一个2*2的输入,有一个2*2的核,这个卷积核会进行一个滑动,在输入中的每一个元素会和卷积核中的每一个元素做乘法,然后将每一个元素都写会到对应的地方,如下图,会得到4个大一点的矩阵,然后将这4个矩阵加起来。为什么称之为“转置”假设卷积可以将一个4*4的矩阵变为2*2的话,那么转置卷积就可以将一个矩阵从2*2变为一个4*4代码实现import torchfrom torch import

2021-08-30 12:58:18 189

原创 动手学深度学习之语义分割和数据集

语义分割语义分割将图片中的每个像素分类到对应的类别。一般来说通过聚类将比较像的东西放到一起,就是将比较相似的东西放到一起。和一般的分割不同的时候会告诉我们每个像素的label。应用背景虚化路面分割实例分割语义分割只关心每个像素是属于哪一个类,实例分割会告诉我们每个像素具体是属于谁。语义分割和数据集最重要的的语义分割数据集之一是PascalVOC2012%matplotlib inlineimport osimport torchimport torchvision

2021-08-30 10:11:25 309

原创 动手学深度学习之物体检测算法R-CNN,SSD,YOLO

区域卷积神经网络R-CNNR-CNN首先是使用启发式搜索算法来选择锚框,选出很多锚框之后,对于每一个锚框当作一张图片,使用一个预训练好的模型来对他进行特征抽取,然后训练一个SVM来对类别进行分类。使用一个线性回归模型来预测边缘框的偏移。兴趣区域(Rol)池化层上面我们得到不同的锚框,我们怎么将其变为一个batch?使用RoI Pooling:给定一个锚框,我们将它均匀的切成n×mn\times mn×m块,然后输出每一块中的最大值。这样不管锚框多大,总是输出nm个值。这样我们就可以将不同的

2021-08-29 11:59:29 1038 2

原创 动手学深度学习之锚框

锚框锚框就是一个框,边缘框就是一个物体的真实的位置的一个框,锚框是对这个边缘框位置的一个猜测。算法先给我们画出一个框,然后看这个框里面有没有物体。如果有的话,算法就基于这个物体进行预测,它到我们真实的边缘框是怎么偏移过去的。简单来说就是,先提出多个框,然后看看框里面有没有这个物体,有的话,就基于这个框来调整位置。这样我们就有两个预测,一个是对框中是否存在该物体的预测,另一个是锚框到真实的边缘框的预测。loU-交并比loU用来计算两个框之间的相似度。它是一个0-1之间的数值,0表示无重叠,1表示

2021-08-26 14:49:37 3689 1

原创 动手学深度学习之物体检测和数据集

目标检测目标检测和图片分类的区别图片分类我们就是要找出主体,目标检测就是在图片中识别所有我们感兴趣的东西,并且知道所有物体的位置边缘框(bounding box)用来表示物体的位置一个边缘框可以通过4个数字定义(左上x, 左上y, 右下x, 右下y)(左上x, 左上y, 宽, 高)目标检测数据集一般存放目标检测数据集的方法每行表示一个物体:图片文件名,物体类别,边缘框的位置。COCO80类物体,330k图片,1.5M物体总结边缘框的代码实现%

2021-08-26 10:30:42 755 2

原创 概率论与数理统计之贝叶斯公式

若为试验E的一个完备事件组,B为E的任一事件,且,则:。这个公式也被称为贝叶斯公式。 根据乘法公式有: 根据全概率公式有: 其中称为先验概率,称为后验概率 例题:设一地区居民的某种疾病的发病率为0.0004,现用一种有效的检验方法进行普查。医学研究表明,化验结果是存在错误的,已知该患病的人其化验结果99%呈阳性(有病),而没患病的人其化验结果99.9%呈阴性(无病)。现有一人用这种方法检验出患有该病,求此人患病的概率。...

2021-08-25 22:19:45 1174

原创 动手学深度学习之kaggle竞赛

实战Kaggle比赛:图像分类(CIFAR-10)import collectionsimport mathimport osimport shutilimport pandas as pdimport torchimport torchvisionfrom torch import nnfrom d2l import torch as d2l我们提供包含前1000个训练图像和5个随机测试图像的数据集的小规模样本d2l.DATA_HUB['cifar10_tiny'] = (d2l.

2021-08-25 19:24:29 1126 1

原创 动手学深度学习之微调

微调标注一个数据集很贵网络架构一个神经网络一般可以分为两块特征抽取将原始像素变成容易线性分割的特征。意思就是将原始的像素变换为很容易分割的线性特征线性分类器来做分类微调微调的意思就是在源数据集上,已经训练好了一个模型。假设这个模型确实是按照我们想的来进行的(先做特征提取,然后做分类),那么我们可以认为,我们在你的数据集上面可以进行比较的好的特征提取,那么他在我们的数据集上也可以做一个比较好的特征提取。但是分类器我们不能直接使用。微调中的权重初始化假设我们在源数据集训

2021-08-25 14:29:46 544 1

原创 动手学深度学习之数据增广

数据增广数据增强增加一个已有的数据集,使得有更多的多样性在语言里面加入各种不同的背景噪音改变图片的颜色和形状使用增强数据训练一般的情况下是做随机的增强,然后生成图片,然后再进行训练常见的增强的方式几十种其他的办法总结代码实现%matplotlib inlineimport torchimport torchvisionfrom torch import nnfrom d2l import torch as d2ld2l.set_figsize

2021-08-25 14:27:38 328

原创 动手学深度学习之经典的卷积神经网络之ResNet

残差网络(ResNet)加更多的层总是改进精度吗?ResNet核心的思想就是让我们加上更多的层至少不会变的差残差块串联一个层改变函数类,我们希望能扩大函数类残差块加入快速通道(右边)来得到f(x)=x+g(x)f(x)=x+g(x)f(x)=x+g(x)的结构。这个意思就是将x加上一个捷径到输出,这样就算我们新加的层什么也没有学到,我们也可以得到前面的x。ResNet块细节下图左边的是直接将x加入到输出,但是当通道数目改变的话,左边的方法就不行了,我们可以在捷径上面加上一个1 *

2021-08-24 08:20:21 476

原创 动手学深度学习之批量归一化

批量归一化批量归一化所考虑的问题是在学习底部层的时候避免变化顶部层?损失出现在最后,后面的层训练较快。数据在最底部底部的层训练较慢底部层一变化,所有都得跟着变最后的那些层需要重新学习多次导致收敛变慢核心想法:固定小批量里面的均值和方差:$\mu_B = \frac{1}{\left | B \right |} \sum_{i\in B}x_i and \sigma^2_B=\frac{1}{\left | B \right |}\sum_{i\in B}(x_i - \

2021-08-23 20:28:00 236 1

原创 动手学深度学习之经典的神经网络之GoogLeNet

GoogLeNet前面我们学习了一些经典的神经网络,我们不经会问一个问题,我们为什么要这么做,为什么要那么做?Inception块:小学生才做选择题,我全都要四个路径从不同层面抽取信息,然后在输出通道维合并。意思就是不同的块里面有不同的通道,把我们想要的东西都放里面。Inception块在做什么:将输入copy成为四块。第一条路接入到一个1 * 1的卷积层,再输出到Concatenation处。第二条路是:先通过一个1 * 1的卷积层对通道坐变换,再输入到一个3 * 3的卷积层,pad

2021-08-23 15:33:04 211 2

原创 动手学深度学习之经典的网络之网络中的网络NiN

网络中的网络NiN全连接层的问题卷积层需要较少的参数:ci×co×k2c_i\times c_o \times k^2ci​×co​×k2但是卷积层后的第一个全连接层的参数超多。计算方法是:输出的隐藏层的大小 * 最后一个卷积层的输出通道数 * 高宽的乘积NiN块一个卷积层后跟两个全连接层(使用1 * 1的卷积层代替)步幅1,无填充,输出形状跟卷积层输出一样起到全连接层的作用,因为这里使用1$\times$1的卷积层,相当于对每个像素进行操作,每个像素的权重都是一样的NiN

2021-08-19 14:56:23 114

原创 动手学深度学习之经典的卷积神经网络之VGG

VGGVGG块深 vs 宽5 * 5卷积3 * 3卷积深但窄效果更好VGG块3 * 3卷积(填充1)(n层,m通道)。也就是说一个VGG块中可以有n个卷积层,每个卷积层的通道数都是一样的2 * 2最大池化层(步幅2)。每个VGG块的最后一层VGG架构其实就是替换掉AlexNet的整个卷积的部分在多个VGG块之后连接全连接层不同次数的重复块得到不同的架构VGG-16,VGG-19…进度总结VGG有两个思想影响了后来的研究:1、使用可重复的块来构建

2021-08-19 14:15:59 525

原创 动手学深度学习之经典的卷积神经网络之AlexNet

AlexNetAlexNet本质是是一个更深更大的LeNet,本质上并没有什么区别主要的改进加入的丢弃发激活函数改为了ReLUAlexNet取的是MaxPooling改变了计算机视觉的观念,不在拘泥于人工抽取特征,二十一个端到端的一个学习AlexNet架构AlexNet的输入是一个224 * 224的矩阵,它的通道数为3,因为它是一个RGB的图片。第一个卷积层:它的卷积核的大小是11 * 11,通道数为96,stride=4。第一个池化层:使用的是最大池化,池化窗口的大小为3

2021-08-18 13:08:54 321

哈里斯鹰算法java实现

哈里斯鹰算法java实现

2022-09-05

空空如也

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

TA关注的人

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