zoukankan      html  css  js  c++  java
  • 机器学习初探

    一、背景


    在我大学毕业后,人工智能和机器学习就越来越火,频繁的出现在我的视野中。但出于本能的拖延,我视而不见。

    近期,为了协同新来的同事做大数据的数据挖掘和分析,我开始逐渐了解了一些机器学习领域的专有名词,再借助自己在网上检索的一些资料,故写下这篇文章,不求深入技术实现和细节,只是大概梳理下我对机器学习领域的一个的初步认知和理解。

    二、几个名词的关系


    人工智能 -> 机器学习 -> 深度学习 -> 神经网络

    机器学习是实现人工智能的一个专业领域,而深度学习是近期发展势头迅猛的一种机器学习的方法,而神经网络是实现深度学习的一种技术手段。

    三、机器学习


    1、机器学习和传统编程的区别

    传统编程:定义规则和逻辑。

    机器学习:你不需要编写具体复杂的逻辑算法,而是通过提供大量的相关数据,来训练它。

    2、机器学习的分类

    (1)监督学习

    你提供输入,也提供输出。

    输入指的是带有特征的特定实例,例如一封邮件的标题或正文,可能蕴含着广告关键词暴露出它是垃圾邮件。

    输出指的是这个特定实例经过监督后被贴上标签,例如一封邮件被人为的贴上垃圾邮件和非垃圾邮件的标签。

    例如:通过提供手写草稿来对应书面字体的 OCR 系统。

    (2)无监督学习

    你提供输入,但不提供输出。

    因为实例不会被人为的贴上标签,系统需要更靠自己的学习能力。所以与监督学习相比,无监督的学习更接近于机器自我学习的过程。

    例如:你允许机器学习算法监视你的网络活动。 然后,它将根据其找到的模式设置正常网络活动的基准。根据这个标准,它将检测并且记录异常网络活动。

    (3)强化学习

    当你知道目标是什么,但无法定义达到目标的路径时,此方法特别有效。

    例如:Google DeepMind 的 AlphaGo,会从经验中总结提升。

    (4)遗传算法

    模仿大自然适者生存的法则,建立一套淘汰机制。

    这个需要依赖于大量的计算和存储资源来执行其任务,执行时受限于云服务和大数据。

    例如:地图中的路径规划

    3、深度学习 和 神经网络

    虽然机器学习是人工智能的一个分支,但深度学习是机器学习的专门分支。 深度学习使用神经网络,一个具有人类大脑结构和功能的复制品。

    (1)深度学习原理

    深度学习算法并不是直接通过将输入映射到输出的方式,而是依赖于几层处理单元。 每个层将其输出传递到下一个层,进行处理,然后再传递到下一层。 在某些模型中,计算可能会在处理层之间来回流动多次。虽然这个机制很像大脑的神经网络,但是还是有很实质性的不同。

    (2)神经网络分类

    A、卷积神经网络 CNN

    用于图像识别、视频分析,语音识别, 例如 AlphaGo。

    B、循环神经网络 RNN

    用于写稿、作曲。

    4、机器学习的工具

    (1)numpy 和 pandas

    科学计算库 numpypandas 是处理矩阵的好帮手。

    pandas 是基于 numpy 的封装,功能更加强大。

    (2)框架

    TensorFlowMxnet

    其实好一些机器学习框架也有自己处理数据的模块,但大多是通过封装 numpy 得到的。

    (3)包管理工具

    Anaconda 是一种 Python 语言的免费开源发行版,使用 Conda 进行包管理,帮你预装了很多机器学习常用的第三方库。例如画图库 matplotlib

    Anaconda 在 zsh 环境下安装后会有问题,需要在~/.zprofile结尾处添加export PATH=Anaconda位置/bin:$PATH(如export PATH="/anaconda3/bin:$PATH"),即可把 conda 加入到环境变量中。

    5、机器学习的缺点

    (1)基于大量数据集

    必须基于要大量的数据集去学习,但人类却不是这样,你给小孩看一辆自行车的样子,他就会记住自行车的特征。

    (2)不透明度性

    随着算法变得越来越复杂,特别是深度学习,人类越来越难以解释它们是基于什么做出的决定。


    参考资料:

    [《关于机器学习,这可能是目前最全面最无痛的入门路径和资源!》]( https://36kr.com/p/5109465.html](https://36kr.com/p/5109465.html )

    有趣的机器学习系列 | 莫烦Python

    机器学习速成课程  |  Google Developers 【还没看完】

  • 相关阅读:
    RestKit ,一个用于更好支持RESTful风格服务器接口的iOS库
    Pop–实现任意iOS对象的任意属性的动态变化
    界面传值失败
    UIImagePickerController
    NSURLSession
    iOS图标尺寸
    cocoapods
    duplicate symbol _OBJC_IVAR
    MAC升级openssl
    Mac
  • 原文地址:https://www.cnblogs.com/xjnotxj/p/9843345.html
Copyright © 2011-2022 走看看