- 博客(79)
- 收藏
- 关注
原创 CNN 卷积神经网络
滑动窗口方式除了计算量比较大,还有个问题就是窗口是离散的,所以大概率不会有窗口完美框到待识别物体,并且可能物体本身也不是正方形,因此单纯的滑动窗口无法准确给出边界。YOLO(you only look once)算法解决了上面问题,并且替换了滑动窗口。它将图像等分成n×n的格子,以下图为例3×3,然后识别3类物体,标签为8维数据,P_c每个格子是否有Object,有的话中心点坐标b_x、b_y,框的高度b_h,框的宽度b_w,softmax结果3个,然后训练。
2025-02-21 21:02:35
1006
原创 Transformers
RNN类(包含GRU/LSTM)模型有几个缺点:1. 梯度消失问题,通过GRU和LSTM进行了缓解,但仍难以捕捉远距离的依赖,并且增加了计算复杂度2. 只能一个单词一个单词输入,无法并行化处理,处理速度慢Transforms模型解决了这些问题。
2025-02-17 00:52:07
419
原创 Sequence to Sequence model
所以最终定义如下,这里增加了一个BP(brevity penalty)简短惩罚系数,因为越短的输出会让你更容易在reference中命中,这会让模型倾向于输出更短的翻译,增加简短惩罚系数避免这种倾向,论文中给出的BP定义见下图。
2025-02-13 21:14:24
894
原创 NLP & Word Embeddings
首先介绍什么是skip-grams,skip-grams需要提供一个context单词和一个target单词,先选定context单词,然后在其前后k(超参)个相邻单词的窗口内,随机选取一个target单词组成一个pair负采样是对原始skip-grams的优化,可以有效降低多类分类问题的计算量。负采样是选取一个context单词,然后从其前后一定窗口内选取一个临近的target单词作为正样本,其标签是1;
2025-02-11 21:14:24
1056
原创 RNNs GRUs & LSTMs
不再使用训练集的数据,而是让模型自动输出,每轮输出下个单词的预测概率后,带权重的随机抽样下一个单词,并作为下一轮的输入,这样模型按顺序会输出一个语句,直到抽样到一个EOS或者达到指定轮数后结束输出。标准的RNN模型很难捕捉到长序列前后的关系,每层主要收到前面几层的影响,但是英语中,很可能在一个句子中间增加一段语句,类似下面图片,这个子句前后是有强关联的。使用不同的训练集训练出的模型,新序列采样的结果也差异很大,比如下图,使用新闻和使用莎士比亚文章训练出的模型产出的新序列也延续着各自的风格。
2025-02-08 18:17:17
858
原创 构建机器学习项目的策略
人类在视觉听觉类任务方面表现非常出色,很接近贝叶斯最优误差,模型无法超越贝叶斯最优误差,因此通常可以与人类的表现水位比较。另外,当模型表现比人类水平低时通常可以通过增加标注数据等手段优化,当表现超越人类时有些优化手段就无法使用了。满意度指标只作为某个指标的限制,当达到某个阈值则不再关注。然后关注需要优化的指标。使用准确率与召回率的调和平均数作为评估指标,称为F1 score。测试集的大小,需要保证能足够可靠的评估模型系统的性能即可。开发集与测试集应该跟你未来线上要使用的数据分布一致。
2025-02-07 16:04:21
245
原创 优化深度神经网络
实际经常会出现的是鞍点,鞍点是指部分维度为局部最大值而部分维度是局部最小值,还有更多的维度并不是局部最值(所有维度梯度均为0的概率也是极低的)。可以看到指数加权平均展开之后就是每老一点的数据就多乘以一次一个接近一的系数,使得老的数据影响越来越小,近似的计算近一段时间的平均值,这样相对直接取n填计算均值需要的内存更小。由于实际推理时可能只有一个输入,没有平均值、方差等统计值,此时需要使用训练时得到的统计值,比如使用每个batch计算得到的μ和。区别于指数加权平均,这里使用梯度的平方进行指数加权,加速收敛。
2025-02-06 21:44:46
761
1
原创 Reinforcement learning 强化学习
通过智能体(Agent)与环境(Environment)的交互来学习最优策略,以最大化累积奖励。其核心思想是通过试错和反馈机制来优化决策。核心要素是状态、动作、奖励、折扣系数、累积奖励、价值函数。
2025-01-27 10:55:04
383
原创 线性回归、协同过滤、基于内容过滤、主成分分析(PCA)
将用户特征训练输出用户向量,item特征训练输出item向量,两者内积作为预测结果,并将预测结果的方差作为成本函数,最小化成本函数训练。与协同过滤不同,基于内容过滤不依赖其他用户的行为数据,而是通过分析当前用户的历史偏好和行为数据,预测其可能感兴趣的item。协同过滤基于一个核心假设:相似的用户会有相似的兴趣,因此可以通过分析相似用户历史行为,来预测当前用户可能感兴趣的item。是否喜欢,是否点击,观看是否超过30s之类。使用item特征+用户打分标签线性回归训练,最小化成本函数,得到每个用户的参数。
2025-01-26 15:44:17
269
原创 无监督学习:聚类、异常检测
在有监督学习中,如果你使用了一些不太准确的特征或者少量多余的特征没有什么问题,因为在学习过程中可以通过标签调整特征权重之类。将每个特征作为独立特征(实践证明即使不完全独立也影响不大)计算高斯分布的参数,然后将待预估样本代入各高斯函数作为每个特征概率,乘起来作为最终概率,小于阈值时认为异常。其实本质区别是监督学习需要学习,因此需要有足够的正负样本,并且监督学习只认识见过的东西,没有见过的识别不准,所以适合类型变化不大的检测。2. 误差分析,调整特征的使用,增删。
2025-01-24 16:55:22
903
原创 decison tree 决策树
对随机森林的提升:从第二次迭代开始,不是等概率随机抽样,而是让上一轮预测错误的样本有更大的概率被抽样到,以类似错误修正的方式训练树。利用有放回抽样,我们可以连续抽样并组成新的训练集,使用新的训练集训练一棵新的树。单个决策树的一个缺点是对数据的变化比较敏感,我们需要尝试降低树的敏感度提高鲁棒性,此时我们可以构建集成树,即一组决策树。熵减可以用来决定什么时候停止分叉,当熵减很小的时候你只是在不必要的增加树的深度,并且冒着过拟合的风险。信息增益描述的是在分叉过程中获得的熵减,信息增益即熵减。
2025-01-24 11:54:33
737
原创 Neural networks 神经网络
adaptive moment estimation(自适应矩估计),该算法是梯度下降的优化算法,效率更高,课程没有讲Adma算法的具体实现,但是实现的大致原理是:动态调整学习率α,梯度下降过程中,多次朝同一个方向下降的时候放大学习率,来回震荡时缩小学习率。当你网络中每一层都不使用激活函数(即每一层都使用线性激活函数),根据下图的推导会发现不管你有几层最终的输出还是跟输入是线性的,因此最终实现的都是一个线性回归,而很多问题不是线性回归能够描述的。因为随着加入的训练数据变多,拟合越来越难满足所有数据,所以。
2025-01-23 02:06:08
1329
原创 win11 powershell 新增管理员账户
net user your_user_name your_password /addnet localgroup administrators your_user_name /add
2022-04-18 21:53:59
647
原创 信息检索导论读书笔记(六):文档评分、词项权重计算及向量空间模型
在文档集规模很大的情况下,满足布尔查询的结果文档数量可能非常多,往往会大大超过用户能够浏览的文档数目。因此对搜索引擎来说,对文档进行评分和排序非常重要。参数化索引及域索引大多数文档具有额外的结构信息,与文档相关的特定形式的数据(比如作者、标题、出版日期等)我们称为元数据。数字文档通常会把与之相关的元数据以机读的方式一起编码。元数据通常会包括字段信息,对每个字段(比如文档创建时间)建立与之对...
2020-03-26 18:55:50
2189
原创 信息检索导论读书笔记(五):索引压缩
在先前的章节中介绍了信息检索系统中两个主要数据结构:词典、倒排记录表。接下来将介绍对这两个数据结构的各种压缩技术。这些技术对于构建高效的IR系统非常关键。压缩的优点有:节省磁盘空间,压缩比可以非常容易达到1:4以上 增加高速缓存技术的利用率,压缩后高速缓存中可以存放更多的信息 加快数据从磁盘到内存的传输速度,将压缩的数据块传输到内存并解压缩需要的总时间往往比将未压缩的数据块传输到内存快索...
2020-03-26 15:10:35
1305
原创 信息检索导论读书笔记(四):索引构建
建立倒排索引的过程称为索引构建,负责构建索引的程序或计算机称为索引器。操作系统往往以数据块为单位进行读写,因此从磁盘读取一个字节和读一个数据块所耗费的时间可能一样多。采用一种高效的解压缩算法然后读磁盘压缩数据再解压所花的时间往往会比直接读取为压缩数据的时间少。基于块的排序索引方法(blocked sort-based indexing)(BSBI): 对于很多大型语料...
2020-03-25 15:55:32
887
原创 信息检索导论读书笔记(三):词典及容错式检索(通配符查询、拼写校正)
假设给定倒排索引及查询,首先应确定查询词项是否在词汇表中,如果在应该返回词项对应的倒排记录表的指针。查找操作通常采用词典的经典数据结构。实现这种数据结构有两种方式:哈希表及搜索树。关于两者的定义在此不再赘述。哈希表除了需要解决哈希冲突的问题,在查询词存在轻微变形时也无法进行查询,并且由于词汇表往往是不断增长的,为当前需求设计的哈希函数可能过一段时间就不再适用。因此通常适用搜索树的查询...
2020-03-25 13:37:19
2191
原创 操作系统学习笔记(二十四):I/O子系统
I/O特点常见设备接口类型:1、字符设备:键盘鼠标、串口 a.以字节为单位顺序访问 b.I/O命令通常使用文件访问接口和语义2、块设备:磁盘、磁带、光驱 a.均匀的数据块访问 b.I/O命令通常使用文件系统接口,也可以使用内存映射访问3、网络设备:以太网、无线、蓝牙 a.格式化的报文交换 b.I/O...
2020-01-14 21:20:38
644
1
原创 操作系统学习笔记(二十三):文件系统
概念:文件系统和文件: 文件系统是操作系统中管理持久性数据的子系统,提供数据存储和访问功能,组织、检索、读写访问数据。 文件时具有符号名,由字节序列构成的数据项集合,是文件系统的基本数据单位,文件名是文件的标识符号。文件系统功能: 1.分配文件磁盘空间 a.管理文件块(位置和顺序) ...
2020-01-14 18:37:25
846
原创 信息检索导论读书笔记(二):布尔检索、倒排索引、倒排索引表合并算法、短语查询
布尔检索: 布尔检索模型接受布尔表示查询,即通过AND、OR及NOT等逻辑操作符将词项连接起来进行查询,在该模型下,每篇文档只被看成是一系列词的集合。布尔搜索的一个普遍问题就是AND操作产生的结果正确率高但是召回率偏低,而采用OR操作符召回率高但是正确率低,因此很难或者说不可能找到一个令人满意的这种方案。倒排索引: 倒排索引是信息检索内第一个核心概念。倒排索引中...
2019-12-20 00:08:55
2633
1
原创 信息检索导论读书笔记(一):开篇
不知不觉马上要毕业了,前段时间由于一直在做毕业设计的项目,没有时间学习计算机相关知识,最近终于把大论文交了,又有点时间看一下自己想看的知识。除了之前还留了个尾巴的操作系统课程笔记,由于要入职的组是做搜索的,所以打算看一下相关的书籍《信息检索导论》,应该能够从中收获很多知识。 不过这一系列笔记可能跟之前网络和操作系统的课程笔记不太一样,更加偏重计一些我自己认为有意义有意...
2019-12-19 23:09:57
514
原创 操作系统学习笔记(二十二):管程
管程是一种用于多线程互斥访问共享资源的程序结构,采用面向对象的方法,简化线程间的同步控制,保证任意时刻最多只有一个线程执行管程代码,管程与临界区的区别是在管程中的线程可临时放弃管程的互斥访问,等待事件出现时恢复,而临界区只有线程退出临界区才能放弃互斥访问。 管程与临界区结构上差别在于多了共享数据,共享数据作为条件变量,如果条件变量的数量为0则跟临界区完全一样。进入管程...
2019-12-18 19:15:36
665
原创 操作系统学习笔记(二十一):信号量
信号量与管程也是进程间通信的方式。信号量是与锁在同一层级实现的,是操作系统提供的一种协调共享资源访问的方法。信号量由操作系统管理,操作系统作为管理者地位是高于进程的。 信号也是一种抽象的数据类型,由一个整型变量(sem)和两个原子操作组成。P()操作使sem减一,若sem<0进入等待,否则继续。V()操作使sem加一,如果加一后sem仍然小于等于零,代表还有线程...
2019-12-18 18:36:51
1019
原创 操作系统学习笔记(二十):临界区与锁
多进程并发运行,导致多个进程间有资源共享,比如CPU、内存,因此存在不确定性和不可重现,可能导致多次运行结果不一致。因此操作系统需要利用同步机制在并发执行的同时,保证一些操作是原子操作。 互斥是指一个进程占用了某个资源,其他进程都不能使用该资源;死锁是指多个进程各占有了一部分资源,形成了循环等待;饥饿是指其他进程轮流占用资源,一个进程一直得不到资源。临界区 ...
2019-12-18 17:56:36
1391
1
原创 操作系统学习笔记(十九):处理机调度
处理机调度概念: 进程切换就是CPU资源当前占用者的切换,通过进程切换实现CPU的时分复用。进程切换时需要保存当前进程在PCB中的执行上下文,同时恢复下一个进程的执行上下文。而处理机调度就是要实现从进程就绪队列中挑选下一个占用CPU运行的进程;如果存在多个可用CPU,还要从中挑选就绪进程可用的CPU资源。因此其中要关注两个内容:调度策略与调度时机。调度时机: 有...
2019-12-18 15:21:30
394
1
原创 操作系统学习笔记(十八):进程控制
进程切换(上下文切换):定义:暂停当前运行进程,从运行状态变成其他状态 调度另一个进程从就绪状态变成运行状态要求:切换前,保存进程上下文 切换后,恢复进程上下文 快速切换进程存储的生命周期的信息:寄存器(PC,SP,...) CPU状态 内存地址空间进程控制块PCB:内核的进程状态记录内核为每个进程维护了对应的进程控制块PCB 内核将相同状态的进程的PCB...
2019-06-15 15:49:27
645
原创 操作系统学习笔记(十七):进程和线程
进程:进程概念:定义:进程是指一个具有一定独立功能的程序在一个数据集合上的一次动态执行的过程。组成:代码 数据 状态寄存器:CPU状态CP0、指令指针IP 通用寄存器:AX、BX、CX 进程占用系统资源:打开文件、已分配内存特点:动态性:客动态地创建、结束进程 并发性:进程既可以被独立调度并占用处理机运行 独立性:不同的进程的工作不相互影响 制约性:因访问共...
2019-06-14 23:34:53
603
原创 操作系统学习笔记(十六):页面置换算法
功能:置换算法是指当出现缺页异常时,需要调入新页面而内存已满时,置换算法选择被置换的物理页面。设计目标:尽可能减少页面的调入调出次数; 把未来不再访问或短期内不访问的页面调出。页面锁定:了解具体的置换算法之前,先了解一个概念,页面锁定。页面锁定是用来描述某些必须常驻内存的逻辑页面,比如操作系统的关键部分,再比如一些要求响应速度的代码和数据,...
2019-05-28 00:18:54
4715
3
原创 操作系统学习笔记(十五):虚拟存储
虚拟存储是想把一部分内存中的内容暂时存放到外存中,以提供更大的内存空间。虚拟存储的目标:1. 只把部分程序放到内存中,从而运行比物理内存大的程序。并且由操作系统完成,无需程序员的干涉。2. 实现进程在内存和外存在之间交换,从而获得更多的空闲内存空间。在内存与外存之间只交换进程的部分内容。局部性原理:具体讲虚拟存储之前先了解一下局部性原理。局部性原理是指程序在执行过程中的一个...
2019-05-22 23:55:08
1537
原创 操作系统学习笔记(十四):覆盖、交换
接下来几节都是对虚拟存储的讲解。虚拟存储是非连续存储管理的扩展。通过将内存中的数据暂存到外存的方式,为进程提供更大的内存空间。虚拟存储出现的主要原因是因为程序规模的增长速度远远大于存储器容量的增长速度,导致内存空间不够用。其实针对内存空间不够用的问题有多重解决方案,比如覆盖、交换、虚拟存储。它们的概念如下:覆盖:应用程序手动把需要的指令和数据加载到内存; 交换:操作系统自动把暂时不能执行的程...
2019-05-18 15:37:55
1156
原创 操作系统学习笔记(十三):段页式存储管理
段页式存储管理是将前面讲过的段式存储管理与页式存储管理结合起来。这一节对段页式存储管理进行讨论。段页式存储管理的需求:段式存储管理在内存保护方面有优势。如何理解呢?因为分段时是将具有相同访问方式和数据属性的内容分配到一段连续内存中,也就是每个段内的数据属性是相似的,便于统一管理和保护。 页式存储管理在内存利用和优化转移到后备存储方面有优势。因为页式存储管理中内存划分的基本块更小,对提高内...
2019-05-18 13:53:12
4096
原创 操作系统学习笔记(十二):非连续内存分配——页式存储管理
页式存储管理中,物理内存被划分为大小相同的基本分配单位,我们称为页帧,页帧的大小必须是2的幂次方,这样进行地址转换的时候比较快,可以通过二进制移位实现。比如32位系统中,4Kbyte是常见的页帧大小。而逻辑内存也被划分为大小相同的基本分配单位,我们称为页面,页面与页帧大小必须相等。页帧与页面一个是对物理内存地址一个是对逻辑内存地址而言的。因此页式存储管理中要处理逻辑地址与物理地址的转换,也就变为对...
2019-05-17 12:15:26
2776
原创 操作系统学习笔记(十一):非连续内存分配——段式存储管理
段式存储管理中,将程序的逻辑地址空间内容分为不同的段进行管理,逻辑地址空间与物理地址空间之间的映射关系图可以如下所示:每个段内部是连续的,但是不同的段在物理内存上是不连续的。段的概念:段表示访问方式和存储数据等属性相同的一段地址空间; 一个段对应一个连续的内存块; 若干个段共同组成进程的逻辑地址空间。段访问:逻辑地址由二元组表示。其中 s 表示段号,addr 表示段内偏移...
2019-05-16 12:33:47
1674
原创 操作系统学习笔记(十):非连续内存分配——背景
连续内存分配给内存分配带来了很多不便,可能所有空闲片区大小都无法满足需求大小,这个分配就会失败。基于这种现状,就有了非连续内存分配的需求。非连续分配成功的几率更高,但也面对更多的问题,比如分配时是不是1个字节的空间也可以进行分配?显然1个字节为单位分配太短了。因此我们需要选择不同尺度的基本块进行分配管理。实际操作系统中出现了两种基本块,一种是段式,一种是页式。段式分的块比较大,页式分配的块比较小。...
2019-05-15 23:37:56
352
原创 操作系统学习笔记(九):连续内存分配——伙伴系统
伙伴系统是连续存储分配的一种办法。它比较好地折中了分配和回收过程中分配块的位置碎片和合并的问题。伙伴系统地概念如下图:整个可分配分区大小为2的幂次方,当需要的内存空间大于当前块的一半的时候就将整个分区分配给进程,如果小于当前分区的一半,就将当前分区对半分开,将其中一半继续与需要的内存大小进行比较,递归进行下去,直到满足所需内存大小大于分区一半。可以看到这种分配方式内部碎片最大为分区大小的一半减一。...
2019-05-15 23:02:34
9589
2
原创 操作系统学习笔记(八):连续内存分配——碎片整理
系统运行过程中,碎片越来越多,很可能无法获取需要的较大的内存空间。我们需要解决这个问题,这就是碎片整理的意义,可以通过碎片整理获得更大的连续内存空间,以便于满足进程的应用空间需求。碎片整理是通过调整进程占用的分区位置来减少或避免分区碎片的。碎片整理有很多种方式,比如碎片紧凑、分区对换。碎片紧凑:实现方式:通过移动分配给进程的内存分区,以合并外部碎片。 条件:所有的应用程序可以动态重定位。...
2019-05-15 21:56:35
2069
原创 操作系统学习笔记(七):连续内存分配——内存碎片、动态分配
在没有其他方式辅助的情况下,我们分配给一个进程的内存是连续的。在分配时候我们需要有动态分配与碎片处理。如何理解呢?就是每个进程需要一块内存,我们要选取合适的位置的内存分配给它。当有的进程先结束了内存还给操作系统,此时可能就会产生内存碎片,要对碎片进行处理。首先对一些概念进行解释。连续内存分配:给进程分配一块不小于指定大小的连续的物理内存区域。 内存碎片:不能被利用的空闲内存,内存碎片又分为外...
2019-05-15 13:00:23
3195
原创 操作系统学习笔记(六):地址空间和地址生成
从我们写的代码到最后在总线上出现的物理地址,有一个转换的过程,在学习具体的转换算法之前,我们需要学习地址生成的过程。生成过程中并不是所有地址都允许访问的,因此还需要对地址的合法性进行检查。地址空间定义:计算机地址空间有两种,物理地址空间和逻辑地址空间。物理地址空间就是硬件支持的真实地址空间,这是受硬件支持的,比如32位的系统,就是从0到4G-1的位置。逻辑地址空间就是在CPU中运行的进程看...
2019-05-15 00:18:46
3365
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人