当前位置: 首页 > 编程日记 > 正文

宝宝都能看懂的机器学习世界

640?wx_fmt=gif点击上方↑↑↑蓝字关注我们~

640?wx_fmt=png

2019 Python开发者日」,购票请扫码咨询 ↑↑↑


作者 | 武博士、宋知达、袁雪瑶、聂文韬

来源 | 大鱼AI(ID:DayuAI-Founder)


人类需要经过各式各样的学习才有办法认识这个世界。 


当小朋友第一次看到猫后,可能会问爸爸妈妈,这个胖乎乎有胡子的可爱动物是什么。当父母告诉她:这就是猫的时候,她就会理解到,这种生物就是猫。 以后她碰到各种各样的猫的时候,都能认得出来。


640?wx_fmt=jpeg


计算机也是一样,在学习的过程中,可以自动找出“猫的具体特征”,以及形成自己一套识别方法,即使没有遇到的问题也可以按照原先的思路去解决。 


但是,和人的学习略有不同,计算机是通过从大量的数据中,找到规律,进行预测和分类,达到即使没有遇到过的同类型的问题,它也能解决! 


机器学习,顾名思义,机器可以像孩子一样学习。机器不再是简单运行人类程序的工具,它可以自己去学习!变得更加聪明! 


机器学习大致上可以分为:监督学习、非监督学习、强化学习三类。 接下来我们依次说明这三类机器学习。


640?wx_fmt=jpeg


一、监督学习


在监督学习中,我们会将所有的数据和配对的答案都输入计算机,让计算机去学习这些数据的特征规则和答案之间的联系。


640?wx_fmt=jpeg


在监督学习中:


  • 带有答案的数据是必须的,因为计算机在学习(训练)的过程中,不断的在对答案,修正自己的问题。

  • 带有答案的数据的数量是巨大的,计算机没有我们想象中聪明,它需要在每次的错误中寻找自己的不足。目前少样本学习或者举一反三,还是只有人类能做到。


640?wx_fmt=jpeg


监督学习大致可以分为分类问题和回归问题。 


(1) 分类问题 


监督学习中,我们一直在举识别猫的例子,其实这是一种分类的过程,计算机可以将图片进行分类。分类不仅仅局限于图片,我们对于文字内容也可以进行分类哦。 


很困扰我们的垃圾邮件就是可以通过计算机识别文字后,进行分类。


640?wx_fmt=jpeg


计算机垃圾邮件的分类可不是向我们想象中那样,直接告诉你答案哦,它会进行垃圾邮件和正常邮件的概率标注。 比如这封邮件里面有大量的“”折扣、促销“”的字眼,是垃圾邮件的概率92%。我们人类按照计算机具体给出的概率标注进行具体的区分。 


除了图片、文字,计算机还可以区分声音哦。


(2) 回归问题 


一提到回归问题,好多小伙伴就会感到困惑,什么是回归?回到那儿呀?归到哪儿呀? 


其实,回归问题就是预测问题,只不过,在机器学习领域,把它称作回归。 


大家熟悉的口袋妖怪-宝可梦的攻击力,我们可以从历史数据中进行预测的哦。


640?wx_fmt=jpeg


回归就是从一堆数据中,找到能够准确找到这对数据的趋势线,得出一个具体数值的过程。


分类和回归具体的区别:


我们可以将天气预测为晴天、阴天、雨天、雪天,这就是分类的过程。但是如果预测具体的天气温度,就是回归。


(3) 过度学习和懒散学习(过拟合问题和欠拟合问题)


我们会不会这么想:是不是给计算机给的数据越多,他就能越好的进行分类和回归呢。答案是“”NO!“” 


计算机过度学习在学术上称为“过拟合” !


我举一个自己特别痛苦的例子:在我上初中的时候,有一天老师通知我们说过一段时间我们要进行数学测验,大家好好复习。 我就把课后题全部都做了3遍,心想,这次我的成绩肯定会很好! 但是,考试的时候,卷子发下来,发现是数学竞赛,我竟无语凝噎...


640?wx_fmt=jpeg


但是,话说回来,如果连课后题都懒得会做,考试就无从谈起了。 这就是“”懒散学习“”,得到结果恐怕不只是眼泪,可能还有肉体的摧残。 这就是“欠拟合“。


写到这里,不禁对咱们中国儒家文化中的“”中庸之道“”,暗自佩服!


二、非监督学习


世界中的许多问题,都不是监督学习能够解决的,因为好多连人类都不知道答案。


机器学习中的非监督学习,就是让计算机分析一堆不知道答案的数据,然后找出结构和规则的过程。


640?wx_fmt=jpeg


举例来说,电商对客户分类的过程,就是一种非监督学习。刚开始我们没有办法为客户贴上准确的标签,但是渐渐的,从不同客户群体购买记录、浏览记录中,就可以区分出一些共性的特征,把他们聚类。 我们经常收到的商品推荐服务,就是电商给某一类标签用户推荐的他们可能喜欢的商品。


三、强化学习


人类会在成功与失败的教训中,学习到如何才能顺利达到目的。 


我想大多数同学都有小时候家长不在家的时候,有过玩游戏和写作业之间的纠结。如果玩游戏,现在是爽到了,但是如果爸爸妈妈突然回来... 如果明天老师检查.... 虽然头悬两把利剑,但是很多同学还是拿起来手柄和键盘。 


写作业虽然现在很痛苦,但是如果爸妈突然回家,如果考试成绩很好,好处大大滴。 


想必是只有经过了痛苦的经历,很多同学痛定思痛,还是拿起了笔,写作业。


640?wx_fmt=jpeg


同样的,计算机可以由尝试错误的方式,经历多次失败和成功,然后学习到规律。失败和成功完全就是以奖励的多少决定。 这就是强化学习。 


让我们大众熟悉人工智能的AlphaGo ,基本原理就是强化学习。


640?wx_fmt=jpeg


(未完待续……)


(本文为 AI大本营转载文章,转载请联系原作者


精彩推荐


「2019 Python开发者日」演讲议题全揭晓!这一次我们依然“只讲技术,拒绝空谈”10余位一线Python技术专家共同打造一场硬核技术大会。更有深度培训实操环节,为开发者们带来更多深度实战机会。更多详细信息请咨询13581782348(微信同号)。


640?wx_fmt=png


推荐阅读:

  • 技术头条

  • 收藏指数爆表!CVPR 2018-2019几十篇优质论文解读大礼包! | 技术头条

  • 分析11年21部漫威电影,一览导演、主演、口碑票房最佳......

  • 靠找Bug赚了6,700,000元!他凭什么?

  • 30位90后霸榜! 福布斯: 比你年轻、比你有颜、比你有才华, 就是他们了!

  • 程序员深夜逆行被拦后崩溃欲自杀:老板在催我!女朋友在催我!

  • 微软 CTO 韦青:“程序员 35 岁就被淘汰”是个伪概念 | 人物志

  • OpenStack已死?恐怕你想多了 | 技术头条

640?wx_fmt=png

点击“阅读原文”,查看历史精彩文章。

相关文章:

iOS LLDB调试命令(Low Lever Debug)

断点 设置断点 $breakpoint set -n XXX set 是子命令 -n 是选项 是--name 的缩写!查看断点列表 $breakpoint list删除 $breakpoint delete 组号禁用/启用 $breakpoint disable 禁用 $breakpoint enable 启用遍历整个项目中满足Game:这个字符的所有方法 $breakpoint set -r Game…

TCP通信速率与延时关系

刚刚研究了链路延时对TCP速率的影响,占位,有空会写一下。转载于:https://blog.51cto.com/csnas/659983

十三、序列化和反序列化(部分转载)

json和pickle序列化和反序列化json是用来实现不同程序之间的文件交互,由于不同程序之间需要进行文件信息交互,由于用python写的代码可能要与其他语言写的代码进行数据传输,json支持所有程序之间的交互,json将取代XML,由…

【C++】google gflags详解

参考博客;https://blog.csdn.net/lezardfu/article/details/23753741 0、简介 gflags是google的一个开源的处理命令行参数的库,使用c开发,具备python接口,可以替代getopt。gflags使用起来比getopt方便,但是不支持参数…

何恺明等人新作:效果超ResNet,利用NAS方法设计随机连接网络 | 技术头条

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」,购票请扫码咨询 ↑↑↑译者 | 刘畅编辑 | 一一出品 | AI科技大本营(ID:rgznai100)受人工设计的启发,用于图像识别的神经网络从简单的链状模型发展为具有多个分支的网络。ResN…

网络规划设计师考试命题模式持续在变   你变不变

命题模式持续在变 你变不变深入分析2009下半年~2010下半年3次网络规划设计师考试试卷中项目管理模块(约有5~8题,约占总分数的6.67%~10.67%)的命题规律,心中最强烈的一份感觉体现在一个字——变。“变”是事物持续发…

【C++】google glog详解

0、简介 glog是google的日志管理系统,配合gflags库,通过命令行参数管理日志。 源码下载:https://github.com/google/glog ubuntu安装: sudo apt-get install libgoogle-glog*参考博客: https://blog.csdn.net/jcjc91…

仿抖音注册界面制作

话说上次完成了仿抖音我的界面制作之后,今天抽空又把注册界面给做了,还是做了些小改动,将第三方登录去掉了 注册还是老规矩直接奉上psd源码:仿抖音注册界面psd源码 个人博客https://myml666.github.io

00后的AI开发者进阶之道:从入门到鏖战MIT编程大赛 | 人物志

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」,购票请扫码咨询 ↑↑↑作者 | 若名出品 | AI科技大本营(ID:rgznai100)当所有中国的高中生都在拼命为跨过高考这道窄门疲惫不堪时,美国的准高中毕业生们也开始申请大学&#x…

js的全部替换函数replaceAll

JS替换功能函数,用正则表达式解决,js的全部替换,学习js的朋友可以参考下。 alert("abacacf".replace(a,9)); alert("abacacf".replace(/a/g,9)); 第一个运行的结果 9bacaf 这个只是替换了第一个 第二个运行的结果 9b9c9f…

【C++】Google Protocol Buffer(protobuf)详解(一)

1、简介 Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准, Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通…

python使用difflib对比文件示例

使用difflib模块对比文件内容1 示例:字符串差异对比 vim duibi.py#!/usr/bin/env python # -*- coding: utf-8 -*- import re import os import difflib tex1"""tex1: this is a test for difflib ,just try to get difference of the log 现在试试…

技术大佬们都推荐的vim学习指南来了,值得收藏!

「2019 Python开发者日」全日程揭晓,请扫码咨询 ↑↑↑作者 | kbsc13,京东算法工程师,研究领域计算机视觉来源 | 机器学习与计算机视觉(ID:AI_Developer)编辑 | Jane【导语】在 Linux 下最常使用的文本编辑…

NoSQl分类

2019独角兽企业重金招聘Python工程师标准>>> http://nosql-database.org/ nosql简单分类 类型 部分代表 特点 列存储 hbase cassandra hypertable 顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩&…

手撕代码之七大常用排序算法 | 附完整代码

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」全日程揭晓,请扫码咨询 ↑↑↑0.导语本节为手撕代码系列之第一弹,主要来手撕排序算法,主要包括以下几大排序算法:直接插入排序冒泡排序选择排序快速排序希尔排序堆排序归并排序…

【C++】google gtest 详解

1、参考博客; https://blog.csdn.net/baijiwei/article/details/81265491 https://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html 2、编译和安装 $ git clone https://github.com/google/googletest.git $ cd googletest $ mkdir mybuild $ cd mybui…

JS学习笔记之call、apply的用法

1、call和apply的区别 call和apply唯一的区别是传入参数的形式不同。 apply接受两个参数,第一个参数指定了函数体内this对象的指向,第二个参数为一个带下标的集合,可以是数组,也可以是类数组,apply方法会把集合中的元素…

实验LVS+keepalived

lvs说明:目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR);八种调度算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh)。在调度器的实现技术中,IP负载均衡技术是效率最高的。在已有的IP负载均衡技术中有通过网络地址转…

Spark Streaming笔记整理(二):案例、SSC、数据源与自定义Receiver

[TOC] 实时WordCount案例 主要是监听网络端口中的数据,并实时进行wc的计算。 Java版 测试代码如下: package cn.xpleaf.bigdata.spark.java.streaming.p1;import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.apache.spark.Spar…

复旦邱锡鹏教授公布《神经网络与深度学习》,中文免费下载 | 极客头条

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」,购票请扫码咨询 ↑↑↑整理 | Jane出品 | AI科技大本营优质的人工智能学习资源一直是大家非常关注的,以往我们也推荐过很多优秀的课程、书籍等,不过大多来自国外的名校、名师&#xff0c…

【Qt】信号和槽传递自定义结构体

一、使用信号和槽传递自定义结构体 这是一个老问题了,但是每次使用都要bing,因此做个笔记整理下。 一共有三种方法,可以让结构体在信号和槽之间传递。前两种方法可以让结构体在线程之间传递,最后一种方法只能在同一线程中传递。 Q_DECLARE_METATYPE qRegisterMetaType(推…

Tomcat:Connection reset by peer: socket write error

Connection reset by peer: socket write error错误分析及解决 Connection reset by peer: socket write error错误分析: 常出现的Connection reset by peer: 原因可能是多方面的,不过更常见的原因是: ①:服务器的并发连接数超过…

人脸识别的“生意经”

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」,购票请扫码咨询 ↑↑↑作者 | Jeff John Roberts译者 | 孙薇责编 | 琥珀出品 | AI科技大本营(ID:rgznai100)导语:不经意间,科技公司便拿着你的照片,推…

【Qt】pro中使用DEFINES来实现条件编译

1、pro中使用DEFINES来实现条件编译 在Qt的pro文件中使用DEFINES 来实现类似gcc -D的条件编译功能。 如,在pro中: #定义条件编译宏LAOER DEFINES += LAOER #依赖编译宏LAOER的编译选项: contains(DEFINES, LAOER){message(hello Laoer) } #与编译宏LAOER冲突的编译选项: …

nodejs -- promise的返回

为什么80%的码农都做不了架构师?>>> [javascript] view plain copy const a async () > { return Sequelize.findAll({}) //这里返回一个promise,"aaaaa"也行 } const b async ()>{ const result await a…

SQL 将一列数据转为一行字符串[转]

比如:我用select department,userName from users从表中查询出如下数据department | userName--------------- --------------it it1it it2it it3ur ur1ur ur2我能不能用什么SQL对department进行分组然后变成如下的结果呢?department | userName--------…

【C++】C++11的enum class enum struct和enum

1、问题描述 在走读QtCreator中看到一段代码 在QtCreator-v4.9.2源码中 src\plugins\projectexplorer\projectnodes.h enum class NodeType : quint16 {File 1,Folder,VirtualFolder,Project };以前一直使用enum,这里使用的是enum class,新enum的好处…

浙大首届AI专业本科生将于9月入学,纳入竺院图灵班

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」,购票请扫码咨询 ↑↑↑整理 | 琥珀出品 | AI科技大本营(ID:rgznai100)近日,据澎湃新闻报道,浙江大学计算机科学与技术学院副院长、浙江大学人工智能研究所所长吴飞…

解决阿里云无法正常使用samba的问题【转】

转自:https://blog.csdn.net/u011949148/article/details/54311288 昨天在阿里云上申请了一个云服务器,系统用的是ubuntu14.04,由于是免费的(初次使用),配置较低(单核1G内存,40G硬盘…

Google又放大招:高效实时实现视频目标检测 | 技术头条

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」,购票请扫码咨询 ↑↑↑作者 | 陈泰红,算法工程师,研究方向为机器学习、图像处理来源 | 极市平台(ID:extrememart)图像目标检测是图像处理领域的基础。…