问题一: 机器学习的基本流程(13)


不管是检验还是交叉检验,都是基于划分训练集和测试集的方法进行 模型评估的.然而,当样本规模比较小时,将样本集进行划分会让训练集进一步 减小,这可能会影响模型训练效果.有没有能维持训练集样本规模的验证方法 呢?自助法可以比较好地解决这个问题.
自助法是基于自助采样法的检验方法.对于总数为n的样本集合,进行n次有 放回的随机抽样,得到大小为n的训练集.n次采样过程中,有的样本会被重复采 样,有的样本没有被抽出过,将这些没有被抽出的样本作为验证集,进行模型验 证,这就是自助法的验证过程.
问题四: 神经网络
要求: 构建神经网络,实现“与”“或”“非”“异或”运算,系统阐述BP神经网络结构原理,用类C语言(或)写出误差传播算法.
问题1 构建神经网络,实现“与”“或”“非”“异或”运算
计算机通常使用数字 1 表示真,使用数字 0 表示假.下列的表格使用 这种相对简洁的表示方法, 基于输入值 A 和输入值 B 的所有组合, 表示 了逻辑 AND 和 OR 函数.
输入值 A输入值 B逻辑 AND逻辑 OR
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
你可以很清楚地看到, 只有 A 和 B 同时为真时,AND 函数才为真. 同样,你也可以看到,只要 A 和 B 有一个为真时,OR 就为真.
在计算机科学中,布尔逻辑函数非常重要.事实上,最早的电子计算 机就是使用执行这些逻辑函数的微电路构造的.即使是算术,也是使用这 些本身很简单的布尔逻辑函数的电路组合来完成的.
想象一下,不论数据是否由布尔逻辑函数控制,使用简单的线性分类 器就可以从训练数据中学习.对于试图在一些观察和另一些观察之间找到 因果关系或相关关系的科学家而言,这是很自然也是很有用的一种工具. 例如,在下雨时 AND(并且)温度高于 35 摄氏度时,有更多疟疾病人吗? 当这两个条件(布尔 OR)有任何一个条件为真时,有更多疟疾病人吗?
请看下图, 这幅图在坐标系中显示了两个输入值 A 和 B 与逻辑函数 的关系.这幅图显示,只有当两个输入均为真时,即具有值 1 时,输出才 为真,使用绿色表示.否则输出为假,显示为红色.
你还可以看到一条直线, 将绿色区域和红色区域划分开来. 正如 我们先前完成的演示, 这条直线是线性分类器可以学习到的一个线性 函数.
在这个例子中,数字计算没有本质上的不同,因此我们就不像先前一 样进行数字计算了.
事实上,有许多不同的分界线,也可以很好地对区域进行划分,但是,主 要的一点是,对于形如 y = ax + b 的简单的线性分类器,确实可以学习到布尔 AND 函数.
现在,观察使用类似的方式绘制出的布尔 OR 函数:
此时,由于仅有点(0,0)对应于输入 A 和 B 同时为假的情况,因此只有这个点是红色的.
所有其他的组合, 至少有一个 A 或 B 为真, 因此输出为真. 这幅图的妙处在于,它清楚地表明了线性分类器也可以学习到布尔 OR 函数.
还有另一种布尔函数称为 XOR,这是OR(异或)的缩写,这种函数只有在 A 或 B 仅有一个为真但两个输入不同时为真的情况下,才输出为真.也就是说,当两个输入都为假或都为真时,输出为假.下表总结了这一点.
输入 A输入 B逻辑 XOR
0
0
0
0
1
1
1
0
1
1
1
0
现在,观察这个函数的图,其中网格节点上的输出已经画上颜色了.
这是一个挑战!我们似乎不能只用一条单一的直线将红色区域和蓝 色区域划分开来.