人工智能
小然_ran
南京理工与信工所博士,喜欢机器学习,深度学习
展开
-
一种被AOD-Net启发的超高清图像去雾模型
GitHub - zzr-idam/AOD-Net_UHDdehazing原创 2022-02-26 14:26:50 · 806 阅读 · 0 评论 -
MobileNet 实现对CIFAR-10数据集训练(pytorch)
importtorchimporttorchvisionfromtorchvisionimportdatasets,transformsfromtorch.utils.dataimportDataLoaderfromtorchimportnnimporttorch.nn.functionalasFimportnumpyasnpfromtorch.utils.dataimportDataset,DataLoader,TensorData...原创 2020-08-26 10:15:01 · 1475 阅读 · 0 评论 -
在MNIST数据集上实现特征可视化技术(CAM&pytorch)
importtorchimporttorch.nnasnnimporttorch.nn.functionalasFimporttorch.optimasoptimimporttorch.utils.dataasDatafromtorchvisionimportdatasets,transformsfromtorch.autogradimportVariableBATCH_SIZE=64train_dataset=...原创 2020-08-05 16:04:57 · 762 阅读 · 0 评论 -
Numpy利用随机梯度下降与梯度投影法解决超越方程
importnumpyasnpx=np.array([2])#求f=x-cosx当x=?,f=0---->求min0.5*(f)^{2}#SGDforiinrange(10000):x=x-(x-np.cos(x))*(1+np.sin(x))*0.01print(x-np.cos(x))print(x)#梯度投影法A=np.array([...原创 2020-08-02 20:43:50 · 354 阅读 · 0 评论 -
numpy简单实现梯度投影法
importnumpyasnp#约束投影算法意思就是#1.我们的问题是求最小值(可能是局部最小)#2.求最值我们都会想到用梯度下降算法,但是下降的方向是否应该也有一个约束比较好?#3.如果我们的约束很带劲,我们将梯度投影在约束函数的方向向量上可能能更快的收敛。#f(x)=x^2+y^2s.t.x+y>=1x_0=np.array([[3,-2]])B=np.array([[1,1]])...原创 2020-07-27 17:02:53 · 1884 阅读 · 0 评论 -
利用鸢尾花数据集直观感受神经网络表征能力(pytorch)
importtorchimporttorchimporttorchvisionfromtorch.autogradimportVariablefromtorchvisionimportdatasets,transformsfromtorch.utils.dataimportDataLoaderimportcv2fromtorchimportnnfromnumpyimport*importtorch.nn.functional...原创 2020-07-25 17:41:35 · 585 阅读 · 0 评论 -
numpy实现简单的神经网络
importnumpyasnp#Nisbatchsize;D_inisinputdimension;#Hishiddendimension;D_outisoutputdimension.N,D_in,H,D_out=64,1000,100,10#Createrandominputandoutputdatax=np.random.randn(N,D_in)y=np.random.randn(N,D...原创 2020-07-21 21:56:28 · 243 阅读 · 0 评论 -
利用高斯核卷积对MINIST数据集进行去噪
importtorchimporttorchvisionfromtorch.autogradimportVariablefromtorchvisionimportdatasets,transformsfromtorch.utils.dataimportDataLoaderimportcv2fromtorchimportnnimportnumpyasnpimporttorch.nn.functionalasFimportadve...原创 2020-07-18 16:24:30 · 1110 阅读 · 0 评论 -
特征矩阵稀疏化(pytorch)
importtorcha=torch.tensor([[1,1,1,1.0],[2,2,2,2],[1,1,1,1],[1,1,1,1]])b,indices=torch.nn.MaxPool2d(2,2,return_indices=True)(a.unsqueeze(0).unsqueeze(0))print(b...原创 2020-07-13 21:25:22 · 1425 阅读 · 0 评论 -
python+pytorch实现双线性模型对鸢尾花数据集训练
importtorch.nnasnnimporttorchfromsklearn.datasetsimportload_irisdata=load_iris()X1=torch.tensor(data.data).float()X2=0.01*torch.rand(150,2).float()y=torch.tensor(data.target).long()W=torch.randn(3,X1.shape[1],...原创 2020-07-08 10:01:16 · 827 阅读 · 1 评论 -
整数拆分(python)
#我们都知道有一门数学领域叫组合数学,其中整数的拆分问题是非常有名的,#例如我们有1g、2g、3g、4g、5g的砝码各一个,问能称出多少的重量,各有多少称法#这里我们利用欧拉提出的母函数的概念(当然拉马努金的公式也可以,拉马努金是我非常喜欢的数学家),直接带入求解,(1+x)(1+x^2)(1+x^3)(1+x^4)(1+x^5)defadd_poly(L1,L2):#多项式加法,同次项系数相加R=[]iflen(L1)>len(...原创 2020-06-23 19:03:04 · 3298 阅读 · 0 评论 -
简易版蒙特卡洛采样计算二项式分布的参数
importnumpyasnpimportmatplotlib.pyplotaspltX=np.array([1,1,1,1,1,0,0,1,1,0])#q=np.array([0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0])print(np.random.normal(loc=0.001,scale=0.0,size=None))p=[]sum=1...原创 2020-06-21 13:54:55 · 503 阅读 · 0 评论 -
针对神经网络的快速符号攻击
'''但是,设计和训练模型的一个经常被忽略的方面是安全性和鲁棒性,尤其是在面对想要欺骗模型的对手的情况下这篇文章的思路就是给图像加噪音,但是大家会发现一件事,加噪音我们希望给神经网络认为重要的像素点给予更多的攻击,作者的思路是认为,根据梯度来反馈的到大小来反推像素点的重要性,一般来说能使神经网络获得很大梯度的像素点肯定是重要的。'''importtorchimporttorch.nnasnnim...原创 2020-06-19 21:49:54 · 583 阅读 · 1 评论 -
利用自编码器对线性模型参数加密
fromsklearn.datasetsimportload_bostondataset=load_boston()x_data=dataset.datay_data=dataset.targetfromsklearnimportlinear_modelmodel=linear_model.LinearRegression()model.fit(x_data,y_data)args=model.coef_im...原创 2020-06-18 09:24:08 · 345 阅读 · 0 评论 -
积分度量学习
#积分度量当我们计算两个簇之间的距离的时候常常用的欧氏距离,但是用积分来度量两个簇之间占据空间的大小也是一种很有趣的思路importnumpyasnpa1=np.array([1,1])b1=np.array([1,2])c1=np.array([1,3])a2=np.array([2,3])b2=np.array([2,5])c2=np.array([2,7])#我们可以看成两个空间中两类簇...原创 2020-06-12 10:08:39 · 578 阅读 · 0 评论 -
压缩度量(矩阵映射)
#压缩度量是一个数学概念,例如我们采用欧氏距离作为度量方法,对于任意的||xi-xj||>||f(xi)-f(xj)||(xi和xj为样本空间中的样本)#场景如果我们的样本点之间距离很大,数据很稀疏的情况下,这种距离很大的计算是非常消耗资源的。我们不妨将空间的样本映射的更加紧凑点,这样计算资源的消耗也比较少。importnumpyasnpa=np.array([1,1])b=np.array([1,6])#我们需要用一个矩阵...原创 2020-06-12 09:42:59 · 427 阅读 · 0 评论 -
谱聚类及其创新思考(python)
#谱聚类'''对样本求相似性矩阵, 其实就是把每个sample当作一个node,构建一个图关系。1 求向量之间的关系有很多方法 比如 F1范数, F2范数, 无穷范数,余弦 f(x1, x2)---> scalar如果大家想改进的话这里我建议可以用度量学习的技巧去替换求向量之间关系的方法'''import numpy as npdef distance(x1, x2): ...原创 2020-03-18 15:04:26 · 337 阅读 · 0 评论 -
神经网络的线性单元不能拟合指数表达
'''目前神经网络一直都是采用relu(非线性单元)作为激活函数,目的是产生类似异或表达,比如线性函数的可加性就被很好的破坏掉了f(ax+by)=af(x)+bf(y) 在加入relu之后不成立了。但是对于e^x 这种轨迹,relu还能有很好的拟合能力吗?我们做个实验看看吧。'''import torchfrom torch import nnimport torch.optim...原创 2020-03-17 15:45:16 · 249 阅读 · 0 评论 -
牛顿迭代法的简单实现(python)
'''牛顿法很多人写了一大通感觉非常的高大上,其实想法很简单,我们目标就是找函数的零点比如你选了一个起始点x = a , y = f(a) 这个点相比于零点假如说是有距离的。那么你会发现在这个x = a 点处求一个切线方程,这个切线方程的截距距离零点更近。ok, 于是l(x) = f(a) + f'(a)(x - a) ---> x = a - f(a) / f'(a) 目的是求...原创 2020-03-17 10:34:18 · 2455 阅读 · 0 评论 -
对数换底公式的意义(线性理解)
import numpy as npb = [1.1, 2, 3, 4, 5, 6, 7, 8, 9, 10]y1 = [np.log2(i) for i in b] #log2函数y2 = [np.log10(i) for i in b]print(y1)print(y2)# 我们从高中学的 对数函数的换底公式 其实有一个很重要的意义 任意两个对数函数 存在...原创 2020-03-16 11:55:19 · 925 阅读 · 0 评论 -
度量学习(NCA)
frommetric_learnimportNCAfromsklearn.datasetsimportmake_classificationfromsklearn.neighborsimportKNeighborsClassifiernca=NCA()X,y=make_classification()nca.fit(X,y)print(nca....原创 2020-02-22 11:36:25 · 878 阅读 · 0 评论 -
python求解函数的积分微分
#求x^2在(1,2)上的积分值sum=0j=0epoch=10000foriinrange(epoch):sum+=(1/epoch)*(1+j)**2j+=(1/epoch)print(sum)#求x^2在(1)上的微分值delt=0.00001x=1f=...原创 2020-02-19 10:24:50 · 728 阅读 · 0 评论 -
行为匹配(采用变分自编码器对数据降维)
importnumpyasnpimporttorchimporttorch.nnasnnimporttorch.nn.functionalasF#Cosinesimilaritydefcos_sim(a,b):numerator=np.multiply(a,b).sum()denomitor=np.lina...原创 2020-02-15 10:14:55 · 1078 阅读 · 0 评论 -
深度神经网络炼丹与优化方法
链接:https://pan.baidu.com/s/1o-GwTf9mKctEbkv-jA8TqQ提取码:cvb8原创 2020-01-23 17:08:38 · 248 阅读 · 0 评论 -
采用微软的AutoML框架对鸢尾花进行特征筛选
from sklearn import datasetsfrom sklearn.model_selection import train_test_splitfrom nni.feature_engineering.gbdt_selector import GBDTSelectorimport torchiris = datasets.load_iris()x = iris.data...原创 2020-01-05 15:03:10 · 289 阅读 · 0 评论 -
借助于pytorch的GNN网络解决鸢尾花分类问题
from sklearn.datasets import load_irisimport torchfrom torch_geometric.data import Dataimport networkx as nximport torch.nn.functional as Ffrom torch_geometric.nn import GCNConvdata = load_iris...原创 2020-01-03 15:36:43 · 1680 阅读 · 1 评论 -
基于pytorch实现牛顿迭代法求函数极小值
import torchfrom torch.autograd import Variabledef f(x): y = x ** 2 return yx = Variable(torch.Tensor([5]), requires_grad=True)for i in range(100): grad_x = torch.autograd.grad(f(x)...原创 2019-05-20 17:23:14 · 1784 阅读 · 0 评论 -
高斯核函数就是选择landmark,然后旱地拔葱,升高维度
# coding=gbkimport numpy as npfrom mpl_toolkits.mplot3d import Axes3Dimport matplotlib.pyplot as plt#准备数据def guess(xi, xj, l1, l2): gamma = 0.1 return np.exp(-gamma*((xi - l1)**2+(xj - ...原创 2019-04-26 16:17:53 · 579 阅读 · 0 评论 -
pytorch模型的数据初始化代码
import torch.nn as nnimport torch.nn.functional as Fdef initialize_weights(self): for m in self.modules(): if isinstance(m, nn.Linear): nn.init.normal_(m.weight.data, 0, 0....原创 2019-07-15 17:18:42 · 712 阅读 · 0 评论 -
贝叶斯网络对手写识别体的预测
import pyvarinffrom torch.autograd import Variableimport torch.nn as nnimport torch.nn.functional as Fimport torch.optim as optimfrom sklearn import datasetsimport torchfrom sklearn.model_sele...原创 2019-07-11 10:06:03 · 488 阅读 · 0 评论 -
基于pytorch岭回归
import torch.nnimport torch.optimx = torch.tensor([[1., 1., 1.], [2., 3., 1.], [3., 5., 1.], [4., 2., 1.], [5., 4., 1.]])y = torch.tensor([-10., 12., 14., 16., 18.])w = torch.zeros(3, requires_gr...原创 2019-06-26 09:30:45 · 1370 阅读 · 3 评论 -
SVM 算法处理手写识别体(包含如何处理原始图片的代码)
github 地址,包含数据集。https://github.com/ranran4082391/ran_11# coding=gbkfrom PIL import Imageimport numpy as npimport osfrom sklearn.datasets import load_digits # 加载手写数字识别数据from sklearn.model_sele...原创 2019-04-24 12:53:38 · 436 阅读 · 0 评论 -
基于LSTM的时间序列填充缺失值方法(pytorch)
import torchclass RNN(torch.nn.Module): def __init__(self): super().__init__() self.rnn = torch.nn.LSTM( input_size=1, hidden_size=64, num_...原创 2019-05-04 10:00:11 · 9397 阅读 · 3 评论 -
基于pytorch全连接神经网络手写体数据识别,准确率达到百分之97
import torchfrom torch import nnimport torch.optim as optimizerfrom torch.autograd import Variableimport matplotlib.pyplot as pltfrom sklearn.model_selection import train_test_splitfrom sklear...原创 2019-05-03 13:14:30 · 967 阅读 · 0 评论 -
基于pytorch的逻辑回归代码
from torch import nnfrom torch import optim as optimizerimport torchfrom torch.autograd import Variableclass LogisticRegression(nn.Module): def __init__(self): super(LogisticRegressi...原创 2019-05-02 21:05:47 · 343 阅读 · 0 评论 -
基于pytorch的线性回归算法并比较了Adam与SGD的收敛速度
from torch import nnfrom torch import optim as optimizerimport torchfrom torch.autograd import Variableimport matplotlib.pyplot as pltimport numpy as npclass Model(nn.Module): def __init__...原创 2019-05-02 12:37:53 · 1102 阅读 · 0 评论 -
PCA 手动实现(python)
import numpy as npfrom sklearn.decomposition import PCAdef PCA_Demo(X, k): avg = np.mean(X, axis=1) for i in range(0, X.shape[1]): X[:, i] = X[:, i] - avg[i] print('X={}'.format...原创 2019-05-01 20:37:00 · 949 阅读 · 3 评论 -
凸二次规划问题 库函数
#encoding: utf-8'''python 解决 凸二次规划问题 首先转换成标准型 1/2 * X^T * P *X + q ^ T * X限制条件 G * X <= h A * X = bx1 = (3,3), x2 = (4, 3) x3 = (1,1), 其中 x1 x2是正例, 求最大间隔分离 超平面'''import numpyf...原创 2019-04-22 21:05:30 · 983 阅读 · 0 评论 -
代码解释似然函数
#encoding: utf-8'''案例 弹出硬币10次 参数 a(0< a <1)代表硬币正面朝上的概率,反面朝上的概率为 1-a。求参数a的值首先思考在已知最后结果的前提下,表达当前概率函数的表达式 [a]^y1*[1-a]^(1-yi)= Y, yi对应标签Y代表当前的硬币的结果的概率,似然函数就是上述表达式累成的结果。我们重复试验10次 。'''import...原创 2019-04-21 20:21:44 · 266 阅读 · 0 评论 -
针对复合函数的LSTM时序预测
import torchfrom torch.autograd import Variableimport torch.nn.functional as Fimport matplotlib.pyplot as pltimport torch.nn as nnimport mathimport numpy as npimport matplotlib.pyplot as plti...原创 2019-04-09 00:12:18 · 234 阅读 · 0 评论