机器学习总体框架

机器学习总体框架
老规矩-先上菜,吃了再学

  国家线快要出了,意味着大学很快就要开学,复试工作很快就要开展。终于要熬到头了,上篇科普了量子通讯,我也才知道原来 薛定谔的猫 理论是为了和爱因斯坦一道反对量子力学提出的。没想到最后误打误撞为量子理论提供了有力的实验证据。科学界真是故事多多,奇妙多多。

  不知道学计科的同学有没有感受过这样一件事情。任何现行理论或者实践都是基于之前理论的综合考虑。即,操作系统中,使用页表有何优点缺点,使用段表有何优点缺点,那最终解决方法是什么,很巧妙。段页表,扬其所长,避其所短,充分发挥各自的优点。还有很多例子,这里不再一一例举,其实这就是学习的乐趣,你能感受到科学和生活别无二致。出了问题,解决问题,解决问题中遇到问题,再去解决。同样今天的话题也生活密不可分,话不多说,今天死磕一下目前大热的机器学习,不讲细节只求框架。纯粹个人理解,以及网查资料,算是学习笔记,有信息不符或者误导处可以指正。

机器学习总体框架
我的公众号能支持下不


正文:

1.机器学习介绍

机器学习总体框架
AlphaGo

AlphaGo的胜利,无人驾驶的成功,模式识别的突破性进展,人工智能的的飞速发展一次又一次地挑动着我们的神经。作为人工智能的核心,机器学习也在人工智能的大步发展中备受瞩目,光辉无限。总的来说,机器学习的发展是整个人工智能发展史上颇为重要的一个分支。

  近几年来,人工智能大热,我曾以为AI只是现在的新技术,然而事实是,人工智能经历了几个较为重大的发展阶段

  • 基础奠定的热烈时期(20世纪50年代初到60年代中叶)
  • 停滞不前的冷静时期(20世纪60年代中叶到70年代末)
  • 重拾希望的复兴时期(20世纪70年代末到80年代中叶)
  • 现代机器学习的成型时期(20世纪90年初到21世纪初)
  • 大放光芒的蓬勃发展时期(21世纪初至今)

  机器学习是一个旨在让计算机在没有被明确编程的前提下掌握学习能力的研究领域。这是一个正在迅速成长的领域,可以让计算机进一步模仿人类。机器学习不同于传统计算机科学。在传统中,计算机需要程序员准确地告诉它去做什么以及要怎么做,可以说是非常笨拙了。然而有了机器学习,我们只需要在计算机中输入大量数据,就可以进行分析,并输出结果了。

  首先,机器学习并不是像你在电影中看到的那样,机器人想要摧毁人类。当人们听到人工智能时,往往首先会想到“终结者”。其实,机器学习并不是人工智能,它只是人工智能的一个子领域。

2.机器如何学习

机器学习总体框架

  看到这里,你可能在想,那么到底是怎样让机器学习的呢?计算机是怎样收集并理解信息的呢?其实,在这一过程中,我们会利用很多数学算法来帮助得到想要的结果。

2.1 机器学习中的数学

  线性代数是数学的一个研究领域,被公认为是深入了解机器学习的前提。线性代数的内容非常广泛,包含很多晦涩难懂的理论和发现。但是其基本方法和符号对机器学习研究者来说是非常有用的。所以,需要有坚实的线性代数知识作为基础。

  数学对学习机器学习来说是极其重要的,因为我们需要在选择算法时考虑其准确性、训练时间以及其他性能。数学可以帮助我们找到一种让机器学习的最佳方法。除了线性代数,机器学习科学家/工程师也需要掌握微积分算法概率论统计学等数学概念。在机器学习中,Python是最常用的一种编程语言。

2.2 联想到大脑

  大脑会将世界上各种各样的信息收集起来形成我们对现实的看法。计算机也需要做到这一点。神经网络就承担了这一职责。

  神经网络是让计算机模拟人类大脑最常用的方法。人类大脑由将近10亿个神经细胞,也就是神经元构成。人类大脑非常擅长解决问题。在解决问题时,每个神经元都会负责解决其中的一小部分。这些神经元可以收集和传递信号,就像一个电网。
机器学习总体框架

2.3人类大脑神经元

  在知道了计算机神经网络是受到人类大脑结构启发设计的之后,你可能想知道这些神经元是怎么连接在一起的。每个神经元都会接收输入,然后产生输出。

  • 输入节点(输入层)为神经网络提供来自外界的信息,就好比是你的眼睛看到并收集信息后传递给大脑。
  • 输出节点(输出层)则负责将信息反馈给外界。假设下图中的网络将被训练用来识别数字。一个数字从输入层输入,经过隐藏层,然后在输出层以被识别出的数字输出。隐藏层的神经元会互相交流各自获取的信息。它们利用这些信息来识别输入的数字是什么。每一层都会影响到下一层。
机器学习总体框架

  当训练计算机神经网络做其他事情,比如说音频识别时,则更为神奇。计算机可以学习对演讲进行文法分析、分段音频以及筛选出不同的声音。这些声音被组合起来,构成特定的音节、单词、词组等。在构建网络时,你需要知道:

  • 卷积网络往往用来做图像识别

  • 长短时记忆网络往往用来做演讲识别

3 机器学习大框架

以下是在b站学习李宏毅老师的机器学习的笔记,宝可梦做例子印象深刻。

机器学习总体框架

这里需要着重理解,人工智能是一切算法的目标,机器学习是要达到这个目标的手段,而深度学习是机器学习的其中一种。


机器学习总体框架

如图所示,机器学习最通俗的解释就是:你给机器数据,你再给机器编写规则,机器通过运行算法,实现对数据的理解,最终达到学习成功的目的。例如,在上图中,我们拥有大量的猫狗或者其他小动物的图片,我们想让机器自己找出来那些是猫。于是我们就需要把所有的照片交给机器,并且编写合适的算法交给机器运行,最红机器学习成功后会把猫的图片交给你。

机器学习总体框架

其实机器学习运行算法的最终目的是需要找出一个函数,我们在中学时期都学过函数的概念,任何一个X会有对应的Y。

机器学习总体框架

可以看出机器学习的过程主要分为:Training(训练),Testing(测试)
训练过程:

  • 通过建立模型,找出一系列函数
  • 将训练的数据(大量的图片)放进函数中进行测试
  • 找出误差最小的函数,也就是最符合要求的函数


    机器学习总体框架
    框架

    可以看出在机器学习理论中,主要解决的问题有:

  1. 回归问题(Regression):根据以前的房价预测某年的房价,输入一个数据,得到一个输出数据。
  2. 分类问题(Classification):根据猫狗的图片分析出那些是猫,那些不是猫。输入一张图片,得到一个分类结果。

而机器学习的主要方法有:

  1. 监督学习:机器给出一张照片,说这是狗,人说不对。机器再给出一张照片,说这是猫,人说对了。或者另一种,人会把一部分的照片数据明确告知机器,此为猫或者此为狗,机器再去训练和学习。也相当于我们小时候学算数,老师告诉我们1+1=2,1+2=3让我们计算 1+4=?

  2. 非监督学习:人不参与机器学习的过程,是猫是狗其实机器也不知道。机器只是通过分析,部分照片满足这个特性,另一部分满足另一个特性,将其归类。

4 挑战与局限性

  虽然机器学习非常强大,但仍有很多局限性,克服这些局限性将帮助机器学习技术更上一层楼。

  • 首先,机器学习算法需要大量的存储数据用于训练,而给这些数据做标记是一个非常繁琐的过程。输入机器的数据必须是被标记过的,否则机器将无法变得智能。算法仅能开发机器的决策能力,并与其按要求操纵的环境保持行为一致。
  • 另一个问题就是机器无法解释它自己。这就使得你很难知道它为什么做出某个决定。
  • 最后一个也是最重要的一个局限性就是很难避免偏差。透明性至关重要,公正的决策可以帮助建立信任。比如说,面部识别在社交媒体和执法中发挥着重要的作用。但是面部识别提供的数据集中的偏差会使得结果不准确。如果说算法有偏差,并且数据集和训练数据是不平衡的,那么最终输出的结果将会放大数据集中的区别和偏差。