2019-07-31 17:25:20 johngogogo 阅读数 114
  • 机器学习入门30天实战

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 系列课程包含Python机器学习库,机器学习经典算法原理推导,基于真实数据集案例实战3大模块。从入门开始进行机器学习原理推导,以通俗易懂为基础形象解读晦涩难懂的机器学习算法工作原理,案例实战中使用Python工具库从数据预处理开始一步步完成整个建模工作!具体内容涉及Python必备机器学习库、线性回归算法原理推导、Python实现逻辑回归与梯度下降、案例实战,信用卡欺诈检测、决策树与集成算法、支持向量机原理推导、SVM实例与贝叶斯算法、机器学习常规套路与Xgboost算法、神经网络。

    7842 人正在学习 去看看 唐宇迪

1 机器学习中数学怎么学?

我和很多老铁探讨过,要想真正做到研究机器学习的水平,的确需要一定的数学基础。那么我们是不是先去修个数学系的学位,然后才能踏实地做机器学习研究呢,很显然不是。

最近,宾夕法尼亚大学计算机学院的一位教授开源了一本专门针对机器学习的必备数学基础,可谓是我们这些对机器学习感兴趣的老铁们的巨大福利啊。

让我和大家一起看看这本书的目录,该书包含以下 10 大章:

1. 线性代数

2. 仿射几何和射影几何

3. 双线性形式的几何

4. 几何:PID、UFD、诺特环、张量、PID 上的模块、规范形

5. 拓扑和微分

6. 最优化理论基础

7. 线性优化

8. 非线性优化

9. 在机器学习中的应用

10. 附录

 

2 怎么高效利用这本书?

 

从以上章节我们可以看到,除了基础内容,该书还从应用个角度做了讨论,比如大家一眼看上去很关心的第9大章,数组在机器学习中的应用。

参考机器之心对本书的介绍,我大概看了下,本书会有一些严格的数学证明,这样才能严谨,不过作为第一次阅读,本书作者也说了,跳过那些复杂的证明过程,直接看结论,了解基本概念即可。

从我角度来讲,我猜测大家和我一样,比较期待第1,6,7,8,9 大章节,它们都是基本的机器学习需要具备的数学基础。

每一大章节,又会包括一些章节,内容真的是全面,可以作为工具书了。

精选其中一张图:

 

 

 

下载方式

这么好的电子书当然要分享给大家,获取方法:

 关注微信公众号  “  无知红  ”,后台回复  “数学基础 ” ,即可获取下载地址

2019-05-06 17:10:18 weixin_44390145 阅读数 66
  • 机器学习入门30天实战

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 系列课程包含Python机器学习库,机器学习经典算法原理推导,基于真实数据集案例实战3大模块。从入门开始进行机器学习原理推导,以通俗易懂为基础形象解读晦涩难懂的机器学习算法工作原理,案例实战中使用Python工具库从数据预处理开始一步步完成整个建模工作!具体内容涉及Python必备机器学习库、线性回归算法原理推导、Python实现逻辑回归与梯度下降、案例实战,信用卡欺诈检测、决策树与集成算法、支持向量机原理推导、SVM实例与贝叶斯算法、机器学习常规套路与Xgboost算法、神经网络。

    7842 人正在学习 去看看 唐宇迪

首先开始机器学习的入门学习,简单上手以后就可以开始数据分析的板砖工程了。先是要学习些Python的基础工具包,pandas,numpy,matplotlib等,主要在jupyter notebook交互式编译器进行编程训练。

Numpy是Python科学计算的一个基础包,许多内容都基于Numpy以及构建与其上的库。除了为Python提供了快速的数组处理能力,Numpy还在数据分析方面有另外一个作用,就是作为在算法之间传递数据的容器(Numpy使用低级语言C、Forturn等编写的,可以直接操作Numpy数组中的数据),无需进行任何的复制操作。

ndarray——多维数组对象
数组、Numpy数组、ndarray等都指ndarray对象

该对象是一个快速而灵活的数据集容器,运用这个对象可以对整块数据进行些数学运算。

ndarray是一个通用的同构数据多维容器,意思就是说,其中的所有元素都必须是相同类型的。shape(表示各维度大小的元组),dtype(用于说明数组数据类型的对象)。

创建见到的ndarray的办法就是array函数,他接受一切序列型的对象(可以数组中包括数组),然后产生一个新的含有传入数据的Numpy数组,如:

[In] data = [5,6,7.8]
[In] arr = np.array(data)
[In] arr
[Out] array([5.,6.,7.8])

数组嵌套数组的情况和以上的情况相似,只不过是成为多维数组。

如果不是显示说明数据类型,np.array会自动为新建的数组推断出一个合适的数据类型,比如说上面的:

[In] arr.dtype
[Out] dtype('float64')

这就是Python编程高级的一个体现。

还有些函数也可以新建数组,比如zeros和ones分别可以创建指定长度或形状的全为0或全为1的数组;empty可以创建一个没有任何具体值的数组(注意,np.empty不会返回全是0的数组,大多数情况下他返回的都是一些未进行初始化的垃圾值),要使用这些函数,仅仅需要传入一个表示形状和大小的元组即可。

arange是Python中内置随机函数range的数组版本:

[In] np.arange(8)
[Out] array([0, 1, 2, 3, 4, 5, 6, 7])

在这里插入图片描述
上面给出了一些常用的创建数组的函数,可以多加以训练。

ndarray的数据类型
dtype是一个特殊的对象,他含有ndarray将数组解释成特定数据类型所需的类型:

[In] arr1 = np.array([1,2,3], dtype = np.float64)
[In] arr1.dype
[Out] dtype('float64')

你也可以选择通过ndarray中的astype方法来显式的转换其dtype:

[In] arr2 = np.array([1, 2, 3, 4, 5])
[In] arr.dtype
[Out] dtype('int64')

[In] arr3 = arr2.astype(np.float64)
[In] arr3.dtype
[Out] dtype('float64')

如果转换过程因为某种原因失败了,就会引发一个TypeError,这时候需要检查数组中的数据类型了。

dtype中还要另外一个用法,就是可以将一个数组的数据类型移植到另外一个数组上面去:

[In] arr4 = np.arange(10)
[In] arr5 = np.array([.22, .45, .567, .56], dtype = np.float64)

[In] arr4.astype(arr5.dtype)
[Out] array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])

也可以选择用简单的类型代码来表示dtype:

[In] arr6 = np.empty(8, dtype = 'u4' )
[In] arr6
[Out] array([64589321, 23749587, 80274628, 47382993, 
			18237463, 12848382, 93841834, 35235688], dtype = uint32)

只要使用astype函数就一定会创建出一个新的数组,即使和老数组相同也会对原始数组进行一份拷贝。

数组和标量之间的运算

Python中的数组很重要,因为不必编写循环语句即可对对数组中的数据进行批量运算,凡是维度大小相同的数组之间的任何算术运算都会直接作用到数组中的每一个元素上,比如相似的数组之间进行加减乘除运算,直接作用到这两个数组中的每一个元素上面,在元素级上进行运算。

[In] arr = ([[1,2,3],[4,5,6]])
[In] arr
[Out] array([1, 2, 3],
			[4, 5, 6])
[In] arr * arr
[Out] array([1, 4, 9], 
			[16, 25, 36])

同样的,数组和标量的算术运算也会直接将那个标量作用到各个元素。
不同数组之间的运算叫做广播,后面会学习到。

基本的索引和切片

说白了就是调用某个数组中的某一个具体的元素,从表面上看,和Python列表的功能差不多,可以选择输出某一个或者某连续的多个。当你讲一个标量值赋给一个切片时,该值就会自动传播(即广播)到整个选区,数组切片和列表有一点不同的,就是切片是原始数据的视图,这意味着数据并不会被复制,在视图上的任何修改都会直接作用到原始数据上。这就是Python处理大数据的好处之一,如果对海量数据进行复制来复制去的操作,想想会占用多少内存呢。

对于多维数组来说,各个索引位置上的元素不再是标量,而是n-1维的数组:

[In] arr = np.array([1,2,3], [4,5,6], [7,8,9] )
[In] arr[2]
[Out] array([7, 8, 9])

所以可以对各个元素进行递归访问,也可以通过逗号隔开的索引列表来选取单个元素,就是说arr[0][2] 和arr[0, 2]这两种方式时等价作用的,下图就说明了二维数组的索引方式:
在这里插入图片描述
注意,在对多维数组选取索引的时候,返回的数组也全部都是视图。

在对切片进行索引时,“只有冒号”表示选取整个轴:

[In] arr
[Out] array([1,2,3],
			[4,5,6],
			[7,8,9])
[In] arr[ : , : 1]
[Out] array([[1],
			[4],
			[7]])

同样,对切片表达式的复制操作也会被扩展到整个切片选取的。

数组转换和轴对换

transpose转置函数是对数组的一种重塑的方法,返回的也是源数据的视图(不会进行任何复制的操作),其中还有一个.T方法能将数组的轴进行转换,这里有点类似矩阵中的转置

[In] arr.T     
[Out] array([[ 0,  5, 10],  
             [ 1,  6, 11],  
             [ 2,  7, 12],     
             [ 4,  9, 14]])

同样的,swapaxes和transpose在对二位数组进行转置处理时,都具有相同的用法和作用,就是swapaxes(1, 0) 或者 transpose(1, 0),都能对数组进行处理,是一种轴变换。

但是在处理多维数组时,若使用函数transpose(1,0,2),即代表将轴0和1对换,轴2不变,亦即将 arr[x][y][z] 中x和y位置互换;

同理,swapaxes(1,0)即表示将轴1和0位置互换,轴2不变;即swapaxes(1,0)和transpose(1,0,2)具有相同的作用。

通用函数

以下就列举了一些常用的通用的函数,其实本质上和数学运算非常相似,就把常用的列举出来了:
在这里插入图片描述
在这里插入图片描述
上面的是一元的函数级别的运算,下面的是二元函数
在这里插入图片描述

利用数组进行数据处理

np.meshgrid函数接受两个一维数组,并产生两个二维矩阵,对应于两个数组中所有的(x, y)对
在这里插入图片描述
ply中的colorbar()函数的作用是显示出来右边的颜色条。

还能将条件逻辑转换成数组进行表达

[In] xs = np.array([1,2,3,4,5])
[In] ys = np.array([6,7,8,9,10])
[In] con = np.array([True,False, True,False, True])
[In] result = [(x if c else y)
         for x,y,c in zip(xs,ys,con)]
[In] result
[Out] [1, 7, 3, 9, 5]

但是其中还存在几个问题,1.他没有办法对大数据进行处理,因为处理大数据的速度不是很快; 2.无法用于多维数组
如果使用np.where可以起到相同的作用,用法也差不多:

[In] result = np.where(con,xs,ys)
[In] result 
[Out] array(1,7,3,4,5)

np.where的后两个参数不必须是数组,也可以是标量值,在实际分析数据的过程中,where的作用通常是根据一个数组产生另一个数组,比如:

result = np.where(arr > 0, 2, -2)

这句话就表示将数组中的正数换为2,将负数换为-2,若为:

result = np.where(arr > 0, 2, arr)

就表示仅仅将正数换成2,对负数不作处理。

数学和统计学方法

sum, mean, 以及标准差std等聚合计算(aggregation,通常叫做简约(reduction)),既可以当作数组的实例方法来使用,也可以当作顶级的Numpy来使用:

[In] arr = np.random.randn(5, 4)
[In] arr.mean()
[In] np.mean(arr)

以上两种方法的效果是相同的,用于接收一个axis参数,用于计算该轴方向上的统计值,最终结果是一个少一维的数组(即计算最低维度上的统计值)
在这里插入图片描述
在这里插入图片描述
上面就是一些基础的统计学的方法。

针对布尔数组的方法

在上面统计学的方法中,所有的布尔值会被转换成0和1,因此sum也会被用于对布尔值中的True来计数;还有2和方法分别叫any和all,any用于测试数组中是否存在一个或多个True;all用于检查是否所有的值都是True。
同时,这两个方法也可以用于非布尔型数组,只是其中所有的非0数都会被认为是True。

唯一化以及其他的集合逻辑

np.unique用于找出数组中的唯一值并返回的是已排序的结果,具体可以用在剔除一些重复的数据上面,这也是Python处理数据的一个好处,也相当于Python代码中的sort(set(names)).

其他的方法也不再多罗嗦了,这里直接给出相关用法。
在这里插入图片描述

以二进制的格式将数据保存到本地磁盘

np.save和np.load是Python读写文件的两个主要的函数,默认情况下,文件是以二进制格式保存在扩展名为.npy的文件中的。
在这里插入图片描述
在这里插入图片描述
通过np.savez可以将文件保存到一个压缩文件中
在这里插入图片描述
在读取文件时,会得到一个类似于字典的对象,该对象对各个数组进行延迟加载
在这里插入图片描述

Python常用的线性代数函数

在没有具体使用到时先把他们列举出来,等到使用时再加强对这些函数的使用。在这里插入图片描述

随机数生成函数

np.random函数对Python内置的random函数进行了一些补充,增加了一些用于高效生成样本值的函数
在这里插入图片描述
在这里插入图片描述

2019-03-26 14:46:27 qq_43446256 阅读数 62
  • 机器学习入门30天实战

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 系列课程包含Python机器学习库,机器学习经典算法原理推导,基于真实数据集案例实战3大模块。从入门开始进行机器学习原理推导,以通俗易懂为基础形象解读晦涩难懂的机器学习算法工作原理,案例实战中使用Python工具库从数据预处理开始一步步完成整个建模工作!具体内容涉及Python必备机器学习库、线性回归算法原理推导、Python实现逻辑回归与梯度下降、案例实战,信用卡欺诈检测、决策树与集成算法、支持向量机原理推导、SVM实例与贝叶斯算法、机器学习常规套路与Xgboost算法、神经网络。

    7842 人正在学习 去看看 唐宇迪
  • Top-5错误率:即对一个图片,如果概率前五中包含正确答案,即认为正确。

  • Top-1错误率:即对一个图片,如果概率最大的是正确答案,才认为正确。

  • feature map 尺寸大小计算公式:(输入大小-卷积核大小+2P)/步长+1,其中P是padding项。(若没有padding项,则P为0)
    注意:计算卷积后的map尺寸时,若不为整数则向下取整。计算Pooling后的map尺寸时,若不为整数则向上取整。

  • IoU:用于量化检测区域的正确性,是模型所预测的检测框和真实(ground truth)的检测框的交集和并集之间的比例。
    在这里插入图片描述
    我们使用loU看检测是否正确需要设定一个阈值,最常用的阈值是0.5,即如果loU>0.5,则认为是真实的检测(true detection),否则认为是错误的检测(false detection)。

  • True positives(TP): 被正确地划分为正例的个数,即实际为正例且被分类器划分为正例的实例数(样本数)。

  • False positives(FP): 被错误地划分为正例的个数,即实际为负例但被分类器划分为正例的实例数。

  • False negatives(FN):被错误地划分为负例的个数,即实际为正例但被分类器划分为负例的实例数。

  • True negatives(TN): 被正确地划分为负例的个数,即实际为负例且被分类器划分为负例的实例数。

  • P查准率(precision):预测样本中实际正样本数 / 预测为正样本的总数,即 precision=TP/(TP+FP)。

  • R查全率(recall):预测样本中实际正样本数 / 总的正样本数,即 Recall=TP/(TP+FN)。
    : 一个例子为:P=“挑出来的西瓜中有多少比例是好瓜”,R=“所有好瓜中有多少比例被挑出来”。查全率和查准率是一对矛盾的度量。一般来说查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。

  • P-R曲线(Precision-recall 曲线):以 precision 和 recall 作为 纵、横轴坐标的二维曲线。通过选取不同阈值时对应的精度和召回率画出总体趋势,精度越高,召回越低。
    在这里插入图片描述
    上图就是分类器的Precision-recall 曲线,在不损失精度的条件下它能达到40%Recall。而当Recall达到100%时,Precision 降低到50%。

  • AP(精度均值)及mAP(平均精度均值):P-R曲线围起来的面积就是AP值,通常来说一个越好的分类器,AP值越高。在目标检测中,每一类都可以根据 recall 和 precision绘制P-R曲线,AP就是该曲线下的面积,mAP就是所有类AP的平均值。

  • FPS:每秒帧率(Frame Per Second,FPS),用来评估检测速度的指标,即每秒内可以处理的图片数量。

  • 训练集:用来训练模型

  • 验证集:用来统计单一评估指标,调节参数, 选择算法。(训练集和验证集都被输入到了模型训练算法中,验证集作用就是很方便的评估算法的单一评估指标,通过这个指标在训练集和验证集上的对比我们可以用来调整算法参数)

  • 测试集:用来在最后整体评估模型的性能

  • 全卷积网络(FCN)
    FCN将传统CNN中的全连接层转化成一个个的卷积层。如下图所示,在传统的CNN结构中,前5层是卷积层,第6层和第7层分别是一个长度为4096的一维向量,第8层是长度为1000的一维向量,分别对应1000个类别的概率。FCN将这3层表示为卷积层,卷积核的大小(通道数,宽,高)分别为(4096,1,1)、(4096,1,1)、(1000,1,1)。所有的层都是卷积层,故称为全卷积网络。 FCN将传统CNN中的全连接层转化成一个个的卷积层。如下图所示,在传统的CNN结构中,前5层是卷积层,第6层和第7层分别是一个长度为4096的一维向量,第8层是长度为1000的一维向量,分别对应1000个类别的概率。FCN将这3层表示为卷积层,卷积核的大小(通道数,宽,高)分别为(4096,1,1)、(4096,1,1)、(1000,1,1)。所有的层都是卷积层,故称为全卷积网络。
    在这里插入图片描述
    可以发现,经过多次卷积(还有pooling)以后,得到的图像越来越小,分辨率越来越低(粗略的图像),那么FCN是如何得到图像中每一个像素的类别的呢?为了从这个分辨率低的粗略图像恢复到原图的分辨率,FCN使用了上采样。例如经过5次卷积(和pooling)以后,图像的分辨率依次缩小了2,4,8,16,32倍。对于最后一层的输出图像,需要进行32倍的上采样,以得到原图一样的大小。
    这个上采样是通过反卷积(deconvolution)实现的。对第5层的输出(32倍放大)反卷积到原图大小,得到的结果还是不够精确,一些细节无法恢复。于是Jonathan将第4层的输出和第3层的输出也依次反卷积,分别需要16倍和8倍上采样,结果就精细一些了。下图是这个卷积和反卷积上采样的过程:
    在这里插入图片描述

  • 计算机视觉领域不同的方向:
    图像分类(image classification):根据图像的主要内容进行分类。数据集:MNIST, CIFAR, ImageNet
    目标检测(object detection):给定一幅图像,只需要找到一类目标所在的矩形框(人脸检测:人脸为目标,框出一幅图片中所有人脸所在的位置,背景为非目标)。数据集:PASCAL, COCO
    语义分割(semantic segmentation):对图像中的每个像素都划分出对应的类别,即对一幅图像实现像素级别的分类。数据集:PASCAL, COCO
    实例分割(instance segmentation):对图像中的每个像素都划分出对应的类别,即实现像素级别的分类,类的具体对象,即为实例,那么实例分割不但要进行像素级别的分类,还需在具体的类别基础上区别开不同的实例。数据集:PASCAL, COCO。比如说图像有多个人甲、乙、丙,那边他们的语义分割结果都是人,而实例分割结果却是不同的对象,具体如下图(依次为:原图 ,语义分割 ,实例分割):
    在这里插入图片描述

  • 非极大值抑制(NMS):如在行人检测中,滑动窗口经提取特征,经分类器分类识别后,每个窗口都会得到一个分数。但是滑动窗口会导致很多窗口与其他窗口存在包含或者大部分交叉的情况。这时就需要用到NMS来选取那些邻域里分数最高(是行人的概率最大),并且抑制那些分数低的窗口。
    在这里插入图片描述
    就像上面的图片一样,定位一个车辆,最后算法就找出了一堆的方框,我们需要判别哪些矩形框是没用的。非极大值抑制的方法是:先假设有6个矩形框,根据分类器的类别分类概率做排序,假设从小到大属于车辆的概率 分别为A、B、C、D、E、F。

  • 从最大概率矩形框F开始,分别判断A~E与F的重叠度IOU是否大于某个设定的阈值;

  • 假设B、D与F的重叠度超过阈值,那么就扔掉B、D;并标记第一个矩形框F,是我们保留下来的。

  • 从剩下的矩形框A、C、E中,选择概率最大的E,然后判断E与A、C的重叠度,重叠度大于一定的阈值,那么就扔掉;并标记E是我们保留下来的第二个矩形框。
    就这样一直重复,找到所有被保留下来的矩形框。

  • crop:截取原图片的一个固定大小的patch(物体可能会产生截断,尤其是长宽比大的图片)。

  • warp:将原图片的ROI缩放到一个固定大小的patch

  • caffe基本数据结构blob中以如下形式保存数据:blob=[batch_size, channel,height,width]

2020-02-29 00:37:23 Hxhlfhz 阅读数 37
  • 机器学习入门30天实战

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 系列课程包含Python机器学习库,机器学习经典算法原理推导,基于真实数据集案例实战3大模块。从入门开始进行机器学习原理推导,以通俗易懂为基础形象解读晦涩难懂的机器学习算法工作原理,案例实战中使用Python工具库从数据预处理开始一步步完成整个建模工作!具体内容涉及Python必备机器学习库、线性回归算法原理推导、Python实现逻辑回归与梯度下降、案例实战,信用卡欺诈检测、决策树与集成算法、支持向量机原理推导、SVM实例与贝叶斯算法、机器学习常规套路与Xgboost算法、神经网络。

    7842 人正在学习 去看看 唐宇迪

立即学习:https://edu.csdn.net/course/play/27414/366147?utm_source=blogtoedu

pip install sklearn  

安装过程

数据分析 和数据挖掘

用python进行机器学习

 

数据分析和数据挖掘  ==机器学习 ==人工智能

 

 语言表达好了,才能成功。50%的技术 50%的其他的软实力,语言表达能力  书面表达能力。

2018-08-30 15:03:00 weixin_30470643 阅读数 1
  • 机器学习入门30天实战

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 系列课程包含Python机器学习库,机器学习经典算法原理推导,基于真实数据集案例实战3大模块。从入门开始进行机器学习原理推导,以通俗易懂为基础形象解读晦涩难懂的机器学习算法工作原理,案例实战中使用Python工具库从数据预处理开始一步步完成整个建模工作!具体内容涉及Python必备机器学习库、线性回归算法原理推导、Python实现逻辑回归与梯度下降、案例实战,信用卡欺诈检测、决策树与集成算法、支持向量机原理推导、SVM实例与贝叶斯算法、机器学习常规套路与Xgboost算法、神经网络。

    7842 人正在学习 去看看 唐宇迪

机器学习是计算机科学的一个子领域,在人工智能领域,机器学习逐渐发展成模式识别和计算科学理论的研究。从2016年起,机器学习到达了不合理的火热巅峰。但是,有效的机器学习是困难的,因为机器学习本身就是一个交叉学科,没有科学的方法及一定的积累很难入门。

如果你也想学习机器学习或者正在学习机器学习,本手册一定会帮助你走向你自己的“人生巅峰”。手册包含如何入门机器学习,机器学习流行算法,机器学习实战等等。

一.机器学习入门篇:

1.让你少走弯路:这有一份开展机器学习的简短指南

摘要:本文分享了一份简单的关于开展机器学习的心得体会,目的是给初学者提供基本的指导,主要讲解了建立系统、选择合适的评价指标、数据处理、系统优化等内容,帮助初学者少走一些弯路。

2. 机器学习的入门“秘籍”

摘要:机器学习已经成为当下最火热的技术之一,对于初学者来说,如何快速入门机器学习是至关重要的。本文属于入门级宝典,高手请绕道!

3. 会玩超级玛丽,机器学习能有多难?

摘要:小白也能看懂机器学习?这篇文章用超级玛丽的原理教会你,到底什么是机器学习,让尖端科技不再艰深难懂。

4. 机器学习能为你的业务做什么?有些事情你肯定猜不到!(机器学习入门第一篇)

摘要:机器学习是一项令人难以置信的技术,你需要了解很多很多的基础知识,以使得业务功能尽可能的不受复杂算法的影响,让你能够提出正确的问题、了解机器学习模型开发过程、成立一个团队以促进学科间的不断合作,而不是把数据科学视为一个产生奇迹的黑匣子。

5. 关于机器学习算法 你需要了解的东西(机器学习入门第二篇)

摘要:对学习算法进行分类是基于构建模型时所需的数据:数据是否需要包括输入和输出或仅仅是输入,需要多少个数据点以及何时收集数据。根据上述分类原则,可以分为4个主要的类别:监督学习、无监督学习、半监督学习和强化学习。

6. 如何开发机器学习模型?(机器学习入门第三篇)

摘要:创建一个优秀的机器学习模型跟创建其他产品是一样的:首先从构思开始,把要解决的问题和一些潜在的解决方案放在一起考虑。一旦有了明确的方向,就可以对解决方案进行原型化,然后对它进行测试以确定是否满足需求,不妨看看本文是如何一步一步实现的。

7.如何高效运作机器学习团队(机器学习入门第四篇)

摘要: 一个“传统”的产品团队由设计师、工程师和产品经理组成,而数据分析师有时也会包含在其中,但大多数情况下是多个团队共享这个稀缺资源。在机器学习团队中又会有哪些角色和组织结构呢,本文为你揭晓。

8.机器学习会产生哪些用户体验问题?(机器学习入门第五篇)

摘要:许多机器学习算法都是黑匣子:输入大量的数据,然后获得一个以某种神秘方式工作的模型。这使得很难向用户解释机器学习的结果。在许多算法中,还存在着交互效应,这使得模型更加难以解释了。你可以把这个看成是特征之间的复合效应,特征之间以多种奇怪而又复杂并且不为人类所理解的方式结合在一起,整体效应大于各个部分效应。

9. 简单自学机器学习理论——引言 (Part I)

摘要:本篇文章是"机器学习理论"三部曲中的第一部分,主要介绍学习机器学习的动机及基本理论知识,详细介绍机器学习所学习的问题、泛化误差以及学习问题是否可解的公式化表示,为初步研究机器学习的人员介绍了机器学习的基本处理过程。

10. 简单自学机器学习理论—— 泛化界限 (Part II )

摘要:本篇文章是"机器学习理论"三部曲中的第二部分,主要介绍独立同分布、大数法则及hoeffding不等式等基本数学知识,详细推导了泛化界限及其分解。

11. 简单自学机器学习理论——正则化和偏置方差的权衡 (Part III )

摘要:本篇文章是"机器学习理论"三部曲中的第三部分,主要介绍方差分解以及目标函数的正则化,通过仿真可以看到,引入正则化项限定了学习问题的解决方案范围。

12. 入门级攻略:机器学习 VS. 深度学习

摘要:本文以浅显易懂的语言介绍了机器学习和深度学习的定义及应用,以及在源数据要求,硬件支持,特征工程、问题解决方式、执行时间及可解释性等方面的区别,对于新手入门有很大启示意义。

13. 增强学习小白?本文带你入门了解增强学习

摘要:入门一件新事物总是会有些无从下手的,看了本文希望可以给大家一些帮助和了解。

14.这10本由浅入深的好书,或让你成为机器学习领域的专家

摘要:机器学习是个跨领域的学科,而且在实际应用中有巨大作用,但是没有一本书能让你成为机器学习的专家。在这篇文章中,我挑选了10本书,这些书有不同的风格,主题也不尽相同,出版时间也不一样。因此,无论你是新手还是领域专家,定能找到适合你的。

15.想知道机器学习掌握的怎么样了吗?这有一份自测题(附答案和解析)

摘要:人类对于自动化和智能化的追求一直推动着技术的进步,而机器学习这类型的技术对各个领域都起到了巨大的作用。随着时间的推移我们将看到机器学习无处不在从移动个人助理到电子商务网站的推荐系统。即使作为一个外行你也不能忽视机器学习对你生活的影响。本次测试时面向对机器学习有一定了解的人。

16. 送机器学习电子书——(TensorFlow)RNN入门

摘要:本文作者正在写自己的新书Machine Learning with TensorFlow,这篇博文只是他新书的一小部分,作者用简单的语言介绍了RNN,不用一个小例子介绍了如何使用Tensorflow中内置的RNN模型进行预测。

 

17. 适合入门的8个趣味机器学习项目

摘要:还在为找不到机器学习入门练手项目而感到无奈吗?本指南中,将给大家带来8个适合初学者学习的有趣的机器学习项目,简单易学,相信会增添大家学习机器学习的信心。

18. 机器学习快速入门:你必须知道的三大算法

摘要:每天霸占新闻头条的“机器学习”,想入门,先看懂这三大算法。

二.机器学习算法篇:

1.快速选择合适的机器学习算法

摘要:机器学习初学者可以通过本文了解如何快速找到合适的机器学习算法。

2.多重角度解读:贝叶斯推理是怎么工作的

摘要:本文首先介绍了贝叶斯的起源,并利用简单的例子生动形象地讲解了贝叶斯定理是如何工作的,解释了其基本原理以及公式的物理含义。

3.简单通俗易懂:一个小例子完美解释Naive Bayes(朴素贝叶斯)分类器

摘要:Naive Bayes分类器的解释有很多,但是基于一个小例子来解释的不多,本文就是基于一个简单通俗易懂的小例子来解释Naive Bayes分类器。

4.“学”、“习”二合一:监督学习——支持向量机(SVM)入门

摘要:SVM是机器学习中有监督学习的一种,通常用来进行模式识别、分类、以及回归分析。本文用一个小例子简介SVM,言简意赅,通俗易懂。

5.机器学习利器——决策树和随机森林

摘要: 机器学习是当下最火的领域,本文通过一个小例子介绍了其核心算法:决策树和随机森林。

6.基于图的机器算法 (一)

摘要:基于图的机器算法学习是一个强大的工具。结合运用模块特性,能够在集合检测中发挥更大作用。

7.基于图的机器算法 (二)

摘要:基于图的机器算法学习是一个强大的工具。结合运用模块特性,能够在集合检测中发挥更大作用。本文是基于图的机器算法系列文的第二篇。

8.简单易学!一步步带你理解机器学习算法——马尔可夫链蒙特卡罗(MCMC)

摘要:对于简单的分布,很多的编程语言都能实现。但对于复杂的分布,是不容易直接抽样的。马尔可夫链蒙特卡罗算法解决了不能通过简单抽样算法进行抽样的问题,是一种实用性很强的抽样算法。本文将简明清晰地讲解马尔可夫链蒙特卡罗算法,带你理解它。

9.进阶隐式矩阵分解——探讨如何实现更快的算法

摘要:本文重点是围绕Conjugate Gradient(共轭梯度)方法来探讨更优的矩阵分解算法。

10.纯干货|机器学习中梯度下降法的分类及对比分析(附源码)

摘要:本文详细介绍了基于使用数据量的多少,时间复杂度以及算法准确率的不同类型的梯度下降法,并详细说明了3种梯度下降法的比较。

11.深度学习网络大杀器之Dropout(I)——深入解析Dropout

摘要:本文详细介绍了深度学习中dropout技巧的思想,分析了Dropout以及Inverted Dropout两个版本,另外将单个神经元与伯努利随机变量相联系让人耳目一新。

12.深度学习网络大杀器之Dropout(II)——将丢弃学习视为集成学习之我见

摘要:本文分析了可以将丢弃学习当作是集成学习。在集成学习中,可以将一个网络划分成若干个子网络,并且单独训练每个子网络。在训练学习后,将每个子网络的输出进行平均得到集成输出。另外,展示了丢弃学习可以看成是在每次迭代中不同隐藏节点集合的集成学习表现,同时也展示了丢弃学习有着与L2正则化一样的效果。

13.神经网络常用激活函数对比:sigmoid VS sofmax(附python源码)

摘要:本文介绍了神经网络中的两种常用激活函数——softmax与sigmoid函数,简单介绍了其基本原理、性质及其使用,并用python进行了实例化演示,在文章的最后总结了两种激活函数的区别。

14.新颖训练方法——用迭代投影算法训练神经网络

摘要:本文介绍了一种利用迭代投影算法对神经网络进行训练的方法,首先介绍了交替投影的基础知识,说明投影方法是寻找非凸优化问题解决方案的一种有效方法;之后介绍了差异图的基础知识,将差异图与一些其他算法相结合使得差分映射算法能够收敛于一个好的解决方案;当投影的情况变多时,介绍了分治算法,最后将迭代投影算法应用到神经网络训练中,给出的例子实验结果表明效果不错。

15.车辆追踪算法大PK:SVM+HOG vs. YOLO

摘要:本文通过SVM+HOG算法,YOLO算法实现车辆检测和跟踪准确性和速度的对比,得出YOLO算法更具优势的结论。

16.什么是视频向量化?本文带你了解基于DeepWalk的视频推荐

摘要:本文简要讲述了视频向量化,对DeepWalk的算法进行简单的解释。

17.比PCA降维更高级——(R/Python)t-SNE聚类算法实践指南

摘要: 本文介绍t-SNE聚类算法,分析其基本原理。并从精度上与PCA等其它降维算法进行比较分析,结果表明t-SNE算法更优越,本文最后给出了R、Python实现的示例以及常见问题。t-SNE算法用于自然语音处理、图像处理等领域很有研究前景。

18.随机森林 VS 梯度提升机——模型融合之我见

摘要:本文节选自Quora社区上“When would one use Random Forests over Gradient Boosted Machines (GBMs)?”问题的回答,几位博主就随机森林(Random Forests)与梯度提升机(Gradient Boosted Machines, GBMs)的适合场景以及优缺点展开了讨论。

三.机器学习常用库:

1.倚天遇到屠龙:LightGBM VS xgboost谁才是最强的梯度提升库?

摘要:很多人把XGBoost比作屠龙刀,LightGBM比作倚天剑,那么当倚天遇到屠龙,谁更强呢?

2.即学即用:Pandas入门与时间序列分析

摘要:这篇文章是Alexander Hendorf 在PyData Florence 2017上做的报告。报告前半部分主要为初学者介绍Pandas的基本功能,如数据输入/输出、可视化、聚合与选择与访问,后半部分主要介绍如何使用Pandas进行时间序列分析,源代码亲测可用。

3.俄罗斯最大搜索引擎Yandex开源了一款梯度提升机器学习库CatBoost

摘要:俄罗斯搜索巨头Yandex宣布,将向开源社区提交一款梯度提升机器学习库CatBoost。它能够在数据稀疏的情况下“教”机器学习。特别是在没有像视频、文本、图像这类感官型数据的时候,CatBoost也能根据事务型数据或历史数据进行操作。

4.Netflix开源面向稀疏数据优化的轻量级神经网络库Vectorflow

摘要:在Netflix公司,我们的机器学习科学家在多个不同的领域处理着各种各样的问题:从根据你的爱好来定制电视和推荐电影,到优化编码算法。我们有一小部分问题涉及到处理极其稀疏的数据;手头问题的总维度数很容易就能达到数千万个特征,即使每次要看的可能只是少数的非零项。

5.Python高性能计算库——Numba

摘要:在计算能力为王的时代,具有高性能计算的库正在被广泛大家应用于处理大数据。例如:Numpy,本文介绍了一个新的Python库——Numba, 在计算性能方面,它比Numpy表现的更好。

6.第二热门语言:从入门到精通,Python数据分析库大全

摘要:本文介绍了一些常见的用于数据分析任务的Python库,如Numpy、Pandas、Matplotlib、Scikit-learn以及BeautifulSoup等,这些工具库功能强大,便于上手。有了这些帮助,数据分析会变得分外简单。

7.新工具——TensorLayer:管理深度学习项目的复杂性

摘要:本文介绍了一种新基于TensorFlow的python库——TensorLayer,它能够有效的帮助开发者管理好自己的深度学习网络。并且它还提供了很多功能强悍的API,帮助开发者更好的完成任务。

8.Pandas并非完美无缺

摘要:我们一直使用Pandas,但是却不知道关于Pandas的细节。Pandas开发者深度复盘Pandas,指出了十大关键性问题,并通过介绍了如何使用Apache Arrow来解决这些问题。

9. 关于Numba你可能不了解的七个方面

摘要:目前Numba正被开始流行使用来加速Python程序,本文讲解了七个大家可能不了解的方面,希望对大家有所帮助。

四.机器学习实战篇:

1.57行价值八千万美元的车牌识别代码

摘要:为了防止被窃车辆进入黑市销售,警方使用了一个名为VicRoads的基于网络的服务,该服务用于检查车辆的登记状态。该警局还投资研发了一个固定式汽车牌照扫描器:一个固定的三脚架摄像头,可扫描过往的车辆,并自动识别被窃车辆。

2.如何利用机器学习预测房价?

摘要:本文作者利用自己过去三个月里所学到的东西,来预测所在城市的房价。所用到的技术有网络爬取技术、文本自然语言处理,图像上的深度学习模型以及梯度增强技术等。

3.机器学习中的技术债务

摘要:许多人遇到技术债务时都会眉头紧锁,但一般来说,技术债务并不是一件坏事。例如,当我们需要在最后期限之前发布版本的时候,技术债务就是一个可以利用起来的合理手段。但是技术债务存在与金融债务一样的问题,那就是到了要偿还债务的时候,我们所付出的要比开始时付出得多。这是因为技术债务具有复合效应。

4.DIY图像压缩——机器学习实战之K-means 聚类图像压缩:色彩量化

摘要:本文以图像压缩为例,介绍了机器学习的实际应用之一。

5.如何将机器学习用在基于规则的验证上

摘要:这篇文章介绍了一些高级问题,比如:智能自治系统的验证有多少可以用机器学习来实现?大多数的需求是否仍然是基于规则的,如果是这样,那么它们如何跟机器学习相结合? 机器学习和规则之间的不稳定接口如何影响基于机器学习的系统?

6.Certigrad——随机计算图优化系统

摘要:Certigrad是一种概念证明,它是用于开发机器学习系统的一个新途径。

7.使用神经网络和遗传算法玩转 Flappy Bird

摘要:本文展示了针对Flappy Bird游戏设计的机器学习算法。本实验的目标是使用神经网络和遗传算法编写一个人工智能游戏控制器,打出游戏最高分,不服的来挑战!

8.教机器写代码:增强拓扑进化网络(NEAT)

摘要:NEAT的意思是“增强拓扑进化网络”,它描述了在进化过程中受遗传修饰启发的自学习机器的算法概念,不妨看看它是如何教机器写代码的。

9. 机器学习中,使用Scikit-Learn简单处理文本数据

摘要:机器学习中,我们总是要先将源数据处理成符合模型算法输入的形式,比如将文字、声音、图像转化成矩阵。对于文本数据首先要进行分词(tokenization),移除停止词(stop words),然后将词语转化成矩阵形式,然后再输入机器学习模型中,这个过程称为特征提取(feature extraction)或者向量化(vectorization)。

五.机器学习杂谈篇:

1.关于机器学习你必须了解的十个真相

摘要:作者从非专业人士的角度对人工智能常见的误解进行了解释说明。

2.谁更胜一筹?——随机搜索 V.S. 网格搜索

摘要:随机法和网格法都是常用的、有效的结构优化方法。那么它们两者当中谁更胜一筹呢?在本文中,作者通过有趣的地形搜索实验,找到了答案。

3.没有任何公式——直观的理解变分自动编码器VAE

摘要:本文简单介绍了变分自动编码器VAE的基本原理,从经典神经网络的贝叶斯计算概率方法慢慢转变到变分自动编码器神经网络中的优化问题,使用KL散度度量误差,给大家提供一个VAE的基本框架。全篇没有公式,通俗易懂。

4.增强避障系统设计浅析:站在机器学习的角度,剖析学习型避障小车的设计思路

摘要:FF91于12017年1月4日在美国拉斯维加斯成功首发,拉开了互联网生态电动汽车的序幕。自动泊车使得停车也成为了一种享受,新手司机再也不用担心该如何见缝插针了。但是如果在车水马龙的繁忙环境下,无人驾驶还能得心应手吗?本文将站在机器学习的角度和大家分享学习型避障小车的设计思路。

5.AlphaGo在围棋界成为最强王者后,我们该如何进行机器学习?

摘要:机器学习无疑是时下的科技热点。无人驾驶,机器下棋,股市预测等领域,我们都能找到机器学习忙碌和高大的身影。那么对于初学者来说,该如何下手?该怎么学习呢?

6.分享Andrew Ng在深度学习暑期班中演讲的机器学习项目

摘要:深度学习项目流程,带你走出迷茫。

7.分布式机器学习平台比较

摘要:机器学习,特别是深度学习(DL),最近已经在语音识别、图像识别、自然语言处理、推荐/搜索引擎等领域获得了成功。这些技术在自主驾驶汽车、数字卫生系统、CRM、广告、物联网等方面都存在着非常有前景的应用。当然,资金驱动着这些技术以极快的速度向前发展,而且,最近我们已经看到了有很多机器学习平台正在建立起来。

8.机器学习和统计学的“爱恨情仇”可以结束了

摘要:机器学习和统计学在数据科学的领域里,已经相爱相杀很多年。今天,就让我们跟随ML从业者和统计学家两者组成团队,解开两者这几十年的“爱恨情仇”。

9.2017上半年无监督特征学习研究成果汇总

摘要:无监督学习是人工智能时代核心技术,今天我们就来盘点一下2017上半年无监督学习出现了那些重要的研究成果。

10.有监督相似性学习:基于相似问题数据的对称关系学习

摘要:本文简单介绍基于相似问题数据的对称关系学习,通过在Quora数据集和StackExchange语料库上应用孪生卷积神经网络的结果表明,对称网络能够较大幅度地提高检测精度。

11. 应用机器学习:传道解惑指南

摘要:本文作者编辑了一份包括概念、定义、资源以及工具的知识合集,这对于在这个复杂领域从事工作的人来说非常有用。

转载于:https://www.cnblogs.com/timlong/p/9560263.html

没有更多推荐了,返回首页