1.机器学习,就是找一个函式

MachineLearning ≈ Looking for Function

2.机器学习两大类任务:

Regression:The function outputs a scalar. #标量(值)

Classification:given options ,the function give a correct one.

#第三大类是 structured learning:create sth with structure(img or doc)

3. 机器学习三大步骤:

先用线性问题举例,其中1)2)3)为一次Training

第一步1)Function with Unknown Parameters 写出一个带有未知参数的函式

y = wx+b;                                    #weight,bias

第二步2) Define Loss from Training Data 从训练数据中定义损失函数

Loss :a function of parameters  -->  L(b,w)

Loss =1/n ∑error                      #loss是统计量(一般是)

*每个输入都会经历:in -> f(w*,b*) -> out -> error,都会记录输出与误差。

一组数据就有一组误差,一组误差计算出一个loss值(例如取平均)。

第三步3)Optimization 最优化:不停调整参数,找一组让loss最小的参数集

①Gradient Descent 梯度下降法

调整步伐△w = η*梯度

4. epoch,batchsize,iteration

epoch:整个训练数据训练完一次,称为一次epoch。训练包括:forward、loss、bp

batchsize:整个训练数据分组,每组大小为batchsize。每组生成一个专属loss和专属梯度grad,根据grad进行一次权重update,以便下个一个batch使用。

iteration(迭代):每次输入一个batch,即batchsize个数据,进行一次训练,称为一次iteration。

一次迭代可得到batchsize个error --> 一个loss&一个梯度g -->一次权重update

一次迭代就是一次update。

5. need more sophisticated function

上面举例的Linear Function太过简单,实际上需要更复杂的Function去模拟现实情况。

如何写出更复杂的function?

例如下图红色curve,是一个piecewise linear function分段线性函数。(后文将用红色curve代替分段线性函数)

红色curve=0+1+2+3,0代表常数项,123是形状不同的蓝色function

所以可得出红色curve由不同的蓝色function组成。

一般情况,我们用分段线性函数(类似红色curve)去逼近代表真实问题的连续曲线,如下图。问题越复杂则曲线越复杂,需要的红色curve转折点越多,即需要越多蓝色function去构造。

具体来说,红色curve中分几段,则需要几个不同的蓝色function构造。

蓝色function,又称激活函数。

通常使用sigmoid函数。(也可tanh和relu)如下图介绍:

调整sigmoid函数中的参数b,w,c,就可制造出各式各样的蓝色sigmoid,有了各式各样的蓝色sigmoid,就可制造出不同的红色curve,近而就能去逼近现实中复杂问题映射的continuous curve(连续曲线)。

例如下图的红色curve=常数b+三个不同的蓝色sigmoid。(分了三段,所以需要三个sigmoid)


模拟现实从此开始!More Features Model!


6.More Features Model

当y不止被一个输入x决定,而是被多个输入部分(x1,x2,...,xj)决定时,

模拟现实的continuous curve该如何表示?

如下图蓝框内容。y = b + ∑i ci sigmoid(bi + ∑j wij xi)

此时x表示为输入的特征内容。一个x即一个输入特征,j个x则为j个特征。

例如第二天的播放量y与前28天的播放量x均相关时,则需输入28个特征值。

举个三输入的简单例子:

假设明天的播放量y与前三天的播放量x相关,则 j = 1 ~3 (特征个数)

假设用具有三个分段的分段线性函数逼近真实曲线continuous curve,则需要3个蓝色function,

即i =1 ~ 3

此处,j 的取值,表示输入特征x的个数,由实际问题决定。

i 的值为自定义参数,表示蓝色function的个数。i 越大说明红色curve转折点越多,越逼近真实曲线。

将上图的蓝框式子用网络结构图展开表示:其中r为x的线性组合,即将进入激活函数。

r 的三个长表达式可以用矩阵简化成一个式子:图底部的颜色小方块。

注意形状代表矩阵格式。

所以虚线框和红框内容等价。都是为了计算 r = b+wx

计算出r1,r2,r3后,分别通过sigmoid function,得到a1,a2,a3。

直接用 a =σ(r)表示。

接下来,sigmoid的输出a1a2a3还要乘上c1c2c3再加上b,最终就得到y。

所以总过程可以总结为下图三个向量式

1. 先由x的线性组合得到r;

2. 再将r输入进sigmoid得到向量a;

3. 再将a进行一个线性组合得到最终输出y。

最后 y 可以用一个线性代数式表示:


此时我们就重新改写了机器学习的第一步!!!!!

重新定义了一个带有未知参数的Function!!!

7. 计算Loss

将所有的未知参数列成一维向量θ=[w,b,c,...]。

接下来,要对每一个未知参数θi,都去计算对Loss的微分,这些微分组合起来,用一个向量g来表示,即梯度gradient。

优化过程:每个batch对应一批新的输入,即对应一批新的error,即生成一个专属loss和一个专属梯度g。

第一个batch使用初始θ0,计算出专属L1和g1后,利用g1更新参数θ0 -> θ1;

第二个batch使用更新后的θ1,计算出专属L2和g2后,利用g2更新参数θ1 -> θ2;

第三个batch...

以此类推,直到最后一个batch优化最后一次θ,该θ即为最优θ。

使用y=f(θ,x)预测的值最贴近真实值!!芜湖

8. 蓝色Function

机器学习中将蓝色function称为激活函数,目前最常用的激活函数为Relu。

由于一个sigmoid由两个relu组成,故relu的数量为2i。

下图为分别用线性、10个、100个、1000个relu所产生的误差,100个relu代表有50个折线段的红色curve。

输入x加权求和加偏差b后进入激活函数中称为一层layer,将输出a继续这个步骤第二次进入激活函数后输出称为第二层layer。多层意味着深,这样组成的网络即为deep learning。

将激活函数称作Neuron(神经元),运算的网络结构称为neural network(神经网络)。

按理说,只要够多的蓝色function,就可以逼近任何连续的function,我们只要够多的sigmoid,就可以制造够复杂的continuous function。所以只要一排relu/sigmoid够多就足够。那深的意义是什么呢,既然直接一排也可以表示任何的function,为何还要把relu/sigmoid反复用,构成deep learning?

【学习笔记】李宏毅-机器学习MachineLearning相关推荐

  1. 影像组学视频学习笔记(37)-机器学习模型判断脑卒中发病时间(文献报告)、Li‘s have a solution and plan.

    作者:北欧森林 链接:https://www.jianshu.com/p/3e7a2c84288e 来源:简书,已获授权转载 RadiomicsWorld.com "影像组学世界" ...

  2. 逻辑斯蒂回归_逻辑斯蒂回归详细解析 | 统计学习方法学习笔记 | 数据分析 | 机器学习...

    本文包括: 重要概念 逻辑斯蒂回归和线性回归 二项逻辑斯谛回归模型 逻辑斯蒂回顾与几率 模型参数估计 多项逻辑斯谛回归 其它有关数据分析,机器学习的文章及社群 1.重要概念: 在正式介绍逻辑斯蒂回归模 ...

  3. 【机器学习-斯坦福】学习笔记1 - 机器学习的动机与应用

    开始看Andrew Ng的经典课程机器学习,随堂做的学习笔记 机器学习的动机与应用 工具:需正版:Matlab,免费:Octave 定义(Arthur Samuel 1959): 在不直接针对问题进行 ...

  4. 机器学习处理信号分离_[学习笔记]使用机器学习和深度学习处理信号基础知识...

    参考学习:Signal Generation and Preprocessing 本人只是为了了解信号处理的基础知识而做的学习笔记,涉及深度可能不够,有理解错误的地方请大胆指出,感激不尽 一.信号生成 ...

  5. Scikit-Learn 与 TensorFlow 机器学习实用指南学习笔记2 — 机器学习的主要挑战

    红色石头的个人网站:redstonewill.com 简而言之,因为机器学习的主要任务就是选择合适的机器学习算法在数据集上进行训练,所以不好的算法和不好的数据都可能严重影响训练效果.下面我们先来看看不 ...

  6. 斯坦福机器学习公开课学习笔记(1)—机器学习的动机与应用

    (转载请注明出处:http://blog.csdn.net/buptgshengod) 1.背景         斯坦福机器学习公开课差不多是网上能找到的最好的机器学习入门课程了.现在一共有20节课放 ...

  7. 吴恩达《机器学习》学习笔记十三——机器学习系统(补充)

    这次笔记是对笔记十二的补充,之前讨论了评价指标,这次主要是补充机器学习系统设计中另一个重要的方面,用来训练的数据有多少的问题. 笔记十二地址:https://blog.csdn.net/qq_4046 ...

  8. Scikit-Learn 与 TensorFlow 机器学习实用指南学习笔记1 — 机器学习基础知识简介

    红色石头的个人网站:redstonewill.com 本章介绍的是每一个数据科学家都应该知道并听说的机器学习许多基本的概念和术语.这将是一个高层次的概括(本书唯一没有很多代码的一章).内容很简单,但是 ...

  9. 最新版学习笔记---Python机器学习基础教程(1)Irises(鸢尾花)分类---附完整代码

    开始学习机器学习基础,在此留下学习心得与自己的理解. 啥也不说,先看一下鸢尾花啥样 好看吧~~~~ Iris 1.环境搭建 2.了解数据 2.1读取数据 2.2查看数据 3.分离数据 4.构建模型(k ...

最新文章

  1. 智源研究院联合多家权威机构上线“新冠肺炎(COVID-19)开放数据源”,打造全面、精细的新冠数据平台...
  2. 如何让两个输入框保持长度一直_投篮如何保持直线,为什么有些职业球员手臂弯曲投篮一直直...
  3. head()函数python_Python中的Pandas DataFrame head()方法
  4. w25n01g 代码_W25N01GV 驱动
  5. WAI-ARIA对自动完成小部件的支持
  6. 跟着太白老师学python day11 可迭代对象和迭代器
  7. C# 获取枚举的DescriptionAttribute内的字符串
  8. 2011年 7月6日の朝会文章 手塚 治虫
  9. IIS+PHP本地开发环境配置
  10. 清空表与删除表mysql
  11. Django index_together设置
  12. day39-Spring 14-Spring的JDBC模板:DBCP连接池配置
  13. 程序设计c语言作业章春芳,C语言说课PPT
  14. ROS中使用RPLIDAR激光雷达
  15. setlocale()函数的作用
  16. 激活函数(activation function)的种类与应用
  17. 三角肌前束(02):哑铃交替前举
  18. 下班后可以做点什么副业赚钱呢?
  19. phalapi可以依赖注入么_phalapi-进阶篇2(DI依赖注入和单例模式)
  20. 打开 codeblocks 出现 ntvdm.exe 停止工作

热门文章

  1. 趣学算法【第一章:算法之美】感悟(上)
  2. phpstudy php+apache 环境PHP多版本环境配置
  3. Windows Server 2003服务器群集创建和配置指南
  4. 响应式网页教程_如何响应式思考:响应式网页设计教程
  5. linux-note:Linux Basics
  6. c语言图像羽化,C图像边缘羽化
  7. JS 连接MQTT的方法(mqtt.js的使用方法)
  8. 公司年会到底参不参加
  9. Unity Shader - BRP - Soft Particle - 软粒子
  10. mac的rubywoo怎么读_MAC大热色号 RUBY WOO