Neural network 无微积分的神经网络

Neural network 无微积分的神经网络,neural-network,artificial-intelligence,Neural Network,Artificial Intelligence,我今年14岁,对神经网络非常感兴趣。我从9岁开始编程,最近我发现了人工智能和神经网络的世界。14岁的年龄限制了我对数学的理解,我对微积分一无所知。说到这里,有没有不需要高等数学的神经网络?我懂神经网络,但背撑是我卡住的地方。我能在没有这些数学知识的情况下有效地支持prop,并且仍然能够创建一个神经网络,它可以解决比简单线性问题更多的问题吗?提前谢谢 很高兴看到你在这个年龄已经达到如此高的水平,所以我建议你继续编程。关于你的具体问题: 从数学上讲,神经网络是计算机科学中的一个主题,就像其他任何东西

我今年14岁,对神经网络非常感兴趣。我从9岁开始编程,最近我发现了人工智能和神经网络的世界。14岁的年龄限制了我对数学的理解,我对微积分一无所知。说到这里,有没有不需要高等数学的神经网络?我懂神经网络,但背撑是我卡住的地方。我能在没有这些数学知识的情况下有效地支持prop,并且仍然能够创建一个神经网络,它可以解决比简单线性问题更多的问题吗?提前谢谢

很高兴看到你在这个年龄已经达到如此高的水平,所以我建议你继续编程。关于你的具体问题:
从数学上讲,神经网络是计算机科学中的一个主题,就像其他任何东西一样:为了构建一个迭代计算斐波那契数的函数,它当然有助于理解底层算法及其属性,但不需要实现这样的算法,因为有大量的材料覆盖了类似的东西,而你不需要知道太多

工具增加了抽象 至于神经网络,有很多不同的工具,你们中的一些人以前可能听说过。一个不完整的列表包括,例如,(我个人的最爱),(如果需要的话,它在后端使用TensorFlow)和许多其他内容

所有这些都允许您沿着这些路线“实现反向传播”(例如PyTorch):

初始化
优化器
丢失
也可以很容易地完成,您可以为此获得许多不同的选择

但是,建立一个好的网络是很困难的 当然,对于所有这些选择,您必须知道(至少在某种程度上)要使用哪种体系结构(或优化器,或loss等)。如果您了解底层操作的执行情况,这将非常有帮助!即使只是一些高层次的理解、了解,如何(在这里随便说几句话)让生活变得更轻松

网络根本无法工作的原因可能只是代码中的一个很小的细节,与经典编码不同,计算机不会真正告诉您失败的原因。这使得调试变得更加困难,尤其是当您对底层概念缺乏了解时

你如何开始 当然,你可以从创建一个简单的神经网络开始,甚至不需要太多的理解。许多列出的工具包都提供了自己的教程部分,让您开始了解该领域

尤其是目前围绕着神经网络的大肆宣传,有大量(或多或少有经验的)人在创造Jupyter笔记本、GitHub页面、博客条目等,其中充满了有价值的例子
与计算机科学中的一切一样,熟能生巧,你将慢慢开始理解越来越多的基本概念


正如戴夫已经指出的,也有一些非常浅显的解释,这些解释更多地集中在理论上。许多人目前正试图从完全不同的领域转向AI/ML,因此对该主题的理解与您一样多。遗憾的是,在我了解了这个主题背后的“基础数学”之后,我就开始了这个主题,因此我不能推荐任何具体的书籍/教程/作者阅读。

这可能没那么令人兴奋,但我强烈建议您尝试使用感知机。这是对神经网络的一个很好的介绍。如果你真的下定决心使用MLP,那么你可以专注于学习梯度下降和函数变化率的概念

你将非常需要数学,尽管预打包的NN LIB隐藏了很多复杂性。《微积分卡通指南》是一个相当温和的介绍,如果没有其他介绍的话,它将足够地解开calc的神秘面纱,让你站起来,指向正确的方向。这并不像你想象的那么难(直到第三学期左右,事情很快变得有趣)。因此,关于反向传播的一般想法是,你从结果中逆向工作,找出哪里有错误,并相应地进行更新。微积分给了你一种观察错误的方法,它是一种量化错误的方法。这取决于你试图用神经网络做什么。您是只想训练和使用它,还是需要了解最内部的工作原理?在大多数情况下,如果您对线性方程组(即
y=mx+b
)感到满意,那么对于基本概念来说,这就足够了。如果您需要手动实现反向传播,有几个概念略高于这一点,但应该在您的能力范围内。你能说明你想做什么吗?
optimizer.zero_grad()
loss.backward()
optimizer.step()