神经网络编程实战:Java语言实现(原书第2版)
作者:(巴西)法维奥M.索尔斯,艾伦-M.F.索萨
出版社:机械工业出版社
出版时间:2018-07-01
ISBN:9787111600121
定价:¥59.00
译者序
作者和审校者简介
前言
第1章 神经网络入门 1
1.1 探索神经网络 1
1.2 人工神经网络 2
1.2.1 神经网络是如何组织的 3
1.2.2 基本元素—人工神经元 3
1.2.3 赋予神经元生命—激活函数 4
1.2.4 可变参数—权重 5
1.2.5 额外参数—偏置 6
1.2.6 由部分到整体—层 6
1.2.7 神经网络体系结构 7
1.2.8 单层网络 7
1.2.9 多层网络 8
1.2.10 前馈网络 8
1.2.11 反馈网络 8
1.3 从无知到认知—学习过程 9
1.4 开始编程—神经网络实践 10
1.5 神经元类 12
1.6 NeuralLayer类 14
1.7 ActivationFunction接口 15
1.8 神经网络类 15
1.9 运行程序 17
1.10 本章小结 19
第2章
神经网络学习 20
2.1 神经网络的学习能力 21
2.2 学习模式 22
2.2.1 监督学习 22
2.2.2 无监督学习 22
2.3 学习过程 23
2.3.1 寻找损失函数最优下降方向 24
2.3.2 在学习过程中更新权重 25
2.3.3 计算损失函数 25
2.3.4 一般误差和总体误差 27
2.3.5 神经网络的迭代学习什么时候停止比较好 27
2.4 学习算法示例 28
2.4.1 δ规则 29
2.4.2 学习率 30
2.4.3 实现δ规则 30
2.4.4 δ规则学习的核心—train和calcNewWeight方法 31
2.4.5 另一种学习算法—Hebbian学习 34
2.4.6 学习机 35
2.5 在实践中理解学习过程 37
2.6 测试 41
2.7 本章小结 43
第3章 感知机和监督学习 44
3.1 监督学习—训练神经网络 45
3.1.1 分类—寻找合适的类别 45
3.1.2 回归—将实际输入映射到输出 46
3.2 一个基本的神经结构—感知机 48
3.2.1 应用和限制 49
3.2.2 线性可分 49
3.2.3 “异或”问题 50
3.3 多层感知机 52
3.3.1 MLP属性 52
3.3.2 MLP权重 53
3.3.3 递归MLP 54
3.3.4 编码实现MLP 54
3.4 MLP学习 55
3.4.1 反向传播算法 56
3.4.2 动量项 58
3.4.3 编码实现反向传播 58
3.4.4 Levenberg-Marquardt算法 62
3.4.5 编码实现基于矩阵代数的Levenberg-Marquardt算法 64
3.4.6 极限学习机 66
3.5 实例1—基于δ规则和反向传播的“异或”问题 69
3.6 实例2—预测入学状态 72
3.7 本章小结 75
第4章 自组织映射 76
4.1 无监督神经网络 76
4.2 无监督学习算法 77
4.2.1 竞争学习 78
4.2.2 竞争层 80
4.3 Kohonen自组织映射 82
4.3.1 将神经网络代码扩展至Kohonen 83
4.3.2 零维SOM 84
4.3.3 一维SOM 84
4.3.4 二维SOM 85
4.3.5 2D竞争层 87
4.3.6 SOM学习算法 89
4.3.7 邻近神经元的影响—邻域函数 90
4.3.8 学习率 91
4.3.9 竞争学习的一个新类 92
4.3.10 SOM可视化 95
4.3.11 绘制训练数据集和神经元权重的2D图 97
4.3.12 测试Kohonen学习 99
4.4 本章小结 105
第5章 预报天气 106
5.1 神经网络用于回归问题 106
5.2 加载/选择数据 108
5.2.1 创建辅助类 108
5.2.2 从CSV文件加载数据集 111
5.2.3 创建时序结构 112
5.2.4 丢弃NaN 113
5.2.5 获取天气数据 114
5.2.6 天气变量 115
5.3 选择输入和输出变量 115
5.4 预处理 117
5.4.1 归一化 117
5.4.2 应用NeuralDataSet处理归一化 121
5.4.3 应用学习算法进行归一化 123
5.4.4 天气预报的Java实现 123
5.4.5 收集天气数据 123
5.4.6 延迟变量 126
5.4.7 加载数据并开始运行 126
5.4.8 相关性分析 128
5.4.9 创建神经网络 131
5.4.10 训练和测试 131
5.4.11 可视化神经网络的输出 133
5.5 神经网络实验设计 134
5.5.1 设计实验 134
5.5.2 结果和模拟 135
5.6 本章小结 138
第6章 疾病分类识别 139
6.1 分类问题的基础 139
6.1.1 分类数据 140
6.1.2 处理分类数据 141
6.2 逻辑回归 142
6.2.1 多分类与二分类 143
6.2.2 混淆矩阵 144
6.2.3 敏感性与特异性 144
6.2.4 实现混淆矩阵 145
6.3 分类神经网络 147
6.4 用神经网络进行疾病识别 147
6.4.1 乳腺癌识别 148
6.4.2 糖尿病识别 151
6.5 本章小结 154
第7章 客户画像聚类 155
7.1 聚类任务 156
7.1.1 聚类分析 156
7.1.2 聚类评估和验证 157
7.1.3 实现 158
7.1.4 外部验证 159
7.2 应用无监督学习 159
7.3 画像过程 160
7.3.1 预处理 160
7.3.2 Java实现 161
7.3.3 信用卡—客户画像信用分析 161
7.3.4 产品画像 165
7.3.5 多少个簇合适 166
7.4 本章小结 167
第8章 文本识别 168
8.1 模式识别 168
8.1.1 类已知 169
8.1.2 类未知 170
8.2 神经网络用于模式识别 171
8.2.1 数据预处理 171
8.2.2 文本识别(光学字符识别) 172
8.2.3 数字识别 172
8.2.4 数字表示 172
8.2.5 Java实现 173
8.2.6 数据生成 173
8.2.7 神经结构 174
8.2.8 实验 174
8.2.9 结果 176
8.3 本章小结 179
第9章 神经网络优化与调整 180
9.1 神经网络实现的常见问题 181
9.2 输入数据选择 181
9.2.1 数据相关性 182
9.2.2 数据转换 183
9.2.3 降维 183
9.2.4 数据过滤 184
9.2.5 交叉验证 186
9.2.6 神经网络结构选择 187
9.3 在线重训练 189
9.3.1 随机在线学习 190
9.3.2 实现 190
9.3.3 应用 191
9.4 自适应神经网络 193
9.4.1 自适应谐振理论 193
9.4.2 实现 194
9.5 本章小结 195
第10章 神经网络当前趋势 196
10.1 深度学习 196
10.2 深度架构 198
10.2.1 如何用Java实现深度学习 199
10.2.2 神经模糊 201
10.2.3 神经遗传 203
10.3 实现混合神经网络 204
10.4 本章小结 207
参考文献 208