人工智能与神经网络-它怎么工作

举个栗子:对于一张图片的处理

数据输入

假设我有一个图像数据,大小是64 * 64个像素一个像素就是一个颜色点,一个颜色点由红绿蓝三个值来表示,例如,红绿蓝为255,255,255,那么这个颜色点就是白色)。

首先计算机存储图像有三个独立矩阵分别存储R G B。

为了更加方便后面的处理,我们一般把上面那3个矩阵转化成1个向量x(向量可以理解成1 * n或n * 1的数组,前者为行向量,后者为列向量,)。那么这个向量x的总维数就是64 * 64 * 3,结果是12288。在人工智能领域中, 每一个输入到神经网络的数据都被叫做一个特征,那么上面的这张图像中就有12288个特征。这个12288维的向量也被叫做 特征向量神经网络接收这个特征向量x作为输入,并进行预测,然后给出相应的结果。

对于不同的应用,需要识别的对象不同,有些是语音有些是图像有些是传感器数据,但是它们在计算机中都有对应的数字表示形式,通常我们会把它们转化成一个特征向量,然后将其输入到神经网络中。

预测

现在我们已经知道了如何将数据输入到神经网络中。那么神经网络是如何根据这些数据进行预测的呢?我们将一张图片输入到神经网络中,神经网络是如何预测这张图中是否有猫的呢??

这个预测的过程其实只是基于一个简单的公式: z = dot(w,x) + b

上面公式中的x代表着输入特征向量,假设只有3个特征,那么x就可以用(x1,x2,x3)来表示。如下图所示。w表示权重,它对应于每个输入特征,代表了每个特征的重要程度。b表示阈值[yù zhí],用来影响预测结果。z就是预测结果。公式中的dot()函数表示将w和x进行向量相乘。

人工智能与神经网络-它怎么工作

上面的公式展开后就变成了z = (x1 * w1 + x2 * w2 + x3 * w3) + b。

那么神经网络到底是如何利用这个公式来进行预测的呢?再举个栗子

假设周末即将到来,你听说在你的城市将会有一个音乐节。我们要预测你是否会决定去参加。音乐节离地铁挺远,而且你想宅在家里打游戏,但是天气预报说音乐节那天天气特别好。也就是说有3个因素会影响你的决定,这3个因素就可以看作是3个输入特征。那你到底会不会去呢?你的个人喜好——你对上面3个因素的重视程度——会影响你的决定。这3个重视程度就是3个权重。
如果你觉得地铁远近无所谓,并且已经不太想打游戏了,而且你很喜欢蓝天白云,那么我们将预测你会去音乐节。这个预测过程可以用我们的公式来表示。我们假设结果z大于0的话就表示会去,小于0表示不去。又设阈值b是-5。又设3个特征(x1,x2,x3)为(0,0,1),最后一个是1,它代表了好天气。又设三个权重(w1,w2,w3)是(2,2,7),最后一个是7表示你很喜欢好天气。那么就有z = (x1 * w1 + x2 * w2 + x3 * w3) + b = (0 * 2 + 0 * 2 + 1 * 7) + (-5) = 2。预测结果z是2,2大于0,所以预测你会去音乐节。
如果你最近非常想打游戏,并且对其它两个因素并不在意,那么我们预测你将不会去音乐节。这同样可以用我们的公式来表示。设三个权重(w1,w2,w3)是(2,7,2),w2是7表示你有上王者的欲望。那么就有z = (x1 * w1 + x2 * w2 + x3 * w3) + b = (0 * 2 + 0 * 7 + 1 * 2) + (-5) = -3。预测结果z是-3,-3小于0,所以预测你不会去,会呆在家里上王者。

预测图片里有没有猫也是通过上面的公式。经过训练的神经网络会得到一组与猫相关的权重。当我们把一张图片输入到神经网络中,图片数据会与这组权重以及阈值进行运算,结果大于0就是有猫,小于0就是没有猫。

上面那个用于预测的公式我们称之为 逻辑回归

最后再稍微提一下激活函数。在实际的神经网络中,我们不能直接用逻辑回归。必须要在逻辑回归外面再套上一个函数。这个函数我们就称它为激活函数。激活函数非常非常重要,如果没有它,那么神经网络的智商永远高不起来。

为什么需要激活函数?如果没有激活函数,神经网络的层次再多都没用,因为都相当于一层;如果没有激活函数,神经网络只能解决简单的线性问题;加入了激活函数,只要层次足够多,那么神经网络就可以解决一切问题。神经网络没有它就等于没有被激活,所以说激活函数是神经网络必须的!

Y= WX + b是一个线性函数
线性函数套用在多层,也还是一个线性函数

这里简单介绍一种叫做sigmoid的激活函数。它的公式和图像如下。

人工智能与神经网络-它怎么工作

激活函数的一个用途——把z映射到[0,1]之间。上图中的横坐标是z,纵坐标我们用y’来表示,y’就代表了我们最终的预测结果。从图像可以看出,z越大那么y’就越靠近1,z越小那么y’就越靠近0。那为什么要把预测结果映射到[0,1]之间呢?因为这样不仅便于神经网络进行计算,也便于我们人类进行理解。例如在预测是否有猫的例子中,如果y’是0.8,就说明有80%的概率是有猫的。

常见的激活函数还有tanh, relu(隐藏层使用的很多),softmax

结果验证

要验证学习成果,就是要判断预测结果是否准确,这就要靠 损失函数了。

我们通常定义一个目标函数,并希望优化它到最低点。 因为越低越好,所以这些函数有时被称为 损失函数(loss function,或cost function)。

努力使损失函数的值越小就是努力让预测的结果越准确。损失函数的作用就是衡量模型预测的好坏。通常损失函数是根据模型参数定义的,并取决于数据集。 在一个数据集上,我们通过最小化总损失来学习模型参数的最佳值。 该数据集由一些为训练而收集的样本组成,称为 训练数据集(training dataset,或称为 训练集(training set))。 然而,在训练数据上表现良好的模型,并不一定在”新数据集”上有同样的效能,这里的”新数据集”通常称为 测试数据集(test dataset,或称为 测试集(test set))。

算法优化

一旦我们获得了一些数据源及其表示、一个模型和一个合适的损失函数,我们接下来就需要一种算法,它能够搜索出最佳参数,以最小化损失函数。 大多流行的优化算法通常基于一种基本方法– 梯度下降 (gradient descent)。 简而言之,在每个步骤中,梯度下降法都会检查每个参数,看看如果你仅对该参数进行少量变动,训练集损失会朝哪个方向移动。 然后,它在可以减少损失的方向上优化参数。梯度下降会一步步的改变w和b的值,从而让损失函数的输出结果更小。

所以说机器学习的学习或者说训练神经网络,就是找到一组w和b,让损失函数最小,也就是预测结果更准确。

Original: https://blog.csdn.net/andytian1991/article/details/125745495
Author: 信田君9527
Title: 人工智能与神经网络-它怎么工作

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/690430/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 递推最小二乘遗忘因子法(Recursive Forgetting Factor, RFF)

    在普通的递推最小二乘算法中,随着数据的不断到来,显然矩阵X T X X^TX X T X中的元素会变得越来越大,而矩阵P k P_k P k ​作为X T X X^TX X T X…

    人工智能 2023年6月23日
    0194
  • C&W攻击算法

    C&W是一种基于优化的攻击方式,它同时兼顾高攻击准确率和低对抗扰动的两个方面。首先对抗样本需要用优化的参数来表示,其次在优化的过程中,需要达到两个目标,目标一是对抗样本和对…

    人工智能 2023年6月16日
    0133
  • MySQL调优之索引在什么情况下会失效?

    MySQL中提高性能的一个最有效的方式是对数据表设计合理的索引。索引提供了高效访问数据的方法,并且加快查询的速度,因此索引对查询的速度有着至关重要的影响。 使用索引可以快速地定位表…

    人工智能 2023年6月26日
    086
  • Neo4j学习笔记

    Neo4j学习笔记 一、安装及启动 * 1、安装 Java SDK 2、安装 Neo4j 社区版 3、启动 二、论文—升降起重机知识图谱模型构建(未完成) * 1、进入…

    人工智能 2023年6月1日
    0110
  • FineBI01:FineBI介绍

    一、介绍 FineBI是帆软软件有限公司推出的一款商业智能(Business Intelligence)产品,它可以通过最终业务用户自主分析企业已有的信息化数据,帮助企业发现并解决…

    人工智能 2023年7月16日
    086
  • 【OpenCV】漫水填充

    文章目录 * – + 1、漫水填充的定义 + 2、漫水填充法的基本思想 + 3、实现漫水填充算法:floodFill函数 + 4、代码详解 1、漫水填充的定义 ​漫水填…

    人工智能 2023年7月19日
    068
  • 零售药店管理系统 Python+MySQL数据库

    零售药店管理系统 【Python+数据库】 1 背景介绍 结合本学期所学的Python和数据库完成一个零售药店管理系统 2 问题定义 零售药店管理系统通过录入零售药品信息、员工信息…

    人工智能 2023年7月4日
    088
  • Python分多组求平均值的优雅操作

    tags: Python Pandas 最近遇到一个问题, 如何分组计算平均值, 例如, 对于随机生成的范围在0~1000的数据, 这里用下面的代码实现: import rando…

    人工智能 2023年7月6日
    073
  • 遍历Dataframe的每个元素及loc与iloc函数与iterrows与iteritems函数用法

    首先,这四个函数都是遍历df的方法。loc与iloc不使用循环,使用方法均为 df.loc[index,:]【】前后用逗号隔开,前边表示行的索引,后边表示列的索引,loc可使用列名…

    人工智能 2023年7月6日
    099
  • python 删除文件夹中相似图片

    很多同学兴许有这样的烦恼,就是对于自己文件夹中的相似的图片想删除,可是奈何图片太多,所以手动删除太浪费时间了,那么今天学到这段代码,就不需要手动了。 如下是我对视频截取的一些帧,我…

    人工智能 2023年5月28日
    072
  • 深度学习常用的backbone有哪些

    深度学习中常用的backbone有resnet系列(resnet的各种变体)、NAS网络系列(RegNet)、Mobilenet系列、Darknet系列、HRNet系列、Trans…

    人工智能 2023年7月26日
    056
  • 中文语音库学习

    我以前只用过汉字显示的点阵字体,没想到真的有汉字拼音库。 [En] I have only used the dot matrix font displayed by Chines…

    人工智能 2023年5月25日
    0104
  • 图像运算和图像增强三

    图像运算和图像增强三 1.图像形态学处理之腐蚀和膨胀 (1)形态学理论知识常见的图像形态学运算:腐蚀、开运算(Opening Operation)、闭运算(Closing Oper…

    人工智能 2023年7月18日
    061
  • 基于kaggle数据集的猫狗识别(超详细版本)

    目录 下载kaggle数据集 创建新的小数据集 构建猫狗分类的小型卷积神经网络 * 猫狗分类的网络架构 模型的配置 图像的预处理 利用批量生成器拟合模型 绘制精度和损失 结果显示 …

    人工智能 2023年6月16日
    0183
  • 基于TensorFlow2.x卷积神经网络的智能小车寻迹

    概述 在写OpenCV+TensorFlow简单的机器小车传统视觉寻迹之时,可以预见的是,由于环境因素,传统小车寻迹的效果可能会受到环境因素的影响,例如地上的污渍在进行二值化时就有…

    人工智能 2023年5月26日
    0109
  • 基金持仓数据分析,满仓干还是等风来?

    哈喽大家好,你们有没有理财产品呢?不是推销哈,是分享一篇对基金数据分析的文章,为了照顾对基金完全不懂的童鞋,文章前面特意做了小科普,帮助你理解指数型基金、股票型基金的概念。 接着才…

    人工智能 2023年7月17日
    068
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球