反向传播 反向传播主要用到是链式法则. 概念: 损失函数Loss Function是定义在单个训练样本上的,也就是一个样本的误差. 代价函数Cost Function是定义在整个训练集上的,也就是所有样本误差的总和的平均.有没有这个平均不会影响最后的参数求解结果. 总体损失函数Total Loss Function是定义在整个训练集上的,所有误差的总和,反向传播需要最小化的值. 取一个神经元分析: 计算梯度分为两部分: forward pass.backward pass Forward Pas…
深度学习课程笔记(三)Backpropagation 反向传播算法 2017.10.06  材料来自:http://speech.ee.ntu.edu.tw/~tlkagk/courses_MLDS17.html 反向传播算法这里是用到 chain rule(链式法则)的,如下图所示: 这个应该没什么问题.大家都学过的. 我们知道总的loss 是由各个小的 loss 组合得到的,那么我们在求解 Loss 对每一个参数的微分的时候,只要对每一个 loss 都这么算就可以了.那么我们以后的例子都是以…
该博客将介绍机器学习课程by李宏毅的前两个章节:概述和回归. 视屏链接1-Introduction 视屏链接2-Regression 该课程将要介绍的内容如下所示: 从最左上角开始看: Regression(回归):输出的目标是一个数值.如预测明天的PM2.5数值. 接下来是Classification(分类):该任务的目标是将数据归为某一类,如进行猫狗分类. 在分类任务中,将涉及线性和非线性的模型.其中,非线性的模型包含了Deep-Learning,SVM,决策树,K-NN等等. 结构化学习相…
神经网络的表现 在Training Set上表现不好 ----> 可能陷入局部最优 在Testing Set上表现不好 -----> Overfitting 过拟合 虽然在机器学习中,很容易通过SVM等方法在Training Set上得出好的结果,但DL不是,所以得先看Training Set上的表现. 要注意方法适用的阶段: 比如:dropout方法只适合于:在Training Data上表现好,在Testing Data上表现不好的. 如果在Training Data上就表现不好了,那么这…
Classification: Probabilistic Generative Model 分类:概率生成模型 如果说对于分类问题用回归的方法硬解,也就是说,将其连续化.比如 \(Class 1\) 对应的目标输出为 1, \(Class 2\) 对应 -1. 则在测试集上,结果更接近1的归为\(Class 1\),反之归为\(Class 2\). 这样做存在的问题:如果有Error数据的干扰,会影响分类的结果. 还有就是,如果是多分类问题,则在各类之间增加了线性关系,比如认为 \(Class…
Machine Learning == Looking for a Function AI过程的解释:用户输入信息,计算机经过处理,输出反馈信息(输入输出信息的形式可以是文字.语音.图像等). 因为从输入到输出的处理不是简单的数学运算,甚至很多时候科学家并不知道如何来实现这个过程. 所以最初的时候科学家写了很多的规则. 但是这种方法,有很多的问题: 一是hand-crafted rule无法包括所有可能情况, 二是它永远不会超过它的创造者的水平, 三是投入的人力过多. 所以后来采用的方法是让计算…
当参数一样多的时候,神经网络变得更高比变宽更有效果.为什么会这样呢? 其实和软件行业的模块化思想是一致的. 比如,如果直接对这四种分类进行训练,长发的男孩数据较少,那么这一类训练得到的classifier不是很好. 但如果分成长发or短发,男孩or女孩,这两种基分类器,那么数据就是足够的,可以得到很好的结果.这样的话,其实用比较少的数据就可以得到很好地分类结果. 模组化这个事情机器是可以自动学到的. 图像应用 语音应用 第一步要做的事情就是把acoustic feature转成state,再把s…
Convolutional Neural Network CNN 卷积神经网络 1. 为什么要用CNN? CNN一般都是用来做图像识别的,当然其他的神经网络也可以做,也就是输入一张图的像素数组(pixel vector),最后输出n个分类(dimension). 但是为什么不用Fully Connected Network呢,主要原因还是因为前后各层涉及到的参数太多了. 所以CNN主要就是简化神经网络的架构,使其比一般的DNN都要简单.这是第一点原因. 网络中的每一个神经元都可以看做是一个Cla…
1. Keras Demo2 前节的Keras Demo代码: import numpy as np from keras.models import Sequential from keras.layers.core import Dense,Dropout,Activation from keras.optimizers import SGD,Adam from keras.utils import np_utils from keras.datasets import mnist def…
3.1 configuration 3.2 寻找最优网络参数 代码示例: # 1.Step 1 model = Sequential() model.add(Dense(input_dim=28*28, output_dim=500)) # Dense是全连接 model.add(Activation('sigmoid')) model.add(Dense(output_dim=500)) model.add(Activation('sigmoid')) model.add(Dense(outp…
深度学习发展历史: 感知机和逻辑回归很像,只是没有\(sigmoid\)激活函数. 深度学习训练的三个步骤: Step1:神经网络(Neural network) Step2:模型评估(Goodness of function) Step3:选择最优函数(Pick best function) Step1: 完全连接前馈神经网络 Fully Connect Feedforward Network: 概念:输入层.隐藏层.输出层.神经元 Deep = Many hidden layers 全连接:…
Logistic Regression 逻辑回归 逻辑回归与线性回归有很多相似的地方.后面会做对比,先将逻辑回归函数可视化一下. 与其所对应的损失函数如下,并将求max转换为min,并转换为求指数形式,便于计算. 最后得到的是两个伯努利分布(function output & target)的交叉熵(两个分布的接近程度,如果分布相同,则交叉熵为0). 经过求导,最后得到的损失函数的偏导数和线性回归的是形式一致的.将其三个步骤的对比归纳如下. 为何用交叉熵而不用平方差,因为逻辑回归模型在求导过程中…
梯度下降 Gradient Descent 梯度下降是一种迭代法(与最小二乘法不同),目标是解决最优化问题:\({\theta}^* = arg min_{\theta} L({\theta})\),其中\({\theta}\)是一个向量,梯度是偏微分. 为了让梯度下降达到更好的效果,有以下这些Tips: 1.调整学习率 梯度下降的过程,应当在刚开始的时候,应该步长大一些,以便更快迭代,当靠近目标时,步长调小一些. 虽然式子中的微分有这个效果,但同时改变一下学习率的值,可以很大程度加速这个过程.…
A more complex model does not always lead to better performance on testing data. Because error due to both of 'bias' and 'variance'. From training data, we can find \(f^*\), \(f^*\) is an enstimator of \(\hat{f}\) bias (偏差) 和 variance (方差) 的直观表示: 数学公…
Regression 回归 应用领域包括:Stock Market Forecast, Self-driving car, Recommondation,... Step 1: Model 对于宝可梦的CP值预测问题,假设为一个最简单的线性模型 y = b + \(\sum w_i x_i\) \(x_i\): an attribute of input x(feature) \(w_i\): weight, b: bias Step 2: Goodness of Function 定义一个Lo…
#对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补充>的是我自己加的内容而非课堂内容,参考文献列于文末.博主能力有限,若有错误,恳请指正: #---------------------------------------------------------------------------------# 这一周的内容是机器学习介绍和梯度下降法.作为入…
目录会根据我的学习进度而更新,给自己列一个大纲以系统地看待整个学习过程. 学习资料来源 学习的是Coursera上吴恩达(Andrew Ng)老师的机器学习视频(课程传送门,最近在"最强大脑"上看到他了好激动啊,原来他去做百度大脑了呀),笔记根据此系列视频整理.笔记顺序不一定与原教程一样,希望加入些自己的思考. 同时使用了网上找到的黄海广博士的对于吴大大视频教程的笔记(传送门).因为我一开始看视频没做笔记,现在忘得差不多啦,现在打算写个笔记,重新去看视频再整理太麻烦,网上竟然找到这一神…
在折腾完爬虫还有一些感兴趣的内容后,我最近在看用R语言进行简单机器学习的知识,主要参考了<机器学习-实用案例解析>这本书. 这本书是目前市面少有的,纯粹以R语言为基础讲解的机器学习知识,书中涉及11个案例.分12章.作者备注以及代码部分都讲得比较深.不过或许因为出书较早,在数据处理方面,他使用更多的是plyr包,而我用下来,dplyr包效果更好.所以许多涉及数据处理的代码,其实可以用更简洁的方法重写.但是思路却是实打实的精华. 我之前在某长途动车上啃完了前三章,两个案例.但越往后读,越觉得后面…
什么是模式识别(Pattern Recognition)? 按照Bishop的定义,模式识别就是用机器学习的算法从数据中挖掘出有用的pattern. 人们很早就开始学习如何从大量的数据中发现隐藏在背后的pattern.例如,16世纪的Kepler从他的老师Tycho搜集的大量有关于行星运动的数据中发现了天体运行的规律,并直接导致了牛顿经典力学的诞生.然而,这种依赖于人类经验的.启发式的模式识别过程很难复制到其他的领域中.例如手写数字的识别.这就需要机器学习的技术了.(顺便提一下,开普勒定律在物理…
线性回归属于回归问题.对于回归问题,解决流程为: 给定数据集中每个样本及其正确答案,选择一个模型函数h(hypothesis,假设),并为h找到适应数据的(未必是全局)最优解,即找出最优解下的h的参数.这里给定的数据集取名叫训练集(Training Set).不能所有数据都拿来训练,要留一部分验证模型好不好使,这点以后说.先列举几个几个典型的模型: 最基本的单变量线性回归: 形如h(x)=theta0+theta1*x1 多变量线性回归: 形如h(x)=theta0+theta1*x1+thet…
一.什么是机器学习? 计算机程序利用经验E(训练数据)学习任务T(要做什么,即目标),性能是P(性能指标),如果针对任务T的性能P随着经验E不断增长,成为机器学习.[这是汤姆米切尔在1997年定义] 大白话:类比于学生学习考试,你先练习一套有一套的模拟卷 (这就相当于训练数据),在这几套模拟卷上能得到差不多的成绩的时候(这个就是在训练数据得到的性能指标P理想),然后去考试(应用到实际生产生活中去).这就是机器学习的类比. 二.机器学习的好处 传统的编程技术完成的程序会在动态变化的生产环境中难以维…
欠拟合(Underfitting)与过拟合(Overfitting) 上面两张图分别是回归问题和分类问题的欠拟合和过度拟合的例子.可以看到,如果使用直线(两组图的第一张)来拟合训,并不能很好地适应我们的训练集,这就叫欠拟合(Underfitting),但是如果x的次数太高(两组图的第三张),拟合虽然很好,但是预测能力反而变差了,这就是过拟合(Overfitting). 对于欠拟合,我们可以适当增加特征,比如加入x的多次方.通常这很少发生,发生的多的都是过拟合.那么如何处理过度拟合呢? 1. 丢弃…
逻辑回归算法是分类算法,虽然这个算法的名字中出现了"回归",但逻辑回归算法实际上是一种分类算法,我们将它作为分类算法使用.. 分类问题:对于每个样本,判断它属于N个类中的那个类或哪几个类.通常我们判定一个样本,若我们预测它的确属于这个类的可能性大于50%,则认为它属于这个类.当然具体选择50%还是70%还是其他要看具体情况,这里先默认50%. 线性回归的局限性在分类问题的例子中变得不可靠:这是一个用来预测肿瘤是否呈阴性的模型,当一个肿瘤的尺寸大于一个数,我们就认为这个肿瘤呈阴性.我们现…
李宏毅老师的机器学习课程和吴恩达老师的机器学习课程都是都是ML和DL非常好的入门资料,在YouTube.网易云课堂.B站都能观看到相应的课程视频,接下来这一系列的博客我都将记录老师上课的笔记以及自己对这些知识内容的理解与补充.(本笔记配合李宏毅老师的视频一起使用效果更佳!) Lecture 6: Brief Introduction of Deep Learning 本节课主要围绕Deep Learing三步骤: (1)function set (2)goodness of function (…
李宏毅老师的机器学习课程和吴恩达老师的机器学习课程都是都是ML和DL非常好的入门资料,在YouTube.网易云课堂.B站都能观看到相应的课程视频,接下来这一系列的博客我都将记录老师上课的笔记以及自己对这些知识内容的理解与补充.(本笔记配合李宏毅老师的视频一起使用效果更佳!) Lecture 8:Why deep? 1.Shallow network VS Deep network 在比较浅层网络与深层网络时,要让“矮胖”的网络和“高瘦”的网络的参数数目相等,这样比较才公平,如下图所示 比较结果如…
李宏毅老师的机器学习课程和吴恩达老师的机器学习课程都是都是ML和DL非常好的入门资料,在YouTube.网易云课堂.B站都能观看到相应的课程视频,接下来这一系列的博客我都将记录老师上课的笔记以及自己对这些知识内容的理解与补充.(本笔记配合李宏毅老师的视频一起使用效果更佳!) Lecture 7: CNN 目录 一.CNN的引入 二.CNN的层次结构 三.CNN的小Demo加深对CNN的理解 四.CNN的特点 在学习本节课知识之前,先让我们来了解一下有关CNN的知识,让我们对CNN有一个大概的认知…
李宏毅老师的机器学习课程和吴恩达老师的机器学习课程都是都是ML和DL非常好的入门资料,在YouTube.网易云课堂.B站都能观看到相应的课程视频,接下来这一系列的博客我都将记录老师上课的笔记以及自己对这些知识内容的理解与补充.(本笔记配合李宏毅老师的视频一起使用效果更佳!) ML Lecture 4:Classification:Probabilistic Generative Model 在这堂课中,老师主要根据宝可梦各属性值预测其类型为例说明分类问题,其训练数据为若干宝可梦的各属性值及其类型…
李宏毅老师的机器学习课程和吴恩达老师的机器学习课程都是都是ML和DL非常好的入门资料,在YouTube.网易云课堂.B站都能观看到相应的课程视频,接下来这一系列的博客我都将记录老师上课的笔记以及自己对这些知识内容的理解与补充.(本笔记配合李宏毅老师的视频一起使用效果更佳!) 今天这篇文章的主要内容是第3课的笔记 ML Lecture 3: Gradient Descent 1.要真正理解梯度下降算法的原理需要一定的数学功底.比如微积分.泰勒展开式等等......本文将从一个下山的场景开始,先提出…
李宏毅老师的机器学习课程和吴恩达老师的机器学习课程都是都是ML和DL非常好的入门资料,在YouTube.网易云课堂.B站都能观看到相应的课程视频,接下来这一系列的博客我都将记录老师上课的笔记以及自己对这些知识内容的理解与补充.(本笔记配合李宏毅老师的视频一起使用效果更佳!) 今天这篇文章的主要内容是第1-2课的笔记. ML Lecture 1: Regression - Demo 1.Machine Learning最主要有三个步骤:(1)选择a set of function,也就是选择一个合…
摘要 本文是对 Andrew Ng 在 Coursera 上的机器学习课程中 Backpropagation Algorithm 一小节的延伸.文章分三个部分:第一部分给出一个简单的神经网络模型和 Backpropagation(以下简称 BP)算法的具体流程.第二部分以分别计算第一层和第二层中的第一个参数(parameters,在神经网络中也称之为 weights)的梯度为例来解释 BP 算法流程,并给出了具体的推导过程.第三个部分采用了更加直观的图例来解释 BP 算法的工作流程. 注:1.…