代码编织梦想

机器学习基础

在这里插入图片描述
机器学习是什么:根据米切尔的定义,他是一个计算机程序从数据和经验中去学习,用来解决特定的问题。首先它是一个计算机程序,它不能是人工,它得是智能。而且它要从过往的数据过往的经验中去学习,所以它是数据驱动的,要用大量的数据去训练它。他得总结归纳出一些模式,这是它学习到的东西。所以这也被称为统计学习。为什么现在的机器学习其实都是统计机器学习呢,就是统计就是要从过往的经验中,去拟合出一个概率分布来解决新数据的预测问题。所以叫做统计学习问题。
在这里插入图片描述
以人脸识别举例:要从一个图像输出一个人名,这其实是一个非常难的问题。因为即使是一个100*100的非常小的图像,每一个像素都会有0到255之间的值,并且它是三通道的,那就是3万个像素。每一个像素都有256种可能那就是256的3万次方。这么一个小图片就有这么多种可能,所以这是一个非常难的问题。如何设计算法基于这几百万个数据去预测出这个人是谁,而且他应该对各种各样的变化具有足够的鲁棒性,这是一个非常难的问题。他不能够用人工去构造特征方法去解决,他一定得通过大量的数据去训练,以数据驱动解决。
在这里插入图片描述
再比如说机器翻译,英文翻译成中文,你得保持意思准确表达通顺。
在这里插入图片描述
还有语音识别,或者叫语音转文字,微信都有这个功能。如何准确的识别出语音,再将语音转成文字,或者又文字去生成逼真的语音。
在这里插入图片描述
还有强化学习。强化学习是通过感知到环境给他的状态,然后采取一些动作影响环境,再感受环境下一时刻给他的状态,然后不断的去优化,让这个智能体在环境中自主的去决策、适应环境。比较经典的就是下围棋和玩各种各样的游戏。那他对于围棋这个任务而言也是一个海量的搜索空间。从这个海量的搜索空间中去学习到一个算法是非常伟大的一个成就。
在这里插入图片描述
所以机器学习就是通过数据驱动让计算机程序去学习去识别、去拟合、去数据挖掘,它和人类的认知与智能是非常像的。比如说人类有眼睛,那么AI具有计算机视觉,人类有文字那AI就有自然源处理,人类有声音,那AI就有语音识别,人类有社交关系,那AI就有图神经网络。所以针对不同的数据模态会对应不同的算法。但是大道至简,都是要从数据中通过数据驱动的方法去学习、去拟合、去归纳、去挖掘。
在这里插入图片描述
机器学习的三种典型范式:监督学习就是有标签的,无监督学习就是没标签的,强化学习就是让智能体自己去适应环境。

那我们所说的图像分类、目标检测、图像分割,都需要先用人标注好的数据去训练好算法,然后这个算法再再给它输入未标注的数据,算法就能很好的去预测了,这叫监督学习。

还有一类问题其实叫做自监督学习,就是虽然人类没有给他标注,但是他自己可以找到标注。比如说语语言模型,我输入了很多很多的文章,让AI用周围的词去预测中间的词,或者从中间的词去预测周围的词用前面的词去预测后边的词,那他自己就能找到这种标注称之为自监督学习

机器学习中的分类问题

在这里插入图片描述
重点来看分类问题。分类问题就是输入一个东西来输出不同类别的概率,哪个概率高,我们就认为它是哪一个类别。比如说这是一个垃圾邮件分类一起,我们首先要把这种不同的数据模态变成向量。
在这里插入图片描述
你输入是是一段图片,一段文字转成一个向量,一个图片转成一个向量,一段语音转成一个向量。再由这个向量特征去,去学习n维空间的一个决策边界,一个分类边界。然后就是特征要如何提取,你可以通过一些关键词的出现频率来构建这个特征,也可以用神经网络编码这一段文本得到一个特征,也可以自己去开脑洞想一些特征。总而言之你获得了一个n为向量,代表了原始输入数据的n个特征。在n维空间中拟合一个决策边界把正常邮件和垃圾邮件这个边界拟合出来,这就是分类问题。
在这里插入图片描述
如果你的这个分类边界是一条直线,那称之为一个线性分类器。在二维空间平面直角坐标系中的线性模型就是一条直线,在空间直角坐标系中线性分类器就是一个平面,在四维空间中线性分类器就是一个三维的超平面。但不管在哪一维他这个线都是直的,他是不会拐弯的。线性分类器就是由斜率和截距组成的。斜率可能有很多个斜率,每一个特征都对应一个斜率。
在这里插入图片描述
更一般的可以把它写成矩阵的形式,就是一个权重向量的转制乘以x再加上截距。这就是一个线性分类器。
在这里插入图片描述
关键就是如何求解这个分界面。我们可以用标注的数据去预测,然后得到损失函数的值,再按照使得损失函数最小化的方向去迭代的优化这些权重,然后经过随机速度下降的不断的迭代训练,最终收敛得到一个完美的决策边界。
在这里插入图片描述
再来看一个神经网络的雏形叫做感知器算法,感知器算法其实也是一个线性分类器。它其实可以作为一个神经元的基准,一个基础单位。
在这里插入图片描述
机器学习的基本流程:从训练集采集特征去训练、在验证集上验证模型的泛化性能,最后在实际场景中应用。

神经网络:一类拟合能力非常强的函数

在这里插入图片描述
刚刚讲的线性分类器,它是一个钢铁直男,没法拟合曲线,它不会拐弯。而我们现在讲的这个神经网络它就是非线性分类器,它是会拐弯的。
在这里插入图片描述
比如说这个异或问题,这左上角和右下角是加号,右上角和左下角是减号,我们就不能用一根筷子把这两类豆子分开。异或问题是一个非线性分类问题。
在这里插入图片描述
对于非线性分类问题我们可以通过一层神经网络来解决。
在这里插入图片描述
神经网络是由神经元组成。一个神经元有e个特征和一个截距。每个特征还有一个权重,线性组合就是W1乘X1加上W2乘X2,一直加到wd乘xd,再加be再得到这个z。z就是他们的求和。然后经过一个非线性激活函数,比如说Sigma的函数,比如说ReLU函数得到一个输出。这就是一个神经元,神经网络的基本组成单位。
在这里插入图片描述
这些权重需要激活函数来激活,不同的激活函数。一般ReLU用的比较多。那如果把很多个这样的神经元堆成一层一层的,就叫做神经网络了。
在这里插入图片描述
图上展示的这个算法就是多层感知机,也叫做全连接神经网络。比如说这个h1这个神经元它输入的特征就是X1到x d。就是每一个输入都对应一个权重,这些权重都是需要学习的,都是要通过梯度随机速度下降,通过最小化损失函数,反向传播求导,逐渐迭代得到的。
在这里插入图片描述
比如说现在这三个神经元的输出就对应了三个类别的分数Z1 Z2和Z3,这三个类别的分数有正有负有大有小,但是我们需要的是一个概率分布,我们需要的是一个0-1并且求和为1的概率分布。那这三个数求和为1,并且每一个数都在0到1之间就把三个类别的分数变成了3个后验概率。

神经网络的训练

在这里插入图片描述
实际网络的训练是通过反向传播和t度下降来求解的。首先需要定义损失函数,然后通过反向传播求得损失函数相对于每一个权重的梯度偏导数,最终就能够使得损失函数最小化,然后每一个权重迭代的去慢慢修改,慢慢的去学习优化就完成了学习。
在这里插入图片描述
交叉商损失函数是通过极大自然估计得到的,这个词听起来很高大上,但其实很简单。极大自然估计就是想使得所有样本都被预测正确的这个事件概率最大化,那所有样本都被预测正确这个事件的概率怎么算呢,就是把每一个样本的正确类别的预测概率相乘。比如说第一个样本它是一个苹果,第二个样本它是一个橘子,第三个样本它是一个香蕉。我们就把神经网络的第一个样本预测为苹果的概率乘以第二个样本预测为橘子的概率,再乘以第三个样本预测为香蕉的概率。就是很多个有n个数据,那么就有n个概率相乘。n个概率相乘会越乘越小,所以我们取一个对数就把乘法变成了加法,那我们要使得这个求了对数的这个概率最大。但是在人工智能呢我们希望最小化一个损失函数,而不是最大化一个目标函数。所以我们加一个负号就把最大化变成了最小化。
在这里插入图片描述
这就是加上损失函数,这里边每一项都是正确类别对应的概率。就是正确类别对应的概率,如果不是正确类别的话那qi这一项就是0。
在这里插入图片描述
训练神经网络的目标就是使得损伤函数最小化,那这个损失函数它并不是一个一望无际的草原,而是一个峰峦起伏的山丘。所以我们要通过梯度下降算法去优化,需要考虑局部最优点,要尽可能使损失是最小化。
在这里插入图片描述
它是一个非突的优化问题,针对他有很多优化器你可以选择。你可以选择随机系数下降,可以选择带动量的优化,可以选择Adam优化器,可以选择RMS Prop优化器。
在这里插入图片描述
那不管怎么样还是要通过符合函数的求导的链式法则,也就是反向传播算法求得损失函数相对于神经网络中每一个权重的偏导数。
在这里插入图片描述
这个偏导数也很容易计算,就是我们高中数学的链式求导法,就是符合函数求导法则。我们就能够算出最后的损失函数相对于每一个权重的偏导数。如果是输入数据让神经网络去预测,称之为前向预测。如果是求得损失函数相对于某一个权重的偏导数它叫做反向向传播。
在这里插入图片描述
所以训练流程第一计算损失函数,第二计算损失函数相对于每一个权重的梯度,第三根据梯度去更新优化权重。所以第一步是看最后这个水流的怎么样,第二步是求得我该怎么拧每一个小水龙头能够使得这个水最大或者最小,第三就是真的去拧这个小水龙头。
在这里插入图片描述
这个梯度该怎么算:你可以求所有样本的全局梯度,也可以求单个样本的梯度,也可以求一个Mini batch的梯度,那这个蓝线就是求全局梯度,而这个紫线呢是求单个样本的梯度,他就会像醉汉一样啊,但是呢道路是曲折的前途是光明的,他们最终都会收敛到同一个点。那如果是minibux的话就是介于蓝色和紫色这两条线之间。那这个betch size一般会选择2的指数4方。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

训练神经网络的整体流程:先采一个Mini batch,然后去前前向运算计算损失函数,再反向传播计算梯度,再去根据梯度更新可学习的权重参数,然后不停的循环。这就是三种优化的这个决策边界。这个决策边界它非常的复杂,它一点也不泛化也一点也不大而化之,存在很多噪声。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44000084/article/details/128859035

人工智能、机器学习、神经网络及深度学习关系_dodott的博客-爱代码爱编程

前段时间看了不少关于人工智能方面的书籍博客和论坛,深深觉得了人工智能是个大坑,里面有太多的知识点和学科,要想深入绝非易事,于是萌发了自己写一些博客把自己的学习历程和一些知识点笔记都记录下来的想法,给自己一个总结收获,同时监督自己的动力,这样咱也算是“有监督学习”了:) 这里提到了“有监督学习”,在刚刚开始学习人工智能/机器学习的时候经常看到,对于这个概念

机器学习之神经网络学习及其模型-爱代码爱编程

1、神经元模型 历史上,科学家一直希望模拟人的大脑,造出可以思考的机器。人为什么能够思考?科学家发现,原因在于人体的神经网络。 神经网络最基本的成分是神经元模型其中,W表示的是向量,代表的是权重,函数f称为激活函数, 其中f()我们一般选择sigmoid函数(这里选择对数几率函数)对数几率函数相较于阶跃函数优点:连续光滑,任意阶可导2、感知机与多层网络

传统机器学习和深度神经网络对比-爱代码爱编程

Table of Content Alpha GO神经网络从工业的角度对比传统机器学习和深度神经网络 Alpha GO 虽然大家会说AlexNet是深度学习的开始,但真正引爆整个AI行业的可以说是Alpha GO(人称阿尔法狗)。Alphabet子公司Deepmind开发的围棋算法在01博弈游戏上成功击败人类,除了传统的把神经网络往深里走,然

机器学习——神经网络(四):BP神经网络-爱代码爱编程

文章目录 BP神经网络(Back Propagation)1. 主要过程2.整体思路3. 算法详解4. 代码实现 BP神经网络(Back Propagation)   误差逆传播算法(error Back Propagation 简称BP),实际上是多层感知器的一种,在1986由Rumelhart和Hinton为首的科学小组提出。BP神经网络

人工智能,机器学习,深度学习,神经网络,四者的含义和关系-爱代码爱编程

人工智能,机器学习,深度学习,神经网络,四者的含义和关系 人工智能机器学习深度学习神经网络四者的关系 在很多关于人工智能的书中都提到了这些词:人工智能,机器学习,深度学习,神经网络。 为了弄懂这些词的含义,我查看了百度百科,翻了各种书籍,来看下我的总结吧。 人工智能 英语:Artificial Intelligence,缩写为AI。 Art

机器学习——人工神经网络(NN)-爱代码爱编程

人工神经网络(NN) 人工神经网络(artificial neural network,ANN),简称神经网络(neural network,NN),是一种模仿生物神经网络的结构和功能的数学模型或计算模型。神经网络由大量的人工神经元联结进行计算。大多数情况下人工神经网络能在外界信息的基础上改变内部结构,是一种自适应系统。现代神经网络是一种非线性统计性数据

机器学习——卷积神经网络(CNN)-爱代码爱编程

卷积神经网络(CNN) 一、卷积神经网络定义 卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(deep learning)的代表算法之一。卷积神经网络具有表征学习(representation lea

机器学习——循环神经网络(RNN)-爱代码爱编程

一、概述 循环神经网络(Recurrent Neural Network, RNN)一般是指时间递归神经网络而非结构递归神经网络 (Recursive Neural Network),其主要用于对序列数据进行建模。 RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,

机器学习——神经网络-爱代码爱编程

概念和组成   概念:我们在机器学习中谈论神经网络时,指的是神经网络学,或者说,是机器学习与神经网络这两个学科领域的交叉部分。我们在这里构建类似于神经模型的分类器,实则回到了分类的问题上。在训练过程中,神经网络的复杂性也体现了其分类的准确和可靠性很高的优点。 神经元模型   生物的知识用起来哦!你想一个最简单的神经要怎么兴奋,其过程大致分为,感受刺激

机器学习(四)神经网络-爱代码爱编程

一、基本概念 神经网络中最基本的成分是神经元模型。 在生物神经网络中,每个神经元与其它神经元相连,当它“兴奋”时,就会像相连的神经元发送化学物质,从而改变这个神经元内的电位;如果某种神经元的电位超过了一个“阈值”,那么它就会被激活,即“兴奋”起来,向其他神经元发送化学物质。 从计算机科学的角度,神经网络就是一个包含 许多参数的数学模型,这个

机器学习——图像识别(卷积神经网络)-爱代码爱编程

图像识别是指对原始图像进行整体分析来达到预测原始图像所属类别的技术。计算机视觉领域中对图像识别技术进行了优化,与此同时,深度学习技术也对图像识别领域展开了突破。        首先,定义一个通用的数学模型,将输入图像转换为输出标签。 这个模型的实际输出不仅仅依赖于图像本身,还依赖模型内建的参数。这些参数由计算机通过学习获得。 图像识别步骤: 定义

人工智能、神经网络、机器学习、深度学习的区别_井口者的博客-爱代码爱编程

人工智能、神经网络、机器学习、深度学习是学习神经网络的时候经常会遇到的专业词汇,但是很多人可能不太了解他们的区别。 人工智能 人工智能是一个比较大的概念,相信有很多人看过一部电影《人工智能》,它里面的人工智能指的是计算机有了自我意识,控制大量的机器人。由此看来人工智能指的是能够有自我学习能力的计算机,它能够通过自我学习,最终有自己的判断能力,类似人类的

机器学习 —— 神经网络(matlab)_洋洋菜鸟的博客-爱代码爱编程

目录 一、介绍 二、实验数学原理 三、实验算法和实验步骤 四、实例分析 一、介绍         神经网络是一种运算模型,由大量的节点(或称“神经元”,或“单元”)和之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重(wei

机器学习深度神经网络——实验报告_显然易证的博客-爱代码爱编程

机器学习实验报告 〇、实验报告pdf可在该网址下载一、实验目的与要求二、实验内容与方法2.1 深度神经网络的知识回顾2.1.1 神经元模型2.1.2 从感知机到神经网络1)二分类模型2.1.3 全连接神经网路(DNN)1)基本介绍2)基本结构3)DNN前向传播算法4)DNN反向传播算法2.1.4 卷积神经网络(CNN)2.1.5 DNN和CNN比较

人工智能、机器学习、深度学习和神经网络的关系_susinl的博客-爱代码爱编程

人工智能、机器学习、深度学习和神经网络的关系 人工智能(Artificial Intelligence) 人工智能(Artificial Intelligence),英文缩写为AI。监管难度大,它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 人工智能是计算机科学的一个分支,它企图了解智能的实质,并

【吴恩达机器学习笔记】七、神经网络_pandaconda的博客-爱代码爱编程

✍个人博客:https://blog.csdn.net/Newin2020?spm=1011.2415.3001.5343 📣专栏定位:为学习吴恩达机器学习视频的同学提供的随堂笔记。 📚专栏简介:在这个专栏,我将整理吴

机器学习及其matlab实现——bp神经网络_bp神经网matlab-爱代码爱编程

本文章为学习MATLAB机器学习时所整理的内容,本篇文章是该系列第一篇,介绍了BP神经网络的基本原理及其MATLAB实现所需的代码,并且增加了一些个人理解的内容。 目录 人工神经网络概述 什么是人工神经网络? 人工神经元模型  神经网络可以分为哪些? BP神经网络概述 BP神经网络两大步骤 BP神经网络图示 MATLAB实现所需掌握的知识