- 博客(39)
- 收藏
- 关注
原创 从0开始学习大模型--Day03--Agent规划与记忆
事实上,有没有这种类似思维模式的框架,对于大模型的给出的答案,质量与耗费的时间区别是显而易见的,无论是只有标准,仅推理还是仅行动,都会在一定程度上限制答案,相当于是在闭门造车,而如果用对了框架,像前面所说的一样,先规划,做出行动后思考是否合理,再去决定下一步行动,这样给出的答案相比之下就会更完善,在解决问题上也会更高效。当我们对LLM要求“think step by step”,会发现LLM会把问题分解成多个步骤,一步一步思考问题和如何解决,能使得输出的结果更加准确,这是一种线性的思维模式。
2025-05-08 00:03:45
537
原创 从0开始学习大模型--Day2--大模型的工作流程以及初始Agent
简单来说,就是我们给出的问题相对于大模型来说是让其对现有token表做了一个预测,根据回答的文本,先预测出第一个token,输出第一个字,输出的字又会变成token加入到原来的token表中来预测下一个字,平时在使用大模型时看到回答一个字一个字地往外蹦,其实就是大模型在推理。在处理问题时,LLM的解决流程是接受输入,思考然后输出,而对于我们人类来说,除了这些流程外,基于问题的不同还可能会涉及到记忆、工具、规划等思考,而这些,就需要Agent来辅助LLM做到了,相当于帮它量化了人类的思维模式。
2025-05-06 22:53:27
479
原创 从0开始学习大模型--Day01--大模型是什么
在这个阶段,如果再像大模型提问“埃菲尔铁塔在哪个国家”,他会根据学习过的人类对话的语料以及垂直领域知识,按照人类的意图来回答这个问题,即大概率回答“法国”,但并不一定符合我们认知中的一些偏好,可能会有一些过激或者涉及到种族歧视等的言论;我们只需要根据我们的问题向大模型提出需求,就能获得详细的回答,但要注意所提出问题的关键词和方式需要严谨地按照问题来,往往几个字的区别,大模型所理解的意思和给出的答案的方向是截然不同的。大模型的训练大体分为预训练、SFT(监督微调)以及RLHF(基于人类反馈的强化学习)。
2025-05-05 23:23:48
889
原创 从0开始学习机器学习--Day33--机器学习阶段总结
准确率:计算公式为(预测正确的样本数)/(总样本数),在正常数据中是一个很好的评估指标,但在不正常(如偏斜类)问题中会被数据误导;为计算机开发的一种功能,采用学习算法使其模拟人类大脑的学习方式,从而实现各种各样的能力,如网站搜索,图片推荐,清理垃圾邮件等等。召回率:计算公式为(预测正确的正例数)/(实际正例数),由于关注的是真实值为真的样本,在偏斜类问题一般用召回率来判断模型好坏;推荐算法:基于内容选择更合适的特征,通过学习同时调整参数和特征,输出为常数值,常见有视频推送、预测电影预售利润等。
2024-11-22 23:23:12
2028
原创 从0开始学习机器学习--Day32--推荐系统作业
小结:均值归一化的必要性:预测用户的评分在结果出来前是不知道的,不作归一化会使某些数据过大是结果偏移;在做最终预测前可以人造一个小数据用于检测算法可用性,避免每次都要运行整哥算法,方便进行优化。题目:给用户推荐电影。
2024-11-21 21:34:25
400
原创 异常检测作业
小结:在算法中使用协方差或方差对于准确率、召回率的影响都不大,但是前者能catch到的异常值在这里比方差多,我想是因为其考虑到了多个维度上多个数据的偏差。题目2:高维数据的异常检测。题目1:检测异常服务器。数据的高斯分布等高线图。
2024-11-20 23:27:52
294
原创 从0开始学习机器学习--Day31--基于内容的推荐算法
推荐系统,也就是我们常说的大数据推送,在我们平时所使用的软件或观看的视频平台上都有加装它,用于推送用户喜爱的数据。在这个过程中,用户对电影的评分协同了算法进行更好地优化,并过滤了无用的特征,从而能更更好地预测其评分。假设我们有四名用户A,B,C,D,三部爱情电影和两部动作电影,我们有这四位用户对其中几部电影的评分,想要预测他们对没看过电影的评分,在这里用。有时候,我们可能会对问题直接运行这个算法得到结果,但可能不清楚其预测的过程中参照了什么用户特性,这时就可以通过低秩矩阵分解,将我们的预测值。
2024-11-20 21:57:02
597
原创 从0开始机器学习--Day30--异常检测算法
这里说的特征选取实际上是在第一次算法运行之后进行选择,当我们运行算法后,发现异常样本的特征值落在了正常样本的范围里,此时就需要我们返回训练集,通过观察其特征,试图加入一个新的特征(例如,可以通过构造一个数,其值通过正常数据特征除以异常数据特征计算得出的新特征,这样其比值变化便能帮助我们筛选出异常样本)来让算法在保证其他结果不变的情况下,筛选出这个异常样本,使其在后续拟合的函数中落在边界之外。在之前,我们有提到过可以通过在算法应用的结果里加入一个返回值来评估算法优化的好坏,在这里我们用来评估异常检测系统。
2024-11-19 22:12:35
890
原创 从0开始机器学习--Day29--K-means算法以及PCA降维作业
小结:与之前相比,此次作业加深了对于数据预处理的重要性,希望在后面建立粗略模型时能先把数据预处理的细节打磨一下,方便后面整体建模。题目1:计算聚类中心点并对图像进行重构。降维又重构的数据与原始数据对比。题目2:对二维数据进行降维。对数据进行去均值化处理。对数据进行去均值化处理。题目3:对图片进行降维。
2024-11-18 23:41:03
389
原创 从0开始机器学习--Day28--PCA算法使用建议及初识异常检测
之前说到数据降维的方法是寻找到一个所有样本到其投影误差的投影平面,那么升维其实就是式子里的矩阵移到另一边即可:,注意这里没有用x表示是因为除非本身所有样本点的投影误差都很小,可以近似认为就在线上,因为这里的升维并不是完全求出原来的数据矩阵,只是将其在投影平面上的对应点近似认为是原来的样本点,还是存在一定误差的。
2024-11-17 22:57:24
640
原创 从0开始机器学习--Day27--主成分分析方法
如图,假设我们有一个二维的特征,想要将其降为一维,简单的方法是寻找一条直线,图中选择的是过原点斜率为正的直线,可以观察到,每个样本点到直线之间的距离都很小,这就是PCA算法实现的结果,每个样本点到直线或低维平面的距离叫做投影误差,而PCA的目的简单来说就是寻找到一个投影平面,使得所有样本点的投影误差最小。注意,PCA在将二维降成一维的时候,拟合的向量有时会跟线性回归拟合直线很像,但实际上这是两个不同的东西,直观来讲就是前者是计算点到直线的距离,做的是垂线,特征之间没有区别;,最终得到我们想要的降维矩阵。
2024-11-16 23:19:29
456
原创 从0开始学习机器学习--Day26--聚类算法
如图,可以看到两者的区别在于无监督学习的样本是没有标签的,换言之就是无监督学习不会赋予主观上的判断,需要算法自己去探寻区别,第二张图就是算法经过计算根据位置特点给两组样本划分开来,尽管算法并不知道这种特点意味着什么,这种按照特点分成一组或几组簇的算法叫聚类算法。一般来说,我们选择的迭代次数在50到10000之间,注意,当簇的数量较低时,如2-10,多次的迭代会给出好的结果,而如果簇的种类较多,一般在第一次初始化就会得到相当好的结果,但后面即便进行多次初始化也不会有太大的提升。分配好的两类簇以及聚类中心点。
2024-11-15 23:10:56
1688
原创 从0开始学习机器学习--Day25--SVM作业
注意:虽然C为100时决策边界完美的把正负样本都分开来,但是此时准确度为100%,有可能左边这个点属于异常值,应该要被排除的,在实际运用中出现这种情况要警惕。总结:运用SVM可以帮助我们减少代码量和时间复杂度,但注意根据特征和数据集的数量选择核函数。sigma=50时决策边界。题目2:线性不可分SVM。题目1:线性可分SVM。题目3:寻找最优参数。题目4:垃圾邮件过滤。
2024-11-14 21:17:36
399
原创 从0开始学习机器学习--Day24--核函数
挑选核函数,像之前由于我们的训练样本较少,函数里的特征量较多,为了避免过拟合,我们都是使用了线性核函数,也就是普通的。的形式输入,但并不是所有符合情景的核函数都是能使用的,需要满足的一个规定叫默塞尔定理(对于形如2q - 1的整数,只有在q本身也是一个素数的情况下,它才有可能是素数,同理,可以要求算法在用数值技巧不要脱离对于参数的定义),要求所用的SVM算法能满足优化方法,且能快速求得参数。,其中C为常数,当预测样本和标记点很接近时,k值会非常大,所以其使用的前提是样本的特征值都大于0;
2024-11-13 22:18:06
747
原创 从0开始机器学习--Day23--支持向量机
经过前面的学习,我们已经知道在解决问题时,重要的不仅仅是要在算法A或算法B中选择更优的,而是考虑怎么选择用于学习算法的特征和正则化参数,相比神经网络和逻辑回归,支持向量机在这两个方面做得更好。
2024-11-12 22:19:23
762
原创 误差作业(全)
取值太大,在计算代价函数时会出现Nan的情况,可以在计算cost函数里加入定点的模式,在计算到Nan时返回存在Nan;画图时不同横纵轴的图形之间要注意用plt.show()隔开,否则会出现图像重叠的情况。总结:在分三种数据集后,正则化一般只在训练集使用(在训练集正则化后参数就已经被筛选好了,后续直接使用就行,不需要做二次筛选);lambda=100时训练集和验证集的误差比较。lambda=0时训练集和验证集的误差比较。lambda=1时训练集和验证集的误差比较。题目:利用水库的水位变化预测大坝的出水量。
2024-11-12 17:35:10
229
原创 从0开始学习机器学习--Day22--优化总结以及误差作业(上)
假如我们有这样一个学习问题:我需要在{to,too,two}中选出一个填入以下句子:For breakfast, I ate __eggs.在这种问题中,句子的信息越多,算法越有可能得到答案,也就是说训练集数据额定增大是有益的。在房价问题中,假如我们只给了房屋面积的大小以及价格,单纯只靠这个预测到真实的价格的难度是很大的,毕竟还需要考虑所处位置的地价。其实,这类问题概括起来,只要解决了偏差和方差的问题就可以了,那么我们要做的就是让算法的参数尽可能地多的同时,再增加训练集的数量,这样,,这样我们就可以保证。
2024-11-12 00:20:25
387
原创 从0开始学习机器学习--Day21--算法的评估标准
就像我们刚刚说的,第二个算法的逻辑很简单,他总是预测结果是0,即负样本,那么在一个正负样本比例很极端的训练集中,后者有着天然的优势,所以单纯靠预测正确率来判断并不能检验算法的好坏,我们把这种样本集中一类比另一类样本多很多的问题称为偏斜类问题。例如,在癌症分类问题中,我们会将概率从0.5改为0.7,即当我们认为该病人有大于等于70%概率得癌症的时候才下判断,毕竟这是一个听起来很恐怖的事情,而在这个时候我们的查准率也会随我们对标准放宽而提高;来判断,这能避免我们忽略召回率的问题。
2024-11-10 22:40:12
401
原创 从0开始学习机器学习--Day20--优化算法的思路
假设我们思考根据词干将一些单词归为同一类以方便算法做出更好的判断,但有的只是因为单词的时态发生改变(discount,discounted,discounting),有的根本就是两个单词(universe,university),在这种情况下,最好的判断方法就是我们实施词干提取的方法然后观察效果是否显著,而在这种背景下,返回一个数值评价就能帮我们直观地感受一个方法的好坏,简单的做法就是用分类错误率作为数值评价,假如用了词干提取后错误率下降了,这就说明这是一个好的改进思路。对于垃圾邮件分类算法作误差分析。
2024-11-09 22:09:59
707
原创 从0开始学习机器学习--Day19--学习曲线
一般来说,如果一个算法的表现不理想,那么多半是因为出现了欠拟合或过拟合问题,这种时候我们要做的就是搞清楚出现的是偏差问题还是方差问题,亦或是二者皆有,这有助于我们精准定位问题所在。之前,我们发现假设函数多项式的次数越高,代价函数的误差就越小,假设我们把多项式的次数作为横坐标,训练集代价函数的误差为纵坐标画图,呈现出来的应该是随着横坐标增大纵坐标不断减小的图像:随着多项式次数增加两种代价函数的变化情况但如果换做是验证集的假设函数,图像又有所不同。可以看到在。
2024-11-08 22:11:42
2276
原创 从0开始学习机器学习--Day18--评估模型
在很多时候,构建并优化完模型并不代表这个问题就被解决了。事实上,很多时候,在第一次优化结束并进行预测时,其与真实值之间的误差都会提醒你这个模型需要继续优化。那么,我们应该怎么优化它呢?选择更多的样本数据放入训练集是一个方法,毕竟,结果误差可能是因为有意料之外的特征没有考虑到,而纳入更多的数据进入数据集可以帮助计算机在特征分析上有更广阔的视角。但事实上,很多时候选取更大的训练集不会有很好的实际作用。
2024-11-07 23:06:54
922
原创 小白入门学习计算机辅助工具--Git和Github
虽然平时大家都有听过Github,但这实际上要分为Git和Github,我们可以简单理解为前者是用于本地,后者是远程端。下面我们来看看一些基本的操作。
2024-11-07 22:57:38
1030
原创 从0开始机器学习--Day17--神经网络反向传播作业
总结:与之前相比,这次代码中数学的运算多了很多,尤其是偏导部分;注意写代码前要多推导数学运算的过程不要出现差错;有所改进的是跟之前在minimize中加flatten相比,直接添加了一个函数对参数进行序列化操作来方便调用scipy库。题目:识别数字0-9,做梯度检测来验证是否在梯度下降过程中存在问题,并可视化隐藏层。
2024-11-06 23:20:16
323
原创 从0开始机器学习--Day16--神经网络作业
总结:在构建多元分类的模型中,方法就是将其转化为二元分类,再做循环计算,这样每次只需要将本身看做为0或1即可,注意其每次循环时要取概率最高的那次才有意义。用神经网络时,其结果有点过于理想了,怀疑是出现了过拟合现象。题目:构建逻辑回归模型来识别数字0-9。
2024-11-05 23:36:55
634
原创 从0开始学习机器学习--Day15--梯度检验以及随机初始化
code小技巧:在编写代码时,要格外注意参数的储存形式,不同的算法对于其的要求不一样,建议在调用算法的函数时输出参数的格式来确保是其要求的向量或矩阵形式。如果原来是矩阵,可以通过拆开值并按顺序传入的形式改为向量,这样如果后面有重新转成矩阵的需求时可以保证参数里各项的值都跟原来的一样。
2024-11-04 21:58:06
889
原创 从0开始学习机器学习--Day14--如何优化神经网络的代价函数
在上一篇文章中,解析了神经网络处理分类问题的过程,类似的,在处理多元分类问题时,神经网络会按照类型分成多个输出层的神经元来表示,如下:处理4个分类问题时的神经网络我们可以看到,相较于之前的分类问题,,这里用的输出是以向量的方式来区分行人、汽车、摩托车还有卡车四种图片,即输出四维向量与原始数据去对比是否预测成功。
2024-11-03 22:17:43
949
原创 从0开始学习机器学习--Day13--神经网络如何处理复杂非线性函数
在上一篇文章中,我们浅显地了解了神经网络的架构以及没想神经元的激活项是怎么计算的,下面我们通过一个详细的例子来说明神经网络是怎么计算复杂的非线性函数的输入的。
2024-11-02 22:05:46
962
原创 从0开始学习机器学习--Day12--初识神经网络
实际上,生物学家们通过在动物身上做实验发现,如果将听觉或者触觉的神经皮层的神经切断,转而连接视觉的神经,那么被切断的皮层最终能够处理眼睛所带来的信息,也就是学会了“看”,这进一步说明模仿大脑最关键的是找到或设计出一个学习算法。神经网络的设计,跟大脑神经元之间信息的传递方式一致,都是通过树突,输入通道来接受一定数目的信息并作相关的计算,再通过轴突传递给其他节点,不同神经元之间通过发出微弱的电流通过输出通道传递信息给下一个神经元,下面我们来看看人工的神经网络是怎样的。如下是一张非线性假设的图,假如,只有。
2024-11-01 22:13:17
693
原创 从0开始学习机器学习--Day11--逻辑作业--正则化
1、在调用classification_report时,可能会输出的预测值和训练值的数据类型不一样而报错,由于我们是分类问题,输出的应该是概率,也就是离散值而不应该是连续值,这里在输出时做了类型的转变,将其变为数组的形式。2、之所以在梯度更新公式以及代价函数中没有对进行限制,是因为其可以理解为代表的是决策边界的截距,这个截距可以很小,但其大小是由样本决定的,如果正负样本本身的值就比较大,那么的值也就会变大。
2024-10-31 23:07:34
327
原创 从0开始学习机器学习--Day10--线性回归和逻辑回归上的正则化
通常过拟合问题较多发生在变量较多的问题,按照过拟合得出的假设函数可以很好地拟合训练集,而且这样得出的代价函数可能会非常接近0或者就恰好等于0,这样的曲线只想着拟合当前这个数据集,导致其无法泛化到新的样本中,泛化指的是一个假设模型应用到新样本的能力,通俗的讲,新样本就是在房价的预测模型中没有在训练集中出现的房子的面积。当然了,这里加入矩阵后也是可逆的,感兴趣的可以去算一下其行列式,它的行列式不为0,说明了其行向量和列向量不存在线性相关的关系,可以通过矩阵乘法得到逆矩阵。若参数过小,则会保留很多不必要的参数。
2024-10-30 21:42:46
691
原创 从0开始机器学习--Day7--逻辑回归的代价函数及简化
在实际应用中,我们发现如果像处理线性回归的问题一样用这个代价函数来处理分类问题的参数,由于假设函数sigmoid是非线性的,把它带入到。以肿瘤病人的分类问题来理解,就是当假设函数输出为0,也就是说肿瘤病人的肿瘤为恶性肿瘤的概率为0,但此时。尽管我们把分类问题的代价函数的表达式写了出来,但这个式子看起来比较复杂,还要分两种情况,那么我们可不可以把它写成一个式子呢?,这跟线性回归时的式子是一样的,但两者之间假设函数的定义式子是不一样的,所以这看起来一样的式子在定义里实际上是完全不同的。
2024-10-29 21:37:36
394
原创 从0开始机器学习--Day9--逻辑回归作业1.0
在作业讲解视频中,如果使用的是跟视频一样的代码,读取特征方法get_X(df)的最后一句,return data.iloc[:, :-1].as_matrix(),用新版本的pandas包会报错('DataFrame' object has no attribute 'as_matrix'),因为新版本的pandas已经去除了as_matrix()方法,只需要把as_matrix()改为values即可。(小编用不一样的方法取值的输出也跟视频输出的值不一样,可能是库的问题)带有决策边界,拟合好的图。
2024-10-29 21:28:15
166
原创 从0开始学习机器学习--Day8--如何解决更复杂的分类问题
事实上,梯度下降并不是唯一能用在逻辑回归上的算法,同样是通过计算代价函数的值以及代价函数对于每一个参数的偏导来优化,共轭梯度法,BFGS和L-BFGS就是其中一些比较高级的算法。这些算法有许多优点,例如,它们不需要手动选择学习率,在这些算法的内部有一个智能内循环,会自动尝试不同的学习率并选择一个好的学习率,甚至能做到为每次迭代都选择一个不同的学习率来,这使得它们可以比梯度下降更快收敛到最小值。就可以了,通过构造多个假设函数,我们会得到每种情况的概率以及参数,从而像二元分类问题一样解决多元分类问题。
2024-10-28 20:14:26
268
原创 从0开始机器学习--Day6--逻辑回归自己决策界限
这个例子告诉我们,通过在假设函数中加入复杂的多项式,我们可以得到更复杂的决策边界,而不只是仅仅用直线分开正负样本。需要注意的是,决策边界是由假设函数的参数决定的,与数据集本身无关,即使去掉了这些数据点,决策边界以及划分的区域依然存在。如图,我们可以观察到图像是一条过点(0,0.5)的曲线,最重要的是,他有我们想要应用在分类问题上的输出:他的。,显然,这个直线的意义便是取圆心为原点,半径为1的圆线上及圆以外的点,其预测值。回到之间所说的肿瘤问题,假设我们将一个特征量x喂给我们的假设函数,即。
2024-10-26 19:07:18
685
原创 从0开始学习机器学习--Day5--作业总结及初步了解分类问题
尽管学了梯度下降以及正规方程,解决线性回归仍是运用sklearn的线性回归模型解决,而通过用梯度下降去解决,更深刻地认识到了之前视频所学的参数定义,代价函数推导、必要的操作(归一化、数据转化成矩阵、向量的形式等等)以及在运用过程中各种严格的定义,而且老师所讲的各种限制以及过程中涉及到的矩阵、向量和函数的关系都有所体现,希望在下次作业中先试着先用梯度下降或者正规方程去解决。提到分类问题,像之前说的垃圾邮件、网络上的欺诈性新闻以及肿瘤的好坏,尝试预测变量y都可以有两个取值的变量0或1,0叫做负类,1叫做正类。
2024-10-25 22:00:41
358
原创 从0开始学习机器学习--Day4--多元梯度下降及正规方程
而图中当迭代次数到了300到400之间的时候,图像已经接近一条平坦的曲线了,此时我们可以认为已经梯度下降已经收敛到最优解,当然,每个不同的机器学习问题,收敛到最优解的迭代次数都不一样,在收敛到最小值之前我们都无法判断应该迭代多少次。我们可以看到这个房价关于房屋面积的散点图如果用传统的线性回归的函数形式或者二次函数形式来拟合并不是很合理,前者不是曲线,后者在增长到一定程度后会下降,显然三次函数的形式能够保证增长到后面不会下降,那么对应到之前的普通线性回归函数形式,我们可以将。
2024-10-24 22:00:07
958
原创 从0开始学习机器学习--Day3--矩阵的基本运算及多元梯度下降
值得一提的是,就像数字0没有倒数一样,某一行或某一列全为0的矩阵也没有逆矩阵,没有逆矩阵的矩阵被称为奇异矩阵或退化矩阵,至于其他验证有无逆矩阵的方法因其超出了线性代数的范围,不在这里提及,有兴趣的可以上网搜索伴随矩阵行列式为0,齐次线性方程组有零解,秩验证等方法。矩阵空间中有一种特殊的矩阵,类比于实数中的1,这类矩阵内沿对角线上的数字全是1,其余全是0,我们称其为单位矩阵,一般用。转置矩阵的运算比较简单,只需将原来矩阵内的项移动到其行数列数互换的位置即可,假设B是A的转置矩阵,则。
2024-10-23 22:12:41
1087
原创 从0开始学习机器学习--Day2--梯度下降及其在线性回归的应用
在上一篇文章中初步地了解了机器学习的一些概念并接触了代价函数的数学定义,今天从代价函数开始继续学习机器学习。
2024-10-22 22:15:56
1043
原创 从0开始学习机器学习--Day 1--机器学习的相关基本概念
在监督学习中,将用于学习的数据集被称为训练集。在训练集中,m表示训练样本的数量,x表示输入变量,也就是上述所说的特征,y表示输出变量,即预测的目标变量,用(x,y)来表示一个训练样本,在x,y的右上角表数字来表示取数据集表格中的特定位置的值。而在监督学习中,我们经常会看到分类问题,即给出一个数据集,根据数据集的特征你要预测输出的结果是几个离散值的其中一个(如给出的数据集是很多个病人的良性、恶性肿瘤的大小,而预测的结果是良性或者恶性,而数据集的特征则是病人的年龄以及肿瘤的大小)。
2024-10-21 22:54:51
687
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人