第1章 初识神经网络 1
1.1 探索神经网络 1
1.2 为什么要用人工神经网络 2
1.3 神经网络的构造 3
1.3.1 基础元素——人工神经元 3
1.3.2 赋予神经元生命——激活函数 4
1.3.3 基础值——权值 5
1.3.4 重要参数——偏置 5
1.3.5 神经网络组件——层 5
1.4 神经网络结构 6
1.4.1 单层神经网络 7
1.4.2 多层神经网络 7
1.4.3 前馈神经网络 8
1.4.4 反馈神经网络 8
1.5 从无知到有识——学习过程 8
1.6 实践神经网络 9
1.7 小结 15
第2章 神经网络是如何学习的 16
2.1 神经网络的学习能力 16
2.2 学习范式 17
2.2.1 监督学习 17
2.2.2 无监督学习 18
2.3 系统结构——学习算法 19
2.3.1 学习的两个阶段——训练和测试 20
2.3.2 细节——学习参数 21
2.3.3 误差度量和代价函数 22
2.4 学习算法示例 22
2.4.1 感知机 22
2.4.2 Delta规则 23
2.5 神经网络学习过程的编码 23
2.5.1 参数学习实现 23
2.5.2 学习过程 24
2.5.3 类定义 26
2.6 两个实例 33
2.6.1 感知机(报警系统) 34
2.6.2 ADALINE(交通预测) 37
2.7 小结 42
第3章 运用感知机 43
3.1 学习感知机神经网络 43
3.1.1 感知机的应用和局限性 44
3.1.2 线性分离 44
3.1.3 经典XOR(异或)例子 45
3.2 流行的多层感知机(MLP) 47
3.2.1 MLP属性 48
3.2.2 MLP权值 49
3.2.3 递归MLP 50
3.2.4 MLP在OOP范式中的结构 50
3.3 有趣的MLP应用 51
3.3.1 使用MLP进行分类 51
3.3.2 用MLP进行回归 53
3.4 MLP的学习过程 54
3.4.1 简单但很强大的学习算法——反向传播 55
3.4.2 复杂而有效的学习算法——Levenberg-Marquardt 57
3.5 MLP实现 58
3.5.1 实战反向传播算法 61
3.5.2 探索代码 62
3.6 Levenberg-Marquardt实现 66
3.7 实际应用——新生入学 68
3.8 小结 71
第4章 自组织映射 72
4.1 神经网络无监督学习方式 72
4.2 无监督学习算法介绍 73
4.3 Kohonen自组织映射 76
4.3.1 一维SOM 77
4.3.2 二维SOM 78
4.3.3 逐步实现自组织映射网络学习 80
4.3.4 如何使用SOM 81
4.4 Kohonen算法编程 81
4.4.1 探索Kohonen类 84
4.4.2 Kohonen实现(动物聚类) 86
4.5 小结 88
第5章 天气预测 89
5.1 针对预测问题的神经网络 89
5.2 无数据,无神经网络——选择数据 91
5.2.1 了解问题——天气变量 92
5.2.2 选择输入输出变量 92
5.2.3 移除无关行为——数据过滤 93
5.3 调整数值——数据预处理 94
5.4 Java实现天气预测 96
5.4.1 绘制图表 96
5.4.2 处理数据文件 97
5.4.3 构建天气预测神经网络 98
5.5 神经网络经验设计 101
5.5.1 选择训练和测试数据集 101
5.5.2 设计实验 102
5.5.3 结果和模拟 103
5.6 小结 105
第6章 疾病诊断分类 106
6.1 什么是分类问题,以及如何应用神经网络 106
6.2 激活函数的特殊类型——逻辑回归 107
6.2.1 二分类VS多分类 109
6.2.2 比较预期结果与产生结果——混淆矩阵 109
6.2.3 分类衡量——灵敏度和特异性 110
6.3 应用神经网络进行分类 111
6.4 神经网络的疾病诊断 114
6.4.1 使用神经网络诊断乳腺癌 114
6.4.2 应用神经网络进行早期糖尿病诊断 118
6.5 小结 121
第7章 客户特征聚类 122
7.1 聚类任务 123
7.1.1 聚类分析 123
7.1.2 聚类评估和验证 124
7.1.3 外部验证 125
7.2 应用无监督学习 125
7.2.1 径向基函数神经网络 125
7.2.2 Kohonen神经网络 126
7.2.3 数据类型 127
7.3 客户特征 128
7.4 Java实现 129
7.5 小结 135
第8章 模式识别(OCR案例) 136
8.1 什么是模式识别 136
8.1.1 定义大量数据中的类别 137
8.1.2 如果未定义的类没有被定义怎么办 138
8.1.3 外部验证 138
8.2 如何在模式识别中应用神经网络算法 138
8.3 OCR问题 140
8.3.1 简化任务——数字识别 140
8.3.2 数字表示的方法 140
8.4 开始编码 141
8.4.1 生成数据 141
8.4.2 构建神经网络 143
8.4.3 测试和重新设计——试错 144
8.4.4 结果 145
8.5 小结 148
第9章 神经网络优化与自适应 149
9.1 神经网络实现中的常见问题 149
9.2 输入选择 150
9.2.1 数据相关性 150
9.2.2 降维 151
9.2.3 数据过滤 152
9.3 结构选择 152
9.4 在线再训练 154
9.4.1 随机在线学习 155
9.4.2 实现 156
9.4.3 应用 157
9.5 自适应神经网络 159
9.5.1 自适应共振理论 159
9.5.2 实现 160
9.6 小结 162
附录A NetBeans环境搭建 163
附录B Eclipse环境搭建 175
附录C 参考文献 186