深度学习是机器学习的一个分支。
多层感知机可以摆脱早期离散传输函数的束缚,使用sigmoid或tanh等连续函数模拟神经元对激励的响应,在训练算法上则使用Werbos发明的反向传播BP算法。
线性回归:单层网络
读数据
定义模型: nd.dot(X, w)+b 函数:net(X)
损失函数:用平方误差来计算,(y-yhat)*2 函数square_loss(y, that)
优化:函数SGD(params, lr), 用随机梯度下降来优化param= param-lrparam.grad(循环)
训练,测试
读取数据:
dataset=gluon.data.ArrayDataset(X,y)
data_iter=gluon.data.DataLoader(dataset, batch_size, shuffle=True)
定义模型:
net=gluon.nn.Sequential()
Net.add(gluon.nn.Dense(1))
Dense(1) 一层全连阶层,输出为1维,不用管输入的维数。
初始化:net.initial()
损失函数:gluon.loss.L2Loss()
优化:gluon.Trainer(net.collect_params(), ’sgd’, {‘learning_rate’:0.1})
net.collect_params()网络的所有参数,
前面的输出是一个实数,一个输出,
下面是多个输出。
多类逻辑回归:
softmax(X) 将输出归一化概率,(多个输出)
def net(X) return softmax(nd.dot(X.reshape((-1,num_inputs)), w)+b)
交叉熵损失函数: cross_entropy(that, y)
计算精度: accuracy(output, label)
训练,测试