我尝试学习神经网络已经有一段时间了,可以理解一些在线的基础教程,也啃过一些Neural Computing – An Introduction的部分内容,但即使在那本书里,我也对大量的数学知识一知半解,而且读完前几章之后就完全超出我的理解范围了。即便如此,那也是我能找到的“数学性”最少的书了。
并不是我害怕数学或者别的什么,只是我还没有学习我需要的知识,而且我不确定我到底需要什么。我目前在当地的大学注册,正在努力补习我进入计算机科学硕士课程所需的课程(我的学士学位是商业/信息系统),而且进展不大。根据大学的课程描述,神经网络实际上是在电子工程的模式识别课程中讲授的(我觉得这门课程是电子工程有点奇怪),这门课有一些我不需要进入计算机科学硕士课程的电子工程先修课程。
我对这个主题非常感兴趣,并且知道我最终想学习更多关于它的知识,但问题是,我不知道我需要先学什么。以下是我认为我可能需要的知识,但这只是出于无知的猜测:
- 单变量微积分(我已经学过微积分I和II,所以我想我已经掌握了,只是为了完整性而列出)
- 多元微积分
- 线性代数(我还没有正式学习过,但是通过我在维基百科和其他网站上学到的知识,实际上可以理解很多概念)
- 离散数学(另一个我没有正式学习过的科目,但我自己学过一部分)
- 图论
- 概率论
- 贝叶斯统计
- 电路设计
- 其他数学?
- 其他计算机科学主题
显然这里也有神经科学的部分,但是当书本谈论它在神经网络中的应用时,我实际上并没有遇到任何理解上的困难,主要是因为它是概念性的。
简而言之,谁能列出一个清晰的路径,使人们能够真正理解、阅读和最终实现神经网络?
回答:
如果你想要一份你需要理解这本书的大学课程清单,这里是:
- 微积分(I、II 和 III)
- 微分方程
- 线性代数
- 统计学(或对贝叶斯理论的良好理解)
但是,我在神经网络课程中表现良好,没有学习微分方程,只需要查找我尚未学习的概念。
你可以像上面那样采取黑盒方法,但是如果你真的想理解网络的数学和实现,你必须学习。无论你做什么,要完全掌握更高级的网络,都将是一个陡峭的学习曲线。你可以先上上面的课程,或者你可以开始阅读这本书,并在维基百科上查找所有你不理解的内容,然后从这些文章中阅读你必须阅读的任何内容来理解它们,等等。你会发现,无论哪种方式,你最终都会度过最初的迷茫期,事情会变得更容易。
如果你能告诉我们你为什么要学习神经网络就好了。我在我的职业生涯中没有发现它们的任何用途,尽管我不是游戏开发者或电信开发者。