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

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

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

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

神经网络的每一层是由神经元构成的,每个神经元包含一个值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月前
|
机器学习/深度学习 人工智能 运维
网管不再抓头发:深度学习教你提前发现网络事故
网管不再抓头发:深度学习教你提前发现网络事故
80 2
|
2月前
|
机器学习/深度学习 人工智能 算法
Wi-Fi老是卡?不如试试让“深度学习”来当网络管家!
Wi-Fi老是卡?不如试试让“深度学习”来当网络管家!
232 68
|
9月前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
802 55
|
8月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
476 5
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
7月前
|
机器学习/深度学习 数据可视化 算法
PyTorch生态系统中的连续深度学习:使用Torchdyn实现连续时间神经网络
神经常微分方程(Neural ODEs)是深度学习领域的创新模型,将神经网络的离散变换扩展为连续时间动力系统。本文基于Torchdyn库介绍Neural ODE的实现与训练方法,涵盖数据集构建、模型构建、基于PyTorch Lightning的训练及实验结果可视化等内容。Torchdyn支持多种数值求解算法和高级特性,适用于生成模型、时间序列分析等领域。
352 77
PyTorch生态系统中的连续深度学习:使用Torchdyn实现连续时间神经网络
|
5月前
|
机器学习/深度学习 人工智能 运维
AI“捕风捉影”:深度学习如何让网络事件检测更智能?
AI“捕风捉影”:深度学习如何让网络事件检测更智能?
129 8
|
6月前
|
机器学习/深度学习 数据采集 算法
基于MobileNet深度学习网络的MQAM调制类型识别matlab仿真
本项目基于Matlab2022a实现MQAM调制类型识别,使用MobileNet深度学习网络。完整程序运行效果无水印,核心代码含详细中文注释和操作视频。MQAM调制在无线通信中至关重要,MobileNet以其轻量化、高效性适合资源受限环境。通过数据预处理、网络训练与优化,确保高识别准确率并降低计算复杂度,为频谱监测、信号解调等提供支持。
|
6月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
害虫识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了12种常见的害虫种类数据集【"蚂蚁(ants)", "蜜蜂(bees)", "甲虫(beetle)", "毛虫(catterpillar)", "蚯蚓(earthworms)", "蜚蠊(earwig)", "蚱蜢(grasshopper)", "飞蛾(moth)", "鼻涕虫(slug)", "蜗牛(snail)", "黄蜂(wasp)", "象鼻虫(weevil)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Djan
363 1
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
6月前
|
机器学习/深度学习 存储 算法
基于MobileNet深度学习网络的活体人脸识别检测算法matlab仿真
本内容主要介绍一种基于MobileNet深度学习网络的活体人脸识别检测技术及MQAM调制类型识别方法。完整程序运行效果无水印,需使用Matlab2022a版本。核心代码包含详细中文注释与操作视频。理论概述中提到,传统人脸识别易受非活体攻击影响,而MobileNet通过轻量化的深度可分离卷积结构,在保证准确性的同时提升检测效率。活体人脸与非活体在纹理和光照上存在显著差异,MobileNet可有效提取人脸高级特征,为无线通信领域提供先进的调制类型识别方案。
|
7月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
522 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能

热门文章

最新文章