神经网络作为通用逼近器:
激活函数
¥
支付方式
请使用微信扫一扫 扫描二维码支付
请使用支付宝扫一扫 扫描二维码支付
神经网络作为通用逼近器:
激活函数
更复杂的决策边界问题:
五边形问题。
NP难问题,给出一个问题,很简单就能够证明,要想得到一个答案,是不可行的。
理论可行,计算上不可行。
回到分类问题上,如果修改一点权重,是否是在向正确的方向移动呢?是否在朝着提升效果的方向上移动呢?当然不会!因为输出是一个符号函数,也许可以改变整个W,但是这个输出不会改变!当穿越训练实例时,才是改变输出的唯一方式!
larger problem时,也是一样:
输出是一个阶跃,直到穿越了一个实例,才会发生变化。因此,对于W的小调整,并不会告诉你输出发生了什么变化。所以感知机的规则不适合这里。
另外一个问题:正负线性不可分。
解决solution:
知道反馈,并调整参数。需要找到一个合适的激活函数,来替代当前的符号函数。可能需要一些更平滑的激活函数,这种函数可微分,在任何地方都具有非零导数。=>sigmoid
————————————————————
引入可微分激活函数:
sigmoid可微。当x改变多少,y就改变多少。把W增加一点点,可以得到Y的相应变化。
Y对于X和W是可微的。
w/输入的微小变化,会在多大程度上改变Y。整个网络都是可微的,包括它的所有参数和所有输入。
————————————————————
最小化期望误差:
在实际中,某些X的发生频率更高,另外一些X未出现过。我们希望更多地关注X更可能发生的地方,更少地去关注X不太可能发生的地方。换句话说,对于每一个X,不仅仅希望最小化误差,还根据X的概率来对这些误差进行加权。出现的概率大,则对最后结果影响的概率大。
针对训练数据,计算经验误差,这其实就是优化问题。
————————————————
总结:
多组合优化问题:使用非零导数的连续激活函数,使我们能够估计网络参数。
定义网络输出之间的可区分散度。对于训练实例的期望输出,散度函数必须是可微分的,如果不是的话,即使整个网络是可微的,也会使网络崩溃。如果误差是不可微的,那我们就不能根据参数的调整,得到误差的变化趋势。
1、感知器:输入加权值和,与阈值相比,超过则传递,否则不传递。
2、仿射和线性的区别
(线性)f(ax + by)= af(x)+ bf(y)
(仿射)f(x) = sum(wixi)+ b
3、多层感知器作为布尔函数
一层感知器就可以表达任意布尔函数,但是参数是指数级的。(深度很重要,固定深度会导致宽度过大。)
参照部分网上资料,自己写了个感知机算法的python实现,https://github.com/hktxt/NoAdmittance/blob/master/PLA.ipynb
2. 感知机 一个神经元节点
3. 多层神经元可以模拟任何连续的函数
4. 一个感知机可以模拟任何简单的二元布尔运算
5. 多层感知机可以模拟任何复杂的布尔函数
6. 一个隐藏层神经网络 is Universal Boolean Function
7.
神经网络是最新最热的研究
语言识别,语言翻译,图像分割,艺术,医疗,股票,几乎所有的领域都能从AI中获得好处,深度神经网络就是最先进的技术。
联结主义
人类的大脑是通过神经元连接起来的。每个神经元都被其他很多神经元连接起来,目前为止不知道为什么是这样的,但我们明白了认知是基于什么所形成的。所有存储在大脑的信息,实际上是存在于大脑神经元的连接中。所有的一切都是依赖于神经元之间的连接来决定如何工作的。
Neural Networks are universal function approximators
Can model any Boolean function
Can model any classification buondary
Can model any continuous valued function