三、多层感知器与神经网络
EaHalen
这个作者很懒,什么都没留下…
展开
-
3.8 网络参数选择的总原则
构建网络的总原则总原则:保证神经网络容量足够拟合数据一、增大网络容量,直到过拟合二、采取措施抑制过拟合三、继续增大网络容量,直到过拟合网络容量 --- 信息传递的能力如何抑制过拟合 --- DropOut、正则化...原创 2022-04-01 20:01:17 · 253 阅读 · 0 评论 -
3.7 使用正则抑制过拟合
正则化L1 正则化 loss = s * abs(w1 + w2 + ...) + mseL2 正则化 loss = s *(w1**2 + w2**2 + ...) + mseimport kerasfrom keras import layersimport pandas as pdimport numpy as npimport matplotlib.pyplot as pltfrom keras import regulari...原创 2022-04-01 16:40:13 · 683 阅读 · 0 评论 -
3.6 DropOut抑制过拟合
1)为什么说DropOut可以抑制过拟合?(1)取平均的作用:先回到标准的模型即没有dropout,我们用相同的训练数据去训练5个不同的神经网络,一般会得到5个不同的结果,此时我们可以采用“5个结果取均值”或者“多数取胜的投票策略”去决定最终结果。(2)减少神经元之间复杂的共适应关系因为dropout程序导致两个神经元不一定每次都在一个dropout网络中出现。这样权值的更新不再依赖于有固定关系的隐含节点的共同作用,阻...原创 2022-04-01 15:53:35 · 551 阅读 · 0 评论 -
3.5 过拟合与神经网络的客观评价
评价标准:对未见过数据的预测import kerasfrom keras import layersimport pandas as pdimport numpy as npimport matplotlib.pyplot as pltdata = pd.read_csv('./dataset/credit-a.csv', header=None)x = data.iloc[:, :-1].valuesy = data.iloc[:,-1].replace(-1,0).values.原创 2022-04-01 15:16:54 · 556 阅读 · 0 评论 -
3.4 信用卡欺诈预测代码实现
import kerasfrom keras import layersimport pandas as pdimport numpy as npimport matplotlib.pyplot as pltdata = pd.read_csv('./dataset/credit-a.csv', header=None)x = data.iloc[:, :-1].valuesy = data.iloc[:,-1].replace(-1,0).values.reshape(-1, 1)y.原创 2022-04-01 14:48:15 · 617 阅读 · 0 评论 -
3.3 多层感知器的代码实现
基于JupyterNoteBook(Annaconda3)搭建的tensorflow开发环境。所使用到的数据集见我的博客上传的资源中,欢迎大家下载。import pandas as pdimport kerasimport numpy as npfrom keras import layers# 1)Pandas模块读取数据data = pd.read_csv('./dataset/tt/train.csv')# 2)数据预处理y = data.Survivedx = da原创 2022-04-01 14:15:50 · 181 阅读 · 0 评论 -
3.2 激活函数和常见的优化算法
1)常见的激活函数1、sigmoid激活函数一般用于二分类的输出2、relu激活函数3、tanh激活函数2)常见的优化函数优化器(optimizer)是编译Keras模型的所需的两个参数之一。你可以先实例化一个优化器对象,然后将它传入model.compile(),或者你可以通过名称来调用优化器。在后一种情况下,将使用优化器的默认参数。1)SGD(随机梯度下降优化器)随机梯度下降优化器SGD和min-batch是同一个意思,抽取m个小批量(独...原创 2022-04-01 13:50:42 · 269 阅读 · 0 评论 -
3.1 多层感知器原理与梯度下降算法
1)单个神经元(二分类)2)多个神经元(多分类) --- 建立多个神经元,但是他只有一层补: 单层神经元的缺陷 1)单层神经元是无法拟合“异或”运算。异或问题看似简单,使用单层的神经元确实没办法解决。 即是输入与输出之间无法去进行线性分割,比如下图 2)总结:Sigmoid神经元要求数据必须是线性可分的。“异或”问题无法找到一条直线去分割两个类。...原创 2022-04-01 13:25:31 · 1157 阅读 · 0 评论