打字猴:1.70053796e+09
1700537960
1700537961
1700537962
1700537963
1700537964 图9.3 用卡洛图表示析取范式
1700537965
1700537966 回顾初始问题:在最差情况下,需要多少个隐藏结点来表示包含n元输入的布尔函数呢?现在问题可以转化为:寻找“最大不可规约的”n元析取范式,也等价于最大不可规约的卡诺图。直观上,我们只需间隔填充网格即可实现,其表示的布尔函数恰为n元输入的异或操作,如图9.4所示。容易看出,在间隔填充的网格上反转任意网格的取值都会引起一次规约,因此,n元布尔函数的析取范式最多包含2(n−1)个不可规约的合取范式,对于单隐层的感知机,需要2(n−1)个隐节点实现。
1700537967
1700537968
1700537969
1700537970
1700537971 图9.4 多元异或运算
1700537972
1700537973 问题3 考虑多隐层的情况,实现包含n元输入的任意布尔函数最少需要多少个网络节点和网络层?
1700537974
1700537975 难度:★★★☆☆
1700537976
1700537977 分析与解答
1700537978
1700537979 参考问题1的解答,考虑二元输入的情况,需要3个结点可以完成一次异或操作,其中隐藏层由两个节点构成,输出层需要一个结点,用来输出异或的结果并作为下一个结点的输入。对于四元输入,包含三次异或操作,需要3×3=9个节点即可完成。图9.5展示了一种可能的网络结构。输入W、X、Y、Z 4个布尔变量;首先用3个结点计算W⊕X;然后再加入3个节点,将W⊕X的输出与Y进行异或,得到W⊕X⊕Y;最后与Z进行异或,整个网络总共需要9个结点。而六元输入包含五次异或操作,因此需要3×5=15个节点,网络的构造方式可参考图9.6所示。依此类推,n元异或函数需要包括3(n−1)个节点(包括最终输出节点)。可以发现,多隐层结构可以将隐节点的数目从指数级O(2(n−1))直接减少至线性级O(3(n−1))!
1700537980
1700537981
1700537982
1700537983
1700537984 图9.5 实现四元异或运算的一种网络结构样例
1700537985
1700537986 在上面所举的例子中,n元异或所需的3(n−1)个结点可以对应2(n−1)个网络层(包括隐含层和输出层),实际上,层数可以进一步减小。考虑到四元的输入W、X、Y、Z;如果我们在同一层中计算W⊕X和Y⊕Z,再将二者的输出进行异或,就可以将层数从6降到4。根据二分思想,每层节点两两分组进行异或运算,需要的最少网络层数为2log2N(向上取整)。
1700537987
1700537988
1700537989
1700537990
1700537991 图9.6 实现六元异或运算的一种网络结构样例
1700537992
1700537993
1700537994
1700537995
1700537996 百面机器学习:算法工程师带你去面试 [:1700532221]
1700537997 百面机器学习:算法工程师带你去面试 深度神经网络中的激活函数
1700537998
1700537999
1700538000
1700538001 场景描述
1700538002
1700538003 线性模型是机器学习领域中最基本也是最重要的工具,以逻辑回归和线性回归为例,无论通过闭解形式还是使用凸优化,它们都能高效且可靠地拟合数据。然而真实情况中,我们往往会遇到线性不可分问题(如XOR异或函数),需要非线性变换对数据的分布进行重新映射。对于深度神经网络,我们在每一层线性变换后叠加一个非线性激活函数,以避免多层网络等效于单层线性函数,从而获得更强大的学习与拟合能力。
1700538004
1700538005 知识点
1700538006
1700538007 微积分,深度学习,激活函数
1700538008
1700538009 问题1 写出常用激活函数及其导数。
[ 上一页 ]  [ :1.70053796e+09 ]  [ 下一页 ]