数学
小然_ran
南京理工与信工所博士,喜欢机器学习,深度学习
展开
-
简单的CNN识别数学公式(pytorch)
链接:https://pan.baidu.com/s/18hd373yQYS_QwfKSVpYyxA提取码:3yz4复制这段内容后打开百度网盘手机App,操作更方便哦--来自百度网盘超级会员V1的分享原创 2021-01-17 15:12:08 · 702 阅读 · 0 评论 -
Pytorch 实现学习率控制(WarmUp)
import torchfrom torch.optim.lr_scheduler import StepLR, ExponentialLRfrom torch.optim.sgd import SGDfrom torch.optim.lr_scheduler import _LRSchedulerfrom torch.optim.lr_scheduler import ReduceLROnPlateauclass GradualWarmupScheduler(_LRScheduler):.原创 2021-01-02 18:41:54 · 7067 阅读 · 6 评论 -
深度网络与tucker分解结合实现数据分类(pytorch)
importtorchfromtensorly.decompositionimportnon_negative_tuckerimporttensorlyastlfromtensorlyimporttucker_to_tensorfromsklearn.clusterimportk_meansfromtensorly.tucker_tensorimporttucker_to_tensorfromtensorly.randomimportcheck...原创 2020-12-05 21:15:10 · 710 阅读 · 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 · 345 阅读 · 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 · 1863 阅读 · 0 评论 -
整数拆分(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 · 3270 阅读 · 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 · 439 阅读 · 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 · 572 阅读 · 0 评论 -
谱聚类及其创新思考(python)
#谱聚类'''对样本求相似性矩阵, 其实就是把每个sample当作一个node,构建一个图关系。1 求向量之间的关系有很多方法 比如 F1范数, F2范数, 无穷范数,余弦 f(x1, x2)---> scalar如果大家想改进的话这里我建议可以用度量学习的技巧去替换求向量之间关系的方法'''import numpy as npdef distance(x1, x2): ...原创 2020-03-18 15:04:26 · 331 阅读 · 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 · 243 阅读 · 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 · 2438 阅读 · 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 · 872 阅读 · 0 评论