`
wx1568016009
  • 浏览: 24901 次
文章分类
社区版块
存档分类
最新评论

从零开始,搭建一个自己的神经网络

 
阅读更多

还记得我们上次讲到识别图片的神经网络吗?上次我们借助TensorFlow来完成了对图片的识别,对神经网络的工作原理也有所了解了,那么我们今天来尝试一下,从零开始,自己搭建一个简单的神经网络如何?

ok,如果你的回答是"好",那我们就继续往下看,如果你的回答是"不好",那我们今天到这里就结束了。

回答"好"的同学,那我们就开始往下看了:

首先我们要明确我们要做什么:

从零搭建一个神经网络我们需要四个步骤:

1、定义网络的结构,包含输入,输出,隐藏层

2、初始化模型的参数

3、正向传播(计算损失值)

4、反向传播(对权值进行更新)

(3、4两步是不停的重复去做的)

ok,那我们开始了!

在这里,我们需要用到numpy进行数据运算:

pip install numpy

安装完毕之后,我们就开始定义我们的激活函数了,这里我们定义一个简单的SIGMOD函数:

640?wx_fmt=png

在定义好激活函数之后,下面我们需要来定义网络结构,可爱的numpy早就为我们准备好了自带是网络结构,也就是二维矩阵,我们可以简单的对数据进行定义。通过numpy的array方法创建一个二维矩阵,也就是我们的网络结构:

640?wx_fmt=png

输出:

640?wx_fmt=png

下面,我们来对模型参数进行初始化:两个参数w,b(权值和偏置项)

640?wx_fmt=png

初始化完成之后我们就要完成正向传播和反向传播了,对于正向传播,我们用来计算预测的值,而反向传播则是根据预测值和实际值之间的误差来不断更新w和b的一个过程。

首先,我们来定义正向传播:

640?wx_fmt=png

返回梯度grads和损失cost,在计算结束后有必要断言一下数据类型,防止数据出问题。

下面我们来定义一个反向传播,来更新权值和偏置项:

将之前定义的正向传播函数放进去执行迭代操作,计算每一步的当前损失和梯度,利用梯度下降法对权值进行更新

640?wx_fmt=png

到这里整个模型就搭建完啦!

最后,当我们简单的预测模型搭建完毕之后,我们再把对应的预测函数写一下,这样前前后后就算大功告成了!

640?wx_fmt=png

到现在为止,我们的一个简单的神经网络模型和预测函数就全部写完了,怎么样,是不是很简单?

你也动手来试试吧!

代码地址:

https://www.bytelang.com/o/s/c/34DtxAiWGjs=




640?wx_fmt=jpeg

感兴趣的扫个二维码吧!

分享到:
评论

相关推荐

    从零开始一点点搭建神经网络

    ### 从零开始一点点搭建神经网络 #### 一、理解神经元:神经网络的基本单元 在探讨如何构建神经网络之前,首先要理解其最基本组成单元——神经元。神经元是模仿生物神经元工作原理的一种数学模型,它接收输入信号...

    搭建自己的神经网络

    《搭建自己的神经网络》这本书由...总之,《搭建自己的神经网络》是一本非常适合初学者的神经网络教程,它不仅讲解了理论知识,还提供了实践指导,使读者能够从零开始构建自己的神经网络模型,体验人工智能的魅力。

    从零开始搭建神经网络-卷积神经网络(CNN)

    卷积神经网络的基础内容可以参考:机器学习算法之卷积神经网络卷积神经网络一般包括卷积层,池化层和全连接层,下面分别介绍一下2.1卷积层卷积神经网络里面的这个卷积和信号里面的卷积是有些差别的,信号中的卷积...

    作业:从零开始构建三层神经网络分类器,实现图像分类__任务描述:_手工搭建三层神经网络分类器,在数据_nn_hw1.zip

    在深入探讨如何从零开始构建一个三层神经网络分类器之前,我们需要了解神经网络的基础知识及其在图像分类中的应用。神经网络是一种模仿生物神经系统行为的数学模型,它由大量的节点(或称为“神经元”)相互连接构成...

    Python从零开始实现神经网络及其应用详解

    内容概要:本文详细介绍了如何从零开始用 Python 实现一个简单的三层神经网络(包含输入层、隐藏层和输出层),并对比了它与 Logistic 回归在非线性分类任务中的表现。文中首先通过生成非线性数据集来展示传统线性...

    使用numpy从零搭建深度神经网络(DNN)

    numpy 使用框架搭建神经网络很简单,但是不用框架从头搭建一个神经网络更能加深理解。 本文使用 numpy 实现了一个四层的 DNN 来对图片进行二分类:来判断图片中是否有猫。 项目源自吴恩达老师在 Coursera 开设的...

    使用 numpy 从零搭建深度神经网络(DNN).zip

    使用框架搭建神经网络很简单,但是不用框架从头搭建一个神经网络更能加深理解。 本文使用 numpy 实现了一个四层的 DNN 来对图片进行二分类:来判断图片中是否有猫。 项目源自吴恩达老师在 Coursera 开设的深度学习...

    从零开始实现卷积神经网络_CNN_课程.zip

    要从零开始实现一个CNN,需要掌握以下几个关键概念和步骤。首先,了解CNN的基本组成部分,包括卷积层、激活函数、池化层、全连接层和输出层。卷积层负责提取输入数据中的局部特征,通过卷积核(滤波器)的滑动窗口...

    使用TensorFlow构建神经网络:从零开始的实现.html

    4. 神经网络基础 1. 什么是神经网络? 2. 神经网络的组成部分 3. 前向传播与反向传播 5. 数据准备 1. 数据集的选择与导入 2. 数据预处理 3. 训练集与测试集划分 6. 使用TensorFlow构建简单神经网络 1. ...

    从零开始搭建一个基于CNN+CTC的语音识别系统。.zip

    每个滤波器在图像上滑动(卷积),并以局部区域(感受野)内的像素值与滤波器权重进行逐元素乘法后求和,生成一个输出值。这一过程强调了局部特征的重要性,因为每个滤波器仅对一小部分相邻像素进行响应,从而能够...

    从头开始用Python编写神经网络框架-ArML.zip

    接着,“Python 从零开始写神经网络框架_RarML”这个文件很可能是一个详细的教程文档或指南,它将指导开发者如何一步步地利用Python语言从基础编写神经网络框架。文档可能涵盖了从安装Python环境开始,到如何编写...

    人工智能编程学习从零开始第一课开发测试环境搭建共16页.pdf.zip

    这门课程"人工智能编程学习从零开始第一课——开发测试环境搭建"显然是为了引导初学者如何建立一个有效的工作平台,以便进行后续的编程实践。环境搭建不仅涉及到软件安装,还包括配置、调试和优化,确保开发过程的...

    人工智能编程学习从零开始第一课开发测试环境搭建共16页.p

    通过"人工智能编程学习从零开始第一课开发测试环境搭建"这门课程,你将系统地学习如何从无到有建立自己的AI开发环境,为后续的编程学习打下坚实的基础。记住,一个好的起点能够使你在学习路径上少走弯路,更高效地...

    学习人工智能-3条Python命令,从零开始搭建GPT

    在本文中,我们将深入探讨如何使用Python从零开始搭建GPT模型,这是一个基于人工智能和深度学习的任务。GPT(Generative Pre-trained Transformer)是OpenAI推出的一种预训练语言模型,它能够生成连贯的文本,尤其在...

    不使用框架实现全连接神经网络进行手写数字识别(layer封装好)

    本项目实现了不依赖任何特定框架,如TensorFlow、PyTorch等,从零开始编写全连接神经网络,对MNIST手写数字数据集进行识别。这样的实现方式有助于理解神经网络的工作原理,并能灵活地调整网络结构和激活函数。 全...

    PyTorch构建分类网络模型(Mnist数据集,全连接神经网络)

    任务描述 ...每张图片都由一个28×28的矩阵表示,且数字都会出现在图片的正中间,处理后的每一张图片是一个长度为784的一维数组(28*28=784),这个数组中的元素对应了图片像素矩阵中的每一个数字。

    从零开始,搭建自己的目标检测网络,实现训练和预测.zip

    目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在...

    面向MATLAB工具箱的神经网络理论与应用丛爽编.zip

    对于初学者来说,本书特别强调了从零开始的学习路径,一步步引导读者掌握神经网络的理论与MATLAB工具箱的操作。对于有一定基础的读者,书中提供的高级主题和实战项目也能帮助他们提升技能,解决实际问题。 总的来说...

    Bilibili视频系列-从头开始的神经网络.zip

    除此之外,该系列视频很可能还涉及如何从零开始搭建一个简单的神经网络,包括选择合适的编程语言和框架,如何获取和预处理数据集,以及如何训练模型和优化网络结构。Bilibili作为中国的知名视频平台,该系列可能还会...

Global site tag (gtag.js) - Google Analytics