如何获得神经网络的基础数学?
How to get the basic math for neural networks?
我最近决定开始学习人工智能,特别是神经网络,因为我相信它能让我解决我目前无法解决的新问题。
作为第一步,我希望能够编写一个简单的神经网络来识别手写数字(使用 MNIST 数据集),并且我希望能够在接下来的几个 weeks/months.
我为初学者找到了很多资源,其中一些看起来非常好(比如这个:http://neuralnetworksanddeeplearning.com/chap1.html)。我已经阅读了 5-6 本关于神经网络的书的开头部分,但我一直遇到的问题是,由于我缺乏数学知识,所以在某些时候,我会迷失在解释中。
例如,在链接的教程中,我对以下符号有问题:∇、∂、→。更一般地说,我偶然发现了数学符号:我不知道但作者假设 reader 知道的常量和特殊符号。
所以我的问题来了:我需要什么样的数学才能让我快速开始使用神经网络,这将使我能够毫不费力地阅读那些伟大的 books/tutorials 我成立。我对线性代数有一些非常基本的概念,但仅此而已。
我就出去说吧:你找过一门数学较少的课程吗?
虽然您当然需要高等数学才能完全掌握该主题,但您可以找到一门介绍性课程,该课程更多地概述了该领域,并提供了一些具体的实际操作示例。这就是我学习的方式 Python(感谢 YouTube!)
编辑:
@sputnik
What kind of advanced math do you think is needed ?
很简单,我认为你不会。
强烈推荐 在线visual introduction to machine learning.
I have recently decided to start learning about artificial intelligence, and specifically about neural networks, because I believe it would allow me to solve new problems I am currently unable to tackle.
我提到的初级读物的要点是它们让您从决策树开始。这让人想起半个世纪前使用的专家系统,对于刚刚了解该主题的人来说,这是一个很好的叙述。
众所周知,基于树的模型是 Kaggle 竞赛获胜者中最常用的技术,尤其是 XGB trees*。 仅次于神经网络,那为什么要退而求其次呢? ;-)
例如,查看最新的 Kaggle 访谈:Airbnb New User Bookings, Winner's Interview: 2nd place, Keiichi Kuroyanagi (@Keiku)
您无需高级微积分也可以进行统计推断。即使根本没有正规数学,如果你只是想了解这个主题。
* XGBT 中的 'G' 确实 代表梯度,因此您最终将不得不做一些数学运算,但为什么不开始玩得开心呢?您会学得更多、更快!
其他XGBT链接:
您需要具备微积分基础才能理解基本神经网络训练背后的数学原理。确实没有办法解决它——大多数神经网络训练都是 "gradient descent" 优化的某种变体。梯度是导数的一种形式;为了找到梯度,你必须求导数。
如果您正在寻找最低限度,那么您可以理解导数,而不是继续学习积分——例如,您问题中的两个符号代表采用特定类型的导数.
线性代数也很重要,有一些就好了。您真的不需要任何花哨的东西来理解基本的神经网络知识,但了解向量是什么、矩阵乘法的工作原理以及原因也很重要。
我建议您审核 Coursera course on Machine Learning taught by Andrew Ng。它的结构和节奏非常好,他以一种非常易于理解的方式呈现数学。如果你能坚持到第 5 周,作业实际上就是你感兴趣的问题:用于手写数字识别的神经网络。
我最近决定开始学习人工智能,特别是神经网络,因为我相信它能让我解决我目前无法解决的新问题。
作为第一步,我希望能够编写一个简单的神经网络来识别手写数字(使用 MNIST 数据集),并且我希望能够在接下来的几个 weeks/months.
我为初学者找到了很多资源,其中一些看起来非常好(比如这个:http://neuralnetworksanddeeplearning.com/chap1.html)。我已经阅读了 5-6 本关于神经网络的书的开头部分,但我一直遇到的问题是,由于我缺乏数学知识,所以在某些时候,我会迷失在解释中。
例如,在链接的教程中,我对以下符号有问题:∇、∂、→。更一般地说,我偶然发现了数学符号:我不知道但作者假设 reader 知道的常量和特殊符号。
所以我的问题来了:我需要什么样的数学才能让我快速开始使用神经网络,这将使我能够毫不费力地阅读那些伟大的 books/tutorials 我成立。我对线性代数有一些非常基本的概念,但仅此而已。
我就出去说吧:你找过一门数学较少的课程吗?
虽然您当然需要高等数学才能完全掌握该主题,但您可以找到一门介绍性课程,该课程更多地概述了该领域,并提供了一些具体的实际操作示例。这就是我学习的方式 Python(感谢 YouTube!)
编辑:
@sputnik
What kind of advanced math do you think is needed ?
很简单,我认为你不会。
强烈推荐 在线visual introduction to machine learning.
I have recently decided to start learning about artificial intelligence, and specifically about neural networks, because I believe it would allow me to solve new problems I am currently unable to tackle.
我提到的初级读物的要点是它们让您从决策树开始。这让人想起半个世纪前使用的专家系统,对于刚刚了解该主题的人来说,这是一个很好的叙述。
众所周知,基于树的模型是 Kaggle 竞赛获胜者中最常用的技术,尤其是 XGB trees*。 仅次于神经网络,那为什么要退而求其次呢? ;-)
例如,查看最新的 Kaggle 访谈:Airbnb New User Bookings, Winner's Interview: 2nd place, Keiichi Kuroyanagi (@Keiku)
您无需高级微积分也可以进行统计推断。即使根本没有正规数学,如果你只是想了解这个主题。
* XGBT 中的 'G' 确实 代表梯度,因此您最终将不得不做一些数学运算,但为什么不开始玩得开心呢?您会学得更多、更快!
其他XGBT链接:
您需要具备微积分基础才能理解基本神经网络训练背后的数学原理。确实没有办法解决它——大多数神经网络训练都是 "gradient descent" 优化的某种变体。梯度是导数的一种形式;为了找到梯度,你必须求导数。
如果您正在寻找最低限度,那么您可以理解导数,而不是继续学习积分——例如,您问题中的两个符号代表采用特定类型的导数.
线性代数也很重要,有一些就好了。您真的不需要任何花哨的东西来理解基本的神经网络知识,但了解向量是什么、矩阵乘法的工作原理以及原因也很重要。
我建议您审核 Coursera course on Machine Learning taught by Andrew Ng。它的结构和节奏非常好,他以一种非常易于理解的方式呈现数学。如果你能坚持到第 5 周,作业实际上就是你感兴趣的问题:用于手写数字识别的神经网络。