Linux基础使用1-目录及文件编辑
Linux基础使用1-目录及文件编辑
使用命令行登录指定的Linux环境
配置本地环境
Windows系统可以选择Termius这个ssh工具,颜值太高了,通过微软商店直接下载。
连接服务器
在Host处新建一个连接,输入服务器的IP地址、用户名及密码,我这里用的是DataWhale组织提供的帐号,感谢组织~
image-20211102215559367
在目录下创建文件夹、删除文件夹
Linux的目录结构
Linux是树状目录结构,如下图所示:
. :代表当前的目录,也可以使用 ./ 来表示;
.. :代表上一层目录,也可以 ../ 来代表。
几个重要的目录
/boot:存放的启动Linux 时使用的内核文件,包括连接文件以及镜像文件。
/etc:存放所有的系统需要的配置文件和子目录列表,更改目录下的文件可能会导致系统不能启动。
账户:
/root:系统管理员的用户主目录。
/home:用户的主目录,以用户的账号命名的。
/usr:用户的很多应用程序和文件都放在这个目录下,类似于windows下的program f ...
李宏毅深度学习2021春p53-54:Auto-Encoder
李宏毅深度学习2021春p53-54:Auto-Encoder
回顾自监督学习框架
Self-Supervised Learning/Pre-Training:有大量无标注的训练数据,不用额外标注去训练模型。把 Self-Supervised Learning 的 Model,做一点点调整,就可以用在下游的任务里面。
很流行的Bert模型就是Self-Supervised Learning的模型,更古老的不需要用标注资料的任务,就是Auto-Encoder。
Auto-Encoder
Auto-Encoder训练的目标是希望Encoder 的输入跟 Decoder 的输出越接近越好,这个过程也可以叫做重建reconstruction。
如下图所示,Encoder(可能是多层CNN)将图片编码成一个vector,Decoder根据这个vector还原原始图片。
与CycleGAN类似,但是自编码器不需要任何标注资料,只需要收集大量图片就可以进行训练。
如何将训练好的Auto-Encoder用到下游任务?
只需要用到Auto-Encoder的Encoder部分,将 ...
西瓜书阅读笔记——第7章-贝叶斯分类器(7-1~7-4)
西瓜书阅读笔记——第7章-贝叶斯分类器(7-1~7-4)
强烈推荐配合西瓜书阅读使用的南瓜书和南瓜书作者录制的学习视频【吃瓜教程】《机器学习公式详解》(南瓜书)与西瓜书公式推导直播合集。
贝叶斯决策论
贝叶斯决策论 (Bayesian decision theory) 是概率框架下实施决策的基本方法。对分类任务来说,在所有相关概率都己知的理想情形下,贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记。
据此产生贝叶斯判定准则。
贝叶斯判定准则
为最小化总体风险\(R(h)\) ,只需在每个样本上选择那个能使条件风险\(R(c|\mathbf x)\)最小的类别标记,即 \[
h^*(x)=\mathop{arg min}_{c∈\mathcal Y} R(c|\mathbf x)
\] 其中,\(h^*\)为贝叶斯最优分类器。
简单一句话概括就是:最大化后验概率->最小化条件风险。
从贝叶斯决策论(概率框架)的角度:机器学习要做的就是基于有限的训练样本集尽可能准确地估计出后验概率\(P(c |\mathbf x)\)。主要包 ...
Task4-基于深度学习的文本分类3-基于Bert预训练和微调进行文本分类
Task4-基于深度学习的文本分类3-基于Bert预训练和微调进行文本分类
因为天池这个比赛的数据集是脱敏的,无法利用其它已经预训练好的模型,所以需要针对这个数据集自己从头预训练一个模型。
我们利用Huggingface的transformer包,按照自己的需求从头开始预训练一个模型,然后将该模型应用于下游任务。
完整代码见:NLP-hands-on/天池-零基础入门NLP at main · ifwind/NLP-hands-on (github.com)
注意:利用Huggingface做预训练需要安装wandb包,如果报错可参考:[wandb.errors.UsageError: api_key not configured (no-tty). call wandb.login(key=[your_api_key\])_](https://blog.csdn.net/hhhhhhhhhhwwwwwwwwww/article/details/116124285)
预训练模型
利用Huggingface的transformer包进行预训练主要包括以下几个步骤:
用数 ...
Task4-基于深度学习的文本分类2.2-Word2Vec+TextCNN+BiLSTM+Attention分类
Task4 基于深度学习的文本分类2.2-Word2Vec+TextCNN+BiLSTM+Attention分类
完整代码见:NLP-hands-on/天池-零基础入门NLP at main · ifwind/NLP-hands-on (github.com)
模型架构
模型结构如下图所示,主要包括WordCNNEncoder、SentEncoder、SentAttention和FC模块。
最终需要做的是文档分类任务,从文档的角度出发,文档由多个句子序列组成,而句子序列由多个词组成,因此我们可以考虑从词的embedding->获取句子的embedding->再获得文档的embedding->最后根据文档的embedding对文档分类。
CNN模块常用于图像数据,Convolutional Neural Networks for Sentence Classification等论文将CNN用于文本数据,如下图所示,值得注意的是,CNN的卷积核在文本数据上,卷积核的宽度和word embedding的维度相同。
WordCNNEncoder包括三个不同 ...
Task4-基于深度学习的文本分类2-Word2Vec
Task4 基于深度学习的文本分类2-Word2Vec
文本表示方法 Part2-2
Word2Vec原理
Word2Vec是轻量级的神经网络,其模型仅仅包括输入层、隐藏层和输出层,模型框架根据输入输出的不同,主要包括CBOW和Skip-gram模型。 CBOW的方式是在知道词\(w_t\)的上下文\(w_{t-2},w_{t-1},w_{t+1},w_{t+2}\)的情况下预测当前词\(w_t\)。而Skip-gram是在知道了词\(w_t\)的情况下,对词\(w_t\)的上下 文进行预测,\(w_{t-2},w_{t-1},w_{t+1},w_{t+2}\)如下图所示:
img
关于word2vec的原理,觉得这个回答非常完整和清晰,分享一下~深入浅出Word2Vec原理解析 - Microstrong的文章 - 知乎
训练基于Word2Vec的word embedding
数据加载、预处理和划分
这里的操作和之前一致,不再赘述。
#数据加载、预处理import pandas as pdimport joblibdata_file = ' ...
Task4-基于深度学习的文本分类1-FastText
Task4 基于深度学习的文本分类1-FastText
与传统机器学习不同,深度学习既提供特征提取功能,也可以完成分类的功能。
学习目标
学习FastText的使用和基础原理
学会使用验证集进行调参
文本表示方法 Part2-1
现有文本表示方法的缺陷
之前介绍的几种文本表示方法(One-hot、Bag of Words、N-gram、TF-IDF)都或多或少存在一定的问题:转换得到的向量维度很高,需要较长的训练实践;没有考虑单词与单词之间的关系,只是进行了统计。
与这些表示方法不同,深度学习也可以用于文本表示,还可以将其映射到一个低纬空间。其中比较典型的例子有:FastText、Word2Vec和Bert。
FastText
FastText是一种典型的深度学习词向量的表示方法,它非常简单通过Embedding层将单词映射到稠密空间,然后将句子中所有的单词在Embedding空间中进行平均,进而完成分类操作。
所以FastText是一个三层的神经网络,输入层、隐含层和输出层。
下图是使用keras实现的FastText网络结构:
FastTe ...
Task3-基于机器学习的文本分类
Task3 基于机器学习的文本分类
实操主要包括以下几个任务:
基于文本统计特征的特征提取(包括词频特征、TF-IDF特征等)
如何划分训练集(用于参数选择、交叉验证)
结合提取的不同特征和不同模型(线性模型、集成学习模型)完成训练和预测
文本表示方法
在机器学习算法的训练过程中,假设给定\(N\)个样本,每个样本有\(M\)个特征,这样组成了\(N×M\)的样本矩阵,然后完成算法的训练和预测。文本表示成计算机能够运算的数字或向量的方法一般称为词嵌入(Word Embedding)方法。词嵌入将不定长的文本转换到定长的空间内,是文本分类的第一步。
One-hot
将每一个单词使用一个离散的向量表示。具体将每个字/词编码一个索引,然后根据索引进行赋值。
One-hot表示方法的例子如下:
句子1:我 爱 北 京 天 安 门句子2:我 喜 欢 上 海
首先对所有句子的字进行索引,即将每个字确定一个编号:
{ '我': 1, '爱': 2, '北': 3, '京': 4, ...
Task1&Task2 数据读取与数据分析
Task1&Task2 数据读取与数据分析
赛题数据是文本数据,每个新闻是不定长的,使用csv格式进行存储。因此可以直接用Pandas完成数据读取的操作。
import pandas as pdtrain_df = pd.read_csv(r'train_set.csv', sep='\t')
pd.read_csv常用参数: - 读取的文件路径,这里需要根据改成你本地的路径,可以使用相对路径或绝对路径; - 分隔符sep,为每列分割的字符,设置为\t即可; - 读取行数nrows,为此次读取文件的函数,是数值类型(由于数据集比较大,可以先设置为100);
train_df.head(5)
label
text
0
2
2967 6758 339 2021 1854 3731 4109 3792 4149 15...
1
11
4464 486 6352 5619 2465 4802 1452 3137 5778 ...
西瓜书阅读笔记——第8章-集成学习
西瓜书阅读笔记——第8章-集成学习
强烈推荐配合西瓜书阅读使用的南瓜书和南瓜书作者录制的学习视频【吃瓜教程】《机器学习公式详解》(南瓜书)与西瓜书公式推导直播合集。
个体与集成
集成学习ensemble learning的定义
高度概括:“三个臭皮匠,顶个诸葛亮”。
集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务,有时也被称为多分类器系统(multi-classifier system)、基于委员会的学习(committee-basedlearning)等。
先由一个现有的学习算法从训练数据中产生一组个体学习器(individual learner),比如决策树、神经网络算法等,然后通过某种结合策略将这些个体学习器组合起来。如果个体学习器全是一类的,比如全是神经网络的神经网络集成,这样的集成称为“同质”(homogeneous),其中的个体学习器也叫基学习器(base learner),相应的学习算法称为"基学习算法"(base learning algorithm);如果是不同类型的个体学习器进行集成则为" ...