自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Spring源码】1.1 BeanFactory和ApplicationContext

阅读前须知:需要有一定Spring基础和Spring实践经验。

2024-05-05 20:35:37 861

原创 【嵌入式】STM32和I2C通信

I2C(Inter IC Bus)是有飞利浦公司开发的一种通用数据总线,主要通过两个通信线SCL和SDA进行通信,其中SCL(Serial Clock)是时钟线,用于收发双方同步数据,SDA(Serial Data)是数据线,用于传输数据。是一种同步半双工的数据总线,其有数据应答功能,支持在总线上挂载多个设备。不少的设备,比如说常用的0.42寸的OLED显示器,MPU6050加速度传感器,AT24C02存储器模块,DS3231实时时钟模块等,都是用I2C协议。

2024-03-25 20:33:14 779

原创 【编译原理】第一章 概述

写在开头:本文以及本博客大多数文章都是作者学习之后的笔记,知识点经过提炼,因此缺少生动详细的解释和样例,不适合初学入门者观看,正确使用方法是学习完该门课程后,可以用本博客温故而知新,快速回忆起遗忘的内容,希望可以帮到各位!编译器的核心功能是将翻译为其基本的要求是生成的目标代码的语义要和源代码一致,因此编译器需要进行大量静态计算(也就是在编译过程中不会进行运算)编译器和解释器的区别:编译器输入需要编译的源程序,输出编译完成后的目标程序;

2024-03-18 10:38:33 347

原创 【电路分析】第一章 初识电路分析

电路三要素:电源、负载、导线。

2024-01-07 16:09:59 991

原创 【神经网络】GAN:生成对抗网络

和传统的神经网络不同,Generator除了接受x的输入之外,还会接受一个简单的分布作为z进行输入,从而使得网络的输出也是一个复杂的分布为什么输出需要时一个分布呢?以视频预测为例,比如说在糖豆人游戏中,我们需要预测视频的接下来的10帧是怎么样的问题是传统的神经网络(NN)训练出来的结果,在拐角处,一个糖豆人会分裂为两个糖豆人,一个向左一个向右,这是因为在普通NN中,糖豆人向左和向右都有可能,是概率不同,因此他将这两个结果都显示了出来。

2023-11-11 19:13:01 1762 2

原创 【Spring】Spring技术栈需掌握技术点

本文旨在总结Spring技术栈需要掌握的一些技术点,面试不一定问,因此本文并非是面试导向,而是实战导向。笔者曾经学习过Spring相关内容,但是由于读研做了一些其他工作,一些关键内容发现已经模糊不清,为了加强记忆,于是决定将相关知识点记录下来。

2023-11-09 18:08:20 56

原创 【算法笔记】LCR 086. 分割回文串

Java中的List变量存储的是List的地址,而非List本身,因此可以构建一个path列表,用于存储当前已经遍历的序列,当dfs向下遍历的时候则将新遍历的字符串加入path中;当向上回溯的时候,可以将path中的最后一个元素remove掉,从而恢复到上一个遍历状态。dfs遍历出来的第一个序列是[a, a, b],显然该序列都是回文子串,接着回溯,遍历下一个序列,为[a, ab],不是回文子串,去除…如此往下遍历,将符合要求的序列加入到结果集res中,直到遍历整个解空间树。

2023-10-11 12:14:28 265

原创 【深度学习】Mini-Batch梯度下降法

反之,较小的子集会导致噪声较大,下降的精度不高,但是单次训练速度快,而且较小的子集也无法充分来自于向量化的训练加速,总训练时间反而不是最快的。在实际中,选择适中的子集大小能够保证一定的精度,也能提高速度,并且利用好向量化带来的加速,在此基础之上,根据自己的目标选择合适的子集大小,平衡好训练速度和精度问题。而在情况2中,因为每个样本都是单独的Mini-Batch,大多数时候会朝着最小值前进,但是有一些样本是噪声样本,因此偶尔会指向错误的方向,因此这会使得其路线十分的九转十八弯(紫线)。原数据集的特征部分为。

2023-09-09 16:59:23 801

原创 【机器学习】异常检测

假设你是一名飞机涡扇引擎工程师,你在每个引擎出厂之前都需要检测两个指标——启动震动幅度和温度,查看其是否正常。在此之前你已经积累了相当多合格的发动机的出厂检测数据,如下图所示我们把上述的正常启动的数据集总结为DataSetx1x2...xm如果一个新的例子xtest​离点集很远,那可能这个样例是异常的那么如何衡量“很远”呢?一般我们会有一个函数p(x)负责计算,并且有一个阈值ϵ,当pxtest​ϵ的时候,我们认为该样例异常;而当pxtes。

2023-07-24 19:49:55 443

原创 【机器学习】支持向量机SVM入门

相较于之前学习的线性回归和神经网络,支持向量机(Supprot Vector Machine,简称SVM)在拟合复杂的非线性方程的时候拥有更出色的能力,该算法也是十分经典的算法之一。接下来我们需要学习这种算法首先我们回顾逻辑回归中的经典假设函数,如下图:对于任意一个实例xy,当y=1的时候,我们希望hθ​x≈1,也就是θTx>>0;当y=0的时候,我们希望ht​hetax≈0,也就是θTx

2023-07-23 16:09:18 439

原创 【机器学习】正则化对过拟合和欠拟合的影响

接下来我们总结若干应对各种问题的方法:修正过拟合(高方差):增加训练及数量、使用更少的特征、增加正则化参数的值修正欠拟合(高偏差):增加额外的特征、增加假设函数的复杂度和次方数、减小正则化参数的值。

2023-06-26 09:11:54 502

原创 【机器学习】如何选择合适的假设函数

但是这仍不能证明模型的泛化能力,因为上述过程类似于新增了一个参数d之后,再使用测试集进行模型训练选出最优d值,也就是说,这是使用测试集来选择模型,又使用相同的测试集来计算误差,对于模型多项式次数d的选择会存在过拟合的情况。想要了解自己训练出的模型对训练集外的实例的泛化能力,则我们可以将初试的数据集分为两部分:70%为我们的训练集,剩下30%为我们的测试集(当然比例我们可以灵活调整)。值最小的对应的d的取值,假设d=4的时候最佳,那么我们就选择这个多项式次数作为最优假设函数模型。的取值,而不是像之前的求。

2023-06-26 09:08:33 314

原创 神经网络小结:训练的全过程

这一节我们主要是将之前的知识穿起来,形成一个整体。如果之前的没看过可以回翻一下专栏。但是在整体回归之前,我们还需要学习一个小知识点——随机初始化。

2023-06-20 16:29:21 747

原创 【神经网络】梯度检测

的取值是一个可行的方法,但是它很容易出错:因为在这个算法中含有海量的细节,容易产生微小而又难以察觉的bug。的方法赖解决这种问题,只要需要使用类似梯度下降或者反向传播的算法都可以使用这种方法,这种方法能够确保你的前向\反向传播完全正确。还是会照常迭代下降,但是得出来的结果的误差将会比正确的情况高出一个量级。,如果成立的话,则可以认为反向传播是正确的,把DVex用于梯度下降则可以得出较好的结果。是一个很小的数,类似于微积分中的微小增量,一般可以将。,那么我们可以使用相同的办法得出对应偏导数的大约值。

2023-06-16 15:22:05 1093

原创 【机器学习】神经网络代价函数和反向传播算法

表示的是神经网络经过拟合后的输出值,而y是样本实际的结果,因为多分类的神经网络中,式子中的y不只是只有一种输出结果,而是有k种输出结果,因此需要计算K个输出单元的和,这就是为什么需要。老实说,代价函数这方面我也不太整的明白,我跟的教程并没有给出足够严谨的说明,但是好在实际使用时是直接有函数接口调用的,另外我还会找额外的书籍去补一补这一方面,等着更新吧(挖坑。神经网络中使用的代价函数我们之前学过Logistics回归的代价函数的一般形式,其中Logistics回归的代价函数如下:(带有正则化项)

2023-06-15 17:47:22 1458

原创 【机器学习】一个简单的神经网络例子教你理解前向传播

在计算机中可以很容易地使用门电路实现异或,但是今天我们试着用神经网络去实现以下与运算。那么我们构建如下的神经网络。在开始这个实力前,希望你已经了解了神经网络的相关内容,可以参见如下文章。在计算机中,有一种很基础的运算称之为与运算,这是一个二元运算符,的值为1,可以知道与运算有四种情况。的取值只可以是0或者1,当。并且将权重矩阵初始化为。

2023-06-14 15:45:44 288

原创 【机器学习】神经网络入门及其运行过程

如果对于下图使用Logistics回归算法,如果只有x1和x2两个特征的时候,Logistics回归还是可以较好地处理的。它可以将x1和x2包含到多项式中但是有很多问题所具有的特征远不止两个,甚至是上万个,如果我们想要包含很多特征,那Logistics回归的假设函数将会相当复杂。这些多项式的项数是以n^2的速度增长的。一方面运算量十分大,而且想要进行正则化调整也很难。这么庞大的特征空间使得对特征的增删查改都十分困难,因此我们需要另寻出路。

2023-06-07 10:03:46 765 1

原创 【机器学习】正则化详解和过拟合的解决

上一篇文章的例子中,如果使用一个四次多项式去拟合房价函数,会导致过拟合问题而正则化是解决过拟合的一个方法。J2m1​i1∑m​hθ​xi−yi2J2m1​i1∑m​hθ​xi−yi21000θ32​1000θ42​当我们要得出最小的代价函数的时候,θ3​和θ4​必须要尽可能接近于0,否则函数J会变得很大。对于假设函数θ0​θ1​xθ2​x2θ3​x3θ4​。

2023-06-05 15:06:02 441

原创 【机器学习】浅析过拟合

我们来想象如下一个场景:我们准备了10000张西瓜的照片让算法训练识别西瓜图像,但是这 10000张西瓜的图片都是有瓜梗的,算法在拟合西瓜的特征的时候,将西瓜带瓜梗当作了一个一般性的特征。此时出现一张没有瓜梗的西瓜照片,算法就认为它不是西瓜了。这种情况被称为。上面从感性的方面感受了下过拟合的情况,接下来我们系统分析过拟合的情况。还是以我们经典的通过房屋大小预测房价走向的问题,假设有以下三个拟合好的图像。

2023-05-31 17:37:37 632

原创 【机器学习】分类问题和逻辑(Logistic)回归算法详解

在阅读本文前,请确保你已经掌握代价函数、假设函数等常用机器学习术语,最好已经学习线性回归算法,前情提要可参考https://blog.csdn.net/weixin_45434953/article/details/130593910我们通常用y来表示分类结果,其中最简单y值集合为01,比如对于一个邮件是否为垃圾邮件,有“是垃圾邮件(1)”和“不是垃圾邮件(0)”两种y的取值。

2023-05-31 11:35:36 569

原创 Bootstrap下div边框属性失效问题解决方法

猜想是bootstrap可能为了统一控件,将边框类型设置成了none。既然都没有边框了,那当然设置边框颜色也没有用,解决办法是在style中手动规定border-style:soild。如果将一个div指定为bootstrap中的column,并且再设定他的边框颜色,会发现不起作用。

2023-05-30 16:15:31 324

原创 Spring和SpringBoot常用注解(持续更新)

lombok注解,用于自动生成getter\setter\toString等方法,使用前需要在pom.xml中引入如下内容

2023-05-22 21:32:37 550

原创 【机器学习】多元线性回归详解和特征压缩

注意⚠️阅读本文前,你应该需要掌握:机器学习线性回归模型、高等数学微积分部分内容、线性代数矩阵部分内容前情提要:https://blog.csdn.net/weixin_45434953/article/details/130593910。

2023-05-15 10:32:07 520

原创 【机器学习】正规方程法求解线性回归问题

,因此梯度下降更适合应对n较大的情况,一般以n=10000为分界线。而且梯度下降在很多算法中都会广泛的应用,但是正规方程一般只用于线性回归。的解析方法,而不是梯度下降那样的迭代方法。也就是只需要一次运算就可以得出结果。梯度下降需要选择学习速率,并且需要迭代,而正规方程不需要。但是对于特征量n较大的情况,会消耗大量的时间,通常认为正规方程的时间复杂度为O(n。反过来,导数为0的位置不一定是最值。需要注意的是,正规方程不需要使用特征缩放。正规方程能以更好的方式求得假设函数中。根据微积分,我们知道函数。

2023-05-15 10:31:28 463

原创 【机器学习】线性回归模型详解

接下来我们将要学习我们的第一个模型——线性回归。比如说我需要根据数据预测某个面积的房子可以卖多少钱m:训练样本数量x:输入值,又称为属性值y:输出值,是我们需要的结果我们会用xy(x,y)xy表示一整个训练样本,使用xiyixiyi来表示第i个样例我们将上图用表格表示出来如下:那么线性回归的预测模型如下:训练集输入到学习算法中,然后学习算法会根据数据训练出函数h。作为一个线性回归模型,其输出的h应该是hxθ0θ1xhxθ0​θ1。

2023-05-10 09:38:58 3010

原创 【机器学习】机器学习相关概念简述

机器学习指的是,在没有明确设置的情况下,使得计算机拥有自我学习能力的领域。

2023-05-10 09:37:48 243

原创 【Python爬虫】百度翻译爬虫实战

get和post传输:get是明文传输,其参数会直接写在url中post是密文传输,不是加密传输,而是将信息写在body中get一般传输数据大小不超过2k-4k(根据浏览器不同,限制不一样,但相差不大),因为url不能太长post请求传输数据的大小根据php.ini 配置文件设定,也可以无限大。因此涉及到表单提交需求,一般都是用post另外,get请求页面后退时,不产生影响;post请求页面后退时,会重新提交请求。

2023-04-17 15:29:54 53

原创 SpringMVC入门以及工作流程详解

在以往,所有前端页面都需要配置在web.xml中,但是在SpringMVC中,web.xml只需要完成DispatchServlet的配置。SpringMVC的核心是DispatchServlet(调度Servlet),在一个web应用中,会有多个dao和多个数据库表进行映射,而一个dao又和一个service以及一个servlet联系在一起。用户不需要逐个管理servlet,而是通过dispatch统一管理,dispatch的职责包括:调度servlet,处理请求,适配URL和跳转页面。

2023-04-15 16:09:46 435

原创 【JVM】内存分配和回收的策略

Java的自动内存管理最根本的目标是自动化地解决两个问题:自动给对象分配内存以及自动回收分配给对象的内存。下面我们就来探讨常用的HotSpot虚拟机默认的内存分配和回收策略。

2023-04-10 18:13:40 139

原创 【MyBatis】ResultMap结果集映射

之前的例子中,pojo类的属性和数据库表的属性列的名字是一一对应的,这样MyBatis会自动将pojo类的属性和数据库表属性联系起来,但是实际生产环境中,pojo类的属性不一定和数据库表一一对应,这时候需要我们手动建立映射关系。ResultMap 的设计思想是,对简单的语句做到零配置,对于复杂一点的语句,只需要描述语句之间的关系就行了。我们可以看到,在数据库中密码字段称为pwd,在pojo类中称为password。ResultMap是一个结果集映射,可以将数据库的属性集和pojo类的属性集进行映射。

2023-04-10 17:56:23 104

原创 MyBatis的CRUD

虽然dao层中使用的insertUser的参数是一个User对象,但是mybatis在mapper.xml中完成自动匹配,将传入的user对象中的id,name,pws属性和#{id}, #{name}, #{pws}对应起来,从而完成对sql语句的填充。需要注意的是,使用insert、delete、update等语句时,需要使用sqlSession.commit()提交事务才能完成更改。在SQL语句中,可以使用#{parameter}的方式传入参数,参数名字应该和Dao层中的查询函数的参数保持一致。

2023-04-08 16:31:33 337

原创 【MyBatis】SqlSessionFactoryBuilder、SqlSessionFactory和SqlSession的关系

SqlSession 的实例不是线程安全的,因此是不能被共享的,所以它的最佳的作用域是请求或方法作用域。绝对不能将 SqlSession 实例的引用放在一个类的静态域,甚至一个类的实例变量也不行。也绝不能将 SqlSession 实例的引用放在任何类型的托管作用域中,比如 Servlet 框架中的 HttpSession。换句话说,每次收到 HTTP 请求,就可以打开一个 SqlSession,返回一个响应后,就关闭它。有很多方法可以做到,最简单的就是使用单例模式或者静态单例模式。

2023-04-08 15:15:57 164

原创 【MyBatis】Spring整合MyBatis教程

持久层的对象是为数据进行持久化的层级。数据持久化就是将数据存储到数据库中,存入到数据库的数据称之为持久化数据,与之相对的瞬时数据则是存在内存中的数据,在内存中的数据只要断电就会消失。因此持久层的类和对象需要和数据库中的表和实体对应起来。而MyBatis则是用于完成持久化工作的持久层框架,Dao层则是用于完成持久化工作的层级。

2023-04-08 15:00:16 383

原创 mybatis错误:Could not find resource mybatis-config.xml,找不到mybatis-config.xml

pom

2023-04-08 11:28:42 2290

原创 【算法】分支限界法

分支限界法是按照广度优先的策略搜索问题的解空间树,在搜索的过程中,对待处理的节点根据限界函数估算目标函数的可能的取值,从中选取使得目标函数可以取得最优的结点优先进行广度优先搜索,从而不断的调整搜索方向,尽快地找到问题的解。

2023-03-30 20:15:33 2331

原创 【算法】回溯法详解

回溯法在包含的所有可能解的解空间树中,从根节点出发,按照深度有限的策略进行搜索,对于解空间树的某个结点,如果该节点满足问题的约束条件,则进入该子树继续进行搜索,否则将以该节点为根节点进行剪枝。回溯法常常可以避免搜索所有可能的解,所以适合求解组合数较大的问题。

2023-03-25 21:47:55 4131 1

原创 【算法】一文详解贪心法

贪心法将一个复杂问题分解为一系列较为简单的局部最优解,每一步都是对当前解的一个扩展,直到获得问题的完全解。贪心法的典型应用时求解最优化问题,而且即使是非最优解,最终得出的解也和最优解比较近似。

2023-03-25 20:59:01 1960 1

原创 【算法】动态规划复习汇总

动态规划主要用于解决多段决策最优化的问题。动态规划通常用来解决这样的一类问题:该问题有n个输入,问题的解由这n个输入的一个子集构成,这些子集必须满足某些事先给定的,满足约束条件的子集称之为。满足约束条件的可行解往往不只有一个,因此通常会给出一定的标准用来衡量可行解的优劣,这些标准称为,使得目标函数取得最大值或者最小值的可行解称之为最优解。这类问题被称之为最优化问题。

2023-03-22 16:12:38 360

原创 C++指针详解

旧文更新:两三年的旧文了,一直放在电脑里,现在直接传上CSDN。

2023-03-17 19:10:20 2316

原创 【算法】减治法详解

左子树上的结点都小于根节点、所有右子树都大于根节点使用中序遍历可以得到一个递增的有序序列。

2023-03-15 18:59:35 3525

空空如也

空空如也

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

TA关注的人

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