查看原文
其他

【强基固本】神经网络如何模拟任意函数?

“强基固本,行稳致远”,科学研究离不开理论基础,人工智能学科更是需要数学、物理、神经科学等基础学科提供有力支撑,为了紧扣时代脉搏,我们推出“强基固本”专栏,讲解AI领域的基础知识,为你的科研学习提供助力,夯实理论基础,提升原始创新能力,敬请关注。

来源:知乎—jerryjee

地址:https://zhuanlan.zhihu.com/p/396204813


01

概述
神经网络之所以强大,在于它强大的模拟能力。理论上,它可以以无限小的误差模拟任意函数。
也就是说,可以利用神经网络构建任意函数,得到任意算法。
这里使用一些可视化的样例,帮助大家获得一些直观的理解。

02

一元函数的模拟
直线
这个是最简单的情况,我们使用一个不带激活函数的神经元即可模拟。

通过调整    参数,即可模拟任意直线。
阶跃函数Step Function

我们使用一个带Sigmoid激活函数的神经元来模拟。

随着    参数继续增大,神经网络就会逐步逼近该函数。
矩形脉冲函数

我们分成几步来模拟:
1. 使用1个神经元来模拟函数的左半部分。

 
2. 使用1个神经元来模拟函数的右半部分(上下颠倒)。

3. 再使用一个神经元将前2步的图像进行合成

得到的结果很好地近似了目标函数。
其它一元函数
利用矩形脉冲函数,我们很容易近似其它任意函数,就像积分原理一样。


03

二元函数的模拟
平面
这个是最简单的情况,我们使用一个不带激活函数的神经元即可模拟。

通过调整    参数,即可模拟任意平面。
二元阶跃函数Step Function

我们使用一个带Sigmoid激活函数的神经元来模拟。
二元矩形脉冲函数

与一元函数的情况类似,我们分步实现它:
1. 使用一个神经元来模拟函数的一个边缘

 
2. 然后我们可以得到以下函数:

3. 最后,可以合成以下函数

最终的神经网络结构如下图所示:

其它二元函数
利用二元矩形脉冲函数,我们很容易近似其它任意二元函数,就像积分原理一样。
n元函数的模拟
原理一样,自己想象!

04

问题
我们已经拥有了数字电路以及软件程序算法,为什么还需要神经网络?
构建与数字电路之上的软件程序也可以模拟任意函数,那为什么还要发明人工神经网络呢?

参考软件

更多内容及可交互版本,请参考App:神经网络与深度学习

本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。


“强基固本”历史文章


更多强基固本专栏文章,

请点击文章底部“阅读原文”查看



分享、点赞、在看,给个三连击呗!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存