深度学习入门——三层神经网络(前向处理)


设定一个三层神经网络,输入层(第0层)2个神经元,第一层3个神经元,第二层2两个神经元,输出层3个神经元。

1. 输入层到第一层的信号传递
在这里插入图片描述
2. 第一层到第二层的信号传递
在这里插入图片描述
3. 第二层到输出层的信号传递
在这里插入图片描述

  • a1, a2, a3…是对应的每个神经元的输入信号,要通过y(x)、sigama(x)激活函数转化为输出信号。
  • sigama(x)——输出层的激活函数,与前面的不一样
  • 偏置b,在除了输出层其他层都存在,它决定神经元的激活容易度
  • 输出层的激活函数:回归问题(恒等函数identity_function),二元分类(sigmoid),多元分类(softmax)
import numpy as np


def sigmoid(x):
    """定义激活函数为sigmoid"""
    return 1 / (1 + np.exp(-x))


# 输入层到第1层的信号传递
X = np.array([1, 0.5]) # 对应输入层有几个神经元
W1 = np.array([[0.1, 0.3, 0.5], [0.2, 0.4, 0.6]]) # 技巧:几个输入的神经元就有几个数组(几行),第二层的神经元有几个就有几个
# (几列)
B1 = np.array([0.1, 0.2, 0.3]) # 偏置(第二层有几个神经元就有几个元素)

A1 = np.dot(X, W1) + B1 # 此时是第一层神经元的输入
Z1 = sigmoid(A1) # 激活函数转化后的信号


# 第1层到第2层
W2 = np.array([[0.1, 0.4], [0.2, 0.5], [0.3, 0.6]])
B2 = np.array([0.1, 0.2])

A2 = np.dot(Z1, W2) + B2
Z2 = sigmoid(A2)


# 第2层到输出层,注意输出层的激活函数不一样
def identity_function(x):
    """定义输出层的激活函数"""
    return x


W3 = np.array([[0.1, 0.3], [0.2, 0.4]])
B3 = np.array([0.1, 0.2])

A3 = np.dot(Z2, W3) + B3
Y= identity_function(A3) # 或者直接Y=A3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值