实现了正弦曲线的拟合,即regression问题。
创建的模型单输入单输出,两个隐层分别为100、50个神经元。
在keras的官方文档中,给的例子多是关于分类的。因此在测试regression时,遇到了一些问题。总结来说,应注意以下几个方面:
1)训练数据需是矩阵型,这里的输入和输出是1000*1,即1000个样本;每个样本得到一个输出;
注意:训练数据的生成非常关键,首先需要检查输入数据和输出数据的维度匹配;
2)对数据进行规范化,这里用到的是零均值单位方差的规范方法。规范化方法对于各种训练模型很有讲究,具体参照另一篇笔记:http://blog.youkuaiyun.com/csmqq/article/details/51461696;
3)输出层的激活函数选择很重要,该拟合的输出有正负值,因此选择tanh比较合适;
4)regression问题中,训练函数compile中的误差函数通常选择mean_squared_error。
5)值得注意的是,在训练时,可以将测试数据的输入和输出绘制出来,这样可以帮助调试参数。
6)keras中实现回归问题,返回的准确率为0。
# -*- coding: utf-8 -*-
"""
Created on Mon May 16 13:34:30 2016
@author: Michelle
"""
from keras.models import Sequential