1、知识引入(重点介绍极大似然估计)

极大似然估计就是我们来求解模型参数的这样一个过程或者是一种方法。

 

已经知道模型的概率分布那就是p,这就符合前边我们假设的第2点,这个分布是已知的。O代表是我们观测的一个结果,M代表是我们的模型(我们知道模型M,因为这个M我们已经假设概率分布是p,所以通过M得出我们的观测,O相当于之前的x,M相当于之前的θ;)。使用独立同分布的性质可以拆成连乘。虽然不知道是哪一次是白球,但是我们知道有70次,所以是p的70次方。再乘以剩下的30次。 p的取值可以是0.1也可以是0.2等等得到不同的P(O|M)的值,所以我们要找到P(O|M)最大的值,就是将整个的似然函数估计最大。

对p进行求导,因为我们要求他的极大值。因为我们前边说明了白球和黑球都存在,所以这里如果p=0或者p=1的话,就说明他要么全是白球,要么全是黑球,这就不符合了,所以最后算出来p是0.7。整个P(O|M)是一个似然函数,这里他是p的这样一个函数,p代表的是模型的一个参数,那我们使得整个函数的这样一个极大值,则样本结果这个O呢出现的可能性最大。所以这里就是极大似然估计叫法的一个由来。极大似然估计呢,他就是利用似然函数,求似然函数最大值的这样的一种方法来求整个模型的这样的一个参数。实际上我们能知道P(O|M)我们这样的一个数据集O,也就是我们的观测值,但是我们不知道我们的这样的一个模型的参数M,那我们利用极大似然估计这样的方法来求我们的这样的一个M。

所以无论是在机器学习还是我们稍后要讲的深度学习当中,神经网络他的求法呢都是利用这种极大似然估计他的这种想法来去求。

-------------------------------------------------------------------------极大似然估计扩展理解-------------------------

极大似然估计的理解:为什么要取似然函数的极大值/最大值,θ就最有可能?似然函数的意义是什么?

极大似然估计的形式

1.离散型统计模型

  表示观测值。

2.连续型统计模型

上述疑问:问什么要取似然函数最大值来估算参数θ?

个人理解1:似然函数的形式是理论上各事件(这个事件表示一次采样一个样本,每个样本有不同的分类)的发生概率。现在发生了的某个事件,似然函数就变成了这个样本的理论概率,而现在的采样结果代表某个事件已经确定发生了,那这个事发生的理论概率应该尽量大(在这个事件发生的理论概率中最大的那种情况),才会导致这个事件发生概率最大,所以要用极大似然函数估计。

个人理解2:最大似然估计:现在已经拿到了很多个样本(你的数据集中所有因变量),这些样本值已经实现,最大似然估计就是去找到那个(组)参数估计值,使得前面已经实现的样本值发生概率最大。因为你手头上的样本已经实现了,其发生概率最大才符合逻辑。这时是求样本所有观测的联合概率最大化,是个连乘积,只要取对数,就变成了线性加总。此时通过对参数求导数,并令一阶导数为零,就可以通过解方程(组),得到最大似然估计值。

或者这么理解:似然函数的形式是理论上各事件的发生概率。现在发生了某一事件,可以认为,这个事件是理论上概率最大的那个事件。所以使似然函数最大,也就是让现在发生的这个事件成为概率最大的事件。

一些其他的理解:极大似然估计,就是基于一个基本常识的假设:现实发生的样本最有可能是整个样本空间中概率最大的。所以就假设为最大概率来进行参数估计。

学过统计物理就很直观了,n次独立实验的概率就是乘法原理。而我们会倾向于认为,现实发生的事件应该就对应于理论上概率最大的那一个事件。历史上玻尔兹曼分布就是这么算出来的。

--------------------------------------------------End-----------------------------------------

所以无论是在机器学习还是我们稍后要讲的深度学习当中,神经网络他的求法呢都是利用这种极大似然估计他的这种想法来去求。

经典的分类方法:逻辑回归(虽然名字中带有回归二字,但是他是一个分类方法);

逻辑回归的理解参见博客:https://blog.csdn.net/weixin_39445556/article/details/83930186

MP模型:1943年,心理学家W.S.McCulloch和数理逻辑学家W.Pitts建立了神经网络和数学模型,称为MP模型。他们通过MP模型提出了神经元的形式化数学描述和网络结构方法,证明了单个神经元能执行逻辑功能,从而开创了人工神经网络研究的时代。

阶跃函数:阶跃函数是一种特殊的连续时间函数,是一个从0跳变到1的过程,属于奇异函数。

Logistics:Logistic函数或Logistic曲线是一种常见的S形函数,它是皮埃尔·弗朗索瓦·韦吕勒在1844或1845年在研究它与人口增长的关系时命名的。广义Logistic曲线可以模仿一些情况人口增长(P)的S形曲线。起初阶段大致是指数增长;然后随着开始变得饱和,增加变慢;最后,达到成熟时增加停止。

损失函数:

随机梯度法:

上述第一节可以学到两部分:第一部分就是极大似然估计;另一部分就是梯度下降法。

极大似然估计就是我们去求解这个P(O|M)的过程,我们只知道观测值O,一般情况下我们去求解问题,都只知道一个观测值,然后我们假设他有一个模型,他符合一个什么的分布,它的参数是什么样的,然后我们去求解这个参数,所以说我们采用这种极大似然估计的方法。梯度下降方法呢,在我们求这个我们已经把这个P构造出来之后也就是P(O|M),我们利用这种梯度下降的方法去求这个P的极大值或者极小值的时候,我们无法直接去求他的一个解析的形式的时候,我们通过这种近似的方法还有就是迭代的方法来去求他的极大或者极小值。接下来第二节讲机器学习当中的感知机策略。

2、感知机

详细的感知机博客:https://blog.csdn.net/m0_37957160/article/details/113922919

感知机的原理:感知机是二分类的线性模型,其输入是实例的特征向量,输出的是事例的类别,分别是+1和-1,属于判别模型。

假设训练数据集是线性可分的,感知机学习的目标是求得一个能够将训练数据集正实例点和负实例点完全正确分开的分离超平面。如果是非线性可分的数据,则最后无法获得超平面。

思路1将误分类样本点的总数定义为损失函数;他的缺点我们实际上是去通过来去数他的误分类点的个数,他的误分类点的这样一个总数是他无法通过梯度下降法,因为他的这样的损失函数不是像我们讲梯度下降法的时候是凹函数,而他的损失函数实际上是一个离散的这种形式,那他就没有办法采用梯度下降法去做。还有下边的思路2;

平面中点到面的距离公式  因为你的误分类点的正负值和你的的正负值是相反的,所以我们可以直接乘上一个

sign示性函数。

此处有一个比较重要的点就是M,M不是所有的数据集D,而是我的数据集D的一个子集,M代表的是误分类点的集合,也就是说他使用的不是所有的子集,而是说只使用了误分类点这样的一个集合。

第一步首先选择初值。第二步:然后在训练集中随便选取一个数据;第三步:如果,那就说明当前数据是误分类的点,他就属于M当中的一个点,那么我们就进行参数的一个更新。然后我们继续跳转到第二步,此时w和b更新之后,我再选取一个数据,再次走到第3步,这里可能是小于0或者大于0,如果还是小于0,那说明这个点还是误分类的,继续更新参数;如果大于0了那我就再去找一些其他的没测试的数据再去进行测试,直到我最后训练集中没有误分类的点,也就说我所有的样本点都已经进行了这种分开。感知机算法他有一个问题,我对于这种线性不可分的情形(就是没法用一条直线分开的,不管你怎么画这条直线他的数据集都是分不开的),感知机是否还有用?

sign函数:sign(x)将大于0的分为1,小于0的分为-1。

3、神经网络(这里讲的神经网络主要是MLP、或者是全连接神经网络或者叫他前馈神经网络)

感知机模型利用了一种误分类的数据驱动的梯度下降的方法来求得的最后的形式,感知机问题解决的是线性问题;

存在很多非线性问题。

每层神经元实际上可以用这样一种统一的数学表达式来写:其中是在未激励之前求和的形式,相当于是他的一个激励函数。

说明这里边有个输出层,输出节点。这里边的分量代表输出层的第个输出。我在输出层每一个节点,从,相当于每一个输出层的每一个输出点都去做了这样一个交叉熵,然后我是有个这样的一个样本。我就相当于个样本的每一个对应上图就是两个输出。

4、反向传播(主要讲BP)

表示第个样本他的输出第个分量的值。真实的训练数据他的一个label。

如果最后一层有两个输出节点,那么 整个的第个样本的他的一个输出的误差可以写作:,因为他有两个节点。

表示除了输入层以外,其他的层。

上标(3)表示有3层。对照之前的网络结构再将第三层的两个输出节点进行展开。表示节点经过激活函数,表示未经过激活函数。再次的将进行展开。此处的就表示之前的第2层到第3层我经过了权重相乘之后这样一个结果(其实中间省略了一步第一层到第二层的过程)。

输出层的权重是,我们对这一层的权重来求偏导,因为第3层到第2层实际上是一个2x4的矩阵,实际上我们要对8个这样的权重进行偏导数求解。

输出层的第1个偏导数,实际上是E先对求,再对才对求。因为你的他实际上是有乘了这个

我们把他进行进一步展开,求,剩下的就是进行求导。首先是先对,因为实际上是经过了一个激活函数,所以先对激活函数进行求导,然后再进行求导。

首先先对z进行,因为到a实际上经过了一个激活函数。

这个是对于输出层的权重更新,表示第层的经过激活函数之后的那个输出,只不过他是第j个点。这里多了一个转置,因为从你的前向传播的时候,和你反向传播他的这个方向实际上是相反的。所以这里是有一个转置的过程,因为你转置之后(可以把具体的这个矩阵给他写的清楚一点就能明白这个转置)

隐藏层的误差其实是来自于我的输出层误差的积累,只不过是输出层的两个节点他的误差都对他有贡献。的误差其实是来自于两部分

输出层的误差通过公式传到了隐藏层,也就是层传到了层。这就是误差反向传播,他也是一层一层传过去的。

先算输出层,大层的一个,然后通过反向传播算出前边每一层的就是小层的每一个,即

就代表我整个这样一个从层到层误差反传的时候是有一个权重矩阵的转置。

5、手写数字的识别

见博客:

深蓝学院的深度学习理论与实践课程:第二章相关推荐

  1. 深蓝学院的深度学习理论与实践课程:第三章

    前言:至于物体被识别成什么,是取决于你提取到了什么特征 1.人类视觉系统 ... 2.卷积神经网络数学基础(CNN数学原理) 黑白图像的话就只有一个灰色通道.现在还有就是RGBa就是多了一个alpha ...

  2. 深蓝学院的深度学习理论与实践课程:第五章

    1.Pytorch简介和安装 Pytorch可以在线安装也可以离线安装. 下载完成之后安装命令是:(install 后边是你下载完成后放置的路径) conda install /a/b/xxx.tar ...

  3. 深蓝学院的深度学习理论与实践课程:第四章

    1.模型与风险 在模型评价时会有理想情况和现实情况(现实情况分为两种) 在学习过程中最重要的是损失函数: 还有其他损失函数. 损失函数是用来量化模型预测和真实标签之间的差异.比如说我们模型预测出来是, ...

  4. 深蓝学院的深度学习理论与实践课程:第一章

    预备知识: 概念1:数学期望理解 在概率论和统计学中,数学期望(mean)(或均值,亦简称期望)是试验中每次可能结果的概率乘以其结果的总和,是最基本的数学特征之一.它反映随机变量平均取值的大小. 需要 ...

  5. 深度学习理论与实践——课程笔记(一)

    目录 课程前言 什么是人工智能? 什么是机器学习? 什么是深度学习? 什么是计算机视觉? 什么是自然语言处理? PyTorch框架与TensorFlow框架的选取 预备知识 软硬件基础 推荐书籍 自学 ...

  6. 【总结】新手必看!超过60个小时+600页文档的免费AI深度学习理论与实践课程...

    自从2012年AlexNet大放光彩以来,深度学习已经走过了快10年了,给学术界和工业界都带来了翻天覆地的变化.世界各国争先恐后,不断推出人工智能相关的政策,力争在新一轮技术革命中继续引领世界! 巨头 ...

  7. 读书笔记——《Python编程从入门到实践》第二章

    读书笔记--<Python编程从入门到实践>第二章 读书笔记--<Python编程从入门到实践>第二章 变量 如何使用变量 如何规范变量命名 字符串 字符串是什么 如何修改字符 ...

  8. 《Python编程:从入门到实践》第二章练习题

    <Python编程:从入门到实践>第二章练习题 <Python编程:从入门到实践>第二章练习题 1-1 简单消息 2-2 多条简单消息 2-3 个性化消息 2-4 调整名字的大 ...

  9. Datawhale数据分析课程第二章

    Datawhale数据分析课程第二章 准备工作 数据清洗及特征处理 相关定义 缺失值观察与处理 任务一:缺失值观察 (1) 请查看每个特征缺失值个数 (2) 请查看Age, Cabin, Embark ...

最新文章

  1. 某互联网大厂出现招聘事故!HR告知应聘者肯定会发offer,应聘者拒绝另一家公司耐心等待,hr却说流程有变,offer被卡!...
  2. markdown语法进阶
  3. bpython使用_使用Python实现一个简单的A/B测试
  4. java定时器偶尔重复推送_在Java中创建重复的定时器提醒
  5. JavaSE:如何设置/获取您自己的文件和目录属性
  6. 【python】 合并列表的方法
  7. PostgreSQL 12系统表(5)pg_index
  8. 3.1 Zabbix企业级分布式监控系统 --- zabbix 安装
  9. java中printreader类_java字符流,字符文件输入流FileReader类介绍
  10. Hive 建表语句大全
  11. 射频识别系统的组成及工作原理解析
  12. OOP思想--封装和继承
  13. 电脑如何显示文件后缀名
  14. 五年程序员一般多少工资?网友:能活下来我都觉得是庆幸的!
  15. elasticsearch两年学习资料整理分享
  16. fastdfs断点续传
  17. 【笔记】封神榜游戏设计VR
  18. Go语学习笔记 - 调用ffmpeg-api实现音频重采样
  19. 利用相控阵馈源技术提高射电望远镜性能
  20. Mac Xcode崩溃 (打开ios项目引起崩溃)

热门文章

  1. 2021年腾讯云安装Docker最简洁方法
  2. 2021年大数据Spark(十二):Spark Core的RDD详解
  3. 前端面经笔记 2021.8.28
  4. java处理中文字符_Java中文字符处理的四大迷题
  5. Handler 实现的一个延时操作
  6. uwsgi: invalid option -- 'x'
  7. dp cf 20190615
  8. 生产环境项目问题记录系列(一):一次循环数据库拖垮服务器问题
  9. Aurora的安装和中文配置
  10. Python 是一门动态的、强类型语言