- 博客(128)
- 资源 (1)
- 收藏
- 关注
原创 基础算法总论
算法往往出现搞完一个就忘了前面学过方法的问题,所以在最后再总结一遍,帮助比较理解。递归:解决问题的步骤完全相同,如斐波那契数列等,每次只要更新参数调用自身方法即可。迭代法与递归相比,实现更简单,代码简洁,可读性强,在数学定义和代码间可以很容易转换。以皇后问题作为递归示例,流程图如下:大致过程为:1,检查放置合法性。遍历当前已放置的皇后,分别检查列和对角线冲突。2,设置递归出口。当放置行为最后一行时,说明所有皇后都放置好了,将结果保存。
2025-01-14 18:36:07
891
原创 密码学精简版
本章学习了密码学的两大分类,对称密码和非对称密码,对称密码现在就用AES,非对称最安全的是椭圆曲线,详细实现过程这换那换的其实很麻烦,非数学专业很难理解也记不住,学习算法特性和应用场景即可。对称密码基本能实现信息的保护,但因为密钥作为信息也要在网络中传递,为了保证密钥的安全,需要使用非对称密码,此外非对称密码还可以实现数字签名鉴权过程。不同于加密过程,散列将不等长消息输出等长摘要,可用于验证完整性。
2025-01-03 18:04:47
1448
2
原创 计算机网络压缩版
本文章大致介绍了计算机网络的整体结构,以及部分实现方法的原理,前期学习作为简单了解暂时够了,以后有需求可以再顺着方向继续研究。
2024-12-23 19:27:21
1144
原创 数值分析—非线性方程的数值解
研究背景形如x−tanx=0x-tanx=0x−tanx=0、xlnx+e−x2+sinx=0xlnx+e^{-x^2}+sinx=0xlnx+e−x2+sinx=0等称为非线性方程,自变量之间并非简单的线性关系,这种问题我们无法通过其结构求解,需要其他的逼近方式,本章将基于该问题介绍两种方法——二分法,迭代法。二分法预备知识零点定理:若f(x)∈[a,b]f(x)\in[a,b]f(x)∈[a,b]且f(a)f(b)<0f(a)f(b)<0f(a)f(b)<0,则f(x)f(x
2024-12-13 13:45:15
681
原创 数值分析—数值积分
研究背景积分的数学解法为牛顿莱布尼兹公式,数学表示为∫abf(x)dx=F(b)−F(a)\int_{a}^{b} f(x)dx=F(b)-F(a)∫abf(x)dx=F(b)−F(a),但应用该方法有如下困难:1,f(x)f(x)f(x)的原函数有时不能用初等函数表示,如e−x2e^{-x^2}e−x2和sinxx\frac{sinx}{x}xsinx;2,原函数可以用初等函数表示,但很复杂,如x21+2x2x^2\sqrt{1+2x^2}x21+2x2;3,f(x)f(x)f(x)本身无表
2024-12-09 20:48:27
1238
2
原创 数值分析—函数插值
研究意义该研究可以解决连续值的预测问题。给定离散数据,要求预测其中为给定点的函数值,过程有些类似机器学习,都是建立曲线拟合离散点的过程。数学表达为在一个函数类中找到一个简单函数p(x)p(x)p(x)(通常为多项式),使p(xk)=f(xk)=ykp(x_{k})=f(x_{k})=y_{k}p(xk)=f(xk)=yk,其中p(x)p(x)p(x)为插值函数,f(x)f(x)f(x)为被插值函数,xkx_{k}xk为插值节点,[a,b][a,b][a,b]为插值区间。该方法的关键在于,如何求
2024-12-07 11:05:20
928
原创 数值分析—线性方程组的数值解法
本章学习了线性方程组的近似数值解法,主要用Jacobi和改进GS两种迭代方法,流程是根据已有矩阵构建x1xnx1...xn的相关表达式,带入计算迭代求解,GS法只是将前面已算好的k+1阶带入后续变量求解,加快收敛速度。该方法的收敛性判别主要分三步:特殊情况(对角占优或对称正定)、计算迭代矩阵范数、求谱半径。
2024-12-02 15:17:12
1036
原创 pyspark实现基于协同过滤的电影推荐系统
要说推荐系统也从属于机器学习?我是有点doubt的,它可一点没学全是我教的。不过就到现在的学习经历来说,计算机内的定义和区分并不十分严谨和界限分明,流传的很多说法甚至根本不是它的真正意思,只是因为它看起来是这样而一直被这么叫,所以实现之前不管对方是大佬还是小白,多问一嘴也是给自己省事。
2024-11-28 21:03:29
1429
原创 数值分析—绪论:误差
该方向主要研究计算机求解数学问题的方法,主要使用离散、迭代、近似替代的思想,来将原本不易求解的数学问题求出数值解(包括但不限于,线性方程组、数值微积分、微分方程数值解等),同时要求对结果从误差、稳定性、收敛速度和计算量等方面进行评价。简单来说,就是。
2024-11-15 17:10:37
846
原创 pytorch实现深度神经网络DNN与卷积神经网络CNN
本次算是初学pytorch的第二次实践,对于一些方法和原理有了更进一步的理解:清空梯度避免干扰,小批量时可不清空;继承方法建立模型和数据集;卷积核用于保存图像空间上的相邻关系,池化层选特征;多通道用滤波器降维,学习后再升维。至此觉得可以算是入门了,但仍然路漫漫,学习网络模型结构的搭建,各种优化算法和损失函数,池化操作,步长卷积核大小的设置,这些的工作才是大头,此外将深度学习与什么相结合,这更是关键。
2024-11-07 17:16:31
978
原创 深度学习—Pandas标签库基础
本节学习了深度学习pandas库的使用,包括创建标签,访问和增加数据,比较关键的是在excel中的导入和使用,该库基于numpy实现,大部分方法可以直接使用,至此我们完成了深度学习数据操作的内容,下一步需要学习的就是网络的相关知识,包括如何搭建和调整参数。
2024-11-06 16:18:13
762
原创 深度学习—Matplotlib绘图库基础
本篇文章介绍了matplotlib绘图库的基本操作,创建窗口,根据数据绘制图像的过程,常用的就是线型图plot和直方图hist,作为技术人员确实暂时不用花太多心思在图片展示的美观性上,否则多少有点舍本逐末了,不过以后如果搞工程可能确实需要进一步学习。
2024-11-05 10:42:53
734
原创 深度学习—Numpy数组库基础
本章学习了深度学习基础的numpy库,包括其概念和类型,创建访问和运算方法,该库最主要的是给我们提供了矩阵运算的方法,在日后深度学习处理数据,尤其是对图像方面的应用会十分广泛。
2024-11-05 09:06:26
1041
原创 鸿蒙飞机大战小游戏(包含前后端通信)
该项目断断续续也算搞了小两周,费事的主要难点在于:1,前端语法不熟悉。构建框架,组件使用,几乎每一个都要上网查一下才能确定,这导致进展缓慢。2,实际应用场景复杂。网络通信相互依赖时的同步处理,这是我印象最深,卡的最久的,另外数据库操作是否立即提交,页面跳转传递信息等,这都是很小很细节的点,但如果考虑不到都会成为一个坑。目前想到后续的改进工作如下:1,手动编写的登陆验证可以直接拉起微信接口,更贴近实际。2,后端数据更多的展示,好友排行榜等提示信息,增加社交属性。
2024-10-31 15:44:08
1185
原创 梯度下降算法优化—随机梯度下降、小批次、动量、Adagrad等方法pytorch实现
本文介绍了几种梯度下降优化算法,包括其原理和代码实现,但并不一定说最好的算法就一定产生最好的结果,每种算法都有其适应的领域,在实际中还是要具体问题具体分析。
2024-10-17 19:36:00
1259
原创 Harmony开发基础
关键字 变量名:类型注释=值,变量的关键字使用let,常量使用const,如,该语言为强类型,但当变量声明时进行了初始化,类型注释就可省。type 别名=变量名。经过几个小时学习,只能说是初步了解了Harmony开发,语言本身不难,复杂的是前端的太多操作,滚动,布局,装饰器限定等,原来日常用的设备有这么复杂,不过可以预料,熟练了以后应该就也是重复工作了,只是现在还差得远,不要眼高手低。
2024-10-13 17:08:59
979
原创 Linux文件共享
ftp实现简单,用着没那么方便,nfs本地挂载,使用方便,但没有验证机制,samba可以实现验证,但配置复杂,学了计算机才知道什么叫取舍,什么叫辩证。
2024-09-01 15:41:35
571
原创 基于小土堆入门教程的pytorch训练神经网络方法实现
还是画图比较清楚,对pytorch训练神经网络的整体过程总结如下:该过程大致和理论学习时一致,优化器整合了梯度下降部分,一些复杂的数学原理并没有向用户过多暴露,使得我们可以很快上手构造模型,但后续调参和模型优化仍要求我们理解底层原理。这么说来机器学习本身好像也是快上手,慢熟悉的过程,更多操作如特征缩放、判断收敛等还未使用,更不必说神经网络的底层原理,我们并没有规定特征的学习方向,网络究竟是如何通过激活函数和卷积操作等就能学习到准确的特征并判断的呢?不同参数又是如何在一个庞大的神经网络中作用的?
2024-08-16 10:57:36
899
原创 从零安装pytorch并在pycharm中使用
pytorch安装主要分三步,1,包管理工具Anaconda用于管理组件,创造虚拟环境;2,安装加速平台CUDA,主要涉及显卡cuda版本和安装cuda平台版本的关系;3,安装pytorch,要与安装CUDA对应。
2024-08-05 08:39:37
1922
原创 无监督学习与强化学习基础
本章学习了无监督学习的一些算法,基于数据点距离中心点的分类方法—聚类,推荐算法的协同过滤,解决其冷启动难的内容过滤方法,和基于奖励函数让机器自己根据当前状态决定动作的强化学习,还有在强化学习中使用神经网络的DQN算法,该算法妙在多个未知参数可以经过神经网络的拟合逐渐变得可靠,随着网络模型建立的完善,对其他参数的估计也越来越准确,形成一个相互促进的局面。
2024-08-02 08:49:37
1048
原创 深度学习基础
本章学习了深度学习的两大分支,神经网络和决策树,神经网络依靠其隐藏层对数据进行特征提取和变换处理,最后在输出层输出结果,根据对输出要求的不同可以使用不同的激活函数,作为普通开发者我们应该更关注的是神经网络的优化方向,增加学习数据,调整正则化参数,以及交叉验证方法和迁移学习;决策树对人来说更容易理解,使用类似二叉树的数据结构进行分类判断,为了减少异常数据对树的影响,我们使用多个决策树票选结果,为了减少特征对树的影响,我们又引入了随机森林,最后介绍了目前效果很好的决策树方案——XGBOOST。
2024-07-25 16:58:58
823
原创 人工智能的方向与可行性
从领域大方向来说有强弱人工智能两种,一种是特定场景特定工作下的人工智能,即狭义人工智能ANI,应用于自动驾驶或工厂生产中;另一种是完全通用的强人工智能AGI,目前前者已经取得了极大进展,而后者被很多科学家认为很难实现,我也秉持此观点,目前所谓通用模型的chatgpt等无非是针对自然语言处理的模型。但该方向仍有研究的必要性,这对该领域的科学家来说是他们的星辰大海,科学在实践之前的认识过程都可能是没用的,而我要讨论的从业者的方向。
2024-07-24 11:13:20
308
原创 机器学习概述
本节介绍了机器学习在人工智能领域的位置,及其他相关方向,以及具体的两种实现方法,有监督和无监督,后续将分别对两种方法的具体算法进行研究和学习。
2024-07-16 13:55:49
430
原创 Linux管道与重定向
本章学习的内容比较少,管道和重定向是我们使用Linux时比较方便的两个小工具,尤其是管道,可以在我们查日志时进行简单初步的筛选过滤,而重定向可以帮助我们实现快速的简单输入输出,目前来看只是和或的使用,但其中可以杂糅很多其他命令,极大依赖我们对系统的熟练程度。
2024-06-20 18:35:50
636
原创 Linux计划任务与日志
本章学习了Linux计划任务的设置方法——通过cron循环任务调度实现,主要是在用户文件中编辑时间间隔和处理命令;以及日志管理的方法,包括日志查看记录,日志远程管理方法及归档处理。
2024-06-20 17:45:55
1087
原创 Linux远程管理日志
该实验通过修改日志主配置文件,生产机将指定协议日志信息的处理规则,设置使用udp发送到管理机,管理机打开对应接口接收消息,实现了日志的远程访问,进而实现使用堡垒机对整个网络的日志监控与管理。
2024-06-20 12:16:56
758
原创 Linux内网数据代理与数据映射实验
本次实验尝试了借助NAT协议实现主机间的数据代理功能,额外要注意的点有:1,虚拟机三种网络模式的区别,物理直连,模拟网卡和仅内部主机2,Linux系统数据转发的内核状态切换3,iptables功能使用,修改添加指定表指定链的规则4,NAT协议理解,本质是修改包头源、目的地址,但返回接收的数据包还能转换回原本地址并进行转发,具体实现方式有静态动态和复用啥的,涉及太底层暂时不做了解。
2024-06-12 10:01:04
1505
2
原创 Linux防火墙管理
可以通过自定义链实现规则分组重复调用的目的,使用-N 新链名添加链,-E 旧链名 新链名修改链名称,通过-A 链名 规则的方式给自定义链添加规则,因为数据包指挥经过五个系统链,所以自定义的链需要关联到表中才能使用,iptables -t 表名-A 链名 -s 源地址 -j 新链名iptables -t filter -N web_chain # 添加名为web_chain的自定义规则链。
2024-06-12 08:36:25
572
原创 Linux网络管理
本章主要介绍了计算机网络中的一些基本概念,以及在Linux系统中如何管理配置,包括IP,DNS,网关等,使用图形化界面或者其他工具,归根到底都是对网络配置文件的修改,视情况使用方便简洁的工具或者大道至简都可以,此外相关的防火墙内容严格来说也属于网络管理的范畴,但是因为操作和内容太多,所以后面单独一章来介绍总结。
2024-06-11 15:44:01
510
原创 Linux软件包管理
我们日常使用电脑下载软件,可能到微软商店,也可能到浏览器去搜索下载,那我们在Linux中只用命令就下载了软件,系统是到什么地方给我们查找下载的呢?这就引出软件源的概念,即软件仓库,我们默认使用的是红帽官方的软件仓库,很多高校和大厂有其自行组建的软件仓库,命令中可以使用查看默认的源,源默认存在路径下删除索引缓存和下载包的缓存成索引缓存索引提高搜索安装速度有时候我们要使用的工具不在源中无法找到时可以尝试使用增加epel源,这是为红帽系操作系统提供的额外软件包。
2024-06-07 21:25:11
732
原创 Linux存储管理
本章学习了Linux系统中管理磁盘存储的方法,具体分为分区管理,设置磁盘配额,部署磁盘阵列和使用逻辑卷管理器,具体解释过程为:分区管理使用parted工具声明磁盘分区类型,进行大小划分,再建立文件系统,主要是ext4,最后挂载到想要的文件夹上即可使用,对应与Windows系统新增磁盘的步骤基本类似。设置磁盘配额使用quota工具,关闭安全服务并开启自身服务后,使用管理用户限额即可。磁盘阵列是使用冗余磁盘保证读写效率或安全性的方法,具体由条带、镜像、奇偶校验或其组合的形式,使用。
2024-06-07 20:34:23
1337
原创 Linux进程管理
该部分内容不多,学习了在操作系统中查看删除进程的方法,以及如何调整进程优先级和前后台切换的内容,主要使用pstopkillnicejob命令,为什么没说进程创建呢?因为我们执行程序的过程就是创建进程,这部分不用单独学习。
2024-06-03 20:19:33
532
1
原创 Linux文件管理
本章学习了Linux中管理文件的方法,包括文件查看,编辑,和权限管理方法,而由于Linux中一切皆文件,所以连带着用户的管理方法也一起在本章学习,命令都比较简单,但很杂需要实际联系才能熟练,还有选项和不同命令的融合,难度会随着学习的指令变多急速上升。此外在实践中对路径产生的疑惑也得以解决,Linux中根目录下存放系统的配置文件和用户目录,其中root用户单独存放,普通用户则统一存放在home文件夹中。
2024-05-29 10:56:24
1132
原创 flask框架基础
本章学习了python的flask框架,该框架基于socket,用于搭建服务器/浏览器端结构,通过封装好的函数简化了很多原有操作,如建立连接和收发数据的过程,大大提升了开发效率,其jinjia2模板是用于html动态渲染的工具,该模板对动态替换html中数据的过程进行了进一步封装,和其他模板相比,特点是限制更少,但做的也更少。
2024-05-22 21:03:01
726
原创 python网络编程和并发编程
本章学习了基于socket套接字的网络编程,主要流程是确定协议,绑定IP和端口,服务器端与客户端建立间接,最后是通信过程。为了在此基础上实现更多功能,比如建立更多连接和同时收发功能等引出了并发编程,有进程,线程这两个操作系统中实际存在的概念,还有代码层面用户在线程内实现并发的协程,而又因为多进程可能会引发数据的混乱问题,学习了同步异步的相关操作,主要是通过加锁的方式牺牲效率,实现了对共享区的互斥访问保证了数据准确性。
2024-05-17 19:42:12
1035
原创 python面向对象
python是一门面向对象的语言,本章才刚刚接触到,最重要的多态的概念,但在python中,因为其弱类型的语言特质,缺少了一定形式而没有那么优雅,转而使用鸭子类型,只要将对象实例传入方法中就可以实现同名称不同结果的效果,并不在乎其具体继承关系。此外都是Java和C++的低配版,确实开发效率高,基本只要考虑本身的逻辑,而很少无关的硬性规定,优雅优雅。
2024-05-13 10:01:30
1018
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人