<ML笔记> 线性回归、Logistic回归与Softmax回归
笔记与代码仓库:https://github.com/yunsaijc/LearnMachineLearning.git
分类:目标是离散变量
回归:目标是连续变量
Logistic回归与Softmax回归虽然称为“回归”,但是目标是分类。即通过回归的过程来得到连续值,最后再处理一下变成分类
线性回归
其实高中就有学过,在高中的题目形式大概是:用一条直线来拟合散点数据,通过平方差损失来确定最优的直线
一元线性回归的形式: \[y=\beta_0+\beta_1x\] 用数据点\(\{(x_i, y_i)\}\)来确定参数\([\beta_0,
\beta_1]\)的值即可。其中用来度量损失的函数称为“残差平方和”。残差即真实值与预测值之间的差:
\[e=y-\hat{y}\] 那么损失定义为: \[L=\sum_1^n
e_i^2=\sum_1^n(y_i-(\hat{\beta_0}+\hat{\beta_1}x))^2\]
用最小二乘法来最小化\(L\):求对于\([\beta_0,
\beta_1]\)的偏导,使其为零即可
Logistic 回归(逻辑回归)
回归形式的确定
...
<PLM&LLM系列论文阅读>Transformer原文<Attention Is All You Need>阅读笔记
原文链接:https://arxiv.org/abs/1706.03762
Intro
RNN(特别是LSTM和GRN)在序列的建模与转换问题上(如语言建模、机器翻译)成为了SOTA方法,因此学者们对循环语言模型
(recurrent language models) 和编码-解码器架构 (encoder-decoder)
进行了大量研究。
循环网络模型考虑了输入和输出序列中,字符的位置来进行计算。循环模型用上一个隐藏状态\(h_{t-1}\)和\(t\)时刻的输入来产生下一个隐藏状态\(h_t\),也就是将时序信息融入了计算。这种时序模型难以并行化处理,计算性能差。虽然有许多并行化改进的研究,但这个问题仍然非常存在且关键
注意力机制此前已经应用于编码-解码器架构中,用于将编码器的信息有效地传递给解码器,然而这种机制大都与RNN结合使用
本文提出了Transformer架构,不依赖循环网络,而是完全基于注意力机制来建立输入与输出之间的全局关系。Transformer更加支持并行化,并且在更短的训练时间内达到新的SOTA性能
背景
为了减少时序计算的开销,Extended Neu ...
与PLM有关的知识图谱构建相关文献-阅读笔记
(2023)PiVe
现有的LLM大多基于非结构化的数据进行预训练,所以对于“将文本组织成机器可读的结构化的格式”的任务,它们的表现并不理想
语义图是一种图结构的数据,存储着机器可以访问的信息。从文本生成语义图,成为text-to-graph(T2G)。过去的T2G主要依靠微调的小语言模型来完成。然而对于LLM来说,即使在少样本的条件下,LLM(如GPT-3.5)仍然存在错误
本文中,我们重点讨论了如何提高LLM生成图的能力。为此,我们提出了Prompting
through Iterative Verification
(PiVe)的框架,如图1所示。PiVe利用外部验证模块(即一个小得多的LM),并将验证模块的反馈合并到prompt中。PiVe反复使用验证器模块,并在将prompt发送回LLM之前,通过纠正指令来完善prompt,从而大大提高生成的语义图的质量
训练验证模块的方法:我们从一个种子数据集开始(包含文本和图的(T,
G)对),通过在种子集上随意选取一个图G,并对其中的实体、关系或三元组进行任意的扰动,从而构造成一个图扰动数据集。文本、扰动后的图、以及校正描述(用于逆转 ...
ML的4个指标——准确率、精确率、召回率与F1 score
机器学习的分类任务中,准确率(accuracy)、精确率(precision)、召回率(recall)与F1
score是常见的4个评估指标。之前对于这些指标有粗略的了解,如今加深一下理解
混淆矩阵(Confusion Matrix)
混淆矩阵如图所示:
四个值的具体解释为:
TP(True Positive):被正确预测的正例。即真实值为正,预测值为正
TN:被正确预测的反例
FP:被错误预测的正例。即真实值为负,预测值为正
FN(False Negative):被错误预测的反例
即,第一个字母指的是预测正误,第二个字母指的是预测结果
准确率(Accuracy)
表示分类正确的样本占总样本个数的比例,即:\[Accuracy=\frac{TP+TN}{TP+TN+FP+FN}\]
这是最直接的指标,但缺陷在于:当不同类别的样本占比不平衡时,占比大的类别会是影响准确率的最主要因素
举例:当数据集中99%为正例,那么只要分类器一直预测为正,即可达到很高的准确率
因此只有当数据集中各个类别样本比例均衡时,准确率才有较大的参考意义
精确率(Precision)
表示被预测为正的样本 ...
Llama部署与运行
下载
到huggingface下载第三方下载好的权重:https://huggingface.co/NousResearch/Llama-2-7b-hf(这个已经是huggingface格式的了)
或者到镜像站下载
运行
光是下载就琢磨了好久,更新一下运行记录。
使用中文模型Chinese-LLaMA-Alpaca的scripts/inference/inference_hf.py脚本来运行一下模型(注意安装好依赖包,如果出错可能是依赖包的版本不符合requirements.txt的问题)
运行命令: 1234python /home/jc/workspace/exp/test_llama.py \ --base_model /home/jc/workspace/llama/Llama-2-7b-hf \ --with_prompt \ --interactive
其中--base_model为在下载阶段,下载下来的文件夹的路径。
运行结果如下:
初步的运行完成,此时为interactive运行模式,即一问一答的模式,类似于ChatGPT的Web版
还有一种模式是batch模式,把- ...
综述<A Survey of Large Language Models>阅读笔记
原文链接:https://arxiv.org/abs/2303.18223
Intro
为了让机器像人类一样阅读、写作和交流,语言建模(LM)是提高机器语言智能的主要方法之一。其原理是对词语序列的生成概率进行建模,以预测未来的、或缺失的单词的概率。
LM的发展可以分为4个阶段:
统计语言模型SLM:基于统计学习方法开发。基本思想是基于马尔可夫假设来建立词频预测模型
神经语言模型NLM:通过神经网络(如RNN)来描述单词序列的概率
预训练语言模型PLM:确立了“预训练和微调”的学习范式
大语言模型LLM:通过对PLM的模型或数据大小进行扩展,能够提高下游任务的模型性能。与较小的PLM相比,LLM展现出了“涌现能力”
背景
通常,LLM指包含千亿(100B)或更多参数的Transformer语言模型。现有的
LLM 采用类似的 Transformer 架构和与小型语言模型
相同的预训练目标(如语言建模)
LLM的扩展法则
KM扩展法则:是由Kaplan等人提出的,神经语言模型的性能与模型规模\((N)\)、数据集规模\((D)\)和训练计算量\((C)\)之间的幂律关系: \[
\ ...
AI学习日志
2024年
4月
15~16日
逻辑回归(Logistic Regression) “逻辑”是音译,不代表有逻辑性
过程是回归,但目的是分类:在回归的值上加个阈值就能分类
二分类的散点和阶跃函数非常相似,但阶跃不可导,故选sigmoid作为拟合函数
然后做最大似然估计
损失函数如果用残差平方和,不是凸函数不好优化,所以取负对数似然
尤其适用于二分类问题,不要求自变量和因变量是线性关系 (https://zhuanlan.zhihu.com/p/139122386)
线性模型的本质 \(y=g^{-1}(w^Tx+b)\),其中\(g^{-1}\)单调可微,称为联系函数
本质:决策边界是线性
如果一个乘法式子中自变量x前的系数w只影响一个x,则是线性的;否则非线性
(https://zhuanlan.zhihu.com/p/147599207,https://www.zhihu.com/question/362676570)
3月
8~10日
LLM LoRA微调实践: https://zhuanlan.zhihu.com/p/649315197;https://xtx0o8yn7 ...
AI中的线性代数(有空更新)
基本符号
\(A \in \mathbb{R}^{m\times
n}\)表示一个\(m\)行\(n\)列的实数矩阵(matrix)
\(x\in
\mathbb{R}^n\)表示一个有\(n\)个元素的向量(vector)。通常来说,一个\(n\)维向量指的是一个\(n\times 1\)的矩阵(即列向量(column
vector))。通过转置(transpose)可以表示对应的\(1\times n\)矩阵(即行向量(row
vector))
\(x_i\)表示向量\(x\)的第\(i\)个元素
\(a_{ij}\ or\ A_{ij}\)表示矩阵\(A\)中\(i\)行\(j\)列的元素
\(a_j\ or\ A_{:,j}\)表示矩阵\(A\)的第\(j\)列
\(a_i^T\ or\ A_{i,:}\)表示矩阵\(A\)的第\(i\)行
矩阵乘法(Matrix
Multiplication)
矩阵\(A \in \mathbb{R}^{m\times
n}\)和矩阵\(B \in \mathbb{R}^{n\times
p}\)的乘积(product)是\(C=AB\ ...
信息安全数学基础总结(有空更新)
大二第一学期,学院开设了《信息安全数学基础》这门课。但由于当时对信息安全的理解还不够深入,再加上已经过去了两年之久,很多知识都理解得不好,且印象模糊。借着大四这个相对空闲的时间,对学过的知识进行复习和总结。
2024.03.01:
当时太天真了,以为大四很空闲,现在看来并不是这样的...这篇博客就占个坑留到以后更新吧...T_T
初等数论
整数的因子分解
整除
\(a,\ b\in \mathbb{Z},\ b\neq 0,\quad 若\
\exists\ q,\ 使得\ a=qb,\ 则\ b\mid a\ (b整除a),\ 否则\ b\nmid
a\)
\(b\)称为\(a\)的因子,\(a\)称为\(b\)的倍数
性质
传递性:\(c\mid b,\ b\mid a,\ then\ c\mid
a\)
\(b\mid a,\ then\ bc\mid ac\)
\(c\mid a,\ c\mid b,\ then\ c\mid
ma+nb\)
Euclid(欧几里得)除法
\(a,\ b\in \mathbb{Z},\ b>0,\
则存在唯一的整数对q,r ...
关于HTTP反向代理的理解
正向代理(Forward Proxy)
正向代理通常直接称为代理(Proxy),也就是日常情景下使用的各种BrupSuite、梯子等的代理,需要我们手动进行配置。
代理的作用
便于安全审计:所有流量经过一台代理服务器,那么安全审计就容易得多
加速访问/节省带宽:代理服务器可以返回缓存好的内容,无需向外网发出请求,从而加快访问速度、节省带宽
保护个人信息:使用代理隐藏自己的真实IP地址
突破访问限制:有时自己的地址被禁止访问,可以连接白名单上的代理服务器来进行访问
反向代理((Reverse Proxy)
个人理解:类似于计算机网络中的NAT(网络地址转发)技术。用户并不知道自己被“反向代理”了,反向代理服务器(如Nginx)接收到请求后,转发给Web服务器(如Apache)进行处理。
为了方便阅读,此处开始用Nginx来指代反向代理服务器。
反向代理作用
负载均衡:访问压力大时,Nginx可以将请求分配给多个不同的Web服务器进行处理,而用户访问的地址仍然是相同的地址(即Nginx服务器的地址)
提高安全性:Web服务器对外不可见,此时Nginx相当于一个防火墙
节省IP资源:如 ...