所以自从我看到Adam Geitgey 的机器学习博客以来,我一直在尝试理解神经网络。我已经尽可能多地阅读了这个主题(我能掌握),并相信我理解所有广泛的概念和一些工作原理(尽管数学很弱)、神经元、突触、权重、成本函数、反向传播等等。但是,我无法弄清楚如何将现实世界的问题转化为神经网络解决方案。
举个例子,Adam Geitgey 给出了一个例子,一个房价预测系统,其中给定一个包含卧室数量,Sq 的数据集。英尺,邻域和销售价格,您可以训练神经网络来预测房屋价格。然而,他没有在代码中实际实现可能的解决方案。举个例子,他得到的最接近的是基本的一个函数,演示了如何实现权重:
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?
我知道房价预测示例可能不是一个特别有用的问题,因为它被大量过度简化为仅三个数据点。但我只是觉得,如果我能克服这个障碍并编写一个非常基本的应用程序,使用伪现实生活数据进行训练并吐出一个伪现实生活的答案,那么我就会打破它并能够踢继续深入研究机器学习。