因此,自从我碰到Adam Geitgey关于机器学习的博客以来,我就一直试图理解神经网络。我已经读了尽可能多的关于该主题的文章(我能理解),并且相信我理解所有广泛的概念和一些工作原理(尽管数学上很弱),神经元,突触,权重,成本函数,反向传播但是,我还无法弄清楚如何将现实世界中的问题转化为神经网络解决方案。
典型的例子,亚当Geitgey给出作为一个例子使用,其中给定的包含数据集的房子的价格预测系统的卧室号,平方。脚,邻居和销售价格,你可以训练神经网络,以能够预测的房子的价格。但是,他没有在代码中实际实现可能的解决方案。举例来说,他得到的最接近的是一个基本函数,该函数演示了如何实现权重:
def estimate_house_sales_price(num_of_bedrooms, sqft, neighborhood):
price = 0
# a little pinch of this
price += num_of_bedrooms * 1.0
# and a big pinch of that
price += sqft * 1.0
# maybe a handful of this
price += neighborhood * 1.0
# and finally, just a little extra salt for good measure
price += 1.0
return price
其他资源似乎更多地集中在数学上,我可以发现我理解的唯一基本代码示例(即,不是所有唱歌,所有跳舞图像分类代码库)都是将神经网络训练为XOR的实现。仅处理1和0的门。
因此,我的知识差距似乎无法弥合。如果我们回到房价预测问题,那么如何使数据适合于馈入神经网络呢?例如:
- 卧室数量:3
- 平方 脚:2000
- 邻里:师范大学城
- 成交价:$ 250,000
您可以将3和2000直接输入神经网络吗,因为它们是数字?还是您需要将它们转换成其他东西?同样,Normaltown值(即字符串)又如何处理,将其转换为神经网络可以理解的值呢?只要在整个数据中保持一致,您是否可以选择一个数字,例如索引?
我看到的大多数神经网络示例在层之间传递的数字都是0到1或-1到1。因此,在处理结束时,如何将输出值转换为可用的值,例如$ 185,000?
我知道房价预测示例可能并不是一个特别有用的问题,因为它已经大大简化了三个数据点。但是我只是觉得,如果我能克服这个障碍,编写一个非常基本的应用程序,使用伪真实的数据进行训练,并给出伪真实的答案,那我将不为所动。继续深入研究机器学习。