自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【VScode】Remote-SSH XHR failed无法访问远程服务器

当使用VScode连接远程服务器时,往往需要使用Remote-SSH这个插件。而该插件有一个小bug,当远程服务器网络不佳时容易出现。

2023-08-01 17:59:36 33415 62

原创 SPAMS安装

在安装SPAMS之前,需要安装libblas & liblapack。(作者提到可能在conda-forge更新较慢)在 Ubuntu 上,需执行。如果是conda环境,需执行。在 MacOS上,需执行。

2022-06-01 14:42:01 1379 2

原创 【PKU-TensorFlow】激活函数

激活函数的概念对于简化的神经元模型,没有设计激活函数,因此无论设计多少层神经结构,最终得到的都是线性结构。因此,我们在神经元进行乘加运算的神经元体后面增加一个激活函数,以增强模型的表达力。(激活函数非线性时,多层神经网络可逼近所有函数)激活函数的特征优秀的激活函数应有以下几个特征:非线性:激活函数非线性时,多层神经网络可逼近所有函数可微性:优化器大多用梯度下降更新参数单调性:当激活函数是单调的,能保证单层网络的损失函数是凸函数近似恒等性:f(x)≈x当参数初始化为随机小值时,神经

2021-02-23 23:51:50 705

原创 【ZJU-Machine Learning】简单语音识别

解决方法:主要思路难点:不知道某一动作时许了多长时间,因此需要引入时间参数

2021-02-22 02:51:15 326

原创 【ZJU-Machine Learning】概率分类法

基本问题我们关注的重点是先验概率。在训练过程中,训练集的数据和测试集的数据样本分布要大概一致,以保证先验概率大致相同。概率密度估计问题朴素贝叶斯分类问题

2021-02-21 02:56:48 498

原创 【ZJU-Machine Learning】使用RCNN和FCN进行目标检测

目标检测的基本问题Classification and Localization如上图,我们将目标检测问题分割成了分类和定位两类大问题,分类是给出当前区域物体的类别,定位是给出准确的物体坐标(组成一个矩形)RCNN用大大小小的方框遍历所有图像不现实,如何快速挑出可能有物体的区域(Region of Interest, ROI)。我们需要一个计算量不那么大的算法,提出ROI的候选区域(Region of Proposals, or Proposals)为了将CNN用在目标检测上,我们设计了如下步骤

2021-02-20 01:08:10 539

原创 【ZJU-Machine Learning】使用AdaBoost进行目标检测

目标检测与分割的三类问题语义分割(Semantic Segmentation)目标定位与识别(Classification and Localization)目标检测(Object Detection)

2021-02-19 02:51:06 606

原创 【ZJU-Machine Learning】特征选择——自适应提升算法Adaboost

启发式方法递增法:先从x中选一个特征,构造分类器,计算准确率,然后再从x的剩余特征中选择一个特征,计算准确率,一直加,直到准确率开始下降。递减法:同上,只不过一开始是所有的特征,然后一个一个减,直到准确率下降。基因算法模拟退火算法事实上,神经网络可以代替以上方法,随着不断训练网络,对于特征不明显的w值将不断减小。Adaboost主要思想:找到尽可能少的特征(可能仅有一个),最大限度的将数据集分开,构成弱分类器。对这些弱分类器分错的样本进行加强训练(采样多次),分对的则相应减少样本,对这个样

2021-02-02 02:34:50 1184 1

原创 【ZJU-Machine Learning】特征提取——主成分分析PCA

主成分分析可以看成一个一层的,有M个神经元的神经网络。X是没有标签(Label)的。(自编码器)PCA的做法本质:寻找使方差最大的方向,并在该方向投影。(方差最大方向指的是投影之后方差最大,因为如果投影之后点都汇集在一起的话,那么可以近似成一个点,就区分不出来了)M=1时假设共有p个x训练样本改造Y:对a1进行归一化M>1时PCA算法求特征值,可用SVD算法(Singular Value Decomposition)快速求。...

2021-02-02 01:36:59 206

原创 【ZJU-Machine Learning】特征选择和提取

问题描述主要是相关性强的特征有多重共线性(信息重复),特征选择是一个"物理"过程,不会产生新特征;特征提取是一个"化学"过程,会产生新特征。特征选择:特征提取:

2021-02-02 00:28:09 186

原创 【ZJU-Machine Learning】AlphaGo介绍

AlphaGo原理三个深度策略网络 (Policy Networks),一个深度估值网络 (Value Network)深度策略网络 Supervised Learning Policy Network优化分析 :棋盘特征 :落子颜色 (Stone Color)轮次 (Turn Since):气(Liberty):打吃数量:征子(Ladder):合法性(Sensibility):深度策略网络Reinforcement Learning Policy Network

2021-02-01 12:51:57 466 2

原创 【ZJU-Machine Learning】强化学习

强化学习与监督学习的区别:(1)训练数据中没有标签,只有奖励函数(Reward Function)。(2)训练数据不是现成给定,而是由行为(Action)获得。(3)现在的行为(Action)不仅影响后续训练数据的获得,也影响奖励函数(Reward Function)的取值。(4)训练的目的是构建一个“状态->行为”的函数,其中状态(State)描述了目前内部和外部的环境,在此情况下,要使一个智能体(Agent)在某个特定的状态下,通过这个函数,决定此时应该采取的行为。希望采取这些行为后,最终

2021-02-01 12:12:07 470 2

原创 【ZJU-Machine Learning】卷积神经网络-最近流行的网络结构

VGGNet为何要将2个3 * 3卷积核叠到一起?因为2个叠到一起的3 * 3卷积核,感受野(Receptive Field)是7 * 7,大致可以替代7 * 7卷积核的作用。但这样做可以使参数更少 ,参数比例大致为18:49用小卷积核代替大卷积核(可视野),以减少参数(但是增大了训练时间)GoogLeNet(1)22层(2)inception 结构,用一些1 * 1, 3 * 3和5 * 5的小卷积核用固定方式组合到一起,来代替大的卷积核。达到增加感受野和减少参数的目的。(3)500万参

2021-01-30 20:07:40 266

原创 【ZJU-Machine Learning】卷积神经网络-AlexNet

ImageNet包含超过120万张彩色图片,属于1000个不同类别,这是目前为止最大的图像识别数据库。Alex Krizhevsky等人构建了一个包含65万多个神经元,待估计参数超过6000万的大规模网络,这一网络被称为AlexNet改进(1)以ReLU函数代替公式sigmoid或tanh函数这样做能使网络中的神经元个数减少,以更快速度收敛。此外其导数始终为1.相较sigmoid,他能传播的更深远。(2)为降采样操作起了一个新的名字—池化(Pooling),意思是把邻近的像素作为一个“池子”..

2021-01-30 00:55:56 158 1

原创 【ZJU-Machine Learning】卷积神经网络-LeNet

卷积神经网络的概念由手工设计卷积核变成了自动学习卷积核。何为卷积核?我们在《信号与系统》中学到很多变换,如小波变换,傅里叶变换等。对于傅里叶变换:对于傅里叶变换中的卷积核,他的作用是,和f(t)信号进行作用(这个作用就是先乘起来再加起来)而我们学到这些变换,就是为了人为的找一个卷积核。而对于图像处理,就是为了将卷积核和图像作用,产生一个特征,我们用多个卷积核提取多个特征。术语步长与特征图大小的关系补零对于一部分步长(一般是大于1的),可能卷积核无法遍历到其边缘部分,导致其无法参

2021-01-29 23:56:25 262

原创 【ZJU-Machine Learning】自编码器

提出2006年是深度学习的起始年,Hinton在SCIENCE上发文,提出一种叫做自动编码机(Auto-encoder)的方法,部分解决了神经网络参数初始化的问题。概念参考:https://www.cnblogs.com/royhoo/p/Autoencoders.html自编码器是一种能够通过无监督学习,学到输入数据高效表示的人工神经网络。输入数据的这一高效表示称为编码(codings),其维度一般远小于输入数据,使得自编码器可用于降维(特征提取器)。更重要的是,自编码器可作为强大的特征检测器(

2021-01-29 16:18:46 457

原创 【ZJU-Machine Learning】人工神经网络的参数设置

训练建议(1)一般情况下,在训练集上的目标函数的平均值(cost)会随着训练的深入而不断减小,如果这个指标有增大情况,停下来。有两种情况:第一是采用的模型不够复杂,以致于不能在训练集上完全拟合;第二是已经训练很好了。(2)分出一些验证集(Validation Set),训练的本质目标是在验证集上获取最大的识别率。因此训练一段时间后,必须在验证集上测试识别率,保存使验证集上识别率最大的模型参数,作为最后结果。(3)注意调整学习率(Learning Rate),如果刚训练几步cost就增加,一般来说是学习

2021-01-28 01:53:27 1338

转载 机器学习中的归一化

本文参考:[1]知乎专栏:https://zhuanlan.zhihu.com/p/27627299[2]博客园:https://www.cnblogs.com/LBSer/p/4440590.html[3]Andrew Ng:https://class.coursera.org/ml-003/lecture/21为什么归一化在喂给机器学习模型的数据中,对数据要进行归一化的处理。为什么要进行归一化处理,下面从寻找最优解这个角度给出自己的看法。例子假定为预测房价的例子,自变量为面积,房间数两个

2021-01-27 02:33:33 1260

转载 训练集、验证集、测试集以及交叉验证

本文转自:https://blog.csdn.net/kieven2008/article/details/81582591一、三者的区别训练集(train set)用于模型拟合的数据样本。验证集(development set)是模型训练过程中单独留出的样本集,它可以用于调整模型的超参数和用于对模型的能力进行初步评估。在神经网络中, 我们用验证数据集去寻找最优的网络深度(number of hidden layers),或者决定反向传播算法的停止点或者在神经网络中选择隐藏层神经元的数量;在普

2021-01-27 01:56:21 1422

原创 【ZJU-Machine Learning】后向传播算法

建立的简易模型梯度下降法将其泰勒展开,可以看到,f(wk+1)>f(wk)建立在简易模型的BP算法定义目标函数:算法流程:激活函数阶跃函数sigmoid将阶跃函数进行改造tanh在上述两种 函数中,当x很大时,其函数值变化不大,存在上界,也就是算出来的x很大时,其向后传导的信息被压缩了,也就是所谓的梯度消失。此外,还有可能出现梯度爆炸。relu对于这个函数,当x<0时,使其函数值为0,也就是如果神经元算出,x为负值,那么不再将其向后传播,(也就

2021-01-27 01:28:00 200

原创 【ZJU-Machine Learning】多层神经网络

寒冬人们认识到,感知器算法只有在线性问题中可用,而现实生活中,大部分问题是非线性问题。神经网络的发展受到了搁置。非线性问题的求解人们认识到,非线性问题,可用非线性函数解决。因此在原有神经元模型上加入了激活函数(一个非线性函数)若其不是一个非线性的函数,将会有以下结果与单一的神经元没有任何区别在早期的发展中,人们证明了阶跃函数可以解决所有的非线性问题。定理:三层神经网络可以模拟所有的决策面两层神经网络模拟三角形问题多个神经元之间是“与”的关系。两层神经网络模拟四边形问题对于

2021-01-26 01:23:55 776

原创 【ZJU-Machine Learning】神经元的数学模型和感知器算法

神经元的数学模型1943年,心理学家W.S.McCulloch和数理逻辑学家W.Pitts基于神经元的生理特征,建立了单个神经元的数学模型(MP模型)。感知机算法SVM与感知机的不同SVM是一种全局考虑的算法,它是将所有数据全部输入后,对数据进行全部分析、调整感知机是一种对局部进行优化的算法,他是每输入一个数据后,对其结果进行评估,从而对模型进行改进,而不考虑之前和之后的结果,仅考虑最后一条的数据。感知机合理性的推导感知器算法的收敛定理证明:...

2021-01-26 00:52:30 517

原创 【ZJU-Machine Learning】SVM的应用

SVM常用核函数总结对于其中的参数,主要靠试。国际象棋的兵王问题数据集UCI Machine Learning Repositoryhttp://archive.ics.uci.edu/ml/datasets.php训练过程1、总样本数28056, 其中正样本2796, 负样本25260。2、随机取5000个样本训练,其余测试。3、样本归一化,在训练样本上,求出每个维度的均值和方差,在训练和测试样本上同时归一化。

2021-01-25 02:16:33 211

原创 【ZJU-Machine Learning】支持向量机——非线性模型

线性模型回顾SVM处理非线性通过限制条件和最小化,我们能够使ξ既不会很大,也不会很小(因为当ξ很大时,限制条件1恒成立)对于解决非线性问题,有一部分人认为可以在使数据维数不变的情况下,寻找曲线或曲面,而SVM认为,通过将低维的数据映射到高维,在高维的空间中寻找一条直线,使其分开的概率更大。且维度越大,被线性分开的可能性更大,若维度是无限维,则可能性为1.异或问题的解决已知:我们要构造一个:φ(x)最终,我们要在这个五维平面中,找到w(也是五维的)和b,使得计算机能够分开c1和c2.

2021-01-25 01:13:03 239

原创 【ZJU-Machine Learning】优化理论

参考书籍原问题(Prime Problem)对偶问题(Dual Problem)限制α、β去遍历所有的w,求求其最小值θ,然后再使θ最大。原问题与对偶问题的关系定理*证明:G的定义对于某些特定的优化问题,可以证明G=0强对偶定理其证明可见参考书籍(非常复杂,我们可以take it for granted)KKT条件根据强对偶定理和定理* 的证明,我们推出KKT条件...

2021-01-24 16:47:30 123

原创 【ZJU-Machine Learning】支持向量机——线性模型

定义所谓线性的模型,也就是对于如下的两类点,如果存在有一条直线,能使○和×完全分开,那么称之为线性模型。我们所构建的算法,也就是要构造这么一条线。SVM的思路是从线性模型推广到非线性模型中。可分与不可分若能分开,则称这个样本集为线性可分样本集。若我们不论怎样,我们都不能画出一条直线,是○和×分开,那么成这个样本为非线性可分样本集。对于线性可分的样本集,如果存在一条直线能够○和×,那么在空间中,一定能找到无数条直线分开○和×。 那么既然存在无数条直线,我们的算法要预测出最好的一条来。

2021-01-24 13:31:42 210

原创 【ZJU-Machine Learning】没有免费午餐定理

No Free Lunch Theorem定理概述如果我们不对特征空间有先验假设,则所有算法的平均表现是一样的。任何一个预测函数,如果在一些训练样本上表现好,那么必然在另一些训练样本上表现不好,表现好与表现不好的情况一样多。1)对所有可能的的目标函数求平均,得到的所有学习算法的“非训练集误差”的期望值相同;2)对任意固定的训练集,对所有的目标函数求平均,得到的所有学习算法的“非训练集误差”的期望值也相同;3)对所有的先验知识求平均,得到的所有学习算法的“非训练集误差”的期望值也相同;4)对任意固定

2021-01-23 16:21:12 165 2

原创 【ZJU-Machine Learning】机器学习的相关概念

机器学习的定义(1) 阿瑟·塞缪尔(1959):这些研究领域赋予了计算机学习的能力,而无需明确编程。Fields of study that gives computers the ability to learn without being explicitly programmed.(2) Tom Mitshell(1998):计算机程序从经验E中学习,解决某一任务T进行某一性能度量P,通过P测定在T上的表现因经验E而提高。A computer program is said to l

2021-01-23 11:27:30 222 2

原创 【PKU-TensorFlow】复杂度、学习率

神经网络的复杂度NN复杂度:多用NN层数和NN参数的个数表示空间复杂度层数=隐藏层的层数+1个输出层总参数= 总w + 总b时间复杂度乘加运算的总次数

2021-01-19 05:58:39 174

原创 【PKU-TensorFlow】神经网络优化过程中常用的函数

tf.where条件语句真返回A,条件语句假返回Btf.where(条件语句,真返回A,假返回B)a=tf.constant([1,2,3,1,1])b=tf.constant([0,1,3,4,5])c=tf.where(tf.greater(a,b), a, b) # 若a>b,返回a对应位置的元素,否则返回b对应位置的元素print("c:",c)运行结果c:tf.Tensor([1 2 3 4 5], shape=(5,), dtype=int32)np.random.

2021-01-17 11:00:19 188

原创 【PKU-TensorFlow】神经网络实现鸢尾花的分类

准备数据•数据集读入•数据集乱序•生成训练集和测试集(即x_train/ y_train)•配成(输入特征,标签)对,每次读入一小撮(batch)搭建网络•定义神经网路中所有可训练参数参数优化•嵌套循环迭代,with结构更新参数,显示当前loss测试效果•计算当前参数前向传播后的准确率,显示当前acc可视化acc / loss的可视化# -*- coding: UTF-8 -*-# 利用鸢尾花数据集,实现前向传播、反向传播,可视化loss曲线# 导入所需模块import t

2021-01-15 23:54:48 349

原创 【PKU-TensorFlow】反向传播代码示例

import tensorflow as tfw = tf.Variable(tf.constant(5, dtype=tf.float32))lr = 0.2epoch = 40for epoch in range(epoch): # for epoch 定义顶层循环,表示对数据集循环epoch次,此例数据集数据仅有1个w,初始化时候constant赋值为5,循环40次迭代。 with tf.GradientTape() as tape: # with结构到grads框起了梯度的

2021-01-15 23:51:34 182

原创 【PKU-TensorFlow】鸢尾花数据集的读入

from sklearn import datasetsfrom pandas import DataFrameimport pandas as pdx_data = datasets.load_iris().data # .data返回iris数据集所有输入特征y_data = datasets.load_iris().target # .target返回iris数据集所有标签print("x_data from datasets: \n", x_data)print("y_data f

2021-01-15 23:50:13 357

原创 【PKU-TensorFlow】TensorFlow的常用函数

强制tensor转换为该数据类型最大最小值tf.cast(张量名,dtype=数据类型)计算张量维度上元素的最小值tf.reduce_min(张量名)计算张量维度上元素的最大值tf.reduce_max(张量名)x1 = tf.constant([1., 2., 3.],dtype=tf.float64)print(x1)x2 = tf.cast(x1, tf.int32)print(x2)print (tf.reduce_min(x2), tf.reduce_max(x2))

2021-01-15 18:12:46 182

原创 【PKU-TensorFlow】张量生成

判断张量是几阶的,就看其最左边有几个方括号张量的数据类型创建一个张量常规tf.constant(张量内容,dtype=数据类型(可选))import tensorflowas tfa=tf.constant([1,5],dtype=tf.int64)print(a)print(a.dtype)print(a.shape)如果去掉dtype项,不同电脑环境不同导致默认值不同,可能导致后续程序bug将numpy类型转换为Tensortf. convert_to_tensor(数据名.

2021-01-15 11:19:15 226

原创 【PKU-TensorFlow】神经网络计算过程及模型搭建

人工智能三学派行为主义:基于控制论,构建感知-动作控制系统。(控制论,如平衡、行走、避障等自适应控制系统)符号主义:基于算数逻辑表达式,求解问题时先把问题描述为表达式,再求解表达式。(可用公式描述、实现理性思维,如专家系统)连接主义:仿生学,模仿神经元连接关系。(仿脑神经元连接,实现感性思维,如神经网络)神经网络模型处理问题的过程准备数据:采集大量“特征/标签”数据(特征,标签)形式的数据搭建网络:搭建神经网络结构优化参数:训练网络获取最佳参数(反传)应用网络:将网络保存为模型,输入新数据

2021-01-15 10:57:31 215

原创 【Java】大数类

BigIntegerimport java.math.BigInteger; public class BigIntegerDemo1 { public static void main(String[] args) { BigInteger bi1 = new BigInteger("123456789") ; // 声明BigInteger对象 BigInteger bi2 = new BigInteger("987654321") ; // 声明BigInteger对象 S

2020-10-24 19:22:52 391

原创 【Java】对象数组按照某属性排序

一、将要排序的对象类实现< Comparable >接口。要排序就要有比较的方法, 因为是自定义的类, 系统不知道怎么做两个自定义类的比较,所以我们要自己在类内写两个类的比较的方法,也就是告诉按照那个属性或者那种方式来给对象数组排序,自定义比较算法也就是实现Comparable接口:(会自动生成需要自己写的方法如下图)/*** 学生类*/class Student implements Comparable<Student>{ String name;

2020-10-15 15:58:19 3449

原创 【Java】Calendar类

方法作用public static Calendar getInstance(TimeZone zone,Locale aLocale)使用默认时区和区域设置获取日历。通过该方法生成Calendar对象。如下所示:Calendar cr=Calendar.getInstance();public void set(int year,int month,int date,int hourofday,int minute,int second)设置日历的年、月、日、时、分、秒。...

2020-10-14 20:59:23 145 1

原创 将.py 文件打包成.exe文件

1.pip安装pyinstallerpip install pyinstaller2.cmd进入需要打包的文件(.py)目录下常用参数说明:–icon=图标路径-F 打包成一个exe文件-w 使用窗口,无控制台-c 使用控制台,无窗口-D 创建一个目录,里面包含exe以及其他一些依赖性文件 pyinstaller -h 来查看参数例:给recognize.py文件打包pyinstaller -F recognize.py然后等待几分钟即可(可能有点慢)最后生成的.exe文

2020-09-27 21:28:34 279

空空如也

空空如也

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

TA关注的人

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