动手学pytorch版-task1&2

1. 线性回归

1.1 模型

数据集的每一项称为样本(sample),每个样本有多个feature( x x x),每个sample有对应的label( y y y)。可以利用线性模型表征样本特征和标签的关系
y ^ = ∑ w x i + b \hat{y}=\sum wx_i+b y^=wxi+b
此时求得的 y ^ \hat{y} y^是通过样本特征和模型得到的预测值。

1.2 损失函数

w w w b b b作为线性模型的参数,需要求得合适的参数,使得所建构的模型合理,所以比较真实值 y y y和预测值 y ^ \hat{y} y^,使得误差最小。这个函数可以是L1, L2或者其他函数,这里用mse举例。
L = ( y ^ − y ) 2 L=(\hat{y}-y)^2 L=(y^y)2

1.3 优化方法

为了得到 w w w b b b参数的值,可以求解析解或者数值解。一般解析解比较难求(在模型复杂的情况下),这里求数值解。这里用梯度下降方法求解。
w = w − l r ∗ ∂ L ∂ w w=w-lr*\frac{\partial L} {\partial w} w=wlrwL b b b更新同理。

1.4 pytorch实现

核心代码

def __init__(self, n_feature):
        super(LinearNet, self).__init__()      # call father function to init 
        self.linear = nn.Linear(n_feature, 1)  # function prototype: `torch.nn.Linear(in_features, out_features, bias=True)`
def forward(self, x):
        y = self.linear(x)
        return y
net = LinearNet(num_inputs)
# train
for epoch in range(1, num_epochs + 1):
    for X, y in data_iter:
        output = net(X)
        l = loss(output, y.view(-1, 1))
        optimizer.zero_grad() # reset gradient, equal to net.zero_grad()
        l.backward()
        optimizer.step()
    print('epoch %d, loss: %f' % (epoch, l.item()))

2. 多层感知机

2.1 基本样式

输入层,隐藏层,输出层。
在这里插入图片描述

2.2 激活函数

多个隐藏层之间如果只做仿射变换(线性),即使叠加仿射变换,会与单个全连接网络相似。因此加入非线性变换,比如Relu,sigmoid,tanh等。目前使用比较多的是Relu函数,后来有改进的leaky relu等。relu函数表达很简单,
y = m a x ( x , 0 ) y=max(x,0) y=max(x,0)。导数为0(当 y y y为0)或1(当 y = x , x > 0 y=x,x>0 y=x,x>0)。

2.3 pytorch实现

相较于linear model,增加层数,增加激活函数即可。

3. softmax

softmax函数用于多分类,将求得的值映射到(0,1)范围之内,由此判断属于哪一类。在这里插入图片描述

4. nlp基础相关

对于nlp了解的很少,基本所有信息来自课程。

4.1 文本预处理

文本是一类序列数据,一篇文章可以看作是字符或单词的序列,本节将介绍文本数据的常见预处理步骤,预处理通常包括四个步骤:
1.读入文本
2.分词
3.建立字典,将每个词映射到一个唯一的索引(index)
4.将文本从词的序列转换为索引的序列,方便输入模型
我简单理解一下就是将文字取出词频高且重要的词,编号,编号和词需要对应。

4.2 语言模型

分词过后词是独立的,只有成了序列才能表达意思。所以要考虑这些词组成序列的概率即句子(or词组)是有含义的。
一段自然语言文本可以看作是一个离散时间序列,给定一个长度为 T T T的词的序列 w 1 , w 2 , . . . w t w_1,w_2,...w_t w1,w2,...wt,语言模型的目标就是评估该序列是否合理,即计算该序列的概率:
P ( w 1 , w 2 , . . . w t ) P(w_1,w_2,...w_t) P(w1,w2,...wt)
基于统计的语言模型,主要是元语法(n-gram)。

4.3 RNN模型

关于RNN模型,知乎有一篇文章写得特别好。
linkhttps://zhuanlan.zhihu.com/p/28054589

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值