Machine Learning 02 学习笔记 卷积、感知机、神经网络
卷积
理解卷积公式(狭隘)
一个人24小时不间断进食,且一直在消化,消化的速率和他吃的东西没有关系。问下午两点这个人胃里还剩多少食物。

用f函数表示进食,用\(g\)函数表示消化,就能把下午两点这个人胃里还剩多少食物求解出来。
假设我们不考虑消化问题,那么就是对f函数的简单积分。但是引入消化,只看f函数就不够了。
比如中午12点吃了一碗米饭。那么到下午两点米饭在胃里还剩余 \(f(12) \cdot g(14-12)\),其他食物同理。

这是考虑特殊情况(单独食物),现在我们考虑一般情况(所有食物)。

关注 \(x 、t-x\) 两个变量,两个变量相加后会消掉其中一个。

\(x、t-x\) 对应的是f函数到g函数的一条连线。每一对连线都是 \(f(x)\) 和 \(g(t-x)\),我们把它相加起来。

我们这里引入了时间,是具有物理意义的。所以不能负无穷,像距离就可以负无穷了。
卷积的物理意义
- 一个系统
- 输入不稳定
- 输出稳定
- 用卷积求系统存量
为什么叫卷积(狭隘)
把g函数翻转一下,所以叫卷积

图像的卷积操作
从前面的例子,卷积操作无非就是 f、g两个函数。所以我们要去找图像卷积操作两个f、g的函数。
f函数就是不稳定输入,g函数就是稳定输出。
电脑里的图片可以看做是一个个像素点组成的,具有灰度值,rgb值等信息。
卷积操作就是用 3*3 的点阵(卷积核)和图像进行一个操作,将卷积核扣在图像的点阵上。对应的两个格子相乘。将相乘的九个结果相加保存对应到一个新像素值。用卷积核把整个图像都扫一遍,图像外围加一层0像素边使边缘像素点也能被计算。

图像的卷积操作就是拿图片和卷积核先相乘再相加。直觉上看。图像和卷积核一个应该是f,一个应该是g。
图像里的像素点总在变化对应系统不稳定的输入,而卷积核不变对应的是稳定的输出。
这里的问题跟之前的吃饭问题不一样,这里是一个二维问题,f函数应该是一个平面波。
卷积核和g函数有什么关系呢?我们需要改变对卷积的理解。一个图像不是系统,没有稳定输入也没有稳定输出。
再回到原来吃饭的例子,我们把吃东西看成系统的输入,消化看成系统的输出,胃里的存量是系统的存量,仅靠这个例子很难跳出去对他有一个更广泛的理解。所以我们换一个例子。

假如在t时刻发生飓风,原因是很多蝴蝶煽动翅膀。在x时刻对飓风产生影响,产生的影响力会随时间变化逐渐衰减。
我们可以这样理解卷积,在某一个时刻发生一件事,而这件事会受到之前很多事的影响,比如x时刻发生的一件事,会对t时刻产生影响,具体怎么影响要看x到t时刻经历的时间,规定随时间影响力变化的函数是g函数。我们也可以把视野放宽一点,不仅仅是时间,而是发生事件的位置等等。
平滑卷积操作

平滑就是让周围的像素点和自己相差不要太大。
卷积核就是周围像素点对当前像素点产生的影响。卷积核理论上可以无限大,由于我们这是计算机问题,要考虑性价比,所以就用 3*3 的点阵。

红色公式是进行卷积操作,后面参数相加消掉其中一项可以拿来判断是不是卷积的典型标志。
前面的求和符号因为考虑的是像素点,所以不是连续的,需要连加表示。

求一个像素点对另一个像素点产生了什么影响,我们使用类比法,可以把两个像素点看成不同时刻的事件。我们要考虑的就是t时刻之前所有的时间对t时刻发生的事情产生的影响。现在我们就是相当于在考虑周围像素点对中心像素点产生的影响。那么g函数里的参数是 \(t-x\),同样可以类比计算 \(x-(x-1) = 1\) 、\(y-(y-1) = 1\)

将右侧g函数图像旋转180度,就可以清晰对应。

卷积核是可以直接扣在图像上进行卷积相加。
把卷积当做是周围像素点对当前像素点的影响,而g函数规定了如何影响的关键。
考虑图像的卷积操作不只能看平滑卷积核,卷积操作不只有平滑卷积核。

使用特定的卷积核可以挑出图片里的特征。
卷积神经网络

卷积神经网络识别图像的第一步就是把图像的局部特征挑出来(图像进行卷积操作),把局部特征交给神经网络去做判断。
如果挑选的卷积核合适,可以把图像里的某些特征挑出来,其他特征就被过滤掉了。如垂直边界过滤器、水平边界过滤器。
相乘相加是自己对周围像素点的试探,而卷积核则是试探的模板。是对周围像素点的主动试探和选择。



卷积的三层含义
- 一个系统有不稳定输入、稳定输出,就可以通过卷积求系统存量
- 一个卷积核规定周围像素点对当前像素点会产生怎么样的影响
- 一个过滤器的卷积核就是规定一个像素点会如何试探周围的像素点,如何筛选图像特征
感知机
是什么
由罗森布拉特提出。神经网络的基本单元叫感知机。多个输入,一个输出 0、1。是一个分类的工具。

一个感知机至少有两部分,一个分界线,一个数据到底在自己的上面还是下面(二维情况),三维情况就是平面了。只能处理二分问题。

找直接分类的函数的话要去找那个函数能分成几段,分几段呢,每个表达式是什么样子,要不停的去尝试。面对分类问题需要中找到一个统一的模板,所以感知机就是线性二分的模板。体现分而治之的思想。
数学表达式一定有两部分,线性函数、激活函数(判断)。
分界线的具体表示

通过判断函数大于0还是小于0就能知道在分界线上面还是下面。
\(w^Tx\) 表达的是两个矩阵的点积关系。\(T\) 符号是矩阵转置。这里只是形式上。\(b\) 也被写到矩阵里了。


感知机的缺陷

异或没有办法被线性可分。


解决方法是输入两个感知机,再把结果给第三个感知机。
通过叠加感知机,实现线性可分。

还可以使用升维的方法(盖尔定理),具体升维的方式叫核方法。


总结
感知机就是分类的模板,一个线性函数加一个激活函数,这个模板能力有限,只能解决线性二分问题,如果是异或非线性问题就有问题,需要用升维或者变形,那么会变成三部分,多一个升维或变形的函数。用多个感知机解决问题会更加简单。
神经网络
是什么
神经网络的基本单元就是感知机。


这种可以被称作全神经网络(每个节点都跟下一层节点全部相连)、前馈神经网络(单向)。也有不一样的神经网络。

卷积神经网络,不是全连接网络,经过卷积、池化,把数据降维了。

循环神经网络。
缺陷
假如一张图片有200万个像素点,这样输入到神经网络,那么有200万个参数需要被调节。可靠的方法叫梯度下降法,升级成随机梯度下降法,还可以通过卷积、池化降维。
我们给的是肯定的数据,而不是否定的数据,就不能像感知机那样夹逼出分界线。留作之后的问题。
激活函数
激活函数从 0,1 阶跃函数换成了 \(sigmoid\) 函数。感知机的线性函数可以理解成对某个类型里的标准模型的描述,比如对猫的标准模型的描述,激活函数则是判断数据符不符合标准。
我们在真实世界里挑不出一个标准的猫来代替所有的猫,所以我们在理念世界里面抽象创造出一个抽象完美标准的猫神,所有猫是猫神的具象化。训练神经网络本质上就是寻找猫神模型的近似表达。
Machine Learning 02 学习笔记 卷积、感知机、神经网络的更多相关文章
- <Machine Learning - 李宏毅> 学习笔记
<Machine Learning - 李宏毅> 学习笔记 b站视频地址:李宏毅2019国语 第一章 机器学习介绍 Hand crafted rules Machine learning ...
- Coursera课程《Machine Learning》学习笔记(week1)
这是Coursera上比较火的一门机器学习课程,主讲教师为Andrew Ng.在自己看神经网络的过程中也的确发现自己有基础不牢.一些基本概念没搞清楚的问题,因此想借这门课程来个查漏补缺.目前的计划是先 ...
- Andrew Ng Machine Learning Coursera学习笔记
课程记录笔记如下: 1.目前ML的应用 包括:数据挖掘database mining.邮件过滤email anti-spam.机器人autonomous robotics.计算生物学computati ...
- Coursera课程《Machine Learning》学习笔记(week2)
1 特征 1-1 什么是特征? 我的理解就是,用于描述某个样本点,以哪几个指标来评定,这些个指标就是特征.比方说对于一只鸟,我们评定的指标就可以是:(a)鸟的翅膀大还是小?(b)鸟喙长还是短?(c)鸟 ...
- 机器学习(Machine Learning)&深度学习(Deep Learning)资料【转】
转自:机器学习(Machine Learning)&深度学习(Deep Learning)资料 <Brief History of Machine Learning> 介绍:这是一 ...
- 机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2)
##机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2)---#####注:机器学习资料[篇目一](https://github.co ...
- 《Machine Learning》系列学习笔记之第一周
<Machine Learning>系列学习笔记 第一周 第一部分 Introduction The definition of machine learning (1)older, in ...
- [DL学习笔记]从人工神经网络到卷积神经网络_1_神经网络和BP算法
前言:这只是我的一个学习笔记,里边肯定有不少错误,还希望有大神能帮帮找找,由于是从小白的视角来看问题的,所以对于初学者或多或少会有点帮助吧. 1:人工全连接神经网络和BP算法 <1>:人工 ...
- 机器学习(Machine Learning)&深度学习(Deep Learning)资料
<Brief History of Machine Learning> 介绍:这是一篇介绍机器学习历史的文章,介绍很全面,从感知机.神经网络.决策树.SVM.Adaboost到随机森林.D ...
随机推荐
- 一些Docker 操作集合
基本 显示所有容器(包括已停止): docker container ls -a 删除所有容器: docker stop $(docker ps -q) docker rm $(docker ps - ...
- jsp安全问题及其解决建议
jsp编程语言自从推出之日起,由于它的快速.平台无关.可扩展.面向对象等特性得到了越来越广泛的应用,越来越多的厂家开发出了各种各样的支持平台如IBM 公司的WebSphere.BEA公司的WebLog ...
- C++设计模式 - 状态模式(State)
状态变化模式 在组件构建过程中,某些对象的状态经常面临变化,如何对这些变化进行有效的管理?同时又维持高层模块的稳定?"状态变化"模式为这一问题提供了一种解决方案. 典型模式 Sta ...
- Mybatis——一级缓存与二级缓存
关于Mybatis的学习主要参考了狂神的视频 一级缓存 (1).使用范围:从sqlSession会话开始到结束 (2).使用:默认打开,无法关闭 (3).测试使用(需要打开日志观察数据库的连接情况): ...
- 创建一个 20G 的分区,并格式化为 ext4 文件系统
创建一个 20G 的分区,并格式化为 ext4 文件系统,并完成如下要求: (1)block 大小为 2048,预留空间 20%,卷标为 MYDATA #fdisk /dev/sdb -->n ...
- 突发!Gitee 图床,废了!
大家好,我是鱼皮,这两天又发生了一件挺意外的事情:Gitee 的图床废了! 图床:指储存图片的服务器,便于在网上展示图片 昨天晚上,星球里不止一位小伙伴发帖子表示自己网站.文章中的图片竟然全部变成了 ...
- 如何移植sqlite3到嵌入式平台
本人也时常看其他人的blog,搜索资料的目的是尽快解决当前的问题,例如如何移植一个ssh,尽快要明白所需的东西,方能移植完成. 移植sqlite3的步骤如下: 1. 到官方网站下载指定的源码包:htt ...
- BGP的四类属性详解
BGP的四类属性 公认必遵(Well-known mandatory) 要求所有运行BGP协议的设备都必须能识别,且在更新消息中必须包含. Origin(起源) 属性 用来标识路由信息的来源. 如果路 ...
- 常用写法java
迭代器遍历[List.Set.Map] 遍历List方法一:普通for循环 1 for(int i=0;i<list.size();i++){//list为集合的对象名 2 String tem ...
- List、Set、Map 是否继承自 Collection 接口?
List.Set 是,Map 不是.Map 是键值对映射容器,与 List 和 Set 有明显的区别, 而 Set 存储的零散的元素且不允许有重复元素(数学中的集合也是如此),List 是线性结构的容 ...