Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【机器学习入门系列】简介

【机器学习入门系列】简介

原创
作者头像
张耀琦
修改于 2017-06-19 11:09:30
修改于 2017-06-19 11:09:30
2.3K0
举报
文章被收录于专栏:张耀琦的专栏张耀琦的专栏

导语

简要介绍机器学习研究的内容,机器学习的三大步骤;不同的 Model 类型举例

引用课程:http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML16.html

先看这里,可能由于你正在查看这个平台行间公式不支持很多的渲染,所以最好在我的 CSDN 上 查看,传送门:(无奈脸)

CSDN 博客文章地址:http://blog.csdn.net/zyq522376829/article/details/66478149

我们将要学习什么东东?

什么是机器学习?

有右边这样非常大的音频数据集,写程序来进行学习,然后可以输出音频“Hello”

<!--more-->

有右边这样非常大的图片数据集,写程序来进行学习,然后可以识别左边这样图,识别为正确的物种。

机器学习 $\approx$ 寻找一个函数
Framework 框架
  • Image Recognition 图像识别

函数集($f{1},f{2},\ldots $),通常将一个函数称为 Model(模型)

为了找到最好的函数 $f$ ,将训练集图像放入函数集的输入中,函数集输出识别结果。

下面来看具体步骤

Step1.确定一组函数(Model),函数集怎么找后面会再介绍。

Step2.将训练集对函数集进行训练。

Step3.挑选出“最好”的函数 $f^{}$

然后就可以使用 $f^{}$ 来对新的测试集进行检测。

整体都学习哪些知识(Learning Map)

Regression(回归)是什么?

Regression 意思是,我们要找到这样一个函数 f,使得输出为 scalar(标量,数值)

这里说法当然是比较不严谨,数学上简单的线性,一元或多元回归的知识可以在概率论与数理统计课本中进行学习。《概率论与数理统计》,浙江大学,第九章,P244。

举个例子,比如预测PM2.5.

输入就是之前每一天的PM2.5数值,输出是明天的PM2.5,是个标量。 具体做法:

Classification(分类)

分类比较容易理解,比如二元分类或者多元分类。

Binary Classification(二元分类)

比如垃圾邮件过滤,就是要找到一个Function,输入为一封邮件,输出是二元的,是或者不是垃圾邮件。训练集就是很多封邮件,每一封邮件知道它是否是垃圾邮件,让Function进行学习。

Multi-class Classification(多元分类)

多元分类;例如下面的新闻分类系统,找一个Function,输入就是新闻的内容,输出则是新闻的类型(政治,经济,体育等等)

Deep Learning(深度学习)

上面讲过,机器学习的第一个步骤就是确定一个函数集,可以选择Linear Model(线性模型),但是 Linear Model 比较有限。更多的则是 Non-lilnear Model(非线性模型)。比如深度学习就是 Non-lilnear Model 。

举个例子,比如图像识别:

这里举例深度学习中的一种,Convolutional Neural Network(CNN,卷积神经网络),输入就是很多的图像,输出为图像的类型,这里将每个对象都当作一个类别。训练集就是很多张图片,并告诉机器每张图片对应的是什么类型。深度学习的Function非常复杂。

再举一个例子,下围棋:

输入就是黑白子在1919棋盘上的位置,输出就是下一步应该下在哪里。这也就是一个选择题,可能的选项有1919个。

训练集就是一堆棋谱,每一步是怎么走的。

Supervised Learning(有监督学习)

Non-lilnear Model 不只 Deep Learning,后面还会接触到 SVM,decision tree 等。 上面提到这些我们都叫做Supervised Learning(有监督学习),所谓 Supervised Learning 就是说训练集的输入和输出对于目标函数是成对的,目标函数看到一个输入,就应该对应有一个输出。也把这样的输出叫做 label。 见到说需要 Labelled data 的情况,就是指我们要告诉机器看到一个输入,要有一个输出。

其他的比如还有Semi-supervised Learning(半监督学习)

Semi-supervised Learning(半监督学习)

比如图像识别一些猫和狗,Labelled data 就是训练集中每个图片知道它对应的是什么类型。而Unlabelled data 就是不知道图片对应的类型。这种其实也是可以让机器学习的比较好的,后面也会介绍。

Transfer Learning(迁移学习)

举例说一下迁移学习:

比如有 Labelled data ,但我们还有一些labelled 或者 unlabelled 数据,这些数据和 Labelled data 中识别猫和狗都没有关系,但它也是怎么帮助Labelled data 更好的识别。这就是 Transfer Learning 要做的事情。

Unsupervised Learning(无监督学习)

举一个Unsupervised Learning 的例子:让机器阅读非常多的文章,然后机器就可以学习单词的含义。

这个Unsupervised Learning 的例子中,训练集只有输入(很多的文章),没有输出。假设通过Neural Network(神经网络)学习之后,给一个单词,就可以输出一个向量。

再举一个例子:比如想要让机器绘制一下自己的内心世界。

具体说就是给机器一堆数字,他就能自己绘制一张图片,此时训练集只有输出(很多的图片),没有输入。

Structured Learning(结构化学习)

比如看下面例子:第一个是语音识别,假设我们想要找的function是输入一段语音,然后输出语音的文字。如果把世界上不同的句子当作一个类别,这样是没有办法穷举所有类型的,所以这种超越分类的问题,就需要另外一套完整的思想来解决。 还有例子就是机器翻译,将中文翻译成英文,也是没有办法穷举所有的句子。再或者人脸识别,没有办法穷举所有人脸框。

Reinforcement Learning(增强学习)

举个Reinforcement Learning 的例子:AlphaGo。 举例来比较 Supervised 和 Reinforcement:比如学习对话,Supervised 训练集每句话,都有对应的输出;但是Reinforcement就只是不断的对话,机器只能知道它做的好或者不好,没有其他更多的信息。

再举一个围棋的例子,比如 Supervised 情况就是机器看到一个棋局,告诉它下一步应该走什么。Reinforcement 的情况就是走了很多步,输了或者赢了,就是知道一个结果。AlphaGo 就是两个都用到了,先看棋谱学习,但是棋谱的数量是有限的,然后再进行增强型学习。所以 AlphaGo 第一轮和世界高手对局时还捉襟见肘,第二轮就基本横扫了。

理解Learning Map颜色的意义

蓝色的都是代表Scenario(方案),红色部分指的是你要找的function的样子,可以在Semi-supervised Learning 的情况下做红色的task,也可以在 Transfer Learning下做红色task,就是右上角的4个虽然是小方块,但是 Supervised Learning 里面的 task 都可以在其他蓝色 scenario 中做。绿色的部分就是方法或者说模型,绿色的内容虽然写在 Classification 里面,但是可以放在 Regression 或者 Structured Learning 中。

相关推荐 人人都可以做深度学习应用:入门篇(上) 人人都可以做深度学习应用:入门篇(下) 机智机器学习TML

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
微信小程序实战–集阅读与电影于一体的小程序项目(五)
21.电影页面数据绑定 movies.js var app = getApp(); Page({ data: { inTheaters: {}, comingSoon: {}, top250: {}, }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { var baseUrl = app.globalData.g_baseUrl; var inTheatersUrl = base
zhang_derek
2018/08/30
7310
微信小程序实战–集阅读与电影于一体的小程序项目(五)
豆瓣电影api系列
豆瓣电影api 1、获取正在热映的电影: 接口:https://api.douban.com/v2/movie/in_theaters?apikey=0b2bdeda43b5688921839c8ec
江一铭
2022/06/16
3.4K0
第四个页面:制作电影资讯页面
之前的文章列表页面还有一个小功能没有实现,就是点击点击轮播图就能跳转到相应的文章详情页面,这个和点击文章列表跳转到文章详情页面的实现方式是一样的。
端碗吹水
2020/09/23
1.6K0
第四个页面:制作电影资讯页面
微信小程序HTTP封装请求
http.js import utils from "../../utils/utils" var http = utils.http; const douban = "https://douban.
达达前端
2019/08/25
1.1K0
微信小程序实战–集阅读与电影于一体的小程序项目(七)
27.实现上滑加载更多数据 movie-grid-template.wxml <import src="../movie/movie-template.wxml" /> <template name="movieGridTemplate"> <scroll-view class="grid-container" scroll-y="true" scroll-x="false" bindscrolltolower="onScrollLower"> <block wx:for="{{movies}}
zhang_derek
2018/08/30
7090
微信小程序实战–集阅读与电影于一体的小程序项目(七)
微信小程序实战–集阅读与电影于一体的小程序项目(六)
24.更多电影 app.json "pages": [ "pages/posts/post", "pages/welcome/welcome", "pages/posts/post-detail/post-detail", "pages/movies/movies", "pages/movies/more-movie/more-movie" ], more-list-template.wxml <view class="more" catchtap='onMor
zhang_derek
2018/08/30
6910
微信小程序实战–集阅读与电影于一体的小程序项目(六)
小程序笔记篇
豆瓣top250的数据https://api.douban.com/v2/movie/top250
达达前端
2019/07/03
6730
小程序笔记篇
第五个页面:更多电影页面
我们需要实现两个功能,一是点击电影资讯页面上的 “更多” 时,跳转到更多电影页面中,二是跳转时要获取相应的电影类型。
端碗吹水
2020/09/23
9630
第五个页面:更多电影页面
最后一个页面:构建电影详情页面
我们想要有一个搜索电影的功能,需要在电影资讯页面顶部编写一个搜索框,当我们的鼠标焦点位于该搜索框时,就会显示出电影搜索页面,而点击搜索框的关闭图标时,需要隐藏电影搜索页面。所以这个电影搜索页面不是一个单独的页面文件,而是用隐/显的方式来做。
端碗吹水
2020/09/23
7460
最后一个页面:构建电影详情页面
微信小程序前端promise封装
config.js const config = { base_url_api : "https://douban.uieee.com/v2/movie/", } export {config} http.js import { config } from "../config"; class HTTP { requset({ url, method = "GET", data = {} }) { const promise = new Promise((resolve,
达达前端
2019/08/25
1.1K0
数据获取:​如何写一个基础爬虫
写好一个爬虫最基本的是做好页面分析,找到链接和规律,这样在写爬虫的时候就可以有方向和目的性。接下来,我们就以爬虫最常用的豆瓣评分TOP250的内容作为爬虫的demo,以此来学习使用相关知识。
马拉松程序员
2023/09/02
4010
数据获取:​如何写一个基础爬虫
微信小程序class封装http
config.js var config = { base_api_url:"https://douban.uieee.com/v2/" } export {config} utils/http.js import {config} from "../config"; class HTTP{ request(params) { if (!params.method) { params.method = "GET" } wx.request({ ur
达达前端
2019/08/25
6900
爬虫实战-豆瓣电影Top250
首先是对书上案例进行学习,了解如何定位网站中我们需要的信息,并使用re提供的正则表达式匹配我们的信息。然后为了加快爬虫速度,我们使用了多进程multiprocessing。最后进入实战,对真实的网站进行爬取。在实战中,我们遇到了一些新问题,需要处理网站的反爬虫机制。
一只大鸽子
2022/12/06
6800
爬虫实战-豆瓣电影Top250
豆瓣电影top250爬虫及可视化分析
  人类社会已经进入大数据时代,大数据深刻改变着我们的工作和生活。随着互联网、移动互联网、社交网络等的迅猛发展,各种数量庞大、种类繁多、随时随地产生和更新的大数据,蕴含着前所未有的社会价值和商业价值!!!
小孙同学
2022/01/17
6.8K0
豆瓣电影top250爬虫及可视化分析
微信小程序电影模板
Vant Weapp UI库使用Vant Weapp 地址: https://youzan.github.io/vant-weapp
达达前端
2019/08/08
4.9K0
微信小程序电影模板
不会 Python 没关系,手把手教你用 web scraper 抓取豆瓣电影 top 250 和 b 站排行榜
如果要抓取数据,一般使用Python是很方便的,不过如果你还不会推荐使用Chrome扩展 web scraper,下面就分别用Python和 web scraper 抓取豆瓣电影top 250 和b站排行榜的数据。
苏生不惑
2020/11/10
1.5K0
不会 Python 没关系,手把手教你用 web scraper 抓取豆瓣电影 top 250 和 b 站排行榜
微信小程序 开发笔记
参考:https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html
yiyun
2022/04/01
5560
微信小程序 开发笔记
Python 实战(5):拿来主义
有了列表,有了详细信息,有了搜索,这个电影网站已经有了基本的结构。现在要做的是:获取更多的内容。 我们没有必要也不可能自己去生产数量庞大的电影信息,互联网上的资源已足够满足我们的需求。(不过如果你要使用这些资源进行商业用途,请尊重内容来源方的版权。) 这个项目里,我将用豆瓣电影的 API 来获取内容。不要问我如何知道豆瓣有 API 可以做这样的事。我只是觉得它应该有,然后就去搜索引擎里搜索“豆瓣 api”,结果真的有。大概扫了下文档和示例,发现还挺好用的,于是就它了。 类似的情况还有之前的“查天气”系列课程
Crossin先生
2018/04/16
7640
Python 实战(5):拿来主义
微信开发--微信小程序(一)
微信小程序开发相对于微信公众号的开发显得更为重要,下面就来简单介绍一下微信小程序的开发.
生南星
2019/07/22
18.2K0
微信开发--微信小程序(一)
实验八 网络信息提取程序设计
获取网络数据的方式很多,常见的是先抓取网页数据(这些数据是html或其它格式的网页源代码),再进行网页数据解析,而有的网站则直接提供了数据文件供下载,还有的网站提供了Web API供用户使用。后两种方式一般能获得直接的数据,不需要再进行解析。
背雷管的小青年
2020/06/08
2.6K0
相关推荐
微信小程序实战–集阅读与电影于一体的小程序项目(五)
更多 >
交个朋友
加入HAI高性能应用服务器交流群
探索HAI应用新境界 共享实践心得
加入腾讯云技术交流站
洞悉AI新动向 Get大咖技术交流群
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档