机器学习与深度学习
机器学习将改变世界,这里有吴恩达教授机器学习的详细笔记和周志华教授机器学习的详细记录,有cs231n李飞飞深度学习的详细笔记,以及一些相关的编程练习和Python的机器学习实战内容,希望能够一起学习进步。
Messi-Q
这个作者很懒,什么都没留下…
展开
-
Python 绘图(柱状图,曲线图,3D图)
这里分享常用的Python Matplotlib绘制的图,在数据分析和可视化中很有用,这里介绍三种,柱状图,折线图以及3D图,更多类型的图见文末我的github。1. 柱状图# -*- coding: utf-8 -*-"""@author: Messi-Q"""import matplotlib.pyplot as pltplt.rcParams['figure.figsize'] = (7, 5)plt.tight_layout()epoch = []num...原创 2020-06-15 19:25:15 · 1297 阅读 · 0 评论 -
Autoencoder的实现(Tensorflow 2.0版本,Pytorch版本)
Autoencoder 简介机器学习中,处理大量数据会导致需要大量的计算;有时候,我们会需要选择对我们机器学习模型的学习贡献最大的重点数据部分,从而减少计算量;而选择数据重要部分的过程,这是自动编码器(Autoencoder )的应用案例之一。神经网络是一种计算模型,用于查找描述数据特征x及其值(回归任务)或标签(分类任务)y之间的关系的函数,即y = f(x );自动编码器也是一种神经...原创 2020-04-11 17:08:45 · 899 阅读 · 0 评论 -
2017CS231n李飞飞深度视觉识别笔记(一)——计算机视觉概述和历史背景
第一章 计算机视觉概述和历史背景课时1 计算机视觉概述 计算机视觉:针对视觉数据的研究。 关键是如何用算法来开发可以利用和理解的数据,视觉数据存在的问题是它们很难理解,有时把视觉数据称为“互联网的暗物质”,它们构成了网络上传输的大部分数据。 根据YouTube的一个统计实例:大概每秒钟,有长达5小时的数据内容会被上传到YouTube,所以通过人工给每个视频标上注释、分类是非常困难...原创 2018-07-09 20:26:35 · 7507 阅读 · 0 评论 -
2017CS231n李飞飞深度视觉识别笔记(二)——图像分类
第二章 图像分类课时1 数据驱动方法 在上一章的内容,我们提到了关于图像分类的任务,这是一个计算机视觉中真正核心的任务,同时也是本课程中关注的重点。 当做图像分类时,分类系统接收一些输入图像,并且系统已经清楚了一些已经确定了分类或者标签的集合,标签可能是猫、狗、汽车以及一些固定的类别标签集合等等;计算机的工作就是观察图片并且给它分配其中一些固定的分类标签。对于人来说这是非常简单的事情,...原创 2018-07-10 13:14:43 · 3629 阅读 · 0 评论 -
2017CS231n李飞飞深度视觉识别笔记(三)——损失函数和优化
第三章 损失函数和优化课时1 损失函数 在上一章的课程中,我们讨论了识别问题,并尝试了数据驱动的方式,讲到了图像分类的难点在哪里;同时讨论了K近邻分类器以便作为介绍数据驱动理念的一个简单例子,最后还讨论了交叉验证以及如何把数据划分为训练集、验证集和测试集来设置超参数,线性分类作为我们引入神经网络的第一项基石。 这一节中我们将解决:如何给数据集选择一个正确的权重W以及怎么用训练数据来得到...原创 2018-07-12 00:20:28 · 4072 阅读 · 4 评论 -
2017CS231n李飞飞深度视觉识别笔记(四)——神经网络
第四讲 神经网络课时1 反向传播 目前,我们已经讲了怎么定义一个分类器、怎么定义一个损失函数以及它的正则化,也讨论了用梯度下降的方法找到最小化的损失函数。 接下来,将讨论如何计算任意复杂函数的解析梯度,用到一个叫计算图的框架。大体上说,计算图就是用这类图来表示任意函数,其中图的节点表示要执行的每一步计算,比如下图中的例子: 这个线性分类器输入x和W,输出得分向量,另外一个计算节点...原创 2018-07-12 22:15:53 · 2379 阅读 · 1 评论 -
2017CS231n李飞飞深度视觉识别笔记(五)——卷积神经网络
第五讲 卷积神经网络课时1 历史 在上一章中,我们讨论了神经网络的有关知识以及线性评分函数的运行实例,通过堆叠线性层来实现完整的神经网络。 接下来,我们将讨论卷积神经网络,以下是1998年LeCun应用反向传播和基于梯度的学习方法来训练神经网络; 1960年,Widrow和Hoff发明了Adaline和Madaline,首次尝试把线性层叠加,整合为多层感知器网络,不过此时反向传播...原创 2018-07-15 19:05:23 · 2848 阅读 · 0 评论 -
2017CS231n李飞飞深度视觉识别笔记(六)——训练神经网络(上)
第六章 训练神经网络(上)课时1 激活函数 我们已经讨论过如何使用计算图来表达一个函数,并且明确的探讨了神经网络,它包含若干个线性层,而层与层之间通过非线性函数进行连接实现堆叠;也介绍了卷积神经网络,它使用卷积层贯穿整个网络结构;这一章中将讨论训练神经网络的一些细节问题,包括: (1)刚开始要如何建立起神经网络; (2)要选择什么样的激活函数; (3)如...原创 2018-07-16 22:38:13 · 2472 阅读 · 0 评论 -
2017CS231n李飞飞深度视觉识别笔记(七)——训练神经网络(下)
第七讲 训练神经网络(下)课时1 更好的优化 上一章中讨论了一些激活函数和它们不同的属性,由于sigmoid函数和tanh函数在两端都存在梯度消失的问题,所以在实际中一般建议使用ReLU函数和它的其他形式;同时也讨论了权重初始化,在深度网络变得越来越深的时候,权重的初始化会变得非常重要;在数据的预处理的方面讨论了中心化和归一化的问题,这一章中将继续讨论更多有关训练神经网络的细节问题...原创 2018-07-18 12:30:40 · 1551 阅读 · 0 评论 -
2017CS231n李飞飞深度视觉识别笔记(八)——深度学习 软件
第八章 深度学习软件 上一章中讨论了深度学习中的优化算法,包括SGD动量、Nesterov、RMSProp和Adam;也讨论了正则化:尤其是dropout;最后也讨论了迁移学习,可以下载预训练过的模型,然后在自己的实际任务中进行微调。(1)CPU VS GPU 深度学习中一般使用到的是GPU,GPU被称作显卡或者图形处理单元,最初适用于渲染计算机图形,在深度学习中一般选用...原创 2018-07-28 18:49:51 · 1841 阅读 · 0 评论 -
2017CS231n李飞飞深度视觉识别笔记(九)——CNN架构
第九讲 CNN架构 上一章中讨论了不同的深度学习框架,包括有TensorFlow、PyTorch、Caffe,这一章中将会讨论CNN架构方面的内容。 在这里会深入探讨那些ImageNet比赛获胜者所用的最多的神经网络架构,比如AlexNet、VGG、GoogleNet和ResNet。 (1)LeNet 它可以看作是通信网络的第一个实例,并在实际应用中取得...原创 2018-07-28 18:56:47 · 2181 阅读 · 0 评论 -
2017CS231n李飞飞深度视觉识别笔记(十)——循环神经网络
第十讲 循环神经网络课时1 RNN,LSTM,GRU 上一章中讨论了CNN的架构有关内容,这一节中将讨论有关RNN的内容。 在之前的学习中,提到了一种称为vanilla的前馈网络,所有网络架构都有这种基础架构,会接收一些输入,输入是固定尺寸的对象,比如一幅图片或一片向量,它在通过一些隐藏层后给出单一的输出结果,比如一个分类;但是在机器学习中,有时候希望有更加灵活的机器能够处...原创 2018-07-28 19:12:43 · 1783 阅读 · 0 评论 -
2017CS231n李飞飞深度视觉识别笔记(十一)——图像识别和分割
第十一讲 图像识别和分割 上一章中讲到使用循环神经网络来解决问题,同时也看到这个网络结构在很多方面的应用;目前为止谈论最多的是分类问题,这一章中我们在基于计算机视觉的主题上将讨论目标检测、图像分割等内容。 首先是语义分割,然后分类和定位,最后讨论目标检测及实例分割。课时1 分割 我们希望输入图像,并对图像中每个像素做分类,对于每个像素,确定它属于猫、草地、天空或者...原创 2018-07-28 19:19:27 · 4371 阅读 · 1 评论 -
2017CS231n李飞飞深度视觉识别笔记(十二)——可视化和理解卷积神经网络
第十二讲 可视化和理解卷积神经网络课时1 特征可视化、倒置、对抗样本 上一章中计算机视觉中一些内容,包括图像分割、检测以及识别;这一章中将讨论卷积神经网络的内部真正的工作原理是什么。 第一层:由许多卷积核组成,每个卷积核是11*11*3,这些卷积核在输入图像上来回滑动,取图像块和卷积核权重的内积,这就是第一层的输出;可以把这个卷积核看成有3个通道的形状为11*11的图像...原创 2018-07-28 19:24:53 · 2610 阅读 · 2 评论 -
吴恩达机器学习笔记(一)-初识机器学习
第一章 初识机器学习Machine Learing:Grewout of work in AI ,Newcapability for computers机器学习例子: 数据挖掘: Large datasets from growth of automation/web E.g.,Web click data,medical records,biology,e...原创 2018-06-12 16:12:04 · 2134 阅读 · 1 评论 -
吴恩达机器学习笔记(二)-单变量线性回归
第二章 单变量线性回归原创 2018-06-14 11:25:36 · 1458 阅读 · 1 评论 -
吴恩达机器学习笔记(三)-线性代数回归
第三章 线性代数回顾矩阵和向量 矩阵是二维数组的另一种说法。矩阵的维数是它的行数×列数。 向量是一种特殊的矩阵,是只有一列的矩阵。 通常在书写时,使用大写字母表示矩阵,小写字母表示向量。加法和标量乘法 案例:矩阵向量乘法 案例:矩阵乘法 案例: 通过构建两个矩阵可以快速地把这三个假设函数应用到4个房子的尺寸中,得到12种基于3个假设对4个房屋预测到...原创 2018-06-15 10:23:40 · 925 阅读 · 0 评论 -
吴恩达机器学习笔记(四)-多变量线性回归
第五章 多变量线性回归多功能原创 2018-06-18 17:25:12 · 1161 阅读 · 0 评论 -
吴恩达机器学习笔记(五)-Octave教程
第六章 Octave/Matlab教程基本操作 一些想要构建大规模机器学习项目的人通常会使用Octave,这是一种很好的原始语言来构建算法原型。 本章节将介绍一系列的Octave命令: (1)可以执行最基础的数学运算和逻辑运算。 (2)V=1:0.1:2,表示的是从1开始,每次步长为0.1,一直增加到2。 (3)V=1:6,这样v就被赋值了,从1到6。 (4)Ones(2,3)会得到两...原创 2018-06-19 14:21:53 · 1653 阅读 · 0 评论 -
吴恩达机器学习笔记(六)-Logistic回归
第七章 Logistic回归(一种分类算法)分类 之前的课程主要解决回归分析问题,这一次的课程主要为分类问题,分类问题也可看做将回归问题的连续性离散化。先来谈谈二分类问题。课程中先给出了几个例子: 邮件是垃圾邮件还是非垃圾邮件;网上交易是的欺骗性(Yor N);肿瘤是恶性的还是良性的。 在所有的这类问题中,尝试预测的变量y都可以用0或1来表示,,0表示负类,1表示正类。 对...原创 2018-06-20 23:35:52 · 1221 阅读 · 1 评论 -
吴恩达机器学习笔记(七)-正则化
第八章正则化课时1 过拟合问题 这一节中将讲述什么是过度拟合问题。 在数据拟合中,看一看下面的三种情况: 第一种称之为欠拟合,也叫高偏差; 第二种刚好拟合了数据; 第三种称之为过拟合,也叫高方差。在过拟合中,假设函数很好的匹配了训练集,但并不能很好的匹配测试集。 概括的说,过度拟合问题将会在变量过多的时候出现,它不能很好地泛化在新的样本中。上述的图片展示的是线性...原创 2018-06-20 23:45:36 · 757 阅读 · 0 评论 -
吴恩达机器学习笔记(八)-神经网络简介
第九章神经网络简介非线性假设 非线性分类的例子: 非线性假设,会因为特征量的增多导致二次项数的剧增。 举个例子,在房价预测中,一栋房屋拥有的特征量为10000,那么它的二次项数为100*100/2,大约为5000个 关于计算机视觉的例子: 假设需要使用机器学习算法训练一个分类器,用来检测图像判断是否是汽车。 现在需要做一个非线性假设尽量分开这两类样本。 在...原创 2018-06-22 13:45:08 · 1519 阅读 · 0 评论 -
吴恩达机器学习笔记(九)-反向传播算法
第十章 神经网络参数的反向传播算法代价函数原创 2018-06-23 14:16:14 · 1994 阅读 · 0 评论 -
吴恩达机器学习笔记(十)-应用机器学习的建议
第十一章 应用机器学习的建议决定下一步做什么 当要设计机器学习系统时,如何选择一条最适合最高效的道路? 假设你已经实现了正则化的线性回归来预测房屋价格,然而,当在一组新的测试集上使用该假设时,在预测上出现了不能接受的错误,接下来会做什么呢?也就是说当调试学习算法时,当面对测试集算法效果不佳时,会怎么做呢? (1)采集更多的训练样本;(有时候并没有效果) (2)尝试选用更少的...原创 2018-06-24 00:38:09 · 1534 阅读 · 1 评论 -
吴恩达机器学习笔记(十一)-机器学习系统设计
第十二章 机器学习系统设计 确定执行的优先级 这一节中将介绍在实际工作过程中,应该先处理哪些事情。 以建立一个邮件分类器为例: 给定一组电子邮件,可以为每个电子邮件构造一个向量。这个向量中的每个元素代表一个单词。向量通常包含10,000到50,000个条目,这些条目是在我们的数据集中找到最常用的单词,将它们作为特征向量。当准备好所有的x向量,我们训练我们的算法,最后,我们可以用它...原创 2018-06-26 00:40:49 · 913 阅读 · 0 评论 -
吴恩达机器学习笔记(十二)-支持向量机
第十三章 支持向量机(SVM)优化目标 支持向量机在学习复杂的非线性方程时能够提供一种更为清晰个更加强大的方式。 先回顾一下逻辑回归的相关概念,看如何进行改动可以得到支持向量机。逻辑回归的假设函数为,对应的图像如下: 如果有样本y=1,希望能尽可能接近1,意味着远大于0; 如果有样本y=0,希望能尽可能接近0,意味着远小于0。 逻辑回归中的代价函数为: 针对某一...原创 2018-06-27 11:00:04 · 1759 阅读 · 0 评论 -
吴恩达机器学习笔记(十三)-无监督学习
第十四章 无监督学习无监督学习 这一章中将介绍无监督学习中的聚类算法,那么什么是无监督学习呢? 首先,拿监督学习来进行比较,这是一个典型的监督学习的例子,有一个带标签的训练集,目标是找到一条能够区分正样本和负样本的决策边界,如下图: 这里的监督学习问题是指有一系列标签,用假设函数去拟合它。 而相比于无监督学习中,数据并不带有任何标签,得到的数据如下图: 因此在无监督学...原创 2018-06-28 00:58:11 · 3005 阅读 · 0 评论 -
吴恩达机器学习笔记(十四)-降维
第十五章 降维目标:数据压缩和可视化 这一章中将讨论第二种无监督学习的问题:降维。数据压缩不仅能让我们对数据进行压缩,使得数据占用较少的内存和硬盘空间,还能对学习算法进行加速。 (1)二维降到三维: 如果能把数据从二维减少到一维,用来减少这种冗余,通过降维,也就说想找出一条线,看起来大多数样本所在的线,所有的数据都投影到这条线上,通过这种做法,能够测量出每个样本在线上的位置。就可...原创 2018-06-29 10:22:07 · 2386 阅读 · 0 评论 -
吴恩达机器学习笔记(十五)-异常检测
第十六章 异常检测问题动机 这一章中将介绍异常检测问题,这是机器学习算法的常见应用,那么什么是异常检测问题? 举例:比如生产汽车引擎,需要进行质量测试,而作为测试的一部分,需要测量汽车引擎的一些特征变量: (1)引擎运转时产生的热量; (2)引擎的振动; 于是就会有一个数据集:,把数据绘制成图,如下图: 这样,异常检测问题可以定义如下: 假设,之后生产了一...原创 2018-06-30 11:11:33 · 2391 阅读 · 0 评论 -
吴恩达机器学习笔记(十六)-推荐系统
第十七章推荐系统问题规划 这一章中将讨论推荐系统的有关内容,它是在机器学习中的一个重要应用。 机器学习领域的一个伟大思想:对于某些问题,有一些算法可以自动地学习一系列合适的特征,比起手动设计或编写特征更有效率。这是目前做的比较多的研究,有一些环境能让你开发某个算法来学习使用那些特征。 接下里让我们通过推荐系统的学习来领略一些特征学习的思想。 推荐系统预测电影评分的问题: ...原创 2018-07-01 11:34:25 · 6680 阅读 · 0 评论 -
吴恩达机器学习笔记(十七)-大规模机器学习
第十八章 大规模机器学习学习大数据集 这一章中将讲述能够处理海量数据的算法。 思考:为什么要使用海量数据集呢?要知道获取高性能的机器学习系统途径是采用低偏差的学习算法,并用大数据进行训练。 这里拿之前提到过的易混淆词来举例,For breakfast I ate __ eggs,这里填two,而非too或者to,从下面的图中可以明确,只要使用大数据对算法进行训练,它的效果似乎会更...原创 2018-07-03 11:15:19 · 2486 阅读 · 0 评论 -
吴恩达机器学习笔记(十八)-应用举例与课程总结
第十九章 应用举例:照片OCR(光学字符识别)问题描述与OCR pipeline 这一章将介绍一种机器学习的应用实例:照片OCR技术,介绍它的原因: (1)首先,展示一个复杂的机器学习系统是如何被组合起来的; (2)接着,介绍一下机器学习流水线的有关概念以及如何分配资源来对下一步计划作出决定; (3)最后,介绍一下照片OCR问题,展现机器学习中有用的想法和概念,其中之一就是...原创 2018-07-04 11:00:47 · 776 阅读 · 0 评论 -
周志华机器学习读书笔记——决策树
第四章 决策树(1)基本流程: 这一章中,将介绍决策树有关的问题,决策树是机器学习中一类常见的方法。 举个例子: 针对“这是好瓜吗?”这样的问题进行决策时,通常会进行一系列的判断或子决策:先看“它是什么颜色?”,如果是“青绿色”,再看“它的根蒂是什么形态?”,如果是“蜷缩”,再判断“它敲起来是什么声音?”最后做出决策:这是一个好瓜。 决策过程如下: 一般的,一...原创 2018-07-07 22:30:47 · 698 阅读 · 0 评论 -
机器学习-实现简单神经网络(笔记和代码实现)
一、神经网络简介 神经网络算法的发展历史 起源:20世纪中叶,一种仿生学产品。 兴起:环境->2进制创新;能力->软硬件;需求->人的性价比。 主要功能: 分类识别 分类:图像(自动驾驶)、语音(语音助手)、文本(新闻推送) (1)了解神经网络的脉络...原创 2018-06-27 17:32:47 · 17526 阅读 · 5 评论