Machine Learning - 李宏毅 学习笔记 (3)

model = Sequential() ## keras1.0 model.add(Dense(input_dim=28*28,output_dim=500)) ## 输入28*28,输出500*1 model.add(Activation(\'sigmoid\')) ## keras2.0 model.add(Dense(units=500,activation=\'relu\')) model.add(Dense(units=10,activation=\'softmax\'))

Step 2:模型评估

complie() - 编译

loss = \'cateqorical crossentropy\' - 定义损失函数,分类交叉熵

optimizer = \'Adam\' - 优化器

metrics = [\'accuracy\'] - 评价指标

model.compile(loss = \'cateqorical crossentropy\', optimizer= \'Adam\' metrics=[\'accuracy\'])

Step 3:最佳模型

3.1 配置优化器:比如上图选用的是 \'Adam\' - SGD, RMSprop, Adagrad, Adadelta, Adam, Adamax, Nadam

3.2 输入数据训练最优的网络参数 Find the optimal network parameters

模型训练函数:model.fit()

Training data,Labels参数 - 在手写数字识别中:numpy array 输入的像素点 28 * 28 = 784 就是每个数据的特征 * 数量,输入label就是 10个类别 * 数量

训练批数 batch_size,迭代次数 nb_epoch (Mini-batch:不会每次求最小的total loss,而是一批一批的进行训练)

Mini-batch GD = Stochastic Mini-batch Gradient Descent 随机小批量梯度下降

批量梯度下降比随机梯度下降速度要快(batch_size=1):因为利用计算机的并行运算和矩阵运算,计算速度快很多 - GPU

batch_size需要设置合适,过大变成普通梯度下降,过小变成随机梯度下降

model.fit(x_train, y_train, batch_size =100, nb_epoch = 20)

模型的验证和预测

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwsszd.html