自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深度学习入门(四):误差反向传播法

上一篇文章深度学习入门(三):神经网络的学习中,神经网络参数的学习是通过数值微分求梯度实现的,该方法虽然简单,但也有一个明显的问题就是计算费时。本文介绍一种高效计算参数梯度的方法——误差反向传播法。注意,误差反向传播法本质上是一种梯度计算的技术,而梯度下降法是一种优化算法。zt2txyz=t^2 \\t=x+yzt2txy回忆以前学过的求复合函数的导数的性质:复合函数的导数可以用构成复合函数的各个函数的导数的乘积表示。

2025-04-06 15:35:53 647

原创 深度学习入门(三):神经网络的学习

机器学习的过程通常分为学习(从训练数据中自动获取权重参数的过程)和推理(利用学习到的权重参数对新的数据进行预测)两个环节。本文将主要介绍学习的过程。

2025-04-04 10:31:30 845

原创 深度学习入门(二):从感知机到神经网络

上一篇文章我们学习了感知机,因为它和神经网络有很多共同点,所以这一篇正式进入神经网络一定也会很顺畅。以a11a11​a11w111x1w121x2b11a11​w111​x1​w121​x2​b11​A1XW1B1A1XW1B1A1a11a21a31A1a11​a21​a31​Xx1x2Xx1​x2​W。

2025-03-30 11:05:01 871

原创 深度学习入门(一):从感知机说起

感知机的原理和多层感知机的导出。

2025-03-27 10:28:15 476

原创 Python实现不同时区的时间转换

因为工作涉及一些国际化的业务,所以写代码时常常涉及一些时区转换。汇总了常用的代码,整理到一篇文章里。

2024-06-28 10:54:03 589

原创 优化基础(四):如何找到极值点?

在上一篇文章中我们提到,边界点里有一种特殊的点叫极值点,它们拥有一些很好的性质:局部最大/小值或全局最大/小值,将会在这些极值点中诞生。回忆一下单纯形法(想不起来的小伙伴可以参考我的文章),它的几何意义就是在极值点之间跳跃寻找最优解。那么如何找到这些极值点呢?本文通过一个例子来探讨一下。

2024-06-06 09:46:18 1414 2

原创 优化基础(三):内部点、边界点、极值点、外部点

从边界点来看,凸集的边界点一定也可以找到超平面(supporting hyperplane)把它撑(分离开)到某一边去。非凸的在某些点找不到一个平面可以把它撑起来(分离)。一个开集(一个不包含边界的子集),而任何足够小的邻域(即这个点周围的任意小的区域)都包含集合内的点和集合外的点。更数学的表述方式是,极值点不能表示为集合中其他点的凸组合。如下图所示,A点是极值点,B点是普通的边界点。能够使得我们画的这个球里的所有点,都仍然属于。B点位于它旁边两个点的连线上,但A点不是。的内部点,当且仅当存在一个。

2024-06-03 09:58:01 923

原创 优化基础(二):线性组合、仿射组合、锥组合、凸组合、线性集合、仿射集合、锥集合、凸集合的理解

组合侧重于描述由一些基点生成新的点,强调的是不同点的权重和几何位置。集合侧重于描述许多个点形成的形状,强调的是完整性和连通性。

2024-05-31 19:40:38 2046

原创 优化基础(一):hyperplane, half space, normal vector, polyhedron set, polyhedron, polytype的含义

在看一些进阶的运筹知识时,会有一些专业术语涌上来。以前我的心态是,这种能绕开就绕开,看着头大,大多数博客和书籍一堆公式直接把我这个小弱鸡劝退了,这次在B站学习方述诚老师的《introduction to linear programming》课程时,终于把一些术语听懂了。歪个题,方老师的课讲的真的很棒,建议运筹的小伙伴们都能系统的去刷一遍。

2024-05-30 15:06:14 1266

原创 线性化技巧:绝对值变量的线性化

运筹建模中绝对值变量的线性化技巧。

2024-05-27 20:54:02 1113 1

原创 梯度下降法

无约束优化问题常用的求解算法有梯度下降法(基于迭代)、最小二乘法(基于解析解)、牛顿法&拟牛顿法(基于迭代)。今天先介绍最常用的梯度下降法。

2024-04-25 20:44:15 1031

原创 运筹学基础(七):拉格朗日松弛(Lagrangian relaxation)

如果问题具有linked constraints,那么拉格朗日松弛后可以使问题能够被分解,进而可以降低问题的复杂度;拉格朗日松弛后得到的问题的下界要大于等于直接将01整数变量松弛为[0,1]连续变量的下界;采用拉格朗日松弛后我们会得到拉格朗日乘子,它反应了对偶的信息,可以做很多事情。假设约束(1.1)是难处理的约束,约束(1.3)是容易处理的约束。该问题等同于:怎么求解拉格朗日松弛问题的对偶问题,常用的方法是。即松弛问题是原问题的一个下界,对偶问题是原问题最大的下界。其本质是在松弛问题的基础上,

2024-04-19 16:28:30 3110

原创 平衡括号串:操作数和右括号需求数的维护过程

如果知识判断合法括号,以及一个左括号对应一个右括号的最少插入次数,都是比较简单的。。

2024-04-11 17:46:13 393

原创 反转链表:递归解法

先直接上代码:怎么理解呢?我们一行一行的来看!首先是badcase部分,当链表为空,或者只有一个节点的时候,直接返回就可以了,也没什么好反转了!最后三行就很神奇的,初次刷题是懵的状态,看了东哥的解释才回过神来。对于递归的问题,最关键的是明确递归函数的定义。在上面的函数中,reverseList表示给定一个链表,对其进行反转,并输出反转后的链表的头节点。然后来看last是个什么东西:现在离我们想要的结果还缺把2指向1,于是我们写了:以及把head指向空:延续上面的思路,明确递归函数的定义。在这个问

2024-04-11 16:06:26 417

原创 304. 前缀和技巧中的边界值处理

题目如下,其实并不难,属于小而美的前缀和技巧中的体型。因为我之前做过这道题,所以重刷也马上就能写。但是对比我写的和之前看别人写的,明显我的代码不够简洁,一个核心的差异在于对DP数组的定义上。只要改一下DP数组的定义即可:存储以(0,0)为起点,到(i-1, j-1)的数组之和。先看下我的代码,我对DP数组的定义是:存储以(0,0)为起点,到(i, j)的数组之和。将DP数组计算的过程放在__init__下面,总是只计算一次,然后重复调用其结果即可/修改以后的代码如下,明显简洁很多!

2024-04-09 09:46:19 216

原创 运筹学基础(六):列生成算法(Column generation)

学习列生成之前,有一些前置基础需要理解,不然就没法继续往下学了。所以为了写这篇文章,我提前铺垫了3篇文章帮助自己把基础捡起来!运筹学基础(一)求解线性规划的单纯形法详解运筹学基础(四):单纯形法中检验数(reduced cost)的理解运筹学基础(五):对偶问题及其性质今天终于可以进入正题了!

2024-04-08 13:08:28 2929

原创 运筹学基础(五):对偶问题及其性质

注意:例题1里面的原问题是maxmaxmax,对偶问题是minminmin,例题2反过来了。对偶问题max约束的符号,与原问题变量的符号相反(=和无约束互反);对偶问题max变量的符号,与原问题约束的符号相同。maxz′5y14y26y3y12y2≥2y1y3≤3−3y12y2y3≤−5y1−y2y31y1≥0y2≤0y3无约束。

2024-04-07 16:47:36 3206

原创 运筹学基础(四):单纯形法中检验数(reduced cost)的理解

在前文运筹学基础(一)求解线性规划的单纯形法详解中,我们直观的理解了单纯形法其实是在可行域的顶点上搜索的过程。(这篇文章没有通过列单纯形表来讲述,而是选择了一种更符合直觉的方式,我觉得这对于初学者而言是更好理解的。单纯形表感觉还是有点绕…)提到单纯形法,就不得不提一下检验数了,前文一带而过了,这篇文章单独拎出来聊一下。因为未来的学习中,很多更高阶的内容还会涉及到检验数的概念。

2024-04-07 14:46:04 6418

原创 运筹学经典问题(八):CVRP和VRP-TW

给定一个图,图上的点代表客户,边代表客户之间的路线,边的权重代表客户之间的距离,点上的数字代表每个用户的需求量。如果只是上面的模型,可能会出现下图这种解,: 假设我们的问题是车辆去客户那里取货,需要一个约束去消除这种不包含仓库的子环。这也是VRP建模的一个略难的约束。会有图上的哪些边被选中,形成。没有约束车辆的容量限制!

2024-04-01 15:40:29 1624

原创 运筹学基础(三):求解整数规划的切平面法(cutting plane method)

先将整数规划问题松弛为线性规划问题,然后割掉线性规划问题可行域的一部分(),使得线性规划问题的最优解在原整数规划问题的。(如果有小伙伴和我一样一时间没有想起来什么是。因此,割平面法的核心问题在于。(切割方程不是唯一的)。

2024-03-30 17:30:40 2036

原创 运筹学基础(二):求解整数规划的分支定界法(branch and bound)

先将整数规划问题松弛成线性规划问题,并求出最优解;

2024-03-30 16:14:26 2297

原创 LCR 155:将二叉搜索树转化为排序的双向链表

将一个 二叉搜索树转化为一个 已排序的双向循环链表;节点的左指针指向前驱(上一个比自己小的节点),右指针指向后驱(下一个比自己大的节点)。最后要求返回链表中最小元素的指针。

2024-03-28 09:57:55 357

原创 运筹学基础(一)求解线性规划的单纯形法详解

大学的《运筹学》课程中,手算单纯形法是期末的必考题了!(记得期末考试前一周,几个经常逃课的同学来我宿舍楼下,叫了辆车载我去星巴克给他们讲解这个算法,活活讲了一个多小时他们才听懂,不知道最后及格了没哈哈!)当时已经觉得是信手拈来了,但是时间久了+计算过程本身也比较繁琐,慢慢就忘了。后面为了应付面试,又拾起过,但是面完试细节又给忘了,只记得是在可行域的顶点上来回搜索。这次想完整的梳理一篇文章(本文是跟着某位大佬的博客。

2024-03-28 09:18:22 7410 8

原创 动态规划:编辑距离和最长公共子序列解法对比

以下两种定义方式都行,看个人习惯。我个人更喜欢右边的方式!因为python中数组的切片word[i:j]是左闭右开区间,用dp(i, j)表示从word1[i:]转化为word2[j:]的定义更简洁。

2024-03-24 13:54:25 468

原创 二叉树的子结构

二叉树的前序遍历 + 递归遍历树A的每一个节点,判断是否与树B部分重合。头节点相等。

2024-03-20 15:06:48 185

原创 二叉树的最近公共祖先

这道题去年刷过,但是今年来做又没写对,写篇文章从头到尾梳理下思路,强化下记忆。(愿佛祖保佑信女,面试遇到此题时可以信手拈来。。。。

2024-03-19 15:51:13 234

原创 启发式算法分类

简单启发式算法、元启发式算法、超启发式算法

2024-03-19 11:29:28 505

原创 股票买卖问题:状态定义的误解与思考

iii:第iii天;kkk:交易的最大次数(这里有很多歧义,理解部分重点解释);sss:持有状态,0代表不持有,1代表持有。举个例子,dp[3][1][0]代表在第三天,我至今最多进行了1次交易,现在没有持有的最大利润是多少。

2024-03-17 11:34:08 866 1

原创 算法时空复杂度分析:大O表示法

算法题写完以后,面试官经常会追问一下你这个算法的时空复杂度是多少?(好像作为一名算法工程师,我日常码代码的过程中,并没有太注意这个,惭愧~但是找做后端开发的男票求证了一下,他们日常工作确实会去考虑这种问题)那么无论是为了应付面试,还是为了未来码代码可以精益求精,都还是认真的学一下时空复杂度分析方法吧!对于为什么需要时空复杂度分析,而不是直接跑一下代码看看,看到王争大佬在《数据结构与算法之美》(墙推)里给的两个原因是:测试结果依赖测试环境:机器的配置会十分影响你跑出的结果;

2024-03-13 14:59:52 1370 2

原创 动态规划:4种遍历方向图解+Python实现

动态规划类题型在遍历过程中,根据状态转移函数的不同,代码实现时遍历的方向也会有所差异。

2024-03-12 19:30:00 442

原创 新坑出炉:同一个函数不要传入两个一模一样的引用类型参数

1. 可变对象:对一个变量进行操作时,其值是可变的,但是对值的修改并不会引起新的对象,即地址是不会变的,只是地址中的内容发生了变化或者地址得到了扩充!2. 不可变对象:可以理解为一个萝卜一个坑,地址中的值是不会变的,要变就变地址!怎么记呢?可变对象和不可变对象所说的「可变」「不可变」都是针对值而言的。值可变,说明地址不变,则是引用类型!同理,不可变对象说明值不能动,那就是值类型了。

2024-03-06 14:41:40 392

原创 Python里的全局变量、局部变量、类的self.*

全局变量没有在任何函数内部定义,并且具有全局范围的变量;局部变量的定义:在函数内部定义的变量,范围仅限于该函数;是在一个函数内部声明一个全局变量,以便在函数内部对全局变量进行修改,这个全局变量本身已经定义过了,而不是我想当然认为的定义了一个全新的全局变量!‼️如果没有将其声明为全局变量,则在函数内部更改或创建的任何变量都是局部变量。当全局变量和局部变量的命名一样时,在一个函数内部还是会使用自己内部的局部变量;

2024-03-04 19:51:59 952

原创 迭代思路 VS 递归思路

【代码】迭代思路 VS 递归思路。

2024-02-27 16:47:12 490

原创 Nsum问题

【代码】Nsum问题。

2023-12-23 20:47:40 430

原创 运筹学经典问题(七):旅行商问题(TSP)

给定一系列城市和每对城市之间的距离,求解访问每座城市一次并回到起始城市的最短回路。

2023-12-14 14:16:05 1724

原创 运筹学经典问题(六):设施选址问题

以物流业的航空站点选址为例,如果航空站点开通的很多,客户的服务质量会变好(更多的航空件可以保障更好的时效),但是显然企业的成本会上升。反之,如果开通的航空站点太少,虽然企业成本下降了,但客户服务质量会变差。因此,该问题本质上是在做。

2023-12-14 11:17:31 2101

原创 运筹学经典问题(五):多商品流运输问题

前面介绍了(MCNF)问题,今天要介绍的多商品流运输问题(Mulit-commodity Transportation Problem, MCTP)与MCNF的唯一差异别:MCTP要求商品直接从供应商运送到客户,没有中间流转的路径。

2023-12-14 10:36:27 1134

原创 运筹学经典问题(四):多商品网络流问题

多商品网络流问题(Multicommodity Network Flow, MCNF)是指在一个图网络中,多个商品从各自起点运输到各自终点的问题。更具体的,给定一个图网络GVAK:表示商品的集合;sk​tk​dk​:表示商品k的起点、终点和需求量;uij​:弧段ij∈A的容量;cijk​:商品k在弧段ij∈A上流动的单位成本。MCNF问题的目标就是在图网络中,找到一条使得总运输成本最低,且能满足各个商品需求量的路径。

2023-12-13 10:11:31 2732

原创 运筹学经典问题(三):最大流问题

给定一个图网络GVE,网络中连边的权重代表,在这个图中找出从起点到终点流量最大的路径。

2023-12-12 10:04:26 975

原创 运筹学经典问题(二):最短路问题

给定一个图(有向图或无向图)GVEV是图中点的集合,E是图中边的集合,图中每条边ij∈E都对应一个权重cij​(距离或者运输成本等),给定一个起点u和一个终点z,最段路问题就是寻找一条从s出发,到达z的距离最短或者成本最低的路径。

2023-12-12 09:22:18 2193

空空如也

空空如也

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

TA关注的人

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