我们首先来看一个糖尿病的数据集:
在数据集中,我们称每一行叫做sample,表示一个样本,称每一列是feature,也就是特征在数据库里面这就是一个关系表,每一行叫做记录,每一列叫做字段。
每一个样本都要乘以一个权重,累加求和而后加上偏移量。
尽量使用线性计算,而不是使用循环来进行计算,能充分利用CPU处理数据数据的能力。
我们可以将多个sigmoid模块首位相连,构建一个多层的神经网络。
矩阵是一个空间变换的函数。
我们通过引入激活函数,可以对线性运算增加非线性因子。用于保留权重。
我们通过逐步降维得到一维结果,而不是直接降到一维,这样我们能够利用的维度信息就相对比较多,得到的结果的拟合度也就越高。当然,我们也可以现将其升维,再将其降维,我们利用越多的深度,就对于我们的预测结果保留了更多的信息。降维和升维的步骤都要包括线性运算(使用矩阵相乘以及使用激活函数进行非线性转化)。一般来说,隐藏层越多,我们模型的学习能力就越强。
这样来说,是不是层数越多越好呢?当然不是,隐藏层越多,学习能力越强,那么我们利用噪声的能力越强,但是我们希望的是尽量减少噪声对我们结果的影响我们想要的是某一部分的数据信息,这时候,隐藏层多了的话,反而成为了负担,所以我们要综合各种因素,选择适合的隐藏层数量。我们的模型一定要具有泛化能力。
我们学习计算机要求的能力:
1,不要死抠书本。
2,读文档的能力,理解基本架构理念。
学习能力太强,就相当于背书,以后很多内容都可能用不上而且浪费时间,我们学习任务时,要学会泛化,忽略噪声,抓住问题核心本质。
delimiter表示的是分隔符,注意,以后在设置数据类型的过程中,尽量设置为np.float32(显卡嘴最常用)。y_data的那个-1为什么还要加上中括号呢?加上中括号能保证这是一个矩阵,如果不加中括号得到的是向量。我们要保证x_data和y_data拿到的都是矩阵。
在激活函数中,我们用到的最多的是relu,具体激活函数如下:
激活函数有些是连续的,有些是不连续的。比如relu函数就是不连续的。