是否可以使用 tensorflow 创建将某个输入映射到某个输出的神经网络?

数据挖掘 分类 神经网络 张量流
2021-09-27 13:39:57

我目前正在玩 tensorflow,但似乎无法控制它是否对我的问题有用?

我需要创建一个能够将输入映射到输出的神经网络。

现在事情进展的方式,我没有一个例子可以做到这一点,tensorflow似乎解决的所有类型的问题都是分类任务,而不是这种映射问题...... tensorflow能够这样做吗? ,我是否必须使用不同的神经网络框架来做到这一点?,如果可用,有人可以显示一些代码(不是 MNIST 示例)

我的任务:

我目前正在尝试制作一个接收音频文件样本并从样本中生成 MFCC 特征的神经网络。MFCC 特征可以手动计算,我已经这样做了,所以我知道我所寻求的输出是什么。MFCC特征是一个特征向量是不同的实数值数字。我不能被归类为 A 类或 B 类,否则这样做会大大降低输出的准确性,因为您正在将输出拟合到预定的“箱”......

2个回答

根据您的描述,您似乎面临回归问题,因为您希望输出为特定值。这与分类问题不同,分类问题将输入属于某个类别的概率作为输出。

使用神经网络进行回归的关键是输出层应该没有激活,也就是说,它应该是一个线性层。正如@JanvanderVegt 所指出的,回归问题的常见损失函数是当前输出与您计算的 MFCC 特征之间的均方误差 (MSE)。

如果你谷歌“张量流回归示例”,你可以找到几十个完整的例子,比如thisthis

您的建议当然是可能的,您的输出层中只有n 个节点,n是您的 MFCC 特征向量的大小,您需要定义一个损失函数来确定它当前正在犯的错误。如果所有功能都具有相似的规模和相似的重要性,您可以使用均方误差,但您可以在这里发挥创意。原则上,这与最后使用 softmax 层的多类分类没有太大区别。在这种情况下,您在 softmax 层和交叉熵损失函数之后有c个输出节点,在您的情况下,您有n例如,在具有 MSE 损失函数的全连接层之后的输出层中的节点。给它提供一些示例,如果数据表现良好,它应该可以合理地完成任务。虽然我不确定如果这是可计算的,你为什么要使用 ML 方法,但你会失去准确性,而且我不确定你能赢得多少速度。

TensorFlow 用于回归任务而不是分类任务的一个非常简单的示例是使用梯度下降的线性回归,您可以在此处查看:https ://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/ 2_BasicModels/linear_regression.ipynb