0
機械学習とTensorflowには新しく、データで単純な2次元分類を行いたいが、それは線形に分離できない。テンソルによる非線形分類
左側に、モデルのトレーニングデータが表示されます。 右側に、訓練されたモデルが予測する内容が表示されます。
現在のところ、私は自分のモデルに余裕がありますので、可能なすべての入力がモデルに入力されます。 私の予想される結果は、モデルが既に各回答を「知っている」ので、非常に正確です。 残念ながら、私が使用しているディープニューラルネットワークは、私のデータに適合しない線形除算器でのみ分けることができます。
def testDNN(data):
"""
* data is a list of tuples (x, y, b),
* where (x, y) is the input vector and b is the expected output
"""
# Build neural network
net = tflearn.input_data(shape=[None, 2])
net = tflearn.fully_connected(net, 100)
net = tflearn.fully_connected(net, 100)
net = tflearn.fully_connected(net, 100)
net = tflearn.fully_connected(net, 2, activation='softmax')
net = tflearn.regression(net)
# Define model
model = tflearn.DNN(net)
# check if we already have a trained model
# Start training (apply gradient descent algorithm)
model.fit(
[(x,y) for (x,y,b) in data],
[([1, 0] if b else [0, 1]) for (x,y,b) in data],
n_epoch=2, show_metric=True)
return lambda x,y: model.predict([[x, y]])[0][0]
そのほとんどがtflearnの例から取られているので、私は正確に理解していない、すべての行が何をするか:
は、これは私が私のモデルを訓練する方法です。
n_epochを増やしてみませんか? – frankyjuang
n_epochを増やしても精度は変わりません。これは約50%です。コインフリップのようになります。 – RincewindWizzard
これが特定のモデルの選択肢であるかどうかわからない場合は、最初の3つの線形レイヤーまたはtf-learnがデフォルトで置く(私はtf-learnについてはあまり知らない)が、非線形性を有する助けて。 – Akash