[深度学习底层]简单神经网络的介绍与搭建

简介: [深度学习底层]简单神经网络的介绍与搭建

可以简单地将神经网络理解为一个函数,即将输入的数据进行某种变化成新的输出,神经网络有三个层:输入层,隐藏层,输出层,隐藏层一般可以有很多个,每一层有若干个神经元,以下我们构建一个简单的神经网络(一个输入层,一个隐藏层,一个输出层):

这个神经网络将二维数据转化为三维数据输出(输入层两个神经元,输出层三个神经元)。

神经网络的每一层是由神经元构成的,每个神经元包含一个值x,每个神经元指向下一个神经元的箭头表示当前神经元的权重w,同时包含一个常数b,称为偏置常数,此时,下一个神经元的值为当前神经元乘以权重加上偏置(这是无激活函数时的情况,激活函数下文会说明)。

这个神经网络的python代码实现如下:

import numpy as np
# 设置权重与偏置
w1 = np.random.randn(2, 4)
b1 = np.random.randn(4)
w2 = np.random.randn(4, 3)
b2 = np.random.randn(3)
# 神经网络推理
x = np.random.randn(5, 2)
h = np.dot(x, w1) + b1
s = np.dot(h, w2) + b2
print(s)

w1, w2分别为第一层到第二层,第二层到第三层的各神经元的权重,b1, b2分别为他们的偏置常数,h即为隐藏层各神经元的值,s为输出层各神经元的值。

实际情况中,每个神经元的值不是简单的由上一层神经元的值与权重和偏置进行运算决定的,往往隐藏层的神经元有一个激活函数,一个简单的例子是sigmoid激活函数,sigmoid函数接收任意实数,返回0~1的实数,公式如下:

用python代码实现如下:

def sigmoid(x):
    return 1 / (1 + np.exp(-x))

我们将隐藏层加入一个sigmoid激活函数,变化后的代码如下:

import numpy as np
def sigmoid(x):
    return 1 / (1 + np.exp(-x))
# 设置权重与偏置
w1 = np.random.randn(2, 4)
b1 = np.random.randn(4)
w2 = np.random.randn(4, 3)
b2 = np.random.randn(3)
# 神经网络推理
x = np.random.randn(10, 2)
h = np.dot(x, w1) + b1
a = sigmoid(h)
s = np.dot(a, w2) + b2
print(s)

此时上一层神经元值与权重,偏置常数计算后的值作为激活函数的自变量,这时隐藏层神经元的值为激活函数的值

以上就是简单的神经网络介绍与实现代码啦。参考书籍:《深度学习进阶:自然语言处理》——斋藤康毅

相关文章
|
3天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
92 55
|
12天前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
83 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
6天前
|
机器学习/深度学习 算法 信息无障碍
基于GoogleNet深度学习网络的手语识别算法matlab仿真
本项目展示了基于GoogleNet的深度学习手语识别算法,使用Matlab2022a实现。通过卷积神经网络(CNN)识别手语手势,如"How are you"、"I am fine"、"I love you"等。核心在于Inception模块,通过多尺度处理和1x1卷积减少计算量,提高效率。项目附带完整代码及操作视频。
|
9天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于深度学习网络的宝石类型识别算法matlab仿真
本项目利用GoogLeNet深度学习网络进行宝石类型识别,实验包括收集多类宝石图像数据集并按7:1:2比例划分。使用Matlab2022a实现算法,提供含中文注释的完整代码及操作视频。GoogLeNet通过其独特的Inception模块,结合数据增强、学习率调整和正则化等优化手段,有效提升了宝石识别的准确性和效率。
|
11天前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)##
在当今的人工智能领域,深度学习已成为推动技术革新的核心力量之一。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,因其在图像和视频处理方面的卓越性能而备受关注。本文旨在深入探讨CNN的基本原理、结构及其在实际应用中的表现,为读者提供一个全面了解CNN的窗口。 ##
|
13天前
|
机器学习/深度学习 人工智能 算法
深度学习入门:用Python构建你的第一个神经网络
在人工智能的海洋中,深度学习是那艘能够带你远航的船。本文将作为你的航标,引导你搭建第一个神经网络模型,让你领略深度学习的魅力。通过简单直观的语言和实例,我们将一起探索隐藏在数据背后的模式,体验从零开始创造智能系统的快感。准备好了吗?让我们启航吧!
39 3
|
21天前
|
机器学习/深度学习 自然语言处理 语音技术
Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧
本文介绍了Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧,并通过TensorFlow和PyTorch等库展示了实现神经网络的具体示例,涵盖图像识别、语音识别等多个应用场景。
45 8
|
22天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN): 从理论到实践
本文将深入浅出地介绍卷积神经网络(CNN)的工作原理,并带领读者通过一个简单的图像分类项目,实现从理论到代码的转变。我们将探索CNN如何识别和处理图像数据,并通过实例展示如何训练一个有效的CNN模型。无论你是深度学习领域的新手还是希望扩展你的技术栈,这篇文章都将为你提供宝贵的知识和技能。
71 7
|
19天前
|
机器学习/深度学习 自然语言处理 算法
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
27 1
|
22天前
|
机器学习/深度学习 人工智能 自然语言处理
探索深度学习中的卷积神经网络(CNN)及其在现代应用中的革新
探索深度学习中的卷积神经网络(CNN)及其在现代应用中的革新