- 博客(75)
- 收藏
- 关注
原创 哈工大2021深度学习与模式识别考试题
1、PPT上的原题,贝叶斯判别那里患癌症还是不患癌症的例题。2、类似PPT上的题,极大似然估计的例题。3、考内积矩阵和协方差矩阵的式子。异同点,特征值是否相同,并证明。4、谱聚类的思想?谱是什么意思?为什么最后要进行k均值聚类?5、为什么Sigmoid函数之后被ReLu替代了?6、Adam算法的一阶矩和二阶矩7、说一个GAN的模型有什么具体用法和使用方向?8、卷积神经网络的题目(类似2020年的那个)9、说说Bert和PixelRNN/PixelCNN的异同?(题目要求写出模型训练,上下文定
2021-07-05 16:32:18 2214
原创 卷积神经网络的实践应用
数据扩充简单的数据扩充方式图像水平翻转(水平饭庄可以令数据集扩充一倍)随机抠取(一般用较大的正方形在原图的随机位置处抠取图像块,抠取的次数决定了数据集扩充的倍数)卷积神经网络模型的输入一般是方形图像尺度变换(一般是将图像分辨率变成原图的0.8,0.9,1.1,1.2,1.3等倍数,将尺度变换后的图像作为扩充的训练样本加入原训练集)旋转(增加卷积神经网络对物体尺度和方向上的鲁棒性)对原图或者已经变换的图像(或者图像块)进行色彩抖动(色彩抖动是在RGB颜色空间对原有RGB色彩分布进行轻微的扰动,
2020-11-29 19:16:27 1492
原创 卷积神经网络的压缩
为什么要对卷积神经网络进行压缩?因为卷积神经网络需要的参数个数非常多,计算所需的次数和代价都非常大,因此需要进行压缩。两种压缩策略不存在绝对的好坏,各种方法均有其各自的适应场景。并且,两种压缩技术可以相互结合,将“前端压缩”的输出作为“后端压缩”的输入,能够在最大程度上减少模型的复杂度。低秩近似低秩近似属于后端压缩技术中的一种。卷积神经网络中的基本计算模式是进行卷积运算。具体实现中,卷积操作由矩阵相乘完成。但是,通常权重矩阵旺旺稠密并且巨大,从而带来计算和存储上的巨大开销。为解决这种情况的一种直
2020-11-29 13:12:58 710
原创 卷积神经网络经典结构
CNN网络结构中的重要概念感受野分布式表示在深度学习中,深度卷积神经网络呈现“分布式表示”的特性。神经网络中的“分布式表示”指“语义概念”到神经元是一个多对多映射。即每个语义概念由许多分布在不同神经元中被激活的模式表示;而每个神经元又可以参与到许多不同语义概念的表示中去。深度特征的层次性浅层卷积核学到的是基本模式,例如:边缘、方向、纹理的特征表示;较深层卷积可以学习到一些高层语义模式,例如:文字,人脸等;分享一篇介绍的很好的博客传送门残差网络模型神经网络的深度和宽度是表征网络复杂度的
2020-11-28 13:03:19 485
原创 卷积神经网络基本部件
“端到端”思想机器学习算法中,其输入的特征需要是人工选择好的特征,机器学习算法负责的只是从这些特征中学习就可以了,但是因为特征的好坏是影响算法性能的关键,并且选择特征也不是简单的事情,有必要将其自动化。深度学习为我们提供了一种范式,即“端到端”学习方式,整个学习流程并不进行人为的子问题划分,而是完全交给深度学习模型直接学习从原始输入到期望输出的映射。即对于深度学习模型来说,其输入数据是未经过任何认为加工的原始样本形式,后续则是堆叠在输入层上的众多操作层。网络中的符号定义三维张量xl∈RHl×Wl×
2020-11-23 10:45:36 711
原创 初识卷积神经网络
卷积神经网络是一类特殊的人工神经网络,区别于神经网络其他模型,卷积神经网络的主要操作是卷积运算操作。因此,CNN在诸多领域应用特别是图像相关任务上表现优异。例如:图像分类、图像语义分割、图像检索、物体检测等计算机视觉问题。基本结构卷积神经网络是一种层次模型,其输入是原始数据,如RGB图像,原始音频数据等。卷积神经网络通过卷积操作,汇合操作和非线性激活函数映射等一系列操作的层层堆叠,将高层语义信息逐层由原始数据输入层中抽取出来,逐层抽象,这一过程便是前馈运算。不同类型操作在卷积神经网络中一般称为“层”:
2020-11-22 22:24:46 207
原创 线性回归
线性模型目标值是特征的线性组合就称为线性回归。普通的最小二乘法寻找w=(w1,w2,...,wp)w=(w_1, w_2, ..., w_p)w=(w1,w2,...,wp)使得minw∣∣Xw−y∣∣22min_w||Xw-y||_2^2minw∣∣Xw−y∣∣22。from sklearn import linear_modelreg = linear_model.LinearRegression()reg.fit([[0, 0], [1, 1], [2, 2]], [0, 1,
2020-10-04 19:51:21 257
原创 数据加载工具
在sklearn.datasets包中内嵌了一些小型数据集。通用的dataset APIThe dataset loaders: 加载小型数据The dataset fetchers:下载和加载大型数据集The dataset generation functions:生成受控的合成数据集loaders和fetchers都返回至少有两项的sklearn.utils.Bunch对象(就是一个字典):一个大小是n_samples * n_features并且带有标签data的数组,和一个长度是n_
2020-09-28 19:04:53 261
原创 走马观花学习scikit-learn
拟合和预测,估计器基础from sklearn.ensemble import RandomForestClassifierclf = RandomForestClassifier(random_state=0)X = [[1, 2, 3], [11, 12, 13]]y = [0, 1]clf.fit(X, y)'''fit方法接受两个参数,X和y(通常都是numpy的数组)X是样本矩阵,大小通常是(n_samples, n_features)y是目标值,对于回归任务是实数,
2020-09-27 15:53:44 176
原创 《视觉机器学习20讲》—— 第四讲 决策树
决策树分类分类是指根据样本数据的特征将其类型确定为某一已有的类别。分类是一种监督学习方法,必须事先明确知道各个类别的信息。在面向海量数据进行分类时,为了降低使数据满足分类算法要求而所需的预处理代价,可以选择用聚类算法。决策树决策树是一种依托策略抉择而建立起来的树。是一种代表对象属性与对象值之间映射关系的预测模型。树中每个节点用于表示某个对象,每个分叉路径用于表示某个可能的属性值,从根节点到某叶节点所经历的路径所表示的对象值则对应该叶节点。决策树学习的目的是产生一个泛化能力强的决策树。信息增益构
2020-09-23 20:22:34 215
原创 《视觉机器学习20讲》第二讲
KNN学习KNN学习是一种统计分类器,属于惰性学习。KNN基本思想输入没有标签(没有经过分类)的新数据,首先提取新数据的特征并与测试集中的每一个数据特征进行比较;然后从样本中提取出k个最邻近(最相似)数据特征的分类标签,统计这k个最邻近数据中出现次数最多得分类,将其作为新数据的类别。KNN讲解分类KNN按照一定规则将相似的数据样本进行归类。在KNN中,首先计算待分类数据特征与训练数据特征之间的距离并排序,取出距离最近的k个训练数据特征;然后根据这k个训练数据特征所属的类别来判定新样本的类别:如果
2020-09-19 22:25:52 147
原创 《视觉机器学习20讲》第一讲
K-MeansK-Means是基于数据划分的无监督聚类算法,可以理解为无监督的分类方法,也就是数据完全没有标签,要计算机自行根据数据间的相似程度对数据进行类别划分,以决定哪些数据属于一类。样本集合为 D={xj}j=1nD={\{x_j\}}^{n}_{j=1}D={xj}j=1n,要将这些样本集中的样本划分为k类:S={s1,s2,...sn}S=\{s_1,s_2,...s_n\}S={s1,s2,...sn}。K-Means做的工作是最小化下面的目标函数:ℓk−means(S)=Σi=
2020-09-17 20:29:04 235 1
原创 《Python语言程序设计基础》—— 第 10 章
网络爬虫的步骤:通过网络链接获取网页内容(使用requests库)对获得的数据内容进行处理 (使用beautifulsoup4库)requests库网络爬虫和信息提交只是requests库能支持的基本功能。与网页请求相关的函数函数描述get(url[, timeout=n])对应于HTTP的GET方式,获取网页最常用的方法,可以增加timeout=n参数,设定每次请求超时时间为n秒post(url, data={‘key’, ‘value’}对应于HTTP的PO
2020-09-15 18:33:47 499
原创 《Python语言程序设计基础》—— 第9章
科学计算和可视化numpynumpy库中常用的数组创建函数查看ndarray类的常用属性ndarray类的形态操作方法对视图的操作都会直接反映到源数组。如果不想影响原数组,需要进行复制操作,利用.copy()函数进行复制操作。numpy库中的算术运算函数numpy库的比较运算函数上面这些函数返回的都是布尔数组,表示两个数组中对应元素值的比较结果。np.less([1, 2], [2, 2])##输出是array([True, False], dtype=bool)num
2020-09-12 21:27:22 961
原创 《python语言程序设计基础》—— 第7章
文件和数据格式化打开文件文件概述:文件是一个存储在辅助存储器上的数据序列,可以包含任何数据内容。概念上,文件是数据的集合和抽象。类似地,函数是程序的集合和抽象。用文件形式组织和表达数据更有效也更为灵活。问阿金包括两种类型:文本文件和二进制文件。二进制文件直接由比特0和比特1组成,没有统一字符编码,问阿金内部数据的组织格式与文件用途有关。二进制是信息按照非字符但特定格式形成的文件,例如,png格式的图片问阿金、avi格式的视频文件。二进制文件和文本文件最主要的区别在于是否有统一的字符编码。二进制文件没
2020-09-12 10:32:30 1380 1
原创 《python语言程序设计基础》—— 第6章
组合数据类型根据数据之间的关系,组合数据类型可以分为3类:序列类型(元素之间存在先后关系,通过序号访问,元素之间可以是相通的)、集合类型(元素无序,且相同元素在集合中唯一存在)、映射类型(即键值对)。元组:生成元组只需要使用逗号将元素隔离开即可,也可以增加圆括号,但是只要语义不混淆,括号不是必须的。集合:该概念和数学中集合概念相同。集合中的元素必须是固定数据类型,比如:整数、浮点数、字符串、元组等。但是列表、字典、集合类型都是可变数据类型,不能作为集合的元素。(Python编译器界定固定数据类型
2020-09-10 18:24:47 991
原创 《python语言程序设计基础》—— 第五章
lambda函数lambda用于定义一种特殊的函数——匿名函数。通常只有对于那些非常简单,能够在一行内表示的函数,才使用匿名函数。例如,实现一个加法函数f = lambda x, y : x + y ##使用f(a,b)就可以计算a+b的值函数的参数传递函数可以定义可选参数、使用参数的位置或者名称传递参数值,根据函数中变量的不同作用域有不同的函数返回值方式。通过在参数前增加星号(*)实现对可变数量参数的设计,带有星号的可变参数只能出现在参数列表的最后,调用时,这些参数被当做元祖类型传递到
2020-09-10 15:20:54 876
原创 《python语言程序设计基础》—— 第四章
random 库的使用random库常用的9个随机数生成函数seed(a=None)初始化随机数种子,默认值为当前系统时间,只要种子相同,每次生成的随机数序列也一样random()生成介于0-1之前的随机小数randint(a,b)生成介于[a,b]之间的整数getrandbits(k)生成一个kbits长度的随机整数randrange(start,stop[,step])生成一个介于[start,stop)之间以step为步长的随机整数uniform(a,b)生成一个[a,b]之间的随机小
2020-09-09 15:44:42 583
原创 《python语言程序设计基础》—— 第三章
数字类型整数类型整数有4中进制表示:十进制、二进制、八进制、十六进制。默认采用十进制,其他进制加引导符号。整数范围理论上是[负无穷,正无穷],实际上收到计算机内存大小的限制。二进制:0b或者0B八进制:0o或者0O十六进制0x或者0X浮点数类型Python要求所有浮点数必须带有小数部分,但是小数部分可以是0,用于区分浮点数和整数类型。浮点数可以使用十进制表示和科学计数法表示。例如:0.0,-7. ,96e4(也可以表示成96E4或者96E+4)等。Python浮点数的数值范围和小数精度受
2020-09-09 15:16:25 2083
原创 《python语言程序设计基础》—— 第2章
开始学习之前,先做一个编程小练习。####摄氏度、华氏度的转换input_str = input()if input_str[-1] in ['F', 'f']: print((float(input_str[:-1]) - 32) / 1.8)elif input_str[-1] in ['C', 'c']: print(1.8 * float(input_str[:-1]) + 32)else: print('输入格式错误')python3 的33个保留字列表
2020-09-09 10:22:12 850
原创 CCF练习——09.02
题目链接#! /usr/bin/env python# #coding:utf-8my_map = matrix = [[0 for i in range(101)] for i in range(101)]n = int(input())maxi = 0maxj = 0for i in range(n): data = input().split() ##刚开始用的是这种输入,还不知道使用map来辅助输入 x1 = int(data[0]) y1 = int(dat
2020-09-02 23:00:01 164
原创 算法每日一题——08.23
题目链接#include<bits/stdc++.h>using namespace std;int main(){ int T; cin >> T; while (T--) { int n; cin >> n; cout << n / 2 + 1 << endl; } return 0;}
2020-08-23 20:10:46 125
原创 机器学习——第七周
支持向量机支持向量机的代价函数和逻辑回归不同。对支持向量机做出改变来支持复杂的非线性分类。使用**“核函数”**来完成。例如,想针对下面的样本训练一个分类器,可以选择一个高次多项式来完成分类任务θ0+θ1x1+θ2x2+θ3x1x2+θ4x12+θ5x22+...≥0\theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_1x_2+\theta_4x_1^2+\theta_5x_2^2+...\geq0θ0+θ1x1+θ2x2+θ3x1x2+θ4x1
2020-08-22 22:22:15 170
原创 算法每日一题——08.21
题目链接第一次做博弈的题目,自然是不会。。。参考了博客地址#include<bits/stdc++.h>using namespace std;int a[100005];int main(){ int t; cin >> t; while (t--) { int n; cin >> n; for (int i = 0; i < n; i++) cin >> a[i]; int first = 1, seco
2020-08-21 23:47:06 79
原创 算法每日一题——08.19
题目链接乍一看以为要排序,竟然是个思维题。#include<bits/stdc++.h>using namespace std;/*将和尽量变大,这样才能尽可能的短 */int main(){ int t; cin >> t; while (t--) { int n; cin >> n; int pre_input = 0; int cur_input = 0; bool flag = false; for (int i
2020-08-20 18:30:19 96
原创 机器学习——第六周
本周主要介绍在开发一个机器学习系统或者想着试着改进一个机器学习系统的性能,应该如何做?如何选择改进的方向?例如,之前介绍的预测房价的例子。如果已经完成正则化线性回归、得到参数之后。将假设函数放到一组新的房屋样本上进行测试,如果发现预测房价时产生了巨大的误差,接下来如何改进当前的算法?使用更多的训练样本?获取数据的更多特征?使用更少的特征集?(从许多特征中选择一些来防止过拟合)增加多项式特征?减小或者增大正则化参数λ\lambdaλ选择上面哪些方法呢?很多时候是凭感觉的,这可能会导致我们浪费了很
2020-08-17 14:43:49 151
原创 算法每日一题——08.17
Codeforces_Round92_Div2A#include<bits/stdc++.h>using namespace std;int main(){ int t; cin >> t; while (t--) { int n; cin >> n; int a, b, c; int input; for (int i = 0; i < n; i++) { cin >> input; if (i
2020-08-17 14:43:30 128
原创 算法每日一题——08.14
题目链接#include<bits/stdc++.h>using namespace std;int judge_odd(int a){ if (a % 2 == 0) return 0; else return 1;}int main(){ int T; cin >> T; while (T--) { int r, g, b, w; cin >> r >> g >> b >> w;
2020-08-14 14:20:25 73
原创 机器学习——第五周
反向传播算法反向传播是神经网络中的一个术语,利用反向传播可以最小化代价函数。类似在线性回归和逻辑回归中,利用梯度下降所做的工作,在神经网络中,我们的目的也是计算KaTeX parse error: Undefined control sequence: \thetaJ at position 5: min_\̲t̲h̲e̲t̲a̲J̲(\theta),也就是想要找到一组最优的参数θ\thetaθ来最小化我们的代价函数。反向传播的算法如下:训练集为(x(1),y(1)),...(x(m),y(m)){.
2020-08-12 22:46:30 102
原创 算法每日一题——08.12
第一题题目链接这个题竟然是一个思维题,看标签完全看不出来。。#include<bits/stdc++.h>using namespace std;int a[200005];int main(){ int t; cin >> t; while (t--) { int n; int max = 0; cin >> n; memset(a, 0, sizeof(a)); for (int i = 0; i < n; i++
2020-08-12 22:46:05 90
原创 算法每日一题——08.11
题目链接思路:存储每种长度的木板的数量。并将数量大于等于4和数量大于等于2的木板分别存储于不同的集合中。将数量小于2的木板放到另一个集合中。之后每进行一次操作,则对相应长度的木板的数量做出修改,并修改其集合,每次操作后,检测集合中的木板长度是否满足组成一个正方形、一个长方形的要求。代码明天补添加链接描述...
2020-08-12 15:51:35 141
原创 算法每日一题——08.09
题目链接明明是最简单的题,但是写了三十几分钟(-_-||)#include<bits/stdc++.h>using namespace std;int a[52];int b[52];int min(int a, int b){ return a >= b ? b : a;}int main(){ int t; cin >> t; while (t--) { int n; cin >> n; int min_candy
2020-08-11 22:24:12 96
原创 机器学习——第四周
编程作业1参考了其他博客。python一定要注意缩进,一个缩进错误,找了小半下午才找到。displayData.pyimport numpy as npimport matplotlib.pyplot as plt####不知道为啥这样写,这是一篇博客里面的,看了看和题目给的matlab代码近似,####只是将matlab代码转换成python代码####看了代码大致明白是怎么实现的了####将数据向量还原成20*20的矩阵块,之后将其作为图像进行显示即可def display_d..
2020-08-10 12:38:14 192
原创 机器学习——第三周
上面的代价函数分y=1y=1y=1和y=0y=0y=0两种情况,如何将两种情况简化成一个式子,从而达到简化的目的?cost(hθ(x(i)),yi)=−yilog(hθ(x(i)))−(1−y(i))log(1−hθ(x(i)))cost(h_\theta(x^{(i)}),y^{i})=-y^{i}log(h_\theta(x^{(i)}))-(1-y^{(i)})log(1-h_\theta(x^{(i)}))cost(hθ(x(i)),yi)=−yilog(hθ(x(i)))−(1−y(i)..
2020-08-08 11:05:20 149
原创 算法每日一题——08.08
题目#include<bits/stdc++.h>using namespace std;#define MAXN 200010int ton[MAXN],in[MAXN];//存拓扑序和入度 struct node{ int x,y;};int n,m;queue<int>q;vector<node>ask;//存无向边 vector<node>ans;//存结果 vector<int>e[MAXN];//存边 bool
2020-08-08 09:16:13 101
原创 算法每日一题——08.07
题目链接#include<bits/stdc++.h>using namespace std;int min(int a, int b){ return a >= b ? b : a;}int judge(string str, char opt){ if (str.length() == 1 ) { if( str.at(0) == opt) return 0; else return 1; } else { int len = st
2020-08-07 17:55:22 86
原创 算法每日一题——08.05
题目链接只需要从最后找出一个序列#include<bits/stdc++.h>using namespace std;int a[200004];int main(){ int t; cin >> t; while (t--) { int n; cin >> n; for (int i = 0; i < n; i++) cin >> a[i]; int i; for (i = n - 1; i >
2020-08-06 22:49:52 112
原创 算法每日一题——08.04
codeforces1388a最小的三个nearly prime是6 10 14,所以输入的数字只有大于30才可以。#include<iostream>using namespace std;int main(){ int count; cin >> count; while (count) { int input; cin >> input; if (input <= 30) cout << "No" <&
2020-08-04 18:24:58 129
原创 算法每日一题——08.03
每日一题给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。注意:num1 和num2 的长度都小于 5100.num1 和num2 都只包含数字 0-9.num1 和num2 都不包含任何前导零。你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/add-strings著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出
2020-08-03 12:42:23 140
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人