寫在前面: 這是一系列的科普文字,主要講解機(jī)器學(xué)習(xí)相關(guān)的概念和實(shí)際工作中的作用.
小華華同學(xué)的媳婦想吃西瓜, 于是小華華來到了益民市場(chǎng)
在程序員的眼里,買西瓜只是一個(gè)排序問題,找出來最好吃的瓜,把這個(gè)瓜帶回家
我們都知道 ?數(shù)據(jù)結(jié)構(gòu)+算法=程序設(shè)計(jì)
現(xiàn)在的買瓜的程序設(shè)計(jì)轉(zhuǎn)化為:?
1. ?什么樣的瓜才是最優(yōu)瓜 (算法)?
?2. 如何為西瓜進(jìn)行排序 (數(shù)據(jù)結(jié)構(gòu))?
其實(shí)小華華在買瓜之前已經(jīng)做過了功課
經(jīng)過敲敲打打,最終小華華挑選了一個(gè)他認(rèn)為紋路清晰的好瓜
買回家切開一看
天呀,怎么可以這樣?
重要提醒:使用百度搜索一定要擦亮眼睛,自行甄別真?zhèn)?/p>
吸收了經(jīng)驗(yàn)教訓(xùn)后,小華華決定自己研發(fā)一套挑瓜系統(tǒng),選出來最好的西瓜帶回家
設(shè)計(jì)一套挑瓜系統(tǒng),最通常的作法是先設(shè)定模型
但是開發(fā)這一套合理算法模型有個(gè)前提就是小華華需要對(duì)西瓜非常的了解.
屁股大的西瓜好吃還是屁股小的好吃, 聲音脆的西瓜好還是聲音悶的西瓜好?
這些數(shù)據(jù)如何獲取呢?
最簡(jiǎn)單粗暴的方法就是打開所有的瓜,嘗遍所有的瓜總結(jié)規(guī)律
人類學(xué)習(xí)的過程和機(jī)器學(xué)習(xí)的過程是類似的
Machine learning is the subfield of computer science that gives computers the ability to learn without being explicitly programmed
上面一段話來自維基百科,以前我們編寫程序if和else是滿足什么條件就執(zhí)行什么代碼,程序員非常清楚計(jì)算機(jī)要執(zhí)行的邏輯,而機(jī)器學(xué)習(xí)是給與機(jī)器,一種可以自我學(xué)習(xí)的能力,當(dāng)機(jī)器具備了這種能力后,我們無須清楚里面的某個(gè)細(xì)節(jié),機(jī)器就可以工作.
機(jī)器學(xué)習(xí)類似一個(gè)黑盒子,盒子有輸入有輸出.
以前我們程序員需要對(duì)黑盒子里面的內(nèi)容邏輯了如指掌,通過精確的代碼處理輸入,產(chǎn)生輸出
現(xiàn)在我們有了機(jī)器學(xué)習(xí)后,只需要訓(xùn)練機(jī)器就可以了.黑盒子里面的邏輯由程序自動(dòng)產(chǎn)生
舉個(gè)簡(jiǎn)單的例子,我們可以這樣訓(xùn)練計(jì)算機(jī):
1+1是多少堡赔?10!打屁股,是2
1+2是多少?37!打屁股,是3
1+3是多少?-5擎淤!打屁股,是4
……
1+1是多少秸仙?5嘴拢!打屁股,是2
1+2是多少筋栋?14炊汤!打屁股,是3
1+3是多少弊攘?25抢腐!打屁股,是4
……
1+1是多少襟交?2迈倍!嗯,智商有進(jìn)步
1+2是多少?5捣域!打屁股啼染,是3
1+3是多少?8焕梅!打屁股迹鹅,是4
……
1+1是多少?2贞言!嗯,智商有進(jìn)步
1+2是多少斜棚?3!嗯,智商有進(jìn)步
1+3是多少该窗?4弟蚀!嗯,智商有進(jìn)步
……
========若干年后========
108+205是多少?313酗失!
上面的每一組對(duì)話都是訓(xùn)練的數(shù)據(jù)集,
每次訓(xùn)練后的反饋,實(shí)際上是屬于我們的監(jiān)督學(xué)習(xí)的過程
機(jī)器學(xué)習(xí)可以理解為一個(gè)黑箱子义钉,有輸入有輸出,里面的邏輯無須考慮,往入口扔進(jìn)去個(gè)1+1,出口會(huì)扔出來個(gè)250.去打黑箱子的屁屁规肴,說不對(duì)捶闸,應(yīng)該是2.不斷的往入口扔?xùn)|西夜畴,打屁屁,給正確答案
在大量的數(shù)據(jù)訓(xùn)練和遞歸分析后, 突然黑箱子就學(xué)會(huì)加法了.
同理鉴嗤,可以教會(huì)黑箱子加減乘除斩启、攤雞蛋餅、游泳醉锅、打架,嘮嗑和吹牛逼
黑箱子和黑箱子之間也可以互相交流學(xué)習(xí), 母箱子還可以教會(huì)公箱子怎么泡妞等等.
相關(guān)視頻:
機(jī)器學(xué)習(xí)類似一個(gè)剛開始學(xué)習(xí)東西的小孩子发绢,開始認(rèn)東西硬耍,作為一個(gè)大人(監(jiān)督者),第一天边酒,他看見一只京巴狗经柴,你告訴他這是狗;第二天他看見一只波斯貓墩朦,他開心地說坯认,這是狗,糾正他氓涣,這是貓牛哺;第三天,他看見一只蝴蝶犬劳吠,他又迷惑了引润,你告訴他這是狗……直到有一天,他可以分清任何一只貓或者狗.
圖片識(shí)別imagenet就是采用這種方式. 帶有監(jiān)督學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò).
相關(guān)視頻:
機(jī)器學(xué)習(xí)的好處:
在沒有機(jī)器學(xué)習(xí)之前,以開發(fā)圍棋程序?yàn)槔?開發(fā)出來的程序的棋力很大程度上與開發(fā)者的下棋水平有關(guān),開發(fā)者下棋水平越高,設(shè)計(jì)抽象出來的算法可能就越好. 但是使用機(jī)器學(xué)習(xí)后,無須考慮過多算法,電腦可以自己跟自己下棋,自行提高.
下面講解下機(jī)器學(xué)習(xí)中的一些概念 以及在教學(xué)工作中的應(yīng)用
神經(jīng)元
第一次聽到這個(gè)概念的時(shí)候感覺好高大上,其實(shí)神經(jīng)元模型就是一棵決策樹.
決策樹就是一個(gè)分類器,而分類器就是咔嚓砍一刀
看下面的圖,我們來預(yù)測(cè)黑馬程序員學(xué)員畢業(yè)后的就業(yè)情況:
大家想想痒玩,最簡(jiǎn)單地把這兩組特征向量分開的方法是啥淳附?當(dāng)然是在兩組數(shù)據(jù)中間畫一條線,線下方的就業(yè)速度較快 線上方的就業(yè)速度較慢.
一條直線把平面一分為二蠢古,一個(gè)平面把三維空間一分為二奴曙,一個(gè)n-1維超平面把n維空間一分為二,兩邊分屬不同的兩類草讶,這種分類器就叫做神經(jīng)元.
二維的平面分割線為 ax+by+c = 0;
三緯的屏幕分割面為 ax+by+cz= d;
推而廣之洽糟,三維以上的空間不能用幾何圖形去描述了,只能靠我們的想象,
n維空間中, 滿足n元一次方程a1x1+a2x2+...+anxn=b的點(diǎn)(x1,x2,...,xn)的函數(shù)就叫空間的一張超平面
關(guān)于n維空間:
神經(jīng)網(wǎng)絡(luò)
剛才的模型是一個(gè)較為簡(jiǎn)單的模型, 實(shí)際生活中的事情要比剛才的模型復(fù)雜很多
大家看圖
這種模型采用一個(gè)神經(jīng)元 y=kx+b 就不能解決問題了,解決辦法是多層神經(jīng)網(wǎng)絡(luò),底層神經(jīng)元的輸出是高層神經(jīng)元的輸入.
我們可以在中間砍一刀,按照年齡劃分為30歲之前的和30歲之后的,第一個(gè)神經(jīng)元的結(jié)果,作為第二個(gè)神經(jīng)元的一個(gè)輸入,第二個(gè)神經(jīng)元根據(jù)第一個(gè)神經(jīng)元的輸入加上學(xué)歷進(jìn)行或操作或者與操作.產(chǎn)生最終的結(jié)果.
這種處理方式跟我們大腦處理信號(hào)的方式類似,a神經(jīng)元的突觸處理信號(hào),把電信號(hào)傳給b神經(jīng)元
神經(jīng)網(wǎng)絡(luò)算法
計(jì)算機(jī)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練依靠反向傳播算法:最開始輸入層輸入特征向量到涂,網(wǎng)絡(luò)層層計(jì)算獲得輸出脊框,輸出層發(fā)現(xiàn)輸出和正確的類號(hào)不一樣,這時(shí)它就讓最后一層神經(jīng)元進(jìn)行參數(shù)調(diào)整践啄,最后一層神經(jīng)元不僅自己調(diào)整參數(shù)浇雹,還會(huì)勒令連接它的倒數(shù)第二層神經(jīng)元調(diào)整,層層往回退著調(diào)整.經(jīng)過調(diào)整的網(wǎng)絡(luò)會(huì)在樣本上繼續(xù)測(cè)試屿讽,如果輸出的結(jié)果仍然不合理昭灵,繼續(xù)來一輪回退調(diào)整吠裆,直到網(wǎng)絡(luò)輸出滿意為止.
機(jī)器學(xué)習(xí)就是計(jì)算機(jī)利用已有的結(jié)果數(shù)據(jù)和原因數(shù)據(jù)推測(cè)出某種模型,并利用這種模型去預(yù)測(cè)未來的一種方法.
影響一個(gè)學(xué)生就業(yè)的因素有:
學(xué)習(xí)情況,溝通能力,背景資料,性格特征等四大類:
從這四大類里面又派生出來學(xué)習(xí)方法得當(dāng),勤奮程度,主動(dòng)尋求他人幫助,模仿能力,求知欲強(qiáng),學(xué)習(xí)專注力,有成就感,自信心,思維靈活,獨(dú)立性,經(jīng)常反思,性格外向,親和力,熱情,能換位思考,語言組織能力,學(xué)歷,證書,工作經(jīng)驗(yàn),樂觀向上,吃苦耐勞,忠實(shí)誠(chéng)信,勇于迎接挑戰(zhàn),自制力,善于控制情緒,家庭關(guān)系等等等160項(xiàng)小類
這些因素究竟在就業(yè)速度和薪資里面起到多大作用,占據(jù)多大的比例,我們?nèi)祟悷o法評(píng)估,
最簡(jiǎn)單的做法就是分析我們已經(jīng)畢業(yè)的幾萬名學(xué)生,把數(shù)據(jù)交給機(jī)器,讓機(jī)器分析出來究竟這些內(nèi)容占據(jù)多大的比例,在哪種程度上影響學(xué)生的就業(yè)
下一篇文字我們先來分析模型,研究如何建立模型, 最后利用java語言編寫一個(gè) 神經(jīng)網(wǎng)絡(luò)+感知機(jī) 來實(shí)現(xiàn)一個(gè)簡(jiǎn)易的學(xué)生就業(yè)薪資預(yù)測(cè).