我最近在学习神经网络时遇到了MNIST
数据集。我了解到使用了sigmoid成本函数来减少损失。权重和偏置会进行调整,并在训练后找到最佳的权重和偏置。但我没有理解的是,图像是基于什么标准进行分类的。例如,要判断一个病人是否患有癌症,年龄、位置等数据会成为特征。在MNIST数据集中,我没有发现这些特征。我是不是错过了什么?请帮助我解答这个问题
回答:
首先,神经网络的流程包括三个主要部分:
- 输入处理:
- 影响寻找最小值的参数:
- 类似于你在解释层中使用的决策函数的参数(通常是全连接层)
与常规的机器学习流程不同,在常规流程中你需要手动提取特征,卷积神经网络(CNN)使用的是滤波器(如边缘检测或Viola和Jones中的滤波器)。
当滤波器在图像上滑动并与像素进行卷积时,会产生一个输出。
这个输出随后由神经元进行解释。如果输出超过一个阈值,则被视为有效(如果是步函数,则有效时计为1;如果是Sigmoid函数,则在Sigmoid函数上有相应的值)。
接下来的步骤与之前相同。
这个过程会持续进行,直到达到解释层(通常是softmax层)。这一层会解释你的计算(如果滤波器很好地适应了你的问题,你将获得一个好的预测标签),这意味着你的猜测值(y_guess)与真实标签(y_true_label)之间的差异很小。
现在你可以看到,为了猜测y,我们将输入x与许多权重w相乘,并对其应用了函数。这可以看作是分析中的链式法则。
为了获得更好的结果,必须知道单个权重对输入的影响。因此,你使用反向传播,这是相对于所有w的误差的导数。诀窍是你可以重用导数,这或多或少就是反向传播,而且由于可以使用矩阵向量表示法,它变得更加简单。
一旦你有了梯度,你可以使用常规的 minimization 概念,沿着最陡的下降方向前进。(还有许多其他梯度方法,如adagrad或adam等)。
这些步骤会重复进行,直到收敛或达到最大轮数。
所以答案是:计算出的权重(滤波器)是检测数字和数字的关键 🙂