说下我对神经网络的认知不知道说的对不对求大佬来评价

2021-10-12 23:11:59 +08:00
 wszgrcy

那么大胆的猜测是不是也有假设不是线性的....比如 xw 这种或者 logwx?

1700 次点击
所在节点    机器学习
9 条回复
flyaway
2021-10-12 23:22:06 +08:00
- 反向传播算法确实是基础,但是除非是做优化的或者做教学的,一般从业者其实很少手工推导。因为大部分的神经网络框架都已经处理好这部分内容了。实现机制比较复杂,我只知道会在内存中维持一个 compution graph 用来追踪所有的网络连接和神经元。
- 层与层之间的连接可以是非线性的,实际上大部分的激活函数都是非线性的。
- matlab 是一种编程语言,tensorflow, pytorch 是 python 下的神经网络框架。tensorflow 和 pytorch 数学抽象都是一样的,只是具体的实现方式不一样。就像 java 和 C++的关系,都是基于上下文无关文法的语言,只是各自有各自的特点。
dji38838c
2021-10-12 23:31:27 +08:00
你这里面自己脑补的东西太多了
建议好好跟一个课程学学。
wszgrcy
2021-10-12 23:32:39 +08:00
@flyaway
也就是现在的算法什么的,一般都看看原理,就算是真正从事人工智能的大佬,不排在前几位基本上都属于调用?(研究出一个新的算法应该很费精力吧)
激活函数是非线性的这个我知道,但是为啥没有那种 w^x x^w logxw 这种输出的计算?还是说有但是比较高级?
matlab 看起来更友好一些,但是是收费的,下一个快 20g......是不是换成其他的好一些.难道是 gui 收费,但是可以单独编译?
最后感谢大佬,
askfermi
2021-10-12 23:33:40 +08:00
> 有手写反向传播计算梯度的例子吗?因为看的只是推导,感觉还少一个像高数上那种一个定理后面跟个例子让我学习的.........还是一般情况下大家都是只了解下推理过程,最后计算机计算都是调方法?

其实就是 chain rule 反复用来用去。但我还真的曾经做了一个例子: https://tinynet.autoai.org/en/latest/induction/linear.html

这个例子只是 linear (或叫全连接?)层的,但是其他的基本上也通用。

> matlab,tensorflow,pytorh 等软件 /框架 /包是不是同一种神经网络(就是前面说的那种最简单的先正向计算结果,再反向计算梯度),实现原理是一样的?只不过其他的功能封装的有所不同?

据我所知,数学原理应该是一样的,但是优化的方法不同,例如 TF 1 会用静态图?我也不是很了解。

> 前馈神经网络是我前面说的输出=权重乘输入,没有计算梯度进行修改权重的方式,为啥还叫神经网络?个人理解应该要有纠正的环节,难道是权重手动瞎蒙吗?

感觉你的理解有误,前馈神经网络只是你的网络里没有环,但依然要反向传播算梯度。

> 如果理论没啥大问题,要开始实战,有没有大佬有什么推荐看的东西?

你可以自己实现一个神经网络框架。只有全连接的话很快。欢迎参考: https://github.com/autoai-org/Tinyml
wszgrcy
2021-10-12 23:34:31 +08:00
@dji38838c 几百亿的神经元当然是用来脑补的(误),不过你说的对,确实是应该找课程看看,两年前下了一堆,但是没找到目标,部分基础也不牢有些也没看明白,这回应该回去看下
wszgrcy
2021-10-12 23:36:35 +08:00
@askfermi 感谢,可能有些概念我还是没完全理解.还需要再看下
flyaway
2021-10-12 23:40:31 +08:00
- 并不是什么排在前几位的才研究优化,只是大家的研究领域不同而已。有的人研究模型结构,比如现在流行的 Transformer,也有人研究优化算法,比如 Adam 和 Adafactor 。分工和兴趣不同而已。
- 我没见过那么复杂的计算,我猜测是因为简单的加和计算可以转化为矩阵乘积,更加适合用 GPU 来加速。
- 个人不推荐 Matlab,Matlab 更加偏数学和工程。如果你确实想做一些东西,我建议还是从 python 开始,python 圈里的资源更加丰富。
IgniteWhite
2021-10-12 23:45:28 +08:00
理论的基础实际上是你认知的基础。你看看自己能不能回答以下几个问题:

线性回归里,变量 x 和参数 w 组成的模型算出的值和实际数据是否一样?
似然函数的自变量是什么?
贝叶斯理论中,prior,posterior,以及似然值和前两个问题里的各种量如何对应?
IgniteWhite
2021-10-13 00:01:33 +08:00
@IgniteWhite 问这几个问题的点在于,计算机在机器学习的问题上,要算的是一个概率论的东西。用概率论来描述问题时,一种简化思路是用节点来代表随机变量,用连接来代表非条件独立性的关系。这种结构刚好看起来像神经元的组成方式,仅此而已。

也就是说你在搞的是概率论的应用,使用到了线性代数和微积分的工具。电脑最终计算的是条件分布。所谓神经网络不能离开概率论去理解。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/807424

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX