S*******e 发帖数: 525 | 1 自学些东西,最好向大师请教--几秒可能解决问题。
试了http://machinelearningmastery.com/multi-class-classification-tutorial-keras-deep-learning-library/
在最后加了
model = baseline_model()
model.fit(X, dummy_y, nb_epoch=200, batch_size=5, verbose=1)
pre = model.predict(X)
print(pre)
这个预测的结果是nx3矩阵,是不是那3个数相当于“概率”?怎样判断这一行预测的对?
譬如: [ 9.85160708e-01 1.30239958e-02 1.72271675e-09] 非常接近
【1,0,0】。这可以说就是这一类。
可以下这些我就不知怎么解释了, 大牛给小白指点指点?(又想了一想: 是不是和【
1,0,0】,【0,1,0】, 【0,0,1】中最近的一个,就是那一类?)
6.46205149e-13 4.29476095e-05 2.59178039e-03]
[ 1.10887081e-11 6.37081903e-05 5.10335725e-04]
[ 4.52546334e-11 1.55677757e-04 2.39358633e-03]
[ 4.44239995e-13 3.45774897e-05 1.84414478e-03]
[ 3.24687027e-13 3.47296045e-05 2.60079931e-03]
[ 5.53128550e-12 6.55830445e-05 1.15823851e-03]
[ 5.70672884e-11 1.43745216e-04 1.42968143e-03]
[ 3.64973642e-11 9.18867518e-05 5.07714751e-04]
[ 4.24494901e-12 6.25177563e-05 1.31020322e-03]
[ 1.62505717e-10 1.51019180e-04 5.75214217e-04] | e*******o 发帖数: 4654 | 2 最大可能的那个相当于1,其余0
argmax 是用来干这个的 | e*******o 发帖数: 4654 | | S*******e 发帖数: 525 | | S*******e 发帖数: 525 | 5 在这儿收益良多,再问问, 关于model, 上面例子用‘relu' for input layer, '
sigmoid' for output layer.
model.add(Dense(4, input_dim=4, init='normal', activation='relu'))
model.add(Dense(3, init='normal', activation='sigmoid'))
而这儿http://blog.fastforwardlabs.com/2016/02/24/hello-world-in-keras-or-scikit-learn-versus.html 用 sigmoid for input layer, softmax for output layer. 两个结果都不错。但为什么这么选,靠问题/经验?我试试把两个都选为‘sigmoid’,结果差的太远(几乎根本不对)。
另外,http://cs231n.github.io/neural-networks-1/#actfun 说,Never use sigmoid,又给弄糊涂了。原话是“TLDR: “What neuron type should I use?” Use the ReLU non-linearity, be careful with your learning rates and possibly monitor the fraction of “dead” units in a network. If this concerns you, give Leaky ReLU or Maxout a try. Never use sigmoid. Try tanh, but expect it to work worse than ReLU/Maxout.” | K****n 发帖数: 5970 | 6 基本上符合这篇 paper 的论述
http://machinelearning.wustl.edu/mlpapers/paper_files/AISTATS2010_GlorotB10.pdf
以后不要再用 sigmoid 了
【在 S*******e 的大作中提到】 : 在这儿收益良多,再问问, 关于model, 上面例子用‘relu' for input layer, ' : sigmoid' for output layer. : model.add(Dense(4, input_dim=4, init='normal', activation='relu')) : model.add(Dense(3, init='normal', activation='sigmoid')) : 而这儿http://blog.fastforwardlabs.com/2016/02/24/hello-world-in-keras-or-scikit-learn-versus.html 用 sigmoid for input layer, softmax for output layer. 两个结果都不错。但为什么这么选,靠问题/经验?我试试把两个都选为‘sigmoid’,结果差的太远(几乎根本不对)。 : 另外,http://cs231n.github.io/neural-networks-1/#actfun 说,Never use sigmoid,又给弄糊涂了。原话是“TLDR: “What neuron type should I use?” Use the ReLU non-linearity, be careful with your learning rates and possibly monitor the fraction of “dead” units in a network. If this concerns you, give Leaky ReLU or Maxout a try. Never use sigmoid. Try tanh, but expect it to work worse than ReLU/Maxout.”
| w***g 发帖数: 5958 | 7 softmax是保证输出加起来=1
【在 S*******e 的大作中提到】 : 在这儿收益良多,再问问, 关于model, 上面例子用‘relu' for input layer, ' : sigmoid' for output layer. : model.add(Dense(4, input_dim=4, init='normal', activation='relu')) : model.add(Dense(3, init='normal', activation='sigmoid')) : 而这儿http://blog.fastforwardlabs.com/2016/02/24/hello-world-in-keras-or-scikit-learn-versus.html 用 sigmoid for input layer, softmax for output layer. 两个结果都不错。但为什么这么选,靠问题/经验?我试试把两个都选为‘sigmoid’,结果差的太远(几乎根本不对)。 : 另外,http://cs231n.github.io/neural-networks-1/#actfun 说,Never use sigmoid,又给弄糊涂了。原话是“TLDR: “What neuron type should I use?” Use the ReLU non-linearity, be careful with your learning rates and possibly monitor the fraction of “dead” units in a network. If this concerns you, give Leaky ReLU or Maxout a try. Never use sigmoid. Try tanh, but expect it to work worse than ReLU/Maxout.”
|
|