0%

拟合指机器学习模型在训练的过程中,通过更新参数,使得模型不断契合可观测数据(训练集)的过程,但在这个过程中容易出现欠拟合(underfitting)和过拟合(overfitting)的情况:一开始模型往往是欠拟合的,也就是说模型无法得到较低的训练误差,也正是因为如此才有了优化的空间,我们需要不断的调整参数使得模型能够更好的拟合训练集数据,但是优化到了一定程度,模型的训练误差远小于它在测试数据集上的误差,这个时候就需要解决过拟合的问题了。

在大模型的应用中,不断涌现出B端对专用数据的需求、C端对个性化与自动化的需求,带来给大模型增加记忆功能的刚性需求,相关产品需求量快速增长。众所周知,如今如火如荼的ChatGPT确实可以帮助我们解决许多问题,但是其作为一款语言大模型,从原理上就不容易实现记录与用户的全部历史对话,以及历史对话过程中的关键信息,这些信息往往只存在一次Session中。为了解决大模型没有“记忆”的问题,引入了向量数据库。

在使用Unity开发游戏的时候经常用到红点系统,当玩家点击之后,或者收到服务器数据之后,都需要刷新红点的显示。如果每个人都自己写自己的红点模块,会增加不少的重复任务量,因此迫切需要一个通用的红点系统,其他模块只需要编写自己模块的表现层代码即可。所以单独抽取了一个红点树的逻辑。简单用UGUI拼了个界面,可以先看效果(暂时以数字表示红点数,0就是没有红点):

之前学习了几种分类的算法:逻辑回归、KNN近邻。这次来看另外一种模型:决策树。决策树是一种对实例进行分类的树形结构,通过多层判断区分目标所属类别。决策树的本质就是通过多层判断,从训练数据集中归纳出一组分类规则。其优点:计算量小,运算速度快;易于理解,可清晰查看各种属性的重要性。但是容易忽略属性间的相关性;样本类别分布不均匀时,容易影响模型表现。

使用 sklearn.cluster 模块可以对未标记的数据进行聚类。对于这类非监督的聚类算法来说,因为数据都是未标记的,所以模型训练完毕后得到的结果可能是与真实标记结果匹配不上的,需要手动矫正一下数据。对于 K-Means 算法来说,我们需要指定一个类别数量。Mean-shift 只需要根据指定的采样数量,自行计算搜索半径,不需要手动指定簇的数量(这里说的簇也就是类别,在 Sklearn 的文档里都叫做簇)。最后会对比一下有监督学习的 KNN 算法,看看效果。

最近用了一段时间的TextMeshPro,也是逐渐对其有一定了解以及自己的一些看法。先说说为什么最近项目切换了TextMeshPro呢?主要还是因为内存问题,项目中Unity版本2020.x,Unity想要升级的要话踩的坑确实有点多,没像Android那样平滑升级,所以切换版本的方案暂时pass掉,在Vulkan引擎下,如果使用Aria字体会偶现内存释放不掉,甚至达到600-800M的程度,一块FontTexture占用几百M的内存,这合理吗?很显然内存优化首当其冲的就是这块FontTexture!

监督式学习:发现数据属性和类别属性之间的关联。并通过利用这些模式用来预测未知数据实例的类别属性。

无监督学习:机器学习的一种方法,没有给定事先标记过的训练示例自动对输入的数据进行分类或分群。

非监督式学习中研究最多、应用最广的是聚类算法(Clustering)。常见的无监督学习应用在聚类分析、关联规则、维度缩减等。聚类算法是机器学习的一种,属于非监督式学习,没有给定事先标记过的训练示例,自动对输入的数据进行分类或分群,所以称之为聚类。

当我们要解决一个分类问题,尤其是一个二分类问题时,如果我们用线性回归去解决就会面临这样一个问题:样本量变大后,准确率会下降。这时为了更好地解决这种分类问题,我们就需要采用逻辑回归的方法了。现在有两个逻辑回归的实战案例:考试通过预测、芯片检测通过预测。同样本次练习也是基于sk-learn库, 通过逻辑回归实现二分类。