神经网络(neural network)

在这一章中我们将进入深度学习算法,学习一些神经网络相关的知识,这些是有更加强大的作用,更加广泛的用途。

神经元和大脑(neurons and the brain):

我们对于我们的编程的进步主要来自我们对于大脑的研究,根据我们对于大脑的研究我们发现了神经元这一个最基础的部分,如图所示,

有树突来收集信号,轴突用来传递信号,而我们的细胞则可以来处理我们的信息,在大量的神经元的连接就可以对一些数据进行处理,当然我们不光只是对人脑进行研究,其实我们在很多的动物中也有类似的探讨,当然我们的科学家并没有完全吃透我们的脑部科学原理,这就是为什么当我们的科学家在我们的脑部科学方面有进步时,我们的神经网络也会有许多的进步,在之前我们学到的线性回归和逻辑回归这样的基础算法ai,并不能完成这种深度算法学习,而需要我们对于神经网络的创建,这与我们在我们的神经网络中创建的神经元的数量有着巨大的联系。

当然是我们的神经元越多我们的算法的表现就会更好。当然这与我们所有的数据数量也有着关系。

需求分析(demand prediction):

怎么样的结构才是我们的神经网络呢?我们通过以下的图片进行了解:

从左往右我们有三个部分:

第一个就是我们的黄色字体部分,我们把输入的特征向量称为我们的输入层(input layer),它是我们输入的部分。

第二个就是我们中间蓝色部分的,我们在这里称他为隐藏层(hidden layer),它的作用是收到我们从输入层得到的数据,从而发出一种叫做激发值(activations)的数值.

第三层也就是在最右侧也就是,我们的输出层(output layer),顾名思义,它就是我们通过根据从隐藏层中得到的激发值我们从而当我们输入我们的预测的特征值,从而我们可以从中获得到我们所需要的预测值。

接下来,详细说一下其中的细节。假如我们的输入特征总共有四个,而我们在隐藏层的神经元有三个,我们输入我们对应神经元的特征值我们可以得到不同的激发值,而这些激发你会进一步到我们的输出层,从而来根据数据得到的最准确的预测,这就是我们大概的一个神经网络的概念图。

当然我们的隐藏层在不同的神经网络中,也可以是多层的,这只与你对于你的神经网络的要求有关 

例子:图像识别(image recognization)  :

我们在图像识别中我们的图片会被分为很多块像素块,我们通过把这些数据收集起来,就变成了在我们左侧的的这个特征向量就变成了我们的输入值,我们来看一下我们对于图像识别的神经网络。

我们往里面输入一个我们的输入值,我们第一层隐藏层会根据我们的比较细小的线条,到第二层隐藏层寻找人脸比较小的部分,到后面隐藏层我们也会去寻找脸部的数据,到最后我们会输出,识别的姐结果。我们在汽车识别中,也用到了类似的方法。

其中这些神经元都是我们通过一些数据,拟合到的一个比较好的算法。

神经网络的层(neural network layer):

 

在下图中,我们看到了我们的一个比较简单的神经网络,我们从第一个输入的值开始,它是有四个特征值,我们把这个特征向量代入我们的第一个隐藏层神经元中,看到上面三个线性函数,从而由三个sigmoid函数,我们得到了我们需要的三个激发值,在这里我们需要了解的是我们用的是上标[n]来代表我们的层数,比如:\vec{w}^{[1]}。然后我们把我们的激发值放入我们的第二层。

来到了我们第二层,我们这里的输入值就是我们在第一层的激发值。也是同样的方法,由我们的逻辑函数得到了我们的值,值的大小大概在0到1之间,这里我们把激发值一般写成是\vec{a}^{[1 ]}。所以我们在这里输出的也就是我们的\vec{a}^{[2]}

最后根据我们的sigmoid函数的特点我们知道是以0.5为分界线一般,就可以得到我们的值了。

这里我们要知道sigmoid方程也被叫做是激发函数。我们一般写成上标L下标是J。

a_{j}^{[l]}=g(\vec{w}_{j}^{[l]}\cdot a^{[l-1]}+b_{j}^{[l]}) ,在这里我们的输入层被我们称为是0层。我们的前一层的激发值是我们第二层的输入值。 

我们把这种从右往左传递进行的算法叫做正向传递算法,在后面我们也会学到逆向传递算法。 

在我们的numpy中并没有数组,所以我们要用一个方式把我们得到的值转化成矩阵的形式。

x = np.array([[1,2,3]])

比如以下这个我们就可以得到[1,2,3],这样1✖️3的矩阵。

我们在这里用到了我们的tensor flow框架,用它来实现我们的逻辑回归,在这里我们的tensor它是一个保持我们的数据维持在矩阵的一个比较好的属性,我们也可以通过numpy()方法,把矩阵从而再转化为我们的数组的属性。

 同理我们在后面的神经元层也是一样的操作。所以在这里我们需要去配置一下tensor flow框架。

创建神经网络:

我们在学习到了用tensor flow之后,我们就可以来开始着手创建一个神经网络。

我们在这里用到了一个全新的函数,它叫做Sequential(),它的作用相当于我们对神经网络的一层一层的正向传递。model会在之后的学习中学到暂时只需要理解它的意思即可。

我们还可以进行一定的化简,我们得到的式子就变成了。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/727418.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【中间件】docker的安装

📝个人主页:五敷有你 🔥系列专栏:中间件 ⛺️稳中求进,晒太阳 .卸载旧版 首先如果系统中已经存在旧的Docker,则先卸载: yum remove docker \docker-client \docker-client-latest \doc…

【C++】string类的基础操作

💗个人主页💗 ⭐个人专栏——C学习⭐ 💫点击关注🤩一起学习C语言💯💫 目录 导读 1. 基本概述 2. string类对象的常见构造 3. string类对象的容量操作 4. string类对象的访问及遍历操作 5. 迭代器 6.…

javaWebssh教师荣誉库管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh在线授课辅导系统是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0…

【DP】蓝桥杯第十三届-费用报销

#include<iostream> #include<algorithm> #include<cstring> #include<set> #include<queue> using namespace std; const int N1010; int dp[N][5010];//dp[i][j]:选到第i个物品是否能取到价值j&#xff1b; int month[13]{0,31,28,31,30,31,30…

代码随想录day15(2)栈与队列:滑动窗口最大值(leetcode239)

题目要求&#xff1a;给定一个数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。 思路&#xff1a;首先的想法就是暴力方法&#xff0c;遍历一遍…

专访|云安全攻防:从理论到应用的全面探索

2023年11月&#xff0c;美国核研究实验室&#xff08;INL&#xff09;遭遇数据泄露。同年10月&#xff0c;索尼的员工数据在MOVEit攻击事件中被泄露。2024年2月&#xff0c;某知名制造商因云存储服务器的配置错误导致了敏感数据泄露。 这些事件表示企业必须重视云安全建设&…

第一套试卷大题

1.邻接矩阵和邻接表的写法&#xff1a; **介绍&#xff1a;**该图是一个无向图&#xff0c;所以邻接矩阵一定是对称的&#xff0c;而邻接表某节点的边数为无向图某节点的连接数 无向图的邻接矩阵&#xff1a; 无向图的邻接表&#xff08;不唯一&#xff09;&#xff1a; 根据无…

快速排序hoare优化

目录 三数取中法选key 优化点 基本思想 代码实现 小区间优化 优化点 基本思想 代码实现 由于hoare版快排在一些特殊情况下性能并不优&#xff0c;这里我们进行一些优化。 三数取中法选key 优化点 当数据有序时&#xff0c;快排就会很吃力&#xff0c;这是为什么呢…

[C语言]——分支和循环(1)

目录 一.if语句 1.if 2.else 3.分支中包含多条语句 4.嵌套if 5.悬空else问题 二.关系操作符 三.条件操作符 C语⾔是结构化的程序设计语⾔&#xff0c;这⾥的结构指的是顺序结构、选择结构、循环结构&#xff0c;C语⾔是能够实现这三种结构的&#xff0c;其实我们如果仔细分析&a…

【深度学习笔记】优化算法——梯度下降

梯度下降 &#x1f3f7;sec_gd 尽管梯度下降&#xff08;gradient descent&#xff09;很少直接用于深度学习&#xff0c; 但了解它是理解下一节随机梯度下降算法的关键。 例如&#xff0c;由于学习率过大&#xff0c;优化问题可能会发散&#xff0c;这种现象早已在梯度下降中…

博客系统测试

文章目录 1.项目背景介绍2.功能介绍3.手动测试3.1编写测试用例3.2项目测试3.2.1登录测试3.2.2查看详情页面3.2.3编辑页面3.2.4删除博客3.2.5注销用户 大家好&#xff0c;我是晓星航。今天为大家带来的是 博客系统测试 相关的讲解&#xff01;&#x1f600; 1.项目背景介绍 项…

探讨倒排索引Elasticsearch面试与实战:从理论到实践

在当前大数据时代&#xff0c;Elasticsearch&#xff08;以下简称为ES&#xff09;作为一种强大的搜索和分析引擎&#xff0c;受到了越来越多企业的青睐。因此&#xff0c;对于工程师来说&#xff0c;掌握ES的面试准备和实战经验成为了必备技能之一。本文将从ES的面试准备和实际…

KL散度和交叉熵的应用介绍

深度学习 文章目录 深度学习前言KL散度和交叉熵KL散度与交叉熵的关系KL散度与交叉熵的应用总结 前言 KL散度&#xff08;Kullback-Leibler Divergence&#xff09;和交叉熵&#xff08;Cross Entropy&#xff09;是在机器学习中广泛使用的概念。这两者都用于比较两个概率分布之…

day14_异常

今日内容 零、 复习昨日 一、日期类 二、异常 零、 复习昨日 1为什么要重写toString Object类toString返回的是对象名字地址,无意义子类重写toString() 返回的对象属性内容 2为什么要重写equals Object类equals判断是对象的地址值是否相等,无意义子类重写equals,为了判断对象的…

神经网络算法——反向传播 Back Propagation

文章目录 前言 1、反向传播的本质 &#xff08;1&#xff09;前向传播&#xff08;Forward Propagation&#xff09; &#xff08;2&#xff09;反向传播&#xff08;Back Propagation&#xff09; 2、反向传播的原理 &#xff08;1&#xff09;链式法则&#xff08;Chain Rule…

GB 2312字符集:中文编码的基石

title: GB 2312字符集&#xff1a;中文编码的基石 date: 2024/3/7 19:26:00 updated: 2024/3/7 19:26:00 tags: GB2312编码中文字符集双字节编码区位码规则兼容性问题存储空间优化文档处理应用 一、GB 2312字符集的背景 GB 2312字符集是中国国家标准委员会于1980年发布的一种…

成都正信:亲戚借了钱一直不还怎么委婉的说

在中国传统文化中&#xff0c;亲情关系往往被视为最为重要和敏感的部分。当亲戚间发生借贷时&#xff0c;若出现拖欠不还的情形&#xff0c;处理起来尤为棘手。面对这样的尴尬局面&#xff0c;采取委婉而有效的沟通方式至关重要。 张华最近就遇到了这样的困扰。他的表弟去年因急…

【Python刷题】环形链表

问题描述 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&a…

Extend继承

继承的作用 当我们定义了一个Person类&#xff1a; class Person{private Stirng name;private int age;public String getName(){....}public int getAge(){...}public void setName(String name){...}public void setAge(int age){...} }现在&#xff0c;假设还需要定义一个…

多目标粒子群(MOPSO)算法原理及其MATLAB实现

粒子群算法(PSO)是Eberhart和Kennedy于1995年提出的一种模拟鸟类觅食行为的算法[1]&#xff0c;具有操作简单、速度快等特点。但在实际应用中&#xff0c;许多决策问题都是多目标优化问题&#xff0c;采用粒子群算法来处理多目标优化问题是一种有效方法&#xff0c;Coello 等人…