【深度学习入门】深度学习概述

一、什么是人工智能

机器人能够通过"眼睛"看到这个世界,并对这个世界加以理解,最后做出一些决策。因此人工智能具有 感知+理解+决策 的能力

人类能够站在食物链顶端的关键是具有学习的能力,这是智能的本质

简而言之,人工智能就是让机器具备人的思维和行为的技术

二、机器学习

(1)什么是机器学习

人工智能技术是为了实现让机器模拟人的学习行为、情感、生物特征等。机器学习就是人工智能的一个子领域,它专门研究计算机如何模拟人的学习行为。

为什么要有机器学习呢?如果让计算机识别一只猫,它的耳朵是怎样的、眼睛是怎样的、是不是有胡子、有些猫没有胡子呢、毛绒绒怎么定义?对于这些定性的问题,如果仅用if-else的逻辑让计算机理解,实现起来是非常困难的,需要大量的逻辑专家耗时耗力。因此,我们开始研究机器学习,让计算机模拟人的学习方式去学习,使计算机学习的实现变得更容易。

人的学习方式是怎样的呢?

比如:判断重庆人能不能吃辣,外地人会根据从网上听来的经验,总结出重庆人能吃辣的规律(经验归纳为规律)。碰到一个重庆人过后(新问题),推断出他肯定能吃辣(结论)。但是这个重庆人是一个小孩或者老人,他不能吃辣,所以又会对规律进行更新,重庆人里面的小孩和老人不能不吃辣(根据误差更新规律)。

机器学习模拟人的学习方式:

模型就相当于是一个f(x)函数,输入新数据x,就能得到输出y。我们想要得到模型,就需要将历史数据交给算法,通过运算获得,这一个过程也称为训练。模型预测的输出不一定与新数据的真实值百分百一致,为了提高预测的正确率,就需要再次根据这个不一致的程度对模型进行调整,也就是优化。

(2)机器学习的流程

  • 数据收集:做菜需要先准备食材,买来鸡蛋和西红柿。
  • 数据清洗:然后去掉不吃的蛋壳和西红柿蒂。比如对缺失的数据、错误的数据(年龄不可能是200,也不可能是负数)进行处理。
  • 特征工程:如果直接炒食材,会因为太大而味道不好、不易熟,所以还要打蛋、西红柿切片。比如对数据进行归一化、降维,提取出更精炼有用的特征。
  • 数据建模:接着选择合适的做法,做出西红柿炒鸡蛋。对于数据就是选择适合的算法训练模型。
  • 模型评估和应用:最后对训练好的模型进行评价和改进,并运用于其它的数据中(测试数据)。

因为数据特征决定了模型的上限,而算法和参数的选择决定了如何逼近这个上限,所以预处理和特征提取**(特征工程)是最核心的部分。**

(3)机器学习中的数据是怎样的

像文本、图像、语音等,这些没有固定的数据结构的数据都叫做非结构数据,进行机器学习前要将数据转化为结构化数据,即二维表的形式。如下图将学生的所有成绩转化为二维表的形式,以成绩的好坏来评定是否为好学生。

x1就是一个特征,张三的x1~x4特征组成一个特征向量。

(4)机器学习按学习方法分类

① 监督学习

训练样本有标签。用猫和狗的分类任务举例,流程图如下:

监督学习根据完成的任务不同,又分为:

  • 分类任务:根据数据的一系列已有属性(特征向量),来预测数据的类别,预测的是离散的数值。比如根据一个苹果的大小、形状、颜色等,来预测这个苹果是好是坏。
  • 回归任务:根据数据的一系列已有属性,来预测数据的未来变化趋势,预测的是连续的数值。比如房价预测、气温预测等。

② 无监督学习

输入数据没有标签。相当于没有标准答案地自学,相较于监督学习更难。对一组不带标签的猫狗数据分组的流程图如下:

③ 半监督学习

训练样本中,有一小部分是有标签数据(有监督),一大部分是无标签数据(无监督)。之所以存在半监督学习,是因为有标签的数据的采集需要耗费人工的大量时间和精力,而采集无标签数据更容易。如下图是对输入的无标签数据进行预测(预测出的结果也称为伪标签),然后合并原有的有标签数据和预测出的伪标签数据,获得新的有标签数据的过程。

最后使用合并的带标签的数据集再次训练模型,将这个最终训练好的模型对测试数据进行最终预测。

③ 强化学习

机器(代理)根据环境中的状态和奖励做出行动,因此环境发生改变,给机器提供新的状态和奖励的循环过程,以最大化奖励为目标。比如,战胜世界围棋冠军的 Alpha-Go ,把当前的棋盘布局作为环境中的状态,把棋局的输赢作为环境中的奖励。

三、深度学习

(1)深度学习的兴起

实际上,深度学习并不是近十几年才有的。在90年代就已经存在传统神经网络和卷积神经网络了。那时有国外银行为了减少人工的检验支票工作,训练了网络识别手写字体,识别效果挺好,但是效率太低,主要原因是计算机的性能太低。而现在的计算机性能很高,这也是促进深度学习兴起的原因之一。

现在是一个大数据的时代,大数据推进了人工智能的发展,进而推进了深度学习的发展。比如,给机器提供大量的猫、狗的数据,首先它会把大量数据读入(感知),然后学习什么是猫、什么是狗(理解),最后就能对猫狗进行分类(决策)。

深度学习正真火起来,是在2012年,Alex在ImageNet比赛(主要任务是将上千万张图片分为上千类,数据量大具有挑战性)中提出了AlexNet,AlexNet 正是深度学习领域中最常使用的卷积神经网络 ,它的比赛效果比传统的机器学习高了十几个百分点。之后,卷积神经网络大火,每年都会有新的卷积神经网络产生。

百度有很多产品,百度的深度学习研究院 IDL 针对这些产品分别用传统的机器学习算法和深度学习算法实现,得出上面的一张图:当数据规模较小时,传统机器学习算法跟深度学习的效果差不多,但是深度学习计算速度比较慢,因此传统机器学习更优。当数据规模较大时(上万,甚至上百万),深度学习的效果明显比传统机器学习更优,随着数据规模的提升,传统机器学习的效果仿佛达到上限停滞不前,而深度学习的效果随之显著提升。上百万规模的数据也不用担心难以获取,可以通过平移旋转等对图像进行变换,从而获得新的图像。

(2)各种概念以及概念之间的关系

① 人工神经网络

人脑中的神经元相互连接组成神经网络,帮助人类思考和行动。人工神经网络就是模拟人脑中的神经网络,进行数学建模。人工神经网络是机器学习的一个子领域,如果说监督学习、无监督学习等是机器学习的学习方法,那么人工神经网络就是实现这些学习方法的一种工具、模型。

人工神经网络中,将原始数据(比如一张猫的图像)进行预处理后,变成一个一维向量作为输入层,再经过隐藏层处理,最后将预测值作为输出层。

② 深度学习

人工神经网络的隐藏层有浅有深,深度学习就是有很多层隐藏层的人工神经网络,因此,深度学习是人工神经网络的子领域。隐藏层多,信息处理得越多,能处理的问题就更复杂,计算量更大,对计算机硬件的要求更大。

③ 关系图

(3)深度学习与机器学习最核心的区别

数据收集、数据清洗、特征工程可以统称为数据准备阶段,这个阶段的主要目的就是为了得到一个尽量好的数据。其中特征工程 的作用是提取出短小精悍的特征,这一步也是深度学习和机器学习最核心的区别。如何提取有用的特征,在传统机器学习中是人工操作的而深度学习 却做到了真正的智能,它能够自动地选择如何将特征降维、融合等。

为什么说传统机器学习算法是人工操作的?以Fast特征提取为例:从图像中选取一点P,如下图。按以下步骤判断该点是不是特征点:以P为圆心画一个半径为3 pixel的圆;对圆周上的像素点进行灰度值比较,找出灰度值超过 l(P)+h 和低于 l(P)-h 的像素,其中l(P)是P点的灰度, h是给定的阈值;如果有连续n个像素满足条件,则认为P为特征点。一般n设置为9。为了加快特征点的提取,首先检测1、9、5、13位置上的灰度值,如果P是特征点,那么这四个位置上有3个或3个以上的像素满足条件。如果不满足,则直接排除此点。

可以从这一个传统算法的例子感受到,它的特征提取是根据该领域专家的知识和经验人工设计的规则,需要具备大量的专业知识才能够完成,并非易事。而深度学习就像一个黑盒子,能自动地选择如何进行特征提取,我们只需要考虑输入层和输出层。

(4)深度学习的应用

深度学习主要应用于计算机视觉 领域和自然语言处理领域,这两种领域一个是处理图像数据,一个是处理文字数据。

比如无人驾驶中的目标检测,检测行人、物体、标识等。

换脸,定位出人脸和人脸关键点,再替换对应位置的像素。

医学领域,检测癌细胞、肿瘤等。

相关推荐
m0_6090004213 分钟前
向日葵好用吗?4款稳定的远程控制软件推荐。
运维·服务器·网络·人工智能·远程工作
开MINI的工科男1 小时前
深蓝学院-- 量产自动驾驶中的规划控制算法 小鹏
人工智能·机器学习·自动驾驶
AI大模型知识分享2 小时前
Prompt最佳实践|如何用参考文本让ChatGPT答案更精准?
人工智能·深度学习·机器学习·chatgpt·prompt·gpt-3
张人玉4 小时前
人工智能——猴子摘香蕉问题
人工智能
草莓屁屁我不吃4 小时前
Siri因ChatGPT-4o升级:我们的个人信息还安全吗?
人工智能·安全·chatgpt·chatgpt-4o
小言从不摸鱼4 小时前
【AI大模型】ChatGPT模型原理介绍(下)
人工智能·python·深度学习·机器学习·自然语言处理·chatgpt
AI科研视界5 小时前
ChatGPT+2:修订初始AI安全性和超级智能假设
人工智能·chatgpt
霍格沃兹测试开发学社测试人社区5 小时前
人工智能 | 基于ChatGPT开发人工智能服务平台
软件测试·人工智能·测试开发·chatgpt
小R资源5 小时前
3款免费的GPT类工具
人工智能·gpt·chatgpt·ai作画·ai模型·国内免费
artificiali8 小时前
Anaconda配置pytorch的基本操作
人工智能·pytorch·python