没有微积分的神经网络

时间:2018-08-04 15:31:43

标签: neural-network artificial-intelligence

我14岁,对神经网络非常感兴趣。我从9岁起就开始编程,最近发现了AI和神经网络的世界。 14岁对我对数学的理解有一些限制,而我对微积分一无所知。确切地说,是否存在不需要高级数学的神经网络?我了解神经网络,但后置支撑是卡住的地方。我是否可以在没有所有这些数学运算的情况下有效地支持道具,并且仍然可以创建一个神经网络来解决简单的线性问题?预先感谢!

2 个答案:

答案 0 :(得分:1)

这可能并不令人兴奋,但我强烈建议您尝试使用Perceptrons。他们是神经网络的不错的入门介绍。而且,如果您真的愿意使用MLP,那么您就可以专注于学习梯度下降的概念以及函数的变化率

答案 1 :(得分:0)

很高兴看到您的年龄已经达到了如此高的水平,所以我真的建议您继续编程。至于您的具体问题:
从数学上讲,神经网络是计算机科学中的主题,与其他任何事物一样:要构建一个迭代计算斐波那契数的函数,它无疑有助于理解底层算法及其属性,但由于实现了该算法,因此并不需要那里有很多材料,涵盖了诸如此类的内容,而您无需对其了解太多。

工具添加抽象

至于神经网络,有很多不同的工具,其中一些您可能以前听过。不完整的列表包括,例如TensorFlowPyTorch(我个人最爱),Keras(如果需要,在后端使用TensorFlow)以及许多其他列表。

所有这些都使您可以按照以下方式“实现反向传播”(在PyTorch中为示例):

optimizer.zero_grad()
loss.backward()
optimizer.step()

optimizerloss的初始化也很容易,您有很多不同的选择。

但是,要建立一个良好的网络很困难

当然,通过所有这些选择,您必须(至少在某种程度上)知道要使用哪种体系结构(或优化器,损失等)。如果您了解基本操作的执行情况,它将极大地帮助您!即使只是一些高层次的了解,也知道what a Convolution doesMean Squared Error differs from Cross Entropy Loss(只是在这里加上一些单词)将如何使生活变得更加轻松。

您的网络根本无法工作的原因可能只是代码中的一个很小的细节,与传统的编码不同,计算机无法真正告诉您失败的原因是什么。这使得调试起来非常困难,尤其是在您缺乏对基本概念的理解的情况下。

如何开始使用

当然,您可以从创建一个简单的神经网络开始,甚至不需要太多的了解。列出的许多工具包都提供了自己的教程部分,以帮助您入门。

尤其是当前围绕着神经网络的所有炒作中,有大量(或多或少经验丰富的)人在那里创建Jupyter笔记本,GitHub页面,博客条目等,其中充满了有价值的示例。
与计算机科学中的所有内容一样,实践是完美的,您将逐渐开始理解越来越多的基本概念。

正如戴夫(Dave)所指出的那样,那里也有一些非常简单的解释,这些解释更多地集中在理论上。当前,许多人正在尝试从完全不同的领域转向AI / ML,因此对这个主题的了解与您差不多。可悲的是,在了解了其背后的“基础数学”之后,我才开始讨论该主题,因此我不推荐任何具体的书籍/教程/作者进行阅读。