樓主: 資料狂人
6171 8

[陳強] 當計量經濟學遭遇機器學習:揭開機器學習的神秘面紗(一) [分享]

VIP管理員

泰鬥

70%

還不是VIP/貴賓

-

威望
9
論壇币
986592216 个
通用積分
26002.4472
學術水平
4501 点
熱心指數
3273 点
信用等級
3512 点
經驗
563174 点
帖子
7736
精華
142
在線時間
13769 小时
注冊时间
2010-3-18
最后登錄
2019-11-15

初級热心勳章 初級学术勳章 中級学术勳章 中級热心勳章 初級信用勳章 中級信用勳章 高級学术勳章 高級热心勳章 高級信用勳章 特級信用勳章 特級学术勳章

資料狂人 在职认证  发表于 2018-3-5 11:48:44 |顯示全部樓層

当经济学家还陶醉于 “经济学帝国主义”,沉迷在 “无计量不学术” 之时,一个真正的学术明星,正以几乎横扫一切学科与业界之势冉冉升起,犹如明日之太阳,光芒不可限量。这个学术明星就是“机器学习”(Machine Learning,简记ML)。


當計量經濟學的影響力幾乎不出校門時,機器學習正迅速進入大衆視野,並悄然改變著我們的日常生活(比如,網絡搜索、網購等背後均有機器學習的算法支持)。你或許感到奇怪,計量經濟學與機器學習有可比性嗎?當然有!


机器学习也称 “统计学习”(Statistical Learning),由此可知主要使用统计方法;而计量经济学也大量使用统计学方法。机器学习的从业者被高大上地称为 “数据科学家”(data scientist);而计量经济学家与实证研究者每天也与数据打交道,怎么我们就不是数据科学家?为何一母(统计学)生两子(计量经济学、机器学习),二者的境遇如此不同?要回答这个问题,首先要知道什么是机器学习。


事实上,不同的学科对于机器学习有着不同的理解。如果你去哈佛经济系听 ML 的课,你会发现主要讲 ML 的思想与应用。如果你去波士顿大学数学统计系上 ML 的课,则几乎全是数学,包括泛函分析(functional analysis),甚至Reproducing Kernel Hilbert Space……而如果你观看听斯坦福计算机教授、百度首席科学家吴恩达(Andrew Ng)的 ML 公开课,则主要介绍各种算法(algorithm),甚至连线性回归的 OLS 问题也要用 “梯度下降法”(Gradient Descent)进行求解。


Hard Coding vs. Learning


那么,究竟什么是机器学习?的理解方法是从一个例子开始。机器学习的一个早期成功案例是过虑垃圾邮件(spam filtering)。随着电子邮件的兴起,垃圾邮件也越来越多。如何自动地过虑掉垃圾邮件(spam),而不错杀正常邮件?


一种传统方法是人为制定一个判定垃圾邮件的规则(比如,某些词汇在垃圾邮件中出现频率更高),将此规则进行计算机编程,然后用于新收到的邮件。这种方法被形象地称为 “hard coding”,因为它让计算机遵循人类预先制定的死规则进行邮件分类。但 hard coding 方法的实践效果并不好,因为人类虽能直观判断何为垃圾邮件,但很难将其准确提炼为可操作的规则(邮件中可能出现的词汇何其多啊)。


一个突破性的想法是引入“学习”(Learning),即不由人类告诉计算机何为垃圾邮件,而让计算机通过学习大量的数据自行判断何为垃圾邮件。具体来说,给予计算机大量的邮件,其中每封邮件都事先由人类识别并标注为 “正常邮件” 或 “垃圾邮件”。根据海量邮件的大数据(big data),计算机可以统计出不同词汇在正常邮件或垃圾邮件的出现频率。


比如,假设垃圾邮件经常出现 “代开发票” 一词,则一封包含 “代开发票” 的邮件就更可能是垃圾邮件。更地,根据贝叶斯规则(Bayes rule)可算出,给定包含 “代开发票” 一词,该邮件为垃圾邮件的条件概率。


当然,一封邮件通常包含很多词汇,故需用数学方法将这些信息综合起来,最终算出此邮件为 spam 的概率。最后,如果此概率超过某临界值(比如 0.9),则归类为垃圾邮件。这种方法称为 “Bayes spam filtering”,在实践中取得巨大成功。


从此例可见,计算机判断垃圾邮件的能力正是通过学习大量数据而获得,故名 “机器学习”(Machine Learning)。而上述 “Bayes spam filtering” 即为一种 “学习机器”(learning machine)或 “学习器”(learner)。


大數據與機器學習


不難看出,機器學習的效果依賴于大數據。數據量越大,則學習的效果越好。而且,機器學習的能力還可以根據的數據不斷地動態更新。反之,如果只給計算機提供100封郵件(小數據),可以想象機器學習的效果會很差。


事实上,有些机器学习的算法出现得很早,比如 “人工神经网络”(artificial neural network)早在60年代就提出了,但当时既无大数据,也无高速计算机,故生不逢时停滞不前,直至近年来才复兴,成为炙手可热的 “深度学习”(deep learning)。


由于样本数据主要用于训练计算机获得学习能力,故一般称为 “训练数据”(training data)。事实上,在进行机器学习时,通常将所有数据分为两类,其中大部分数据构成“训练数据”,而少量数据则作为 “测试数据”(test data)或 “保留数据”(hold-out data)。测试数据仅用于检验机器学习的效果(相当于out-of-sample test),以避免出现 “过拟合”(overfit),即样本内拟合效果虽好,但外推预测效果差的情形。


機器學習的術語


当计量经济学家或实证研究者进入机器学习领域,难免感觉这个领域既熟悉又陌生,或许 “恍如隔世”。比如,这里也有线性回归(OLS)与逻辑回归(Logit),以及作为非参数估计的 K 近鄰法(K Nearest Neighbors)等等。但似乎这一切又是用不同的术语包装起来的。


比如,計量經濟學稱为 “自变量” 或 “解释变量”,但机器学习则称为 “表征” 或 “特征”(features)。计量经济学称为 “因变量” 或 “被解释变量”,而机器学习则称为“响应”(response)。计量经济学称第 个数据为 “观测值”(observation),而机器学习则直接称为 “案例”(example)。


不得不承认,机器学习的有些术语比较接地气(别人家的术语?)。显然,作为强势学科,機器學習的術語有望日益流行。


機器學習的分類


大致来说,机器学习可分为两大类,即 “监督学习”(supervised learning)与 “无监督学习”(unsupervised learning)。


所谓 “监督学习”,其实就是有目标的学习;而“无监督学习”自然就是无目标的学习。具体来说,对于监督学习,数据可以写为,而我们的任務是用 來預測


比如,在上述過慮垃圾郵件的例子中,不同詞彙在一封郵件中出現的頻率,而則爲虛擬變量,表示此封郵件是否爲垃圾郵件。在監督學習中,由于目標很明確,就是預測,故起着监督与指导学习过程的作用,故名 “监督学习”。


反之,對于無監督學習,數據只是,並沒有明確的,而學習過程就是爲了識別的某种模式(pattern recognition)或规律。常见的无监督学习方法包括 “主成分分析”(principal component analysis)与 “聚类分析”(cluster analysis)等。


對于監督學習,還可以根據的性質進一步細分。如果为连续变量,则称为 “回归”(regression)。反之,如果为离散变量(比如,虚拟变量),则称为 “分类”(classification)。


学习理论(Learning Theory)


大多數的機器學習問題都是監督學習,因爲許多問題都可納入到此框架中。


比如,人脸识别(facial recognition)。首先,可将传感器捕捉到的人脸相片转换为像素(pixel)的矩阵,其中每个像素用一个数字表示其灰度(grayscale,假设为黑白相片)。

其次,將此矩陣的每列依次疊放,構成一個很長的列向量。例如,假设此相片的像素为 100 x 100,则表征向量(feature vector)的维度为 10,000 维(高维数据!)。


机器学习的任務就是要判断这个图像是否为人脸,或是否爲某人的臉。显然,使用 hard coding 的方法将行不通,因为虽然我们见到人脸就能马上识别,但却无法告诉计算机究竟怎样的图像才算人脸。据说,早期的计算机专家曾天真地以为人脸识别只是简单的计算机视觉(computer vision)问题,可以在一个暑期就完成(summer project)。

事实上,不仅人脸难以识别,即使简单如 0 - 9 的手写数字,如果使用 hard coding 的方法,计算机也力不从心(比如,邮局为了自动分拣而需要识别手写邮编)。这是因为,不同人的手写数字千差万别,你甚至很难告诉计算机,究竟数字 “4” 应该长什么样(参见下图)。当然,对于这些数字,同样可以将其像素转化为表征向量


真正的突破依然来自于 Machine Learning 的方法,即给予计算机大量的图像,某些包含人脸,而有些不含人脸,让计算机通过学习大量的数据而获得识别人脸的能力。


在數學上,給定一個未知函數,機器學習的目標就是通過訓練數據來學習此未知函數其中 爲可能的未知參數。


具體來說,希望根據訓練數據找到一個函數

使得所作的預測與實際的之间的差距最小,比如最小化在测试数据(test data)中的均方误差(Mean Square Errors):

又比如, “无人驾驶汽车”(driverless cars)也可纳入此一般的机器学习框架。此时,表征向量由汽車上各種傳感器在時刻實時輸送的各項指標數據所構成(參見下圖),而爲是否在時刻刹車。比如,如果預測,则刹車;反之,则不刹車。

(未完待續,更多精彩,下期推送)


高級计量经济学与Stata现场班(含機器學習與高維回歸,北京,十一)

本文爲山東大學陳強教授原創,摘自陳強老師微信公衆號“econometrics-stata”,轉載請注明作者與出處。


已有 1 人評分論壇币 學術水平 熱心指數 信用等級 收起 理由
1993110 + 5 + 5 + 5 + 5 精彩帖子

總評分: 論壇币 + 5  學術水平 + 5  熱心指數 + 5  信用等級 + 5   查看全部評分




stata SPSS
supercookie123 发表于 2018-3-5 11:56:02 |顯示全部樓層
心有戚戚焉
當跟一些年紀較大的計量老師聊學習機器學習時
常會被訓沒理論基礎等
kantdisciple 发表于 2018-3-5 16:31:56 |顯示全部樓層
But it works.这才是最重要的。
tsangwm 发表于 2018-3-5 22:47:17 |顯示全部樓層
thank you
wzqyky0419 发表于 2018-7-29 15:12:54 |顯示全部樓層
學習了。謝謝。
azurezz 学生认证  发表于 2019-1-10 09:57:53 |顯示全部樓層
看一看
張建平 在职认证  发表于 2019-1-10 11:29:04 |顯示全部樓層
一个突破性的想法是引入“学习”(Learning),即不由人类告诉计算机何为垃圾邮件,而让计算机通过学习大量的数据自行判断何为垃圾邮件。具体来说,给予计算机大量的邮件,其中每封邮件都事先由人类识别并标注为 “正常邮件” 或 “垃圾邮件”。根据海量邮件的大数据(big data),计算机可以统计出不同词汇在正常邮件或垃圾邮件的出现频率。
==========================
請問樓主,面對送給計算機的“大量”的郵件,人類如何做到“其中每封郵件都事先由人類標識”爲正常或垃圾?
人類每封都標識的信件還算是“大量”?
人類每封都標識過了,還再交給計算機幹嗎?脫褲放屁呀。
如果是同事發來的一篇專門研究代開發票問題的法律論文,會不會被計算機扔到垃圾箱裏並銷毀?
sanshanyu 发表于 2019-3-5 07:35:38 |顯示全部樓層
張建平 发表于 2019-1-10 11:29
一个突破性的想法是引入“学习”(Learning),即不由人类告诉计算机何为垃圾邮件,而让计算机通过学习大量 ...
請問樓主,面對送給計算機的“大量”的郵件,人類如何做到“其中每封郵件都事先由人類標識”爲正常或垃圾?
人類每封都標識的信件還算是“大量”?
人類每封都標識過了,還再交給計算機幹嗎?脫褲放屁呀。
如果是同事發來的一篇專門研究代開發票問題的法律論文,會不會被計算機扔到垃圾箱裏並銷毀?
1、首先任何機器學習程序都是需要學習內容的,又稱爲訓練集,訓練集必須是大量已經經過人類標記的數據,否則機器無從學起。就好像你要學習經濟學,你得先買一本書來看,書上的知識必須事先確保是正確的才能起到學習效果。

2、“大量”是一個相對的概念,比如一個好的學習算法給出幾萬封電子郵件就可以學得不錯了。而你覺得這幾萬封甚至幾百萬封電子郵件的標記工作很難嗎?並不是,這些工作是在你不經意間就完成了,郵件工具上往往會有一個按鈕“這是垃圾郵件”,你收到垃圾郵件後一點它就刪除了,實際上你已經完成了一封郵件的標記工作,而郵件服務器通過長年累月收集成千上萬人的標記就能獲得很大的訓練集了。事實上有很多訓練集都是利用很巧妙的方法在人們正常的工作中附帶地收集了訓練集數據。(很多收集方法人們甚至無法察覺)

3、當然還有很多專業領域的訓練集是無法用什麽巧妙的方法輕松得到的,比如圖像識別之類的,比如說研究圖像識別的人經常需要幾萬張圖片,每一個圖片上都要有一只貓。那就得靠人來一個一個標記,這也不是什麽難事,這個世界上有種叫做錢的東西,你只要出錢,有的是大把的人來給你制作訓練集,這是機器學習本應付出的成本。當然網上也有很多已經做好的免費或收費的訓練集供人下載。

4、“人類每封都標識過了,還再交給計算機幹嗎?脫褲放屁呀”這個問題我實在不知道怎麽回答,正如一個人昨天吃了飯,今天還要吃飯一樣。機器學習的最終目的是爲了以後機器可以自己完成工作。比如你要制作一個能夠替你寫作業的機器人,你首先要讓它學習你以往寫過的作業。你把寫好的作業給它看不是多此一舉,而是爲了以後它能替你寫作業。

5、“同事發來的一篇專門研究代開發票問題的法律論文,會不會被計算機扔到垃圾箱裏並銷毀?”如果僅憑一個關鍵詞就判定郵件那就不叫機器學習了,任何人可以通過郵件工具上的關鍵詞篩選輕松做到這一點,機器學習的目的就是要做出和人盡可能相似的判斷。

mahqswun 发表于 2019-3-23 12:18:14 |顯示全部樓層

學習了。謝謝。
您需要登錄后才可以回帖 登錄 | 我要注冊

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 論壇法律顾问:王进律师 知識産權保護聲明   免責及隱私聲明

GMT+8, 2019-11-15 10:06