(吴恩达机器学习)4.神经网络

1初识神经网络

神经网络按层划分,中间部分为隐藏层,最后的层为输出层。每个层中有一个或者多个神经元。输入到layer中的数据是输入数据,从隐藏层输出的数据叫激活,从output layer输出的数据是最终获得的输出数据。

如下,以人脸识别为例子

中间隐藏层一层一层的对图片进行解析,并将激活输入到下一层,最终获得结果的可能性。

2神经网络的构建

2.1神经网络的网络层

神经网络的网络层实际就是隐藏层和输出层的总和,以下分别介绍隐藏层和输出层的大致运行内容

        如上,实际每一层的神经元其实就是一个逻辑回归单元。输入的数据在逻辑回归单元的计算下,得到的概率,每个神经元都可以对输入的数据进行处理,从而得到了一个数据向量,就是该层输出的激活。然后将这个激活输入到下一层进行同样的操作

        输出层也是如此,只是输出层一般情况只存在一个神经元。此外,如人脸识别的神经网络最终输出的都是是否,而非概率,这时可能要进行决策边界进行判断

2.2更复杂的神经网络

        上述所举例的神经网络隐藏层只有一层,在实际的神经网络模型中隐藏层都是多层的。并且上一层的激活数据就是下一层的输入数据,如下图:

2.3神经网络的向前传递性

3神经网络搭建的代码实现

3.1简单神经网络层的实现

以上述简单的神经网络模型为例:

        x = np.array([[200.0,17.0]])用一个二维数组定义一个1x2的矩阵,在后面实现神经网络所用的tensorflow在计算逻辑回归中的点成运算时,用的多是矩阵。一维数组所定义的看起来像1*n的矩阵,但实际上它只是一个一维数组,不能很好的适配方法库

        layer_1 = Dense(units = 3, activation = 'sigmoid')表示第一层的定义,units = 3说明有三个神经元,activation = 'sigmoid'表示激活的输出使用的是逻辑回归的sigmoid函数计算。

        a1 = layer_1(x)通过第一层计算得到的激活数据

        和上述隐藏层的代码定义类似,这里输出层的代码定义也是如此。只是输入的数据是上述的激活数据。

3.2tensorflow中的数据格式

先从简单的矩阵的数据格式开始

正如之前所提到的,在使用numpy的array方法进行数组定义是,都是定义二维数组。尽管一维数组看起来很像一个矩阵向量,但它并不是一个真正的矩阵

以上一节隐藏层所得到的[0.2,0.7,0.3],通过Tensor函数将其转换为矩阵

3.3搭建一个神经网络

结合3.1简单搭建神经网络层的内容,在搭建layer_n的层之后,用函数将两层串联起来,并将数据输入,对其进行训练。

        如果隐藏层的数量较多

4网络层的代码实现

4.1网络层的向上传播

(注:这里在计算输出层的输出数据时,出现了小问题。隐藏层输出的激活时一个三维向量,所以输出层这里参数特征向量也是三维的,不然无法点成)

4.2 向上传播的一般实现

        和4.1 不同的是,4.1写的是每个神经元的计算流程。而这一节则是对层中神经元的计算进行了封装,也是前面搭建神经网络时经常看到的那个封装函数。

def dense(a_in,W,b,g):

        units = W.shape[1]//w.shape函数获取的是该矩阵的行列数量,放在一个数组中,0下标代表                                  //行数量,1下标为列数量。所以这里获取到W矩阵的列数量为3,为神经元数量

        a_out = np.zeros(units)

        for j in range(units):  //循环获取W矩阵的列向量,进行逻辑回归的计算

                w = W[:,j]          //获取第j列计算

                z = np.dot(w,a_in)+b[j]  

                a_out[j] = g(z)           //逻辑回归的计算

        return a_out

  • 15
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值