NLP学习笔记_pytorch(基础,未完成)

深度学习

深度学习的概念

深度学习从广义上来讲就是程序可以自己学习自己的意思。是指一个已经写好的代码程序经过大量的数据使得自身得到了发展

总共有三个部分的特征:

一、反向传播算法

二、特征提取能力

三、端到端之间的学习方法

学习pytorch

这是一个深度学习的框架

中间有三个特点:

1、完全符合python编程(tensorflow就不行,是在python语法和TensorFlow自己有些格式之间转换)

2、方便的张量(tensor)计算 -->可以将变量加载到GPU(图形处理器)上

3、对动态计算图的支持 ---->动态计算图,是pytorch的特有特性,是可以用来表示反向传播算法的一种图示

使用pytorch进行深度学习的步骤

构建神经网络模型
neu = torch.nn.Sequential(
	torch.nn.Linear(input_size,hidden_size), #输入层到隐含层之间的线性运算
	torch.nn.Sigmoid(),		#作用在对隐含层的每一个神经元
	torch.nn.Linear(hidden_size,output_size),  #从隐含层到输出层的线性运算
)	

这个格式的参数输入可以将所有神经网络的参数储存在neu.parameters中

其中输入层的每一个神经元都是多维向量的一个维度

建立损失函数和优化器
损失函数

用来评价模型的预测值真实值不一样的程度,损失函数越好,通常模型的性能越好。不同的模型用的损失函数一般也不一样。

pytorch中的损失函数

 cost = torch.nn.MSELoss()

torch.nn.MSELoss() <--------> torch.mean((y-y*)^2)

意识是预测值和真实值差的平方的平均值

cost是函数指针,指向这个mseloss函数

优化器
optimizer = torch.optim.SGD(neu.parameters(),lr=0.01)

neu.parameters是定义好的神经网络中的所有等待被优化的所有参数的集合

lr是学习效率参数

对神经网络进行分批次训练

一个简单的预测需要的步骤

数据预处理

类型变量:数值的大小没有特殊的含义。比如说预测当地此时具有的共享单车数的时候的"星期几"这个变量。与之相对的是–特征变量(特征属性,在一个表中的特征列)

预处理手段

一、对类型变量进行类型编码,比如one-hot编码

二、数据变量标准化(归一化),对数值变量进行统一化运算,使其更加方便运算。(比如对数据减去均值再除以方差)

三、分批训练,将其分类为训练集、测试集。还有将其切分成小批,一批一批地进入神经网络,每一批训练网络一次

关于分类相关的深度学习

例子:文本分类的问题

文本向量化

文本向量化是将一个不固定长度的文本变成一个固定长度的向量

所采用的技术就是词袋模型

词袋模型是指将一段文本的所有词视为一个装满文本的大袋子,忽略单词之间的顺序,只看频率,并且将这个大袋子中的单词全部变成向量,有多少个单词就是多少维的向量

举例:

我 爱 北京 天安门
每个 人 都有 一个 爱 的 人

那么我们对应的单词表就是

{我,爱,北京,天安门,每个,人,都有,一个,的}-----> 九维向量

我 爱 北京 天安门
{1/4,1/4,1/4,1/4,0,0,0,0,0}  #向量表示
每个 人 都有 一个 爱 的 人
{0,1/7,0,0,1/7,2/7,1/7,1/7,1/7} #向量表示

构造分类器

model = nn.Sequential(
	nn.Linear(input_size,hidden_size),
	nn.ReLU(), #在计算的速度上更快,并且有利于梯度信息的传递,在一定程度上避免了梯度爆炸的问题
	nn.Linear(hidden_size,2), #2是因为这个就是个分类,我们假设分成2类
	nn.LogSoftmax(dim=), #用于解决分类问题的分类输出层计算
)

未完待续。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值