• 【无标题】


    地基

    机器学习的实现

    机器学习的实现可以分成两步,训练和预测,类似与归纳和演绎:
    归纳:从具体案例中抽象出一般规律,机器学习中的训练也是如此,从一定数量的样本(一致模型输入X和模型输出Y)中,学习输出Y与X的关系(可以想象乘某种表达式)
    演绎:从一般规律推到出具体案例的结果。机器学习中的预测同样的,基于训练得到的Y与X的关系,如出现新的X,计算输出Y

    步骤

    1、归纳假设模型
    2、确定模型参数,模型有效的基本条件是能拟合已知的样本。如何确定模型参数?
    是以HHH为模型的假设,它是一个关于参数www和输入xxx的函数,用H(w,x)H(w, x)H(w,x) 表示。模型的优化目标是H(w,x)H(w, x)H(w,x)的输出与真实输出YYY尽量一致,两者的相差程度即是模型效果的评价函数(相差越小越好)。那么,确定参数的过程就是在已知的样本上,不断减小该评价函数(HHH和YYY的差距)的过程。直到模型学习到一个参数www,使得评价函数的值最小,衡量模型预测值和真实值差距的评价函数也被称为损失函数(损失Loss)。

    在这里插入图片描述假设机器通过尝试答对(最小化损失)大量的习题(已知样本)来学习知识(模型参数www),并期望用学习到的知识所代表的模型H(w,x)H(w, x)H(w,x),回答不知道答案的考试题(未知样本)。最小化损失是模型的优化目标,实现损失最小化的方法称为优化算法,也称为寻解算法(找到使得损失函数最小的参数解)。参数www和输入xxx组成公式的基本结构称为假设。在牛顿第二定律的案例中,基于对数据的观测,我们提出了线性假设,即作用力和加速度是线性关系,用线性方程表示。由此可见,模型假设评价函数(损失/优化目标)和优化算法是构成模型的三个关键要素。
    在这里插入图片描述

    模型假设:世界上的可能关系千千万,漫无目标的试探YYY~XXX之间的关系显然是十分低效的。因此假设空间先圈定了一个模型能够表达的关系可能,如蓝色圆圈所示。机器还会进一步在假设圈定的圆圈内寻找最优的YYY~XXX关系,即确定参数www。
    评价函数:寻找最优之前,我们需要先定义什么是最优,即评价一个YYY~XXX关系的好坏的指标。通常衡量该关系是否能很好的拟合现有观测样本,将拟合的误差最小作为优化目标。
    优化算法:设置了评价指标后,就可以在假设圈定的范围内,将使得评价指标最优(损失函数最小/最拟合已有观测样本)的YYY~XXX关系找出来,这个寻找最优解的方法即为优化算法。最笨的优化算法即按照参数的可能,穷举每一个可能取值来计算损失函数,保留使得损失函数最小的参数作为最终结果。
    
    • 1
    • 2
    • 3

    从上述过程可以得出,机器学习的过程与牛顿第二定律的学习过程基本一致,都分为假设、评价和优化三个阶段:

    假设:通过观察加速度aaa和作用力FFF的观测数据,假设aaa和FFF是线性关系,即a=w⋅Fa = w \cdot Fa=w⋅F。
    评价:对已知观测数据上的拟合效果好,即w⋅Fw \cdot Fw⋅F计算的结果要和观测的aaa尽量接近。
    优化:在参数www的所有可能取值中,发现w=1/mw=1/mw=1/m可使得评价最好(最拟合观测样本)。
    
    • 1
    • 2
    • 3

    机器执行学习任务的框架体现了其学习的本质是“参数估计”(Learning is parameter estimation)。
    上述方法论使用更规范化的表示如图5所示,未知目标函数fff,以训练样本D{D}D=(x1,y1),…,(xn,yn)({x_1},{y_1}),… ,({x_n},{y_n})(x1​,y1​),…,(xn​,yn​)为依据。从假设集合HHH中,通过学习算法AAA找到一个函数ggg。如果ggg能够最大程度的拟合训练样本DDD,那么可以认为函数ggg就接近于目标函数fff。
    在这里插入图片描述

    ##神经网络的基本概念

    人工神经网络包括多个神经网络层,如:卷积层、全连接层、LSTM等,每一层又包括很多神经元,超过三层的非线性神经网络都可以被称为深度神经网络。通俗的讲,深度学习的模型可以视为是输入到输出的映射函数,如图像到高级语义(美女)的映射,足够深的神经网络理论上可以拟合任何复杂的函数。因此神经网络非常适合学习样本数据的内在规律和表示层次,对文字、图像和语音任务有很好的适用性。这几个领域的任务是人工智能的基础模块,因此深度学习被称为实现人工智能的基础也就不足为奇了。

    神经网络基本结构如 图9 所示。
    在这里插入图片描述
    神经元: 神经网络中每个节点称为神经元,由两部分组成:
    加权和:将所有输入加权求和。
    非线性变换(激活函数):加权和的结果经过一个非线性函数变换,让神经元计算具备非线性的能力。
    多层连接: 大量这样的节点按照不同的层次排布,形成多层的结构连接起来,即称为神经网络。
    前向计算: 从输入计算输出的过程,顺序从网络前至后。
    计算图: 以图形化的方式展现神经网络的计算逻辑又称为计算图,也可以将神经网络的计算图以公式的方式表达:

    Y=f3(f2(f1(w1⋅x1+w2⋅x2+w3⋅x3+b)+…)…)…)Y =f_3 ( f_2 ( f_1 ( w_1\cdot x_1+w_2\cdot x_2+w_3\cdot x_3+b ) + … ) … ) … ) Y=f3​(f2​(f1​(w1​⋅x1​+w2​⋅x2​+w3​⋅x3​+b)+…)…)…)

    由此可见,神经网络并没有那么神秘,它的本质是一个含有很多参数的“大公式”。如果大家感觉这些概念仍过于抽象,理解的不够透彻,先不用着急,下一章会以“房价预测”为例,演示使用Python实现神经网络模型的细节。

    深度学习的发展历程

    1940年代:首次提出神经元的结构,但权重是不可学的。
    50-60年代:提出权重学习理论,神经元结构趋于完善,开启了神经网络的第一个黄金时代。
    1969年:提出异或问题(人们惊讶的发现神经网络模型连简单的异或问题也无法解决,对其的期望从云端跌落到谷底),神经网络模型进入了被束之高阁的黑暗时代。
    1986年:新提出的多层神经网络解决了异或问题,但随着90年代后理论更完备并且实践效果更好的SVM等机器学习模型的兴起,神经网络并未得到重视。
    2010年左右:深度学习进入真正兴起时期。随着神经网络模型改进的技术在语音和计算机视觉任务上大放异彩,也逐渐被证明在更多的任务,如自然语言处理以及海量数据的任务上更加有效。至此,神经网络模型重新焕发生机,并有了一个更加响亮的名字:深度学习

  • 相关阅读:
    基于Hadoop的学习行为数据云存储平台的设计与实现
    arthas进阶版排查问题之idea插件工具操作
    3. Longest Substring Without Repeating Characters (python)
    dyld: Symbol not found: __ZNSt3__113basic_filebufIcNS_11char_traitsIcEEEC1Ev
    数据结构——栈与队列
    es 生产用操作
    vscode中快速生成vue3模板
    如何写出高质量的文章:从战略到战术
    LeetCode50天刷题计划第二季(Day 2 — 格雷编码(12.30-13.00)子集 II(13.00-14.00)
    基于ASP.net的服装商城设计
  • 原文地址:https://blog.csdn.net/qq_42936727/article/details/127796787