機器學習:基本介紹

機器學習介紹

在這里插入圖片描述

Hnad-crafted rules

Hand-crafted rules,叫做人設定的規則。那假設今天要設計一個機器人,可以幫忙打開或關掉音樂,那做法可能是這樣:

  • 設立一條規則,就是寫一段程序。如果輸入的句子里面看到**“turn off”**這個詞匯,那chat-bot要做的事情就是把音樂關掉。這個時候,之后對chat-bot說,Please turn off the musiccan you turn off the music, Smart? 它就會幫你把音樂關掉。看起來好像很聰明。別人就會覺得果然這就是人工智能。但是如果今天想要欺負chat-bot一下,就可以說please don‘t turn off the music,但是還是會把音樂關掉。這是個真實的例子。相同的例子在車上面也體現,打開車窗,不要打開車窗,最終都會打開車窗。身邊有很多這種類似的chat-bot,然后去真的對它說這種故意欺負它的話,它其實是會答錯的。

使用hand-crafted rules有什么樣的壞處呢,它的壞處就是:hand-crafted rules沒辦法考慮到所有的可能性,它非常的僵化,而用hand-crafted rules創造出來的machine,它永遠沒有辦法超過它的創造者人類。 人類想不到東西,就沒辦法寫規則,沒有寫規則,機器就不知道要怎么辦。所以如果一個機器,它只能夠按照人類所設定好的hand-crafted rules,它整個行為都是被規定好的,沒有辦法freestyle。如果是這樣的話,它就沒有辦法超越創造它的人類。

你好像看到很多chat-bot看起來非常的聰明。如果你是有一個是一個非常大的企業,他給以派給成千上萬的工程師,用血汗的方式來建出數以萬計的規則,然后讓他的機器看起來好像很聰明。但是對于中小企業來說,這樣建規則的方式反而是不利的。

要做的其實是讓機器它有自己學習的能力,也就我們要做的應該machine learning的方向。講的比較擬人化一點,所謂machine learning的方向,就是你就寫段程序,然后讓機器人變得了很聰明,他就能夠有學習的能力。接下來,你就像教一個嬰兒、教一個小孩一樣的教他,你并不是寫程序讓他做到這件事,你是寫程序讓它具有學習的能力。然后接下來,你就可以用像教小孩的方式告訴它。
在這里插入圖片描述

machine learning所做的事情,可以想成就是在尋找一個function,要讓機器具有一個能力,這種能力是根據你提供給它的資料去尋找要尋找的function。

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

要先準備一個function set(集合),這個function里面有成千上萬的function。舉例來說,這個function在里面,有一個f1,你給它看一只貓,它就告訴你輸出貓,看一只狗就輸出狗。有一個function f2它很怪,你給它看貓,它說是猴子;你給他看狗,它說是蛇。所以要準備一個function set,這個function set里面有成千上萬的function。先假設手上有一個function set,這個function set就叫做model(模型)。

在這里插入圖片描述

有了這個function set,接下來機器要做的事情是:它有一些訓練的資料,這些訓練資料告訴機器說一個好的function,它的輸入輸出應該長什么樣子,有什么樣關系。你告訴機器說呢,現在在這個影像辨識的問題里面,如果看到這個猴子,看到這個猴子圖也要輸出猴子,看到這個貓的圖也要輸出猴子貓,看到這個狗的圖,就要輸出猴子貓狗,這樣才是對的。只有這些訓練資料,拿出一個function,機器就可以判斷說,這個function是好的還是不好的。

在這里插入圖片描述

機器可以根據訓練資料判斷一個function是好的,還是不好的。舉例來說:在這個例子里面顯然 f 1 f_1 f1?,他比較符合training data的敘述,比較符合我們的知識。所以f1看起來是比較好的。 f 2 f_2 f2?看起來是一個荒謬的function。這種task叫做supervised learning
在這里插入圖片描述

現在機器有辦法決定一個function的好壞。但光能夠決定一個function的好壞是不夠的,因為在function set里面有成千上萬的function,它有會無窮無盡的function,所以需要一個有效率的評估算法,可以從function的set里面挑出最好的function。一個一個衡量function的好壞太花時間,實際上做不到。所以需要有一個好的評價算法,從function set里面挑出一個最好的的function,這個最好的function將它記為 f ? f^* f??

在這里插入圖片描述

machine learning里面非常重要的問題:機器有舉一反三的能力

在這里插入圖片描述

左邊這個部分叫training,就是學習的過程;右邊這個部分叫做testing,學好以后就可以拿它做應用。所以在整個machine learning framework整個過程分成了三個步驟:

  • 第一個步驟就是找一個function
  • 第二個步驟讓machine可以衡量一個function是好還是不好
  • 第三個步驟是讓machine有一個自動的方法,有一個好評估算法可以挑出最好的function。

在這里插入圖片描述

機器學習其實只有三個步驟,這三個步驟簡化了整個process。可以類比為:把大象放進冰箱。把大象塞進冰箱,其實也是三個步驟:把門打開;象塞進去;后把門關起來,然后就結束了。所以說,機器學習三個步驟,就好像是說把大象放進冰箱,也只需要三個步驟。

在這里插入圖片描述

監督學習

在這里插入圖片描述

Regression是一種machine learning的task,當我們說:要做regression時的意思是,machine找到的function,它的輸出是一個scalar,這個叫做regression。舉例來說,在作業一里面會做PM2.5的預測(比如說預測明天上午的PM2.5) ,也就是說要找一個function,這個function的輸出是未來某一個時間PM2.5的一個數值,這個是一個regression的問題。

機器要判斷function明天上午的PM2.5輸出,你要提供給它一些資訊,它才能夠猜出明天上午的PM2.5。你給他數據可能是今天上的PM2.5、昨天上午的PM2.5等等。這是一個function,它吃我們給它過去PM2.5的資料,它輸出的是預測未來的PM2.5。在這里插入圖片描述
若要訓練這種machine,如同在Framework中講的,需要準備一些訓練資料,就告訴它是根據過去從政府的open data上搜集下來的資料。九月一號上午的PM2.5是63,九月二號上午的PM2.5是65,九月三號上午的PM2.5是100。所以一個好的function輸入九月一號、九月二號的PM2.5,它應該輸出九月三號的PM2.5;若給function九月十二號的PM2.5、九月十三號的PM2.5,它應該輸出九月十四號的PM2.5。若收集更多的data,那就可以做一個氣象預報的系統

在這里插入圖片描述
classification(分類)的問題。Regression和Classification的差別就是要機器輸出的東西的類型是不一樣。在Regression中機器輸出的是一個數值,在Classification里面機器輸出的是類別。假設Classification問題分成兩種,一種叫做二分類輸出的是是或否(Yes or No);另一類叫做多分類(Multi-class),在Multi-class中是讓機器做一個選擇題,等于是給他數個選項,每個選項都是一個類別,讓從數個類別里選擇正確的類別。

在這里插入圖片描述

在這里插入圖片描述

訓練這樣的function很簡單,給它一大堆的Data并告訴它,現在輸入這封郵件,應該說是垃圾郵件,輸入這封郵件,應該說它不是垃圾郵件。足夠多的這種資料去學就可以自動找出一個可以偵測垃圾郵件的function。

在這里插入圖片描述

剛才講的都是讓machine去解的任務,接下來要講的是在解任務的過程中第一步就是要選擇function set,選不同的function set就是選不同的model。Model有很多種,最簡單的就是線性模型,但會花很多時間在非線性的模型上。在非線性的模型中最耳熟能詳的就是Deep learning。

在這里插入圖片描述

在做Deep learning時,它的function是特別復雜的,所以它可以做特別復雜的事情。比如它可以做圖像識別,這個復雜的function可以描述pixel和class之間的關系。

在這里插入圖片描述

用Deep learning的技術也可以讓機器下圍棋, 下圍棋這個task 其實就是一個分類的問題。對分類問題需要一個很復雜的function,輸入是一個棋盤的格子,輸出就是下一步應該落子的位置。知道一個棋盤上有十九乘十九的位置可以落子,所以今天下圍棋這件事情就可以把它想成是一個十九乘十九個類別的分類問題,或者是可以把它想成是一個有十九乘十九個選項的選擇題。
在這里插入圖片描述

在這里插入圖片描述

所以若你有了這樣的棋譜之后,可以告訴machine如果現在有人落子下5之五,下一步就落子在天元;若五之五和天元都有落子,那就要落子在另外一個五之5上。然后你給它足夠多的棋譜,它就能學會下圍棋了。

在這里插入圖片描述

在這里插入圖片描述

剛才講的都是supervised learning(監督學習),監督學習的問題是需要大量的training data。training data告訴要找的function的input和output之間的關系。如果在監督學習下進行學習,需要告訴機器function的input和output是什么。這個output往往沒有辦法用很自然的方式取得,需要人工的力量把它標注出來,這些function的output叫做label。

半監督學習

假設先想讓機器鑒別貓狗的不同,想做一個分類器讓它告訴你,圖片上是貓還是狗。有少量的貓和狗的labelled data,但是同時又有大量的Unlabeled data,但是又沒有力氣去告訴機器說哪些是貓哪些是狗。在半監督學習的技術中,這些沒有label的data,這些數據可能也是對學習有幫助,之后會講為什么這些沒有label的data對學習會有幫助。
在這里插入圖片描述
另外一個減少data用量的方向是遷移學習。

遷移學習

在這里插入圖片描述
遷移學習的意思是:假設要做貓和狗的分類問題,只有少量的有label的data。但是現在有大量的data,這些大量的data中可能有label也可能沒有label。但是跟我們現在要考慮的問題是沒有什么特別的關系的,分辨的是貓和狗的不同,但是這邊有一大堆其他動物的圖片還是動畫圖片。

在這里插入圖片描述
更加進階的就是無監督學習,希望機器可以學到無師自通。

無監督學習

在這里插入圖片描述
在reinforcement learning里面,沒有告訴機器正確的答案是什么,機器所擁有的只有一個分數,就是他做的好還是不好。若現在要用reinforcement learning方法來訓練一個聊天機器人的話,訓練的方法會是這樣:就把機器發到線下,讓它和進來的客人對話,然后對話半天以后呢,最后客人勃然大怒把電話掛掉了。那機器就學到一件事情就是剛才做錯了。但是它不知道哪邊錯了,它就要回去自己想道理,是一開始就不應該打招呼嗎?還是中間不應該在罵臟話了之類。它不知道,也沒有人告訴它哪里做的不好,它要回去反省檢討哪一步做的不好。機器要在reinforcement learning的情況下學習,機器是非常intelligence的。 reinforcement learning也是比較符合人類真正的學習的情景,這是在學校里面的學習老師會告訴你答案,但在真實社會中沒人回告訴你正確答案。只知道做得好還是做得不好,如果機器可以做到reinforcement learning,那確實是比較intelligence。
在這里插入圖片描述
Alpha Go其實是用監督學習加上reinforcement learning去學習的。先用棋譜做監督學習,然后在做reinforcement learning,但是reinforcement learning需要一個對手,如果使用人當對手就會很讓費時間,所以機器的對手是另外一個機器。

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/41615.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/41615.shtml
英文地址,請注明出處:http://en.pswp.cn/news/41615.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C#__使用Type類反射數據的基本用法

// 簡單介紹 // 元數據(metadata):與程序及其類型有關的數據。 // 反射:一個運行的程序查看本身元數據或其他程序集中的元數據的行為 // Assembly類:允許訪問給定程序集的元數據,包含了可以加載和執行程序…

Maven框架SpringBootWeb簡單入門

一、Maven ★ Maven:是Apache旗下的一個開源項目,是一款用于管理和構建java項目的工具。 官網:https://maven.apache.org/ ★ Maven的作用: 1. 依賴管理:方便快捷的管理項目依賴的資源(jar包),避免版本沖突問題。 2. 統一項目結構:提供標準、統一的項目結構。 …

LightDB 23.3 plorasql 函數支持inout參數輸出

開篇立意 oracle PLSQL函數中返回值有兩種情況: (1)使用return返回值; (2)使用out修飾的參數(oracle不支持inout) SQL> create function yu(id inout int) return int asbeginn…

【C# 基礎精講】文件讀取和寫入

文件讀取和寫入是計算機程序中常見的操作,用于從文件中讀取數據或將數據寫入文件。在C#中,使用System.IO命名空間中的類來進行文件讀寫操作。本文將詳細介紹如何在C#中進行文件讀取和寫入,包括讀取文本文件、寫入文本文件、讀取二進制文件和寫…

選擇大型語言模型自定義技術

推薦:使用 NSDT場景編輯器 助你快速搭建可二次編輯器的3D應用場景 企業需要自定義模型來根據其特定用例和領域知識定制語言處理功能。自定義LLM使企業能夠在特定的行業或組織環境中更高效,更準確地生成和理解文本。 自定義模型使企業能夠創建符合其品牌…

PAT 1013 Battle Over Cities

個人學習記錄,代碼難免不盡人意。 It is vitally important to have all the cities connected by highways in a war. If a city is occupied by the enemy, all the highways from/toward that city are closed. We must know immediately if we need to repair a…

計算機機房的管理

1 電源問題 不穩定的電源對電腦的使用壽命是一個極大的威脅,特別是對于機房來說危害 性更大。為此,學校要添置必要的穩壓器,設置其正常供電的電壓為 220 伏、電流 為 l6 安對電腦室供電。如有電壓發生偏差,要及時檢查供電情況&…

BDA初級分析——認識SQL,認識基礎語法

一、認識SQL SQL作為實用技能,熱度高、應用廣泛 在對數據分析人員的調查中SQL長期作為熱度排名第-一的編程語言超過Python和R SQL:易學易用,高效強大的語言 SQL:Structured Query Language 結構化查詢語言 SQL:易學…

python threading.Event()用法

紅綠燈例子 Event的用法 import threading,timeeventthreading.Event()def lighter():timesec0event.set()while True:if 5<timesec<10:event.clear()print("紅燈亮")elif timesec>10:event.set()timesec0else:print("綠燈亮")time.sleep(1)tim…

BSN“五、十、百”工程實施半年成果豐碩,助力數字化轉型和高質量發展

為推動“云網鏈”融合的新基建賦能數字經濟高質量發展&#xff0c;將區塊鏈服務網絡&#xff08;BSN&#xff09;打造成為中國數字經濟和社會治理的核心區塊鏈公共服務平臺&#xff0c;2023年2月&#xff0c;在“第三屆區塊鏈服務網絡&#xff08;BSN&#xff09;全球合作伙伴大…

力扣75——二分查找

總結leetcode75中的二分查找算法題解題思路。 上一篇&#xff1a;力扣75——堆/優先隊列 力扣75——二分查找 1 猜數字大小2 咒語和藥水的成功對數3 尋找峰值4 愛吃香蕉的珂珂1-4解題總結 1 猜數字大小 題目&#xff1a; 猜數字游戲的規則如下&#xff1a;每輪游戲&#xff0…

多維時序 | MATLAB實現WOA-CNN-BiGRU-Attention多變量時間序列預測

多維時序 | MATLAB實現WOA-CNN-BiGRU-Attention多變量時間序列預測 目錄 多維時序 | MATLAB實現WOA-CNN-BiGRU-Attention多變量時間序列預測預測效果基本介紹模型描述程序設計參考資料 預測效果 基本介紹 多維時序 | MATLAB實現WOA-CNN-BiGRU-Attention多變量時間序列預測 1.程…

java 向上取整 java對小數取整

取整方法 Math.floor(double a) 向下取整 Math.ceil(double a) 向上取整 Math.round(double a) 四舍五入 0.5向下取整 Math.rint(double a) 就近取整 1.6接近2&#xff0c;所以就取2 1.4接近1&#xff0c;所以就取1 1.5跟1和2都很接近&#xff0c;這時候就取偶數 (int) 類型強轉…

MongoDB:數據庫初步應用

一.連接MongoDB 1.MongoDBCompass連接數據庫 連接路徑:mongodb://用戶名:密碼localhost:27017/ 2.創建數據庫(集合) MongoDB中數據庫被稱為集合. MongoDBCompass連接后,點擊紅色框加號創建集合,點擊藍色框加號創建文檔(數據表) 文檔中的數據結構(相當于表中的列)設計不用管…

騰訊云國際輕量應用服務器使用流程是什么呢?

騰訊云國際輕量應用服務器怎么使用呢&#xff1f;下面一起來了解一下&#xff1a; 1. 熟悉輕量應用服務器基礎知識 ①什么是輕量應用服務器 TencentCloud Lighthouse&#xff1f; ②輕量應用服務器與云服務器 CVM 的區別是什么&#xff1f; ③為什么選擇輕量應用服務器&#xf…

一個DW的計算

一個DW的計算 1- 題目: 已知一個DW1.1 要求: 從DW中取出指定的位的值1.1.1 分析1.1.2 實現1.1.3 簡化實現1.1.4 驗證 2- 題目: 已知一個DW2.1 要求: 從DW中的指定的P和S,取出指定的位的值2.1.1 分析2.1.2 實現 1- 題目: 已知一個DW 有圖中所示一行信息&#xff0c;表示一個DW(…

常見的Web安全漏洞有哪些,Web安全漏洞常用測試方法介紹

Web安全漏洞是指在Web應用程序中存在的可能被攻擊者利用的漏洞&#xff0c;正確認識和了解這些漏洞對于Web應用程序的開發和測試至關重要。 一、常見的Web安全漏洞類型&#xff1a; 1、跨站腳本攻擊(Cross-Site Scripting&#xff0c;XSS)&#xff1a;攻擊者通過向Web頁面注入…

神經網絡基礎-神經網絡補充概念-41-梯度的數值逼近

概念 梯度的數值逼近是一種用于驗證梯度計算正確性的方法&#xff0c;它通過近似計算梯度來與解析計算的梯度進行比較。雖然數值逼近在實際訓練中不常用&#xff0c;但它可以用來檢查手動或自動求導的實現是否正確。 代碼實現 import numpy as np# 定義函數 f(x) x^2 def f…

養生的年輕人,自己給自己“治病”

【潮汐商業評論/原創】 “最近嘴周總長痘&#xff0c;應該是上火了&#xff0c;我這就下單點金銀花露喝。”對于長痘這件事&#xff0c;Anna的第一反應就是“內調”。 “針對性護膚和涂藥這些方法治標不治本&#xff0c;就算用完痘痘不泛紅且癟了&#xff0c;身體里的問題沒解…

上傳文件報413Request EntityToo Large錯誤解決辦法

產生這種原因是因為服務器限制了上傳大小 1、nginx服務器的解決辦法 修改nginx.conf的值就可以解決了 將以下代碼粘貼到nginx.conf內 client_max_body_size 20M 可以選擇在http{ }中設置&#xff1a;client_max_body_size 20m; 也可以選擇在server{ }中設置&#xff1a;cli…