Machine Learning == Looking for a Function AI过程的解释:用户输入信息,计算机经过处理,输出反馈信息(输入输出信息的形式可以是文字.语音.图像等). 因为从输入到输出的处理不是简单的数学运算,甚至很多时候科学家并不知道如何来实现这个过程. 所以最初的时候科学家写了很多的规则. 但是这种方法,有很多的问题: 一是hand-crafted rule无法包括所有可能情况, 二是它永远不会超过它的创造者的水平, 三是投入的人力过多. 所以后来采用的方法是让计算…
李宏毅老师的机器学习课程和吴恩达老师的机器学习课程都是都是ML和DL非常好的入门资料,在YouTube.网易云课堂.B站都能观看到相应的课程视频,接下来这一系列的博客我都将记录老师上课的笔记以及自己对这些知识内容的理解与补充.(本笔记配合李宏毅老师的视频一起使用效果更佳!) Lecture 6: Brief Introduction of Deep Learning 本节课主要围绕Deep Learing三步骤: (1)function set (2)goodness of function (…
引言: 最近开始学习"机器学习",早就听说祖国宝岛的李宏毅老师的大名,一直没有时间看他的系列课程.今天听了一课,感觉非常棒,通俗易懂,而又能够抓住重点,中间还能加上一些很有趣的例子加深学生的印象. 视频链接(bilibili):李宏毅机器学习(2017) 另外已经有有心的同学做了速记并更新在github上:李宏毅机器学习笔记(LeeML-Notes) 所以,接下来我的笔记只记录一些我自己的总结和听课当时的困惑,如果有能够帮我解答的朋友也请多多指教. 1.人工智能.机器学习.深度学习的关…
该博客将介绍机器学习课程by李宏毅的前两个章节:概述和回归. 视屏链接1-Introduction 视屏链接2-Regression 该课程将要介绍的内容如下所示: 从最左上角开始看: Regression(回归):输出的目标是一个数值.如预测明天的PM2.5数值. 接下来是Classification(分类):该任务的目标是将数据归为某一类,如进行猫狗分类. 在分类任务中,将涉及线性和非线性的模型.其中,非线性的模型包含了Deep-Learning,SVM,决策树,K-NN等等. 结构化学习相…
一,什么是机器学习 第一个机器学习的定义来自于 Arthur Samuel.他定义机器学习为,在进行特定编程的情况下,给予计算机学习能力的领域.Samuel 的定义可以回溯到 50 年代,他编写了一个西洋棋程序.这程序神奇之处在于,编程者自己并不是个下棋高手.但因为他太菜了,于是就通过编程,让西洋棋程序自己跟自己下了上万盘棋.通过观察哪种布局(棋盘位置)会赢,哪种布局会输,久而久之,这西洋棋程序明白了什么是好的布局,什么样是坏的布局.程序通过学习后,玩西洋棋的水平超过了 Samuel.这绝对是令…
神经网络的表现 在Training Set上表现不好 ----> 可能陷入局部最优 在Testing Set上表现不好 -----> Overfitting 过拟合 虽然在机器学习中,很容易通过SVM等方法在Training Set上得出好的结果,但DL不是,所以得先看Training Set上的表现. 要注意方法适用的阶段: 比如:dropout方法只适合于:在Training Data上表现好,在Testing Data上表现不好的. 如果在Training Data上就表现不好了,那么这…
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…
Classification: Probabilistic Generative Model 分类:概率生成模型 如果说对于分类问题用回归的方法硬解,也就是说,将其连续化.比如 \(Class 1\) 对应的目标输出为 1, \(Class 2\) 对应 -1. 则在测试集上,结果更接近1的归为\(Class 1\),反之归为\(Class 2\). 这样做存在的问题:如果有Error数据的干扰,会影响分类的结果. 还有就是,如果是多分类问题,则在各类之间增加了线性关系,比如认为 \(Class…
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…
当参数一样多的时候,神经网络变得更高比变宽更有效果.为什么会这样呢? 其实和软件行业的模块化思想是一致的. 比如,如果直接对这四种分类进行训练,长发的男孩数据较少,那么这一类训练得到的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…
反向传播 反向传播主要用到是链式法则. 概念: 损失函数Loss Function是定义在单个训练样本上的,也就是一个样本的误差. 代价函数Cost Function是定义在整个训练集上的,也就是所有样本误差的总和的平均.有没有这个平均不会影响最后的参数求解结果. 总体损失函数Total Loss Function是定义在整个训练集上的,所有误差的总和,反向传播需要最小化的值. 取一个神经元分析: 计算梯度分为两部分: forward pass.backward pass Forward Pas…
深度学习发展历史: 感知机和逻辑回归很像,只是没有\(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 (方差) 的直观表示: 数学公…
#对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补充>的是我自己加的内容而非课堂内容,参考文献列于文末.博主能力有限,若有错误,恳请指正: #---------------------------------------------------------------------------------# 这一周的内容是机器学习介绍和梯度下降法.作为入…
目录会根据我的学习进度而更新,给自己列一个大纲以系统地看待整个学习过程. 学习资料来源 学习的是Coursera上吴恩达(Andrew Ng)老师的机器学习视频(课程传送门,最近在"最强大脑"上看到他了好激动啊,原来他去做百度大脑了呀),笔记根据此系列视频整理.笔记顺序不一定与原教程一样,希望加入些自己的思考. 同时使用了网上找到的黄海广博士的对于吴大大视频教程的笔记(传送门).因为我一开始看视频没做笔记,现在忘得差不多啦,现在打算写个笔记,重新去看视频再整理太麻烦,网上竟然找到这一神…
I. 什么是NLP NLP全称是Natural Language Processing,即自然语言处理,这是一门计算机科学.人工智能以及语言学的交叉学科. NLP涉及的几个层次由下图所示.可以看到输入数据有两大类,分别是语音和文字.在接收到数据之后还需要做一系列的处理. 首先是speech数据是做语音分析,text则是OCR或者Tokenization. 之后是Morphological analysis,这是形态学的意思,援引<统计自然语言处理>中的定义: 形态学(morphology):形…
在折腾完爬虫还有一些感兴趣的内容后,我最近在看用R语言进行简单机器学习的知识,主要参考了<机器学习-实用案例解析>这本书. 这本书是目前市面少有的,纯粹以R语言为基础讲解的机器学习知识,书中涉及11个案例.分12章.作者备注以及代码部分都讲得比较深.不过或许因为出书较早,在数据处理方面,他使用更多的是plyr包,而我用下来,dplyr包效果更好.所以许多涉及数据处理的代码,其实可以用更简洁的方法重写.但是思路却是实打实的精华. 我之前在某长途动车上啃完了前三章,两个案例.但越往后读,越觉得后面…
Lab 8 Introduction to String Processing Sequence 1: Exercises in string processing 1. Other than the man page, how could you get a summary of options for the aspell command,displayed one page at a time?aspell --help | less 2. How many files are in th…
什么是模式识别(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…
1. Machine Learning definition(机器学习定义) Arthur Samuel(1959年)将机器学习非正式定义为:在不直接针对问题进行编程的情况下,赋予计算机学习能力的一个研究领域. 创造西洋棋程序,可以和自己对战. Tom Mitchell(1998年)提出一个更为正式关于机器学习的定义 :对于一个计算机程序来说:给它一个任务T和一个性能测量方法P,如果在经验E的影响下,P对T的测量结果得到了改进,那么就说改程序从E中学习. E = the experience o…
一.什么是机器学习? 计算机程序利用经验E(训练数据)学习任务T(要做什么,即目标),性能是P(性能指标),如果针对任务T的性能P随着经验E不断增长,成为机器学习.[这是汤姆米切尔在1997年定义] 大白话:类比于学生学习考试,你先练习一套有一套的模拟卷 (这就相当于训练数据),在这几套模拟卷上能得到差不多的成绩的时候(这个就是在训练数据得到的性能指标P理想),然后去考试(应用到实际生产生活中去).这就是机器学习的类比. 二.机器学习的好处 传统的编程技术完成的程序会在动态变化的生产环境中难以维…
欠拟合(Underfitting)与过拟合(Overfitting) 上面两张图分别是回归问题和分类问题的欠拟合和过度拟合的例子.可以看到,如果使用直线(两组图的第一张)来拟合训,并不能很好地适应我们的训练集,这就叫欠拟合(Underfitting),但是如果x的次数太高(两组图的第三张),拟合虽然很好,但是预测能力反而变差了,这就是过拟合(Overfitting). 对于欠拟合,我们可以适当增加特征,比如加入x的多次方.通常这很少发生,发生的多的都是过拟合.那么如何处理过度拟合呢? 1. 丢弃…
逻辑回归算法是分类算法,虽然这个算法的名字中出现了"回归",但逻辑回归算法实际上是一种分类算法,我们将它作为分类算法使用.. 分类问题:对于每个样本,判断它属于N个类中的那个类或哪几个类.通常我们判定一个样本,若我们预测它的确属于这个类的可能性大于50%,则认为它属于这个类.当然具体选择50%还是70%还是其他要看具体情况,这里先默认50%. 线性回归的局限性在分类问题的例子中变得不可靠:这是一个用来预测肿瘤是否呈阴性的模型,当一个肿瘤的尺寸大于一个数,我们就认为这个肿瘤呈阴性.我们现…
附上斯坦福cs224n-2019链接:https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1194/ 文章目录 1.课程简单介绍 1.1 本课程目标 1.2 今年的课程与以往的不同 1.3 作业计划 2.人类语言和词义 2.1 我们应该如何表示一个单词的词义(word meaning) 2.2 我们如何在计算机中得到一个可用的词义(word meaning) 2.2.1 常见的解决方案:例如,使用WordNet 2.2.1.1 Word…
李宏毅老师的机器学习课程和吴恩达老师的机器学习课程都是都是ML和DL非常好的入门资料,在YouTube.网易云课堂.B站都能观看到相应的课程视频,接下来这一系列的博客我都将记录老师上课的笔记以及自己对这些知识内容的理解与补充.(本笔记配合李宏毅老师的视频一起使用效果更佳!) Lecture 8:Why deep? 1.Shallow network VS Deep network 在比较浅层网络与深层网络时,要让“矮胖”的网络和“高瘦”的网络的参数数目相等,这样比较才公平,如下图所示 比较结果如…