如何学习机器学习算法

学习机器学习算法真的是一件令人头疼的事,我们有那么多的论文、书籍、网站可以参考,它们或是精炼的数学描述(mathematically),或是一步一步的文本介绍(textually)。如果你足够幸运,可能还会找到一些伪代码。如果人品爆发,甚至会被告知如何安装。但是,全靠人品毕竟不是长久之计,详尽的算法修炼秘籍也是寥寥。如此窘境,如何是好?
  某侠士集成多年所得,指得一条明路:从“只言片语”中抽丝剥茧,多方参照,可获真经。
  这“只言片语”并非随意摘选,而是指某一派算法之总。即算法最原始的出处(即文章),以及来自于综述和典籍的二次阐述。这些地方,常藏有算法的代码实现。如若勤加钻研,定会事半功倍。
  修习算法,可先广泛涉猎算法知识,以窥全貌,之后代码实现。这不失为一种方法,但是算法为源,代码为支。追宗溯本,算法心经为要。然心经修习,讲究日积月累,需的耐烦、入定。此事甚难。该侠士又提一辅助修炼方法——结构化算法学习。
  修习某一算法之前,列出所要关注的若干问题,包括:

  • 算法的标准和简称是什么?(What is the standard and abbreviations used for the algorithm?)
  • 信息处理策略是什么?(What is the information processing strategy of the algorithm?)
  • 算法的目标是什么?(What is the objective or goal for the algorithm?)
  • 算法的衍生实践有哪些?(What metaphors or analogies are commonly used to describe the behavior of the algorithm?)
  • 伪代码的实现(What is the pseudocode or flowchart description of the algorithm?)
  • 算法的使用技巧、注意事项有哪些?(What are the heuristics or rules of thumb for using the algorithm?)
  • 算法可以解决哪类问题?(What classes of problem is the algorithm well suited?)
  • 描述相关算法的资源有哪些?(What are useful resources for learning more about the algorithm?)
  • 算法的源头在哪里?(What are the primary references or resources in which the algorithm was first described?)
    日常学习之中,将同一算法的讨论逐一归入如上框架。
    这一方法的精妙之处在于,不需要你事先成为某一领域的大家。只是每遇一算法,便归入框架,日积月累,功力自然与日俱增。

参考:

How to Learn a Machine Learning Algorithm.

时间: 2024-11-04 06:57:37

如何学习机器学习算法的相关文章

机器学习算法的随机数据生成

在学习机器学习算法的过程中,我们经常需要数据来验证算法,调试参数.但是找到一组十分合适某种特定算法类型的数据样本却不那么容易.还好numpy, scikit-learn都提供了随机数据生成的功能,我们可以自己生成适合某一种模型的数据,用随机数据来做清洗,归一化,转换,然后选择模型与算法做拟合和预测.下面对scikit-learn和numpy生成数据样本的方法做一个总结. 1. numpy随机数据生成API numpy比较适合用来生产一些简单的抽样数据.API都在random类中,常见的API有:

从零实现来理解机器学习算法:书籍推荐及障碍的克服

前部为英文原文,原文链接:http://machinelearningmastery.com/understand-machine-learning-algorithms-by-implementing-them-from-scratch/ 后部为中文翻译,本文中文部分转自:http://www.csdn.net/article/2015-09-08/2825646 Understand Machine Learning Algorithms By Implementing Them From

深度学习-机器学习 第一篇

简介 前置声明:本专栏的所有文章皆为本人学习时所做笔记而整理成篇,转载需授权且需注明文章来源,禁止商业用途,仅供学习交流.(欢迎大家提供宝贵的意见,共同进步) 正文: 机器学习,顾名思义,就是研究计算机如何学习和模拟人类的行为,并根据已学得的知识对该行为进行增强和改进. 举例来说,假设邮箱收到了一封新邮件,通常我们可以通过邮件里是否含有广告.不相关信息以及乱码等特征,人为的来判断这封邮件是否是一封垃圾邮件. 如上述可知,机器学习模拟人类的行为,所以它同样依据这些邮件内容的特征来判断一封邮件是否是

郑捷《机器学习算法原理与编程实践》学习笔记(第六章 神经网络初步)6.3 自组织特征映射神经网路(SMO)

具体原理网址:http://wenku.baidu.com/link?url=zSDn1fRKXlfafc_tbofxw1mTaY0LgtH4GWHqs5rl8w2l5I4GF35PmiO43Cnz3YeFrrkGsXgnFmqoKGGaCrylnBgx4cZC3vymiRYvC4d3DF3 自组织特征映射神经网络(Self-Organizing Feature Map.也称Kohonen映射),简称为SMO网络,主要用于解决模式识别类的问题.SMO网络属于无监督学习算法,与之前的Kmeans算

机器学习算法中如何选取超参数:学习速率、正则项系数、minibatch size

机器学习算法中如何选取超参数:学习速率.正则项系数.minibatch size 本文是<Neural networks and deep learning>概览 中第三章的一部分,讲机器学习算法中,如何选取初始的超参数的值.(本文会不断补充) 学习速率(learning rate,η) 运用梯度下降算法进行优化时,权重的更新规则中,在梯度项前会乘以一个系数,这个系数就叫学习速率η.下面讨论在训练时选取η的策略. 固定的学习速率.如果学习速率太小,则会使收敛过慢,如果学习速率太大,则会导致代价

《机器学习算法原理与编程实践》学习笔记(一)

第一章 机器学习的基础 1.1编程语言与开发环境 1.1.1 Python 安装(略) 1.2.2 Python安装包的安装:可以选选择安装集成包anaconda(略) 1.1.3 IDE配置及安装测试 IDE选择UltraEdit高级文本编辑器,配置步骤如下: (1)选择"高级"-->"用户工具"命令,如图1.4所示. 图1.5 配置UltraEdit步骤1 (2)在如图1.5所示输入各项参数,然后单击"应用按钮" 图1.5 配置Ultr

专家观点碰撞:深度学习能否取代其他机器学习算法

专家观点碰撞:深度学习能否取代其他机器学习算法 摘要:深度学习在最近两年非常火爆,但深度学习能否取代其他机器学习算法?纽约大学研究生Ran Bi根据Quora上的一个讨论总结了不同的观点,CSDN编辑将其翻译如下,并加上一些国内人工智能专家的观点,供大家参考. [编者按]深度学习在最近两年非常火爆,但深度学习能否取代其他机器学习算法?纽约大学研究生Ran Bi根据Quora上的一个讨论总结了不同的观点,CSDN编辑将其翻译如下,并加上一些国内人工智能专家的观点,供大家参考. 深度学习迅速地成长起

机器学习算法汇总:人工神经网络、深度学习及其它

学习方式 根据数据类型的不同,对一个问题的建模有不同的方式.在机器学习或者人工智能领域,人们首先会考虑算法的学习方式.在机器学习领域,有几种主要的学习方式.将算法按照学习方式分类是一个不错的想法,这样可以让人们在建模和算法选择的时候考虑能根据输入数据来选择最合适的算法来获得最好的结果. 监督式学习: 在监督式学习下,输入数据被称为"训练数据",每组训练数据有一个明确的标识或结果,如对防垃圾邮件系统中"垃圾邮件""非垃圾邮件",对手写数字识别中的&

深度学习能否取代其他机器学习算法

[编者按]深度学习在最近两年非常火爆,但深度学习能否取代其他机器学习算法?纽约大学研究生Ran Bi根据Quora上的一个讨论总结了不同的观点,CSDN编辑将其翻译如下,并加上一些国内人工智能专家的观点,供大家参考. 深度学习迅速地成长起来了,并且以其疯狂的实证结果着实令我们惊奇.Quora上有一个关于深度学习是否会让其他的机器学习算法过时的讨论.特别地,相关的算法,如反向传播.HMM会像感知机一样过时吗? 这很难回答.Google DeepMind研发工程师Jack Rae对此有一个有趣的回答