Pytorch 深度学习实践第7讲

六、处理多维特征的输入

课程链接:Pytorch 深度学习实践——处理多维特征的输入

1、Multiple Dimension Logistic Regression Model

y ^ ( i ) = σ ( ∑ n = 1 N x n ( i ) ∗ w n + b ) = σ ( z ( i ) ) \hat{y}^{(i)}=\sigma(\sum_{n=1}^{N}x_{n}^{(i)}*w_n+b)=\sigma(z^{(i)}) y^(i)=σ(n=1Nxn(i)wn+b)=σ(z(i))

可以转换为矩阵运算:

Pytorch 深度学习实践第7讲_第1张图片

矩阵的本质:实现空间维度的变换,将M维的输入变换到N维的输出。
神经网络的实质:找到一个最优的权重,实现一种非线性的空间变换。
神经网络示例图:

Pytorch 深度学习实践第7讲_第2张图片

Diabetes Prediction

①准备数据集
#prepare dataset
xy = np.loadtxt('diabetes.csv.gz', delimiter=',', dtype=np.float32) #文件名,分隔符,数据类型
x_data = torch.from_numpy(xy[:, :-1])   #数据的最后一个是标签0/1,因此input数据集取前7位
y_data = torch.from_numpy(xy[:, [-1]])  #标签是最后一个
②设计模型
#Design Model
class Model(torch.nn.Module):
    def __init__(self):
        super(Model, self).__init__()
        self.linear1 = torch.nn.Linear(8, 6) #input为8维
        self.linear2 = torch.nn.Linear(6, 4)
        self.linear3 = torch.nn.Linear(4, 1)
        self.activate = torch.nn.ReLU()
        self.sigmoid = torch.nn.Sigmoid()   #torch.nn.Sigmoid不是简单的函数,而是神经网络的一个单独的激活层,因此需要初始化

    def forward(self, x):   #为了避免变量使用错误,统一使用x
        x = self.activate(self.linear1(x))
        x = self.activate(self.linear2(x))
        x = self.sigmoid(self.linear3(x))
        return x

model = Model()
③使用 Pytorch API 构造损失函数和优化器(optimizer)
#BCELoss类参数:size_average=True/False是否求均值、reduction=True/False是否降维
criterion = torch.nn.BCELoss(size_average=True)
#优化器
optimizer = torch.optim.SGD(model.parameters(), lr=0.1)
④编写训练的周期:forward、backward、update
#Batch training
for epoch in range(100):
    #Forward
    y_pred = model(x_data)
    loss = criterion(y_pred, y_data)
    print('Epoch = ' + str(epoch) + '\t' + 'Loss = ' + str(format(loss.item(), '.4f')))

    #Backward
    optimizer.zero_grad()
    loss.backward()

    #Update
    optimizer.step()
⑤结果展示(lr=0.1,epoch=100)

Pytorch 深度学习实践第7讲_第3张图片

⑥各种激活函数的比较
Ⅰ、sigmoid(lr=0.1,epoch=10000,最终收敛在0.46)

Pytorch 深度学习实践第7讲_第4张图片

Ⅱ、Relu(lr=0.1,epoch=10000,最终收敛在0.4)Pytorch 深度学习实践第7讲_第5张图片
Ⅲ、Tanh(lr=0.1,epoch=10000,最终收敛在0.42)

Pytorch 深度学习实践第7讲_第6张图片

你可能感兴趣的:(神经网络,深度学习)